IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Ignore:
Timestamp:
Aug 9, 2007, 4:25:26 PM (19 years ago)
Author:
Paul Price
Message:

Ensure some important concepts are set to reasonable values for skycells.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/psModules/src/config/pmConfigCamera.c

    r13857 r14461  
    8080    psFree(new);
    8181
     82    return true;
     83}
     84
     85// Don't update these skycell concepts; last one MUST be 0 (i.e., NULL).
     86const static char *skycellConceptsCell[] = { "CELL.BIASSEC", "CELL.TRIMSEC", "CELL.READDIR", "CELL.XPARITY",
     87                                             "CELL.YPARITY", "CELL.XWINDOW", "CELL.YWINDOW", "CELL.X0",
     88                                             "CELL.Y0", "CELL.XSIZE", "CELL.YSIZE", 0 };
     89const static char *skycellConceptsChip[] = { "CHIP.XPARITY", "CHIP.YPARITY", "CHIP.XSIZE", "CHIP.YSIZE", 0 };
     90
     91// Do we update a particular concept?
     92static bool updateConcept(const char *name, // Name of concept
     93                          const char **concepts // List of concepts NOT to update
     94    )
     95{
     96    for (int i = 0; concepts[i]; i++) {
     97        if (strcmp(name, concepts[i]) == 0) {
     98            return false;
     99        }
     100    }
    82101    return true;
    83102}
     
    189208        iter = psListIteratorAlloc(concepts, PS_LIST_HEAD, false);
    190209        while ((name = psListGetAndIncrement(iter))) {
    191             psMetadataAddStr(translation, PS_LIST_TAIL, name, 0, NULL, name);
     210            if (updateConcept(name, skycellConceptsChip)) {
     211                psMetadataAddStr(translation, PS_LIST_TAIL, name, 0, NULL, name);
     212            }
    192213        }
    193214        psFree(iter);
     
    197218        iter = psListIteratorAlloc(concepts, PS_LIST_HEAD, false);
    198219        while ((name = psListGetAndIncrement(iter))) {
    199             // We've done CELL.BIASSEC and CELL.TRIMSEC under CELLS, above.
    200             // CELL.READDIR is set to 1 (rows) in the defaults
    201             if (strcmp(name, "CELL.BIASSEC") != 0 && strcmp(name, "CELL.TRIMSEC") != 0 &&
    202                 strcmp(name, "CELL.READDIR") != 0) {
     220            if (updateConcept(name, skycellConceptsCell)) {
    203221                psMetadataAddStr(translation, PS_LIST_TAIL, name, 0, NULL, name);
    204222            }
     
    206224        psFree(iter);
    207225        psFree(concepts);
     226
     227        psMetadataAddStr(translation, PS_LIST_TAIL, "CELL.XSIZE", 0, NULL, "NAXIS1");
     228        psMetadataAddStr(translation, PS_LIST_TAIL, "CELL.YSIZE", 0, NULL, "NAXIS2");
     229        psMetadataAddStr(translation, PS_LIST_TAIL, "CELL.XWINDOW", 0, NULL, "NAXIS1");
     230        psMetadataAddStr(translation, PS_LIST_TAIL, "CELL.YWINDOW", 0, NULL, "NAXIS2");
     231        psMetadataAddStr(translation, PS_LIST_TAIL, "CHIP.XSIZE", 0, NULL, "NAXIS1");
     232        psMetadataAddStr(translation, PS_LIST_TAIL, "CHIP.YSIZE", 0, NULL, "NAXIS2");
    208233
    209234        psMetadataAddMetadata(format, PS_LIST_TAIL, "TRANSLATION", 0, "How to translate the FITS headers",
     
    214239    {
    215240        psMetadata *defaults = psMetadataAlloc(); // Default values for concepts
     241
     242        psMetadataAddS32(defaults, PS_LIST_TAIL, "CELL.XPARITY", 0, NULL, 1);
     243        psMetadataAddS32(defaults, PS_LIST_TAIL, "CELL.YPARITY", 0, NULL, 1);
     244        psMetadataAddS32(defaults, PS_LIST_TAIL, "CHIP.XPARITY", 0, NULL, 1);
     245        psMetadataAddS32(defaults, PS_LIST_TAIL, "CHIP.YPARITY", 0, NULL, 1);
     246        psMetadataAddS32(defaults, PS_LIST_TAIL, "CELL.Y0", 0, NULL, 0);
     247        psMetadataAddS32(defaults, PS_LIST_TAIL, "CELL.X0", 0, NULL, 0);
     248        psMetadataAddS32(defaults, PS_LIST_TAIL, "CHIP.Y0", 0, NULL, 0);
     249        psMetadataAddS32(defaults, PS_LIST_TAIL, "CHIP.X0", 0, NULL, 0);
    216250        psMetadataAddS32(defaults, PS_LIST_TAIL, "CELL.READDIR", 0, "Read direction (rows)", 1);
     251
    217252        psMetadataAddMetadata(format, PS_LIST_TAIL, "DEFAULTS", 0, "Default values for concepts", defaults);
    218253        psFree(defaults);
     254
    219255    }
    220256
Note: See TracChangeset for help on using the changeset viewer.