IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Ignore:
Timestamp:
Mar 7, 2007, 3:22:17 PM (19 years ago)
Author:
Paul Price
Message:

Images in the detrend database may be in different formats.
Therefore, in order to get a detrend matching the appropriate level,
we need to place a restriction on the class_id (class identifier,
which can be 'fpa', 'ccd00', or even 'ccd00:cell01'). To do this, we
have "detselect -search" return the file level (fpa/chip/cell) for the
detrend, so that we can provide the correct constraint on the class_id
(using "detselect -select"). Introduced a new metadata in the camera
configuration ("CLASSID") that provides rules for the class_id (e.g.,
"{CHIP.NAME}:{CELL.NAME}") according to the file level string.

Location:
trunk/psModules/src/detrend
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/psModules/src/detrend/pmDetrendDB.c

    r11876 r12300  
    4747    options->version  = NULL;
    4848    options->dettype  = NULL;
    49     options->exptime  = 0.0; 
    50     options->airmass  = 0.0; 
    51     options->dettemp  = 0.0; 
    52     options->twilight = 0.0; 
     49    options->exptime  = 0.0;
     50    options->airmass  = 0.0;
     51    options->dettemp  = 0.0;
     52    options->twilight = 0.0;
    5353
    5454    options->exptimeSet  = false; // not selected
     
    120120    char *type = NULL;
    121121    if (options->dettype) {
    122         type = psMemIncrRefCounter (options->dettype);
     122        type = psMemIncrRefCounter (options->dettype);
    123123    } else {
    124         type = pmDetrendTypeToString (options->type);
     124        type = pmDetrendTypeToString (options->type);
    125125    }
    126126    unsigned int nFail;
     
    189189
    190190    bool mdstatus;
    191     results->level = 0;
    192191    int detID = psMetadataLookupS32 (&mdstatus, md, "det_id");
     192    if (!mdstatus) {
     193        psError(PS_ERR_UNEXPECTED_NULL, true, "Unable to find det_id in output from detselect.");
     194        psLogMsg ("psModule.detrend", PS_LOG_ERROR, "detselect response:\n %s\n", buffer->data);
     195        goto failure;
     196    }
    193197    int iteration  = psMetadataLookupS32 (&mdstatus, md, "iteration");
     198    if (!mdstatus) {
     199        psError(PS_ERR_UNEXPECTED_NULL, true, "Unable to find iteration in output from detselect.");
     200        psLogMsg ("psModule.detrend", PS_LOG_ERROR, "detselect response:\n %s\n", buffer->data);
     201        goto failure;
     202    }
     203    psString fileLevel = psMetadataLookupStr(&mdstatus, md, "file_level");
     204    if (!mdstatus || !fileLevel || strlen(fileLevel) == 0) {
     205        psError(PS_ERR_UNEXPECTED_NULL, true, "Unable to find file_level in output from detselect.");
     206        psLogMsg ("psModule.detrend", PS_LOG_ERROR, "detselect response:\n %s\n", buffer->data);
     207        goto failure;
     208    }
    194209
    195210    results->detID = NULL; // it should be NULL already from the Alloc above
    196211    psStringAppend (&results->detID, " -det_id %d -iteration %d ", detID, iteration);
     212    results->level = psMemIncrRefCounter(fileLevel);
    197213
    198214    psTrace("psModules.detrend", 5, "generated detID %s\n", results->detID);
     
    225241
    226242    PS_ASSERT_PTR_NON_NULL(detID, NULL);
    227     PS_ASSERT_PTR_NON_NULL(classID, NULL);
    228243
    229244    bool status;
     
    232247
    233248    // generate the detselect command
    234     psStringAppend (&line, "detselect -select %s -class_id %s", detID, classID);
     249    psStringAppend (&line, "detselect -select %s", detID);
     250    if (classID && strlen(classID) > 0) {
     251        psStringAppend(&line, " -class_id %s", classID);
     252    }
    235253    pmConfigDatabaseCommand(&line, config);
    236254    pmConfigTraceCommand(&line);
  • trunk/psModules/src/detrend/pmDetrendDB.h

    r11876 r12300  
    99 * @author EAM, IfA
    1010 *
    11  * @version $Revision: 1.9 $ $Name: not supported by cvs2svn $
    12  * @date $Date: 2007-02-18 21:03:20 $
     11 * @version $Revision: 1.10 $ $Name: not supported by cvs2svn $
     12 * @date $Date: 2007-03-08 01:22:17 $
    1313 * Copyright 2004-2005 Institute for Astronomy, University of Hawaii
    1414 */
     
    3535} pmDetrendType;
    3636
    37 typedef struct
    38 {
    39     char *camera;                       // name of camera
    40     char *version;                      // optional version string
    41     char *filter;                       // name of filter
    42     char *dettype;                      // actual detrend type name
    43     float exptime;                      // exposure time (for dark, maybe flat & fringe)
    44     float airmass;                      // for fringe
    45     float dettemp;                      // for fringe
    46     float twilight;                     // hours (or seconds?) since/before nearest twilight
    47     psTime time;                        // time of input data
    48     pmDetrendType type;                 // type of detrend data
     37typedef struct {
     38    char *camera;                       // name of camera
     39    char *version;                      // optional version string
     40    char *filter;                       // name of filter
     41    char *dettype;                      // actual detrend type name
     42    float exptime;                      // exposure time (for dark, maybe flat & fringe)
     43    float airmass;                      // for fringe
     44    float dettemp;                      // for fringe
     45    float twilight;                     // hours (or seconds?) since/before nearest twilight
     46    psTime time;                        // time of input data
     47    pmDetrendType type;                 // type of detrend data
    4948
    5049    bool  exptimeSet;
     
    5251    bool  dettempSet;
    5352    bool  twilightSet;
    54 }
    55 pmDetrendSelectOptions;
     53} pmDetrendSelectOptions;
    5654
    57 typedef struct
    58 {
    59     char *detID;   // identifier of detrend run
    60     pmFPALevel level;   // level in FPA hierarchy of individual file
    61 }
    62 pmDetrendSelectResults;
    63 
    64 typedef struct
    65 {
    66     char *detID;   // identifier of detrend image
    67     char *classID;   // level in FPA hierarchy of individual file
    68 }
    69 pmDetrendFileOptions;
     55typedef struct {
     56    char *detID;                        // identifier of detrend run
     57    const char *level;                  // level in FPA hierarchy of individual file
     58} pmDetrendSelectResults;
    7059
    7160psString pmDetrendTypeToString (pmDetrendType type);
Note: See TracChangeset for help on using the changeset viewer.