IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Changeset 11339


Ignore:
Timestamp:
Jan 26, 2007, 5:33:37 PM (19 years ago)
Author:
Paul Price
Message:

Fixing problem with mosaicked versions of cameras --- they have file->format set, but they aren't supposed to have pmFPACopy run on them. Solution is to check if the file->camera is the default camera; if not, then don't do any copy in pmFPAfileSuitableFPA.

Location:
trunk/psModules/src/camera
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/psModules/src/camera/pmFPAfileFitsIO.c

    r11255 r11339  
    1818#include "pmFPACopy.h"
    1919
    20 pmFPA *pmFPAfileSuitableFPA(const pmFPAfile *file, const pmFPAview *view)
     20pmFPA *pmFPAfileSuitableFPA(const pmFPAfile *file, const pmFPAview *view, const pmConfig *config)
    2121{
    2222    PS_ASSERT_PTR_NON_NULL(file, NULL);
    2323    PS_ASSERT_PTR_NON_NULL(view, NULL);
    2424
    25     if (!file->format) {
     25    if (file->camera == config->camera || // Need to mosaic, not copy
     26            !file->format) {                // Working with the same output format as input format
    2627        return psMemIncrRefCounter(file->fpa);
    2728    }
     
    225226static bool fpaViewWriteFitsImage(const pmFPAview *view, // FPA view, specifying the level of interest
    226227                                  pmFPAfile *file, // FPA file of interest
     228                                  const pmConfig *config, // Configuration
    227229                                  bool (*fpaWriteFunc)(pmFPA*, psFits*, psDB*, bool, bool), // Func for FPA
    228230                                  bool (*chipWriteFunc)(pmChip*, psFits*, psDB*, bool, bool), // Func for chip
     
    236238    PS_ASSERT_PTR_NON_NULL(fits, false);
    237239
    238     pmFPA *fpa = pmFPAfileSuitableFPA(file, view); // FPA to write
     240    pmFPA *fpa = pmFPAfileSuitableFPA(file, view, config); // FPA to write
    239241
    240242    switch (pmFPAviewLevel(view)) {
     
    284286}
    285287
    286 bool pmFPAviewWriteFitsImage(const pmFPAview *view, pmFPAfile *file)
    287 {
    288     PS_ASSERT_PTR_NON_NULL(view, false);
    289     PS_ASSERT_PTR_NON_NULL(file, false);
    290     return fpaViewWriteFitsImage(view, file, pmFPAWrite, pmChipWrite, pmCellWrite);
    291 }
    292 
    293 bool pmFPAviewWriteFitsMask(const pmFPAview *view, pmFPAfile *file)
    294 {
    295     PS_ASSERT_PTR_NON_NULL(view, false);
    296     PS_ASSERT_PTR_NON_NULL(file, false);
    297     return fpaViewWriteFitsImage(view, file, pmFPAWriteMask, pmChipWriteMask, pmCellWriteMask);
    298 }
    299 
    300 bool pmFPAviewWriteFitsWeight(const pmFPAview *view, pmFPAfile *file)
    301 {
    302     PS_ASSERT_PTR_NON_NULL(view, false);
    303     PS_ASSERT_PTR_NON_NULL(file, false);
    304     return fpaViewWriteFitsImage(view, file, pmFPAWriteWeight, pmChipWriteWeight, pmCellWriteWeight);
     288bool pmFPAviewWriteFitsImage(const pmFPAview *view, pmFPAfile *file, pmConfig *config)
     289{
     290    PS_ASSERT_PTR_NON_NULL(view, false);
     291    PS_ASSERT_PTR_NON_NULL(file, false);
     292    return fpaViewWriteFitsImage(view, file, config, pmFPAWrite, pmChipWrite, pmCellWrite);
     293}
     294
     295bool pmFPAviewWriteFitsMask(const pmFPAview *view, pmFPAfile *file, pmConfig *config)
     296{
     297    PS_ASSERT_PTR_NON_NULL(view, false);
     298    PS_ASSERT_PTR_NON_NULL(file, false);
     299    return fpaViewWriteFitsImage(view, file, config, pmFPAWriteMask, pmChipWriteMask, pmCellWriteMask);
     300}
     301
     302bool pmFPAviewWriteFitsWeight(const pmFPAview *view, pmFPAfile *file, pmConfig *config)
     303{
     304    PS_ASSERT_PTR_NON_NULL(view, false);
     305    PS_ASSERT_PTR_NON_NULL(file, false);
     306    return fpaViewWriteFitsImage(view, file, config, pmFPAWriteWeight, pmChipWriteWeight, pmCellWriteWeight);
    305307}
    306308
  • trunk/psModules/src/camera/pmFPAfileFitsIO.h

    r11255 r11339  
    55 * @author PAP, IfA
    66 *
    7  * @version $Revision: 1.5 $ $Name: not supported by cvs2svn $
    8  * @date $Date: 2007-01-24 03:11:19 $
     7 * @version $Revision: 1.6 $ $Name: not supported by cvs2svn $
     8 * @date $Date: 2007-01-27 03:33:37 $
    99 * Copyright 2004-2005 Institute for Astronomy, University of Hawaii
    1010 */
     
    3232/// Write the image for the specified view
    3333bool pmFPAviewWriteFitsImage(const pmFPAview *view, ///< View specifying level of interest
    34                              pmFPAfile *file ///< FPA file to write
     34                             pmFPAfile *file, ///< FPA file to write
     35                             pmConfig *config ///< Configuration
    3536                            );
    3637
    3738/// Write the mask for the specified view
    3839bool pmFPAviewWriteFitsMask(const pmFPAview *view, ///< View specifying level of interest
    39                             pmFPAfile *file ///< FPA file to write
     40                            pmFPAfile *file, ///< FPA file to write
     41                            pmConfig *config ///< Configuration
    4042                           );
    4143
    4244/// Write the weight map for the specified view
    4345bool pmFPAviewWriteFitsWeight(const pmFPAview *view, ///< View specifying level of interest
    44                               pmFPAfile *file ///< FPA file to write
     46                              pmFPAfile *file, ///< FPA file to write
     47                              pmConfig *config ///< Configuration
    4548                             );
    4649
     
    6467/// Produce a suitable FPA for writing, on the basis of the input FPAfile
    6568///
    66 /// A format change is done is required.  Otherwise the file->fpa is returned (incremented).
     69/// A new FPA with a changed format is generated if required (file->format is set and file->camera is equal to
     70/// the default, indicating a change in the format without changing the camera --- changes to the camera are
     71/// handled using other systems --- see pmFPAfileDefineChipMosaic, pmFPAfileDefineFPAMosaic).  Otherwise the
     72/// file->fpa is returned (incremented).
    6773pmFPA *pmFPAfileSuitableFPA(const pmFPAfile *file,///< File containing the fpa
    68                             const pmFPAview *view ///< View at which to produce the fpa
     74                            const pmFPAview *view, ///< View at which to produce the fpa
     75                            const pmConfig *config ///< Configuration
    6976                           );
    7077
  • trunk/psModules/src/camera/pmFPAfileIO.c

    r11305 r11339  
    109109    if (file->mode == PM_FPA_MODE_WRITE) {
    110110        // Want to write out any potential blank
    111         pmFPA *fpa = pmFPAfileSuitableFPA(file, view);
     111        pmFPA *fpa = pmFPAfileSuitableFPA(file, view, config);
    112112
    113113        switch (file->fileLevel) {
     
    510510    switch (file->type) {
    511511    case PM_FPA_FILE_IMAGE:
    512         pmFPAviewWriteFitsImage(view, file);
     512        pmFPAviewWriteFitsImage(view, file, config);
    513513        psTrace ("pmFPAfile", 5, "wrote image %s (fpa: %p)\n", file->filename, file->fpa);
    514514        break;
    515515    case PM_FPA_FILE_MASK:
    516         pmFPAviewWriteFitsMask(view, file);
     516        pmFPAviewWriteFitsMask(view, file, config);
    517517        psTrace ("pmFPAfile", 5, "wrote mask %s (fpa: %p)\n", file->filename, file->fpa);
    518518        break;
    519519    case PM_FPA_FILE_WEIGHT:
    520         pmFPAviewWriteFitsWeight(view, file);
     520        pmFPAviewWriteFitsWeight(view, file, config);
    521521        psTrace ("pmFPAfile", 5, "wrote weight %s (fpa: %p)\n", file->filename, file->fpa);
    522522        break;
    523523    case PM_FPA_FILE_FRINGE:
    524         pmFPAviewWriteFitsImage (view, file);
     524        pmFPAviewWriteFitsImage (view, file, config);
    525525        psTrace ("pmFPAfile", 5, "wrote image %s (fpa: %p)\n", file->filename, file->fpa);
    526526        pmFPAviewWriteFitsTable(view, file, "FRINGE");
Note: See TracChangeset for help on using the changeset viewer.