IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Ignore:
Timestamp:
Mar 24, 2010, 11:15:44 AM (16 years ago)
Author:
rhenders
Message:

pspsSchema2xml now generates C header files with enums detailing table columns

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/ippToPsps/src/ippToPspsBatchDetection.c

    r27345 r27431  
    77 */
    88
    9 # include <limits.h>
     9#include <limits.h>
    1010#include "ippToPsps.h"
    1111#include "ippToPspsConfig.h"
     12#include "ippToPspsDetEnums.h"
    1213#include "fitsio.h"
    1314
     
    6162
    6263    // FrameMeta values
    63     fits_write_col(this->fitsOut, TLONG, 1, 1, 1, 1, &this->expId, &status);
     64    fits_write_col(this->fitsOut, TLONG, FRAMEMETA_FRAMEID, 1, 1, 1, &this->expId, &status);
    6465
    6566    int8_t surveyID = 0; // TODO
    66     fits_write_col(this->fitsOut, TBYTE, 2, 1, 1, 1, &surveyID, &status);
     67    fits_write_col(this->fitsOut, TBYTE, FRAMEMETA_SURVEYID, 1, 1, 1, &surveyID, &status);
    6768
    6869    int8_t filterID = -1;
    6970    ippToPspsConfig_getFilterId(this->config, filterType, &filterID);
    70     fits_write_col(this->fitsOut, TBYTE, 3, 1, 1, 1, &filterID, &status);
     71    fits_write_col(this->fitsOut, TBYTE, FRAMEMETA_FILTERID, 1, 1, 1, &filterID, &status);
    7172
    7273    int16_t cameraID = 1; // TODO
    73     fits_write_col(this->fitsOut, TSHORT, 4, 1, 1, 1, &cameraID, &status);
     74    fits_write_col(this->fitsOut, TSHORT, FRAMEMETA_CAMERAID, 1, 1, 1, &cameraID, &status);
    7475
    7576    int16_t cameraConfigID = 1; // TODO
    76     fits_write_col(this->fitsOut, TSHORT, 5, 1, 1, 1, &cameraConfigID, &status);
     77    fits_write_col(this->fitsOut, TSHORT, FRAMEMETA_CAMERACONFIGID, 1, 1, 1, &cameraConfigID, &status);
    7778
    7879    int16_t telescopeID = 1; // TODO
    79     fits_write_col(this->fitsOut, TSHORT, 6, 1, 1, 1, &telescopeID, &status);
     80    fits_write_col(this->fitsOut, TSHORT, FRAMEMETA_TELESCOPEID, 1, 1, 1, &telescopeID, &status);
    8081
    8182    // stuff to keep from psf.hdr header
     
    200201
    201202
    202             // TODO check numSmfDetections < MAXDETECT
     203            // TODO check nDet < MAXDETECT
    203204
    204205            // create ImageMeta
    205206            ippToPspsConfig_writeTable(this->config, fitsIn, this->fitsOut, 1, "ImageMeta", true);
    206207            psfFwhm = (fwhmMaj+fwhmMin)/2;
    207             fits_write_col(this->fitsOut, TLONGLONG, 1, 1, 1, 1, &pspsImageId, &status); // TODO enums for thse col numbers
    208             fits_write_col(this->fitsOut, TLONG, 2, 1, 1, 1, &this->expId, &status);
    209             fits_write_col(this->fitsOut, TSHORT, 3, 1, 1, 1, &pImage->ccdnum, &status);
    210             // fits_write_col(this->fitsOut, TLONG, 4, 1, 1, 1, &pImage->photcode, &status); TODO
     208            fits_write_col(this->fitsOut, TLONGLONG, IMAGEMETA_IMAGEID, 1, 1, 1, &pspsImageId, &status); // TODO enums for thse col numbers
     209            fits_write_col(this->fitsOut, TLONG, IMAGEMETA_FRAMEID, 1, 1, 1, &this->expId, &status);
     210            fits_write_col(this->fitsOut, TSHORT, IMAGEMETA_CCDID, 1, 1, 1, &pImage->ccdnum, &status);
     211            // fits_write_col(this->fitsOut, TLONG, IMAGEMETA_PHOTOCALID, 1, 1, 1, &pImage->photcode, &status); TODO
    211212            psLogMsg("ippToPsps", PS_LOG_INFO, "photocode %d", pImage->photcode);
    212             fits_write_col(this->fitsOut, TBYTE, 5, 1, 1, 1, &filterID, &status);
    213             fits_write_col(this->fitsOut, TFLOAT, 14, 1, 1, 1, &zptObs, &status);
    214             fits_write_col(this->fitsOut, TFLOAT, 19, 1, 1, 1, &psfFwhm, &status);
    215             fits_write_col(this->fitsOut, TFLOAT, 38, 1, 1, 1, &zptObs, &status);
     213            fits_write_col(this->fitsOut, TBYTE, IMAGEMETA_FILTERID, 1, 1, 1, &filterID, &status);
     214            fits_write_col(this->fitsOut, TFLOAT, IMAGEMETA_PHOTOSCAT, 1, 1, 1, &zptObs, &status);
     215            fits_write_col(this->fitsOut, TFLOAT, IMAGEMETA_PSFFWHM, 1, 1, 1, &psfFwhm, &status);
     216            fits_write_col(this->fitsOut, TFLOAT, IMAGEMETA_PHOTOZERO, 1, 1, 1, &zptObs, &status);
    216217
    217218            // move to detections table in smf
     
    223224            }
    224225
    225             long numSmfDetections = 0;
    226             if (fits_get_num_rows(fitsIn, &numSmfDetections, &status)) {
     226            long nDet = 0;
     227            if (fits_get_num_rows(fitsIn, &nDet, &status)) {
    227228                fits_report_error(stderr, status);
    228229            }
     
    232233
    233234            anynull = 0;
    234             fits_read_col(fitsIn, TLONG, 1, 1, 1, numSmfDetections, &longnull, ippIDet, &anynull, &status);
    235             fits_read_col(fitsIn, TFLOAT, 8, 1, 1, numSmfDetections, &floatnull, instMag, &anynull, &status);
    236             fits_read_col(fitsIn, TFLOAT, 9, 1, 1, numSmfDetections, &floatnull, instMagErr, &anynull, &status);
    237             fits_read_col(fitsIn, TFLOAT, 12, 1, 1, numSmfDetections, &floatnull, peakMag, &anynull, &status);
     235            fits_read_col(fitsIn, TLONG, 1, 1, 1, nDet, &longnull, ippIDet, &anynull, &status);
     236            fits_read_col(fitsIn, TFLOAT, 8, 1, 1, nDet, &floatnull, instMag, &anynull, &status);
     237            fits_read_col(fitsIn, TFLOAT, 9, 1, 1, nDet, &floatnull, instMagErr, &anynull, &status);
     238            fits_read_col(fitsIn, TFLOAT, 12, 1, 1, nDet, &floatnull, peakMag, &anynull, &status);
    238239
    239240            // DVO detections are ordered by IPP_IDET, which increments from 0 in SMF table
    240241            // both DVO detections and smf detections should increment. however, there may be gaps in smf and 'invalid' rows in dvo
    241242            numOfDuplicates = 0;
    242             for (long s = 0; s<numSmfDetections; s++) {
     243            for (long s = 0; s<nDet; s++) {
    243244
    244245                // count jumps in smf file
     
    296297
    297298            // detections
    298             ippToPspsConfig_writeTable(this->config, fitsIn, this->fitsOut, numSmfDetections, "Detection", false);
    299             fits_write_col(this->fitsOut, TLONGLONG, 1, 1, 1, numSmfDetections, objID, &status);
    300             fits_write_col(this->fitsOut, TLONGLONG, 2, 1, 1, numSmfDetections, detectID, &status);
    301             fits_write_col(this->fitsOut, TLONGLONG, 3, 1, 1, numSmfDetections, ippObjID, &status);
    302             fits_write_col(this->fitsOut, TLONGLONG, 4, 1, 1, numSmfDetections, ippDetectID, &status);
    303             fits_write_col(this->fitsOut, TBYTE, 5, 1, 1, numSmfDetections, filterIDs, &status);
    304             fits_write_col(this->fitsOut, TBYTE, 6, 1, 1, numSmfDetections, surveyIDs, &status);
    305             fits_write_col(this->fitsOut, TLONGLONG, 7, 1, 1, numSmfDetections, imageID, &status);
    306             fits_write_col(this->fitsOut, TFLOAT, 8, 1, 1, numSmfDetections, obsTimes, &status);
    307             fits_write_col(this->fitsOut, TFLOAT, 13, 1, 1, numSmfDetections, instFlux, &status);
    308             fits_write_col(this->fitsOut, TFLOAT, 14, 1, 1, numSmfDetections, instFluxErr, &status);
    309             fits_write_col(this->fitsOut, TFLOAT, 15, 1, 1, numSmfDetections, peakFlux, &status);
    310             fits_write_col(this->fitsOut, TSTRING, 26, 1, 1, numSmfDetections, assocDate, &status);
     299            ippToPspsConfig_writeTable(this->config, fitsIn, this->fitsOut, nDet, "Detection", false);
     300            fits_write_col(this->fitsOut, TLONGLONG, DETECTION_OBJID, 1, 1, nDet, objID, &status);
     301            fits_write_col(this->fitsOut, TLONGLONG, DETECTION_DETECTID, 1, 1, nDet, detectID, &status);
     302            fits_write_col(this->fitsOut, TLONGLONG, DETECTION_IPPOBJID, 1, 1, nDet, ippObjID, &status);
     303            fits_write_col(this->fitsOut, TLONGLONG, DETECTION_IPPDETECTID, 1, 1, nDet, ippDetectID, &status);
     304            fits_write_col(this->fitsOut, TBYTE, DETECTION_FILTERID, 1, 1, nDet, filterIDs, &status);
     305            fits_write_col(this->fitsOut, TBYTE, DETECTION_SURVEYID, 1, 1, nDet, surveyIDs, &status);
     306            fits_write_col(this->fitsOut, TLONGLONG, DETECTION_IMAGEID, 1, 1, nDet, imageID, &status);
     307            fits_write_col(this->fitsOut, TFLOAT, DETECTION_OBSTIME, 1, 1, nDet, obsTimes, &status);
     308            fits_write_col(this->fitsOut, TFLOAT, DETECTION_INSTFLUX, 1, 1, nDet, instFlux, &status);
     309            fits_write_col(this->fitsOut, TFLOAT, DETECTION_INSTFLUXERR, 1, 1, nDet, instFluxErr, &status);
     310            fits_write_col(this->fitsOut, TFLOAT, DETECTION_PEAKFLUX, 1, 1, nDet, peakFlux, &status);
     311            fits_write_col(this->fitsOut, TSTRING, DETECTION_ASSOCDATE, 1, 1, nDet, assocDate, &status);
    311312            if (numOfDuplicates) fits_delete_rowlist(this->fitsOut, duplicateList, numOfDuplicates, &status);
    312313
    313314            // skinny object
    314             ippToPspsConfig_writeTable(this->config, fitsIn, this->fitsOut, numSmfDetections, "SkinnyObject", false);
    315             fits_write_col(this->fitsOut, TLONGLONG, 1, 1, 1, numSmfDetections, objID, &status);
    316             fits_write_col(this->fitsOut, TLONGLONG, 2, 1, 1, numSmfDetections, ippObjID, &status);
     315            ippToPspsConfig_writeTable(this->config, fitsIn, this->fitsOut, nDet, "SkinnyObject", false);
     316            fits_write_col(this->fitsOut, TLONGLONG, SKINNYOBJECT_OBJID, 1, 1, nDet, objID, &status);
     317            fits_write_col(this->fitsOut, TLONGLONG, SKINNYOBJECT_IPPOBJID, 1, 1, nDet, ippObjID, &status);
    317318            if (numOfDuplicates) fits_delete_rowlist(this->fitsOut, duplicateList, numOfDuplicates, &status);
    318319
    319320            // object calibration color
    320             ippToPspsConfig_writeTable(this->config, fitsIn, this->fitsOut, numSmfDetections, "ObjectCalColor", false);
    321             fits_write_col(this->fitsOut, TLONGLONG, 1, 1, 1, numSmfDetections, objID, &status);
    322             fits_write_col(this->fitsOut, TLONGLONG, 2, 1, 1, numSmfDetections, ippObjID, &status);
    323             fits_write_col(this->fitsOut, TBYTE, 3, 1, 1, numSmfDetections, filterIDs, &status);
     321            ippToPspsConfig_writeTable(this->config, fitsIn, this->fitsOut, nDet, "ObjectCalColor", false);
     322            fits_write_col(this->fitsOut, TLONGLONG, OBJECTCALCOLOR_OBJID, 1, 1, nDet, objID, &status);
     323            fits_write_col(this->fitsOut, TLONGLONG, OBJECTCALCOLOR_IPPOBJID, 1, 1, nDet, ippObjID, &status);
     324            fits_write_col(this->fitsOut, TBYTE, OBJECTCALCOLOR_FILTERID, 1, 1, nDet, filterIDs, &status);
    324325            if (numOfDuplicates) fits_delete_rowlist(this->fitsOut, duplicateList, numOfDuplicates, &status);
    325326
     
    329330                    "|  %s |  %5ld  |   %5ld  |      %5d       |    %5d      |\n"
    330331                    "|___________|_________|__________|__________________|_______________|\n",
    331                     extensionName, numSmfDetections, numDetectionsOut, unmatched, numOfDuplicates);
     332                    extensionName, nDet, numDetectionsOut, unmatched, numOfDuplicates);
    332333
    333334            if (dvoDetections!= NULL) dvoFree(dvoDetections);
Note: See TracChangeset for help on using the changeset viewer.