IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Ignore:
Timestamp:
Mar 11, 2014, 3:46:50 PM (12 years ago)
Author:
watersc1
Message:

Debuggable complete version of ppBackgroundStack. It doesn't seem to work, as I'm losing my data structures somehow.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/ppBackground/src/ppBackgroundStackCamera.c

    r36580 r36582  
    3636    psString stackName = data->stacks->data[0];
    3737    fileArguments("IMAGE", stackName, "Input image", data->config);
    38     pmFPAfile *stack = pmFPAfileDefineFromArgs(&status, data->config, "PPBACKGROUND.STACK",
    39                                                "IMAGE");
     38    psFree(stackName);
     39    pmFPAfile *stack = pmFPAfileDefineFromArgs(&status, data->config,
     40                                               "PPBACKGROUND.STACK", "IMAGE");
    4041    if (!status || !stack) {
    4142      psError(psErrorCodeLast(), false, "Failed to build file from PPBACKGROUND.STACK");
     
    4344    }
    4445
     46    if (!pmAstromReadBilevelMosaic(stack->fpa,stack->fpa->hdu->header)) {
     47      psError(psErrorCodeLast(), false, "Unable to read WCS astrometry for input stack.");
     48      return false;
     49    }
     50    psArrayAdd(data->stack_data,data->stack_data->n,psMemIncrRefCounter(stack));
     51   
    4552    // Read over the input background models.   
    4653    psMetadataIterator *iter = psMetadataIteratorAlloc(data->contents, PS_LIST_HEAD, NULL); // Iterator
    4754    psMetadataItem *item; // Item from iteration
    48     //    int i = 0;
     55    int i = 0;
    4956    while ((item = psMetadataGetAndIncrement(iter))) {
     57      i++;
    5058      if (item->type != PS_DATA_METADATA) {
    5159        psError(PPBACKGROUND_ERR_ARGUMENTS, true,
     
    5866
    5967      psString smfFileName = psMetadataLookupStr(NULL, input, "astrom");
    60 
     68      psMetadata *modelContent = psMetadataLookupMetadata(NULL, input, "models");
    6169      // Read the smf file from this item
    6270      fileArguments("astrom",smfFileName,"",config);
     
    6876        return NULL;
    6977      }
    70      
     78      printf("CZW: Item %d\n",i);
    7179      // find the FPA phu
    7280      bool bilevelAstrometry = false;
     
    9199        }
    92100        const char *chipName = psMetadataLookupStr(NULL, chip->concepts, "CHIP.NAME"); // Name of chip
    93 /*      if (data->chipName && strcmp(chipName, data->chipName) != 0) { */
    94 /*        continue; */
    95 /*      } */
    96101        if (!pmFPAfileIOChecks(config, view, PM_FPA_BEFORE)) {
    97102          psError(psErrorCodeLast(), false, "Error loading data from files.");
    98103          return false;
    99104        }
    100 
    101105        if (chip->cells->n != 1) {
    102106          psWarning("More than one cell present for chip %d", view->chip);
    103107        }
     108
    104109        // read WCS data from the corresponding header
    105110        pmHDU *hdu = pmFPAviewThisHDU (view, smfFile->fpa);
     
    124129
    125130        // FIX Load model data for this chip
    126         psString modelFileName = psMetadataLookupStr(NULL, input, chipName);
     131        psString modelFileName = pmConfigConvertFilename(psMetadataLookupStr(NULL, modelContent, chipName),
     132                                                         config, PM_FPA_MODE_READ, false);
    127133        psFits *modelFits = psFitsOpen(modelFileName,"r");
    128         int nC, nR;
    129         psElemType *type;
    130         psRegion region;
    131         psFitsImageSize(&nC,&nR,type,modelFits,region);
    132         psImage *image = psFitsReadImage(modelFits,region,0);
     134        psImage *image = psFitsReadImage(modelFits,psRegionSet(0,0,0,0),0);
    133135        psMetadata *header = psFitsReadHeader(NULL,modelFits);
    134 
     136       
    135137        // Allocate the data structures for this chip
    136138        psImage *raim = psImageAlloc(image->numCols,image->numRows,PS_TYPE_F32);
     
    177179
    178180        // Attach vectors to teh structure of the chip
    179         psMetadataAddPtr(chip->analysis,PS_LIST_TAIL,"bkg image", PS_DATA_UNKNOWN | PS_META_REPLACE, "ota space X vector", image);
    180         psMetadataAddPtr(chip->analysis,PS_LIST_TAIL,"bkg ra", PS_DATA_UNKNOWN | PS_META_REPLACE, "ota space X vector", raim);
    181         psMetadataAddPtr(chip->analysis,PS_LIST_TAIL,"bkg dec", PS_DATA_UNKNOWN | PS_META_REPLACE, "ota space X vector", decim);
    182         psMetadataAddPtr(chip->analysis,PS_LIST_TAIL,"bkg calibrated data", PS_DATA_UNKNOWN | PS_META_REPLACE, "ota space corrected data", model);
     181        psMetadataAddImage(chip->analysis,PS_LIST_TAIL,
     182                           "bkg image", 0,
     183                           "ota space X vector", image);
     184        psMetadataAddImage(chip->analysis,PS_LIST_TAIL,
     185                           "bkg ra", 0,
     186                           "ota space ra vector", raim);
     187        psMetadataAddImage(chip->analysis,PS_LIST_TAIL,
     188                           "bkg dec", 0,
     189                           "ota space dec vector", decim);
     190        psMetadataAddImage(chip->analysis,PS_LIST_TAIL,
     191                           "bkg calibrated data", 0,
     192                           "ota space corrected data", model);
    183193
    184194        // Define default background model parameters, using the assumption:
    185195        // observed = camera + offset + scale * astrophysical
    186         psMetadataAddF32(chip->analysis,PS_LIST_TAIL,"bkg offset", PS_META_REPLACE, "background offset for this exposure/ota pair", 0.0);
    187         psMetadataAddF32(chip->analysis,PS_LIST_TAIL,"bkg scale", PS_META_REPLACE, "background scale parameter for this exposure/ota pair", 1.0);
     196        psMetadataAddF32(chip->analysis,PS_LIST_TAIL,
     197                         "bkg offset", PS_META_REPLACE,
     198                         "background offset for this exposure/ota pair", 0.0);
     199        psMetadataAddF32(chip->analysis,PS_LIST_TAIL,
     200                         "bkg scale", PS_META_REPLACE,
     201                         "background scale parameter for this exposure/ota pair", 1.0);
    188202        // FIX Free model data for this chip
     203        psFree(modelFileName);
     204        psFree(modelFits);
    189205        psFree(header);
    190         psFree(modelFits);
    191         psFree(modelFileName);
    192 
     206        psFree(pix);
     207        psFree(fp);
     208        psFree(tp);
     209        psFree(sky);
     210        psFree(image);
     211        psFree(raim);
     212        psFree(decim);
     213        psFree(model);
    193214
    194215        // Check to see if we've loaded or allocated an OTA solution container for this chip
     
    197218          if (data->fit_OTAS) { // We are fitting OTAs, so allocate a new image
    198219            psImage *solution = psImageAlloc(image->numCols,image->numRows,PS_TYPE_F32);
    199             psMetadataAddPtr(data->OTA_solutions,PS_LIST_TAIL, chipName, PS_DATA_UNKNOWN | PS_META_REPLACE, "OTA solution element", solution);
     220            psMetadataAddPtr(data->OTA_solutions,PS_LIST_TAIL,
     221                             chipName, PS_DATA_UNKNOWN | PS_META_REPLACE,
     222                             "OTA solution element", solution);
    200223          }
    201224          else { // We are not fitting OTAs, so read the one that should be saved on OTApath.
     
    203226            psStringAppend(&solutionFileName, ".%s.fits",chipName);
    204227            psFits *solutionFits = psFitsOpen(solutionFileName,"r");
    205             psImage *solution = psFitsReadImage(solutionFits,region,0);
    206             psMetadataAddPtr(data->OTA_solutions,PS_LIST_TAIL, chipName, PS_DATA_UNKNOWN | PS_META_REPLACE, "OTA solution element", solution);
     228            psImage *solution = psFitsReadImage(solutionFits,psRegionSet(0,0,0,0),0);
     229            psMetadataAddImage(data->OTA_solutions,PS_LIST_TAIL,
     230                               chipName, 0,
     231                               "OTA solution element", solution);
     232            psFree(solutionFits);
     233            psFree(solutionFileName);
     234            psFree(solution);
    207235          }
    208236        }
     
    210238        // FIX Hopefully this isn't going to destroy everything.
    211239        // Chip
    212         if (!pmFPAfileIOChecks(config, view, PM_FPA_AFTER)) {
    213           psError(psErrorCodeLast(), false, "Error saving data to files.");
    214           return false;
    215         }
     240/*      if (!pmFPAfileIOChecks(config, view, PM_FPA_AFTER)) { */
     241/*        psError(psErrorCodeLast(), false, "Error saving data to files."); */
     242/*        return false; */
     243/*      } */
    216244      }
    217245      // FPA
    218       if (!pmFPAfileIOChecks(config, view, PM_FPA_AFTER)) {
    219         psError(psErrorCodeLast(), false, "Error saving data to files.");
    220         return false;
    221       }
     246/*       if (!pmFPAfileIOChecks(config, view, PM_FPA_AFTER)) { */
     247/*      psError(psErrorCodeLast(), false, "Error saving data to files."); */
     248/*      return false; */
     249/*       } */
    222250
    223251      // Add this smf to the smf array.
    224252      psArrayAdd(data->smfs,data->smfs->n,psMemIncrRefCounter(smfFile));
     253      psFree(smfFile);
    225254    }
    226255
Note: See TracChangeset for help on using the changeset viewer.