IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Changeset 11754


Ignore:
Timestamp:
Feb 12, 2007, 1:39:32 PM (19 years ago)
Author:
Paul Price
Message:

Fixing warning that CHIP.YPARITY wasn't matching the expected value after chip mosaicking.

Location:
trunk/psModules/src
Files:
2 edited

Legend:

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

    r11687 r11754  
    737737        FIX_CONCEPT(targetCell->concepts, "CELL.Y0", S32, 0);
    738738    }
    739     int xParityTarget = psMetadataLookupS32(&mdok, targetCell->concepts, "CELL.XPARITY");
    740     if (!mdok || (xParityTarget != -1 && xParityTarget != 1)) {
     739    int xParityCellTarget = psMetadataLookupS32(&mdok, targetCell->concepts, "CELL.XPARITY");
     740    if (!mdok || (xParityCellTarget != -1 && xParityCellTarget != 1)) {
    741741        psLogMsg(__func__, PS_LOG_WARN, "CELL.XPARITY is not set for the target cell; assuming 1.\n");
    742742        FIX_CONCEPT(targetCell->concepts, "CELL.XPARITY", S32, 1);
    743         xParityTarget = 1;
    744     }
    745     int yParityTarget = psMetadataLookupS32(&mdok, targetCell->concepts, "CELL.YPARITY");
    746     if (!mdok || (yParityTarget != -1 && yParityTarget != 1)) {
     743        xParityCellTarget = 1;
     744    }
     745    int yParityCellTarget = psMetadataLookupS32(&mdok, targetCell->concepts, "CELL.YPARITY");
     746    if (!mdok || (yParityCellTarget != -1 && yParityCellTarget != 1)) {
    747747        psLogMsg(__func__, PS_LOG_WARN, "CELL.YPARITY is not set for the target cell; assuming 1.\n");
    748748        FIX_CONCEPT(targetCell->concepts, "CELL.YPARITY", S32, 1);
    749         yParityTarget = 1;
    750     }
     749        yParityCellTarget = 1;
     750    }
     751    int xParityChipTarget = psMetadataLookupS32(&mdok, targetCell->parent->concepts, "CHIP.XPARITY");
     752    if (!mdok || (xParityChipTarget != -1 && xParityChipTarget != 1)) {
     753        psLogMsg(__func__, PS_LOG_WARN, "CHIP.XPARITY is not set for the target chip; assuming 1.\n");
     754        FIX_CONCEPT(targetCell->parent->concepts, "CHIP.XPARITY", S32, 1);
     755        xParityChipTarget = 1;
     756    }
     757    int yParityChipTarget = psMetadataLookupS32(&mdok, targetCell->parent->concepts, "CHIP.YPARITY");
     758    if (!mdok || (yParityChipTarget != -1 && yParityChipTarget != 1)) {
     759        psLogMsg(__func__, PS_LOG_WARN, "CHIP.YPARITY is not set for the target chip; assuming 1.\n");
     760        FIX_CONCEPT(targetCell->parent->concepts, "CHIP.YPARITY", S32, 1);
     761        yParityChipTarget = 1;
     762    }
     763    int xParityTarget = xParityChipTarget * xParityCellTarget;
     764    int yParityTarget = yParityChipTarget * yParityCellTarget;
    751765
    752766    // Binning for the mosaicked chip is the minimum binning allowed by the cells
  • trunk/psModules/src/config/pmConfigCamera.c

    r11687 r11754  
    3030// Remove certain concepts from the list of sources.  These concepts are important in the mosaicking process,
    3131// and are added explicitly to the defaults (elsewhere) so that the user can't get them wrong.
    32 static void removeConceptsSources(psMetadata *source // Source for concepts
    33                                  )
     32static void removeCellConceptsSources(psMetadata *source // Source for concepts
     33    )
    3434{
    3535    if (!source) {
     
    4343    removeConcept(source, "CELL.X0");
    4444    removeConcept(source, "CELL.Y0");
     45
     46    return;
     47}
     48
     49// Remove certain concepts from the list of sources.  These concepts are important in the mosaicking process,
     50// and are added explicitly to the defaults (elsewhere) so that the user can't get them wrong.
     51static void removeChipConceptsSources(psMetadata *source // Source for concepts
     52    )
     53{
     54    if (!source) {
     55        return;
     56    }
     57
    4558    removeConcept(source, "CHIP.XPARITY");
    4659    removeConcept(source, "CHIP.YPARITY");
     
    5063    return;
    5164}
    52 
    5365
    5466// Generate a mosaicked version of a camera configuration
     
    286298        }
    287299
    288         removeConceptsSources(translation);
    289         removeConceptsSources(database);
    290         removeConceptsSources(defaults);
     300        removeCellConceptsSources(translation);
     301        removeCellConceptsSources(database);
     302        removeCellConceptsSources(defaults);
    291303
    292304        // Add in the positioning concepts
    293         psMetadataAddS32(defaults, PS_LIST_TAIL, "CHIP.XPARITY", 0, NULL, 1);
    294         psMetadataAddS32(defaults, PS_LIST_TAIL, "CHIP.YPARITY", 0, NULL, 1);
    295305        psMetadataAddS32(defaults, PS_LIST_TAIL, "CELL.XPARITY", 0, NULL, 1);
    296306        psMetadataAddS32(defaults, PS_LIST_TAIL, "CELL.YPARITY", 0, NULL, 1);
     
    307317
    308318        if (level == PM_FPA_LEVEL_FPA) {
     319            removeChipConceptsSources(translation);
     320            removeChipConceptsSources(database);
     321            removeChipConceptsSources(defaults);
     322            psMetadataAddS32(defaults, PS_LIST_TAIL, "CHIP.XPARITY", 0, NULL, 1);
     323            psMetadataAddS32(defaults, PS_LIST_TAIL, "CHIP.YPARITY", 0, NULL, 1);
    309324            psMetadataAddS32(defaults, PS_LIST_TAIL, "CHIP.X0", 0, NULL, 0);
    310325            psMetadataAddS32(defaults, PS_LIST_TAIL, "CHIP.Y0", 0, NULL, 0);
Note: See TracChangeset for help on using the changeset viewer.