IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Ignore:
Timestamp:
Mar 22, 2007, 5:09:53 PM (19 years ago)
Author:
Paul Price
Message:

When we went to process TC3 images, we found that our camera formats
didn't handle its case (PHU=CHIP, EXT=CELL) properly. In order to
accomodate it, I've reworked the camera formats (including adding a
source to an FPA, and generating mosaic camera configurations). Now,
the particular format of the camera format file is *very* dependent
upon the FITS file:

Case PHU EXTENSIONS Description

  1. FPA CHIP CONTENTS(METADATA) has a list of extensions, each with a chip type.

CHIPS(METADATA) has a list of chip types, each with cell:type

  1. FPA CELL CONTENTS(METADATA) has a list of extensions, each with chip:cell:type

No need for CHIPS.

  1. FPA NONE CONTENTS(STRING) has a list of extensions, chip:cell:type

No need for CHIPS

  1. CHIP CELL CONTENTS(METADATA) is a menu, each with a chip type

CHIPS(METADATA) has a list of chip types(METADATA), containg a list of
extensions.

  1. CHIP NONE CONTENTS(METADATA) is a menu, each with a chip type

CHIPS(METADATA) has a list of chip types(STRING) with cell:type

  1. CELL NONE CONTENTS(METADATA) is a menu, each with a cell type.

No need for CHIPS.

Debugged and plugged memory leaks for this fix. Now able to
successfully read TC3 and Megacam (all 3 formats). Can't run ppImage
with PPIMAGE_N on file with PHU=CHIP because it's trying to write out
a PHU (at the FPA level) before it reads any of the input data. This
behaviour exists in a previous version (IPP 1.0; in fact, the current
fix deals with it a bit better --- error instead of SEGV), so it
should be safe to use this now.

File:
1 edited

Legend:

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

    r11871 r12564  
    303303    pmHDU *targetHDU = pmHDUFromCell(target); // The target HDU
    304304    if (targetHDU) {
    305         if (!targetHDU->header) {
    306             targetHDU->header = psMetadataAlloc();
    307         }
    308305        pmHDU *sourceHDU = pmHDUFromCell(source); // The source HDU
    309         if (sourceHDU->header) {
     306        if (!sourceHDU) {
     307            psWarning("Unable to copy header: no source header.");
     308        } else if (sourceHDU->header) {
    310309            targetHDU->header = psMetadataCopy(targetHDU->header, sourceHDU->header);
    311310        }
     
    315314    pmHDU *targetPHU = findBlankPHU(target); // The target PHU
    316315    if (targetPHU && targetPHU != targetHDU) {
    317         if (!targetPHU->header) {
    318             targetPHU->header = psMetadataAlloc();
    319         }
    320316//        pmHDU *sourcePHU = pmHDUGetHighest(source->parent->parent, source->parent, source); // A source HDU
    321317        pmHDU *sourcePHU = findBlankPHU(source); // The target PHU
Note: See TracChangeset for help on using the changeset viewer.