Changeset 27431
- Timestamp:
- Mar 24, 2010, 11:15:44 AM (16 years ago)
- Location:
- trunk/ippToPsps
- Files:
-
- 3 added
- 3 edited
-
scripts/pspsSchema2xml.pl (modified) (17 diffs)
-
src/ippToPspsBatchDetection.c (modified) (7 diffs)
-
src/ippToPspsBatchDifference.c (modified) (4 diffs)
-
src/ippToPspsDetEnums.h (added)
-
src/ippToPspsDiffEnums.h (added)
-
src/ippToPspsStackEnums.h (added)
Legend:
- Unmodified
- Added
- Removed
-
trunk/ippToPsps/scripts/pspsSchema2xml.pl
r27364 r27431 23 23 -msg => "\n Required options:\n\n". 24 24 "--schema <path to PSPS schema>\n". 25 "--type < IN|DT|OB>\n".25 "--type <init|det|diff|stack>\n". 26 26 -exitval => 3 27 27 ) unless … … 29 29 defined $type; 30 30 31 if ($type ne " DT" && $type ne "IN" && $type ne "OB" && $type ne "ST") {31 if ($type ne "init" && $type ne "det" && $type ne "diff" && $type ne "stack") { 32 32 33 33 print "Don't understand type '$type'\n"; 34 34 die; 35 35 } 36 37 my $enumsHeader = "ippToPsps".ucfirst($type)."Enums"; 38 open(OUT, ">".$enumsHeader.".h") or die("Error"); 39 40 print OUT "#ifndef ".uc($enumsHeader)."_H\n"; 41 print OUT "#define ".uc($enumsHeader)."_H\n\n"; 36 42 37 43 … … 42 48 $writer->startTag('tableDescriptions', "type" => "$type"); 43 49 44 if ($type eq " IN") {createInit();}45 elsif ($type eq " DT") {createDetections();}46 elsif ($type eq " OB") {createDiffs();}47 elsif ($type eq " ST") {createStacks();}50 if ($type eq "init") {createInit();} 51 elsif ($type eq "det") {createDetections();} 52 elsif ($type eq "diff") {createDiffs();} 53 elsif ($type eq "stack") {createStacks();} 48 54 49 55 # finish up XML … … 51 57 $writer->end(); 52 58 53 54 ######################################################################################3 55 56 # finds the schema file containing this table description 59 print OUT "\n#endif"; 60 close OUT; 61 62 63 ####################################################################################### 64 # 65 # Finds the schema file containing the table name passed in 66 # 67 ####################################################################################### 57 68 sub findSchemaFile { 58 69 my ($tableName) = @_; … … 86 97 } 87 98 88 # creates detections tables 99 ####################################################################################### 100 # 101 # Creates detection batch tables 102 # 103 ####################################################################################### 89 104 sub createInit { 90 105 … … 101 116 } 102 117 103 # creates init batch tables 118 ####################################################################################### 119 # 120 # Creates initialisation batch tables 121 # 122 ####################################################################################### 104 123 sub createDetections { 105 124 … … 111 130 } 112 131 113 # creates diff batch tables 132 ####################################################################################### 133 # 134 # Creates difference batch tables 135 # 136 ####################################################################################### 114 137 sub createDiffs { 115 138 … … 118 141 parseTable("StackLowSigDelta"); 119 142 parseTable("StackHighSigDelta"); 120 } 121 122 # creates stack batch tables 143 parseTable("ObjectCalColor"); 144 } 145 146 ####################################################################################### 147 # 148 # Creates stack batch tables 149 # 150 ####################################################################################### 123 151 sub createStacks { 124 152 … … 130 158 } 131 159 132 133 # parses out a table 160 ####################################################################################### 161 # 162 # Parses a particular table from the SQL file and converts it to an XML description 163 # 164 ####################################################################################### 134 165 sub parseTable { 135 166 my ($tableName, $newName) = @_; … … 144 175 else {$tableNameOut = $tableName} 145 176 177 print OUT "\ntypedef enum {\n"; 146 178 $writer->startTag('table', "name" => $tableNameOut); 147 179 … … 150 182 my $reading = 0; 151 183 my $found = 0; 184 my $colNum = 0; 152 185 my $table; 153 186 … … 163 196 $reading = 1; 164 197 $found = 1; 198 $colNum = 0; 165 199 next; 166 200 } … … 180 214 if ($line =~ m/\*\//) {next;} 181 215 182 processLine($line, $tableName);216 $colNum = processLine($line, $tableName, $colNum); 183 217 184 218 } … … 186 220 if (!$found) {print "Could not find table '$tableName'\n";} 187 221 $writer->endTag(); 222 print OUT "} ".$tableNameOut.";\n"; 188 223 189 224 close SCHEMA; 190 225 } 191 226 192 # process line 227 ####################################################################################### 228 # 229 # Processes a line from the PSPS schema table description and converts to XML 230 # 231 ####################################################################################### 193 232 sub processLine { 194 my ($line, $tableName ) = @_;233 my ($line, $tableName, $colNum) = @_; 195 234 196 235 my $name; … … 223 262 224 263 print "In '$tableName', can't process: '$line'\n"; 225 return 0264 return $colNum 226 265 } 227 266 … … 263 302 if ($type eq "TSTRING" && $default eq "") {$default = " ";} 264 303 304 $colNum++; 305 306 print OUT " ".uc($tableName)."_".uc($name)." = ".$colNum.",\n"; 307 265 308 $writer->startTag('column', 266 309 "name" => $name, … … 270 313 271 314 $writer->endTag(); 272 } 273 274 275 276 277 278 279 315 316 return $colNum; 317 } -
trunk/ippToPsps/src/ippToPspsBatchDetection.c
r27345 r27431 7 7 */ 8 8 9 # include <limits.h>9 #include <limits.h> 10 10 #include "ippToPsps.h" 11 11 #include "ippToPspsConfig.h" 12 #include "ippToPspsDetEnums.h" 12 13 #include "fitsio.h" 13 14 … … 61 62 62 63 // 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); 64 65 65 66 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); 67 68 68 69 int8_t filterID = -1; 69 70 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); 71 72 72 73 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); 74 75 75 76 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); 77 78 78 79 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); 80 81 81 82 // stuff to keep from psf.hdr header … … 200 201 201 202 202 // TODO check n umSmfDetections< MAXDETECT203 // TODO check nDet < MAXDETECT 203 204 204 205 // create ImageMeta 205 206 ippToPspsConfig_writeTable(this->config, fitsIn, this->fitsOut, 1, "ImageMeta", true); 206 207 psfFwhm = (fwhmMaj+fwhmMin)/2; 207 fits_write_col(this->fitsOut, TLONGLONG, 1, 1, 1, 1, &pspsImageId, &status); // TODO enums for thse col numbers208 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); TODO208 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 211 212 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); 216 217 217 218 // move to detections table in smf … … 223 224 } 224 225 225 long n umSmfDetections= 0;226 if (fits_get_num_rows(fitsIn, &n umSmfDetections, &status)) {226 long nDet = 0; 227 if (fits_get_num_rows(fitsIn, &nDet, &status)) { 227 228 fits_report_error(stderr, status); 228 229 } … … 232 233 233 234 anynull = 0; 234 fits_read_col(fitsIn, TLONG, 1, 1, 1, n umSmfDetections, &longnull, ippIDet, &anynull, &status);235 fits_read_col(fitsIn, TFLOAT, 8, 1, 1, n umSmfDetections, &floatnull, instMag, &anynull, &status);236 fits_read_col(fitsIn, TFLOAT, 9, 1, 1, n umSmfDetections, &floatnull, instMagErr, &anynull, &status);237 fits_read_col(fitsIn, TFLOAT, 12, 1, 1, n umSmfDetections, &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); 238 239 239 240 // DVO detections are ordered by IPP_IDET, which increments from 0 in SMF table 240 241 // both DVO detections and smf detections should increment. however, there may be gaps in smf and 'invalid' rows in dvo 241 242 numOfDuplicates = 0; 242 for (long s = 0; s<n umSmfDetections; s++) {243 for (long s = 0; s<nDet; s++) { 243 244 244 245 // count jumps in smf file … … 296 297 297 298 // detections 298 ippToPspsConfig_writeTable(this->config, fitsIn, this->fitsOut, n umSmfDetections, "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); 311 312 if (numOfDuplicates) fits_delete_rowlist(this->fitsOut, duplicateList, numOfDuplicates, &status); 312 313 313 314 // skinny object 314 ippToPspsConfig_writeTable(this->config, fitsIn, this->fitsOut, n umSmfDetections, "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); 317 318 if (numOfDuplicates) fits_delete_rowlist(this->fitsOut, duplicateList, numOfDuplicates, &status); 318 319 319 320 // object calibration color 320 ippToPspsConfig_writeTable(this->config, fitsIn, this->fitsOut, n umSmfDetections, "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); 324 325 if (numOfDuplicates) fits_delete_rowlist(this->fitsOut, duplicateList, numOfDuplicates, &status); 325 326 … … 329 330 "| %s | %5ld | %5ld | %5d | %5d |\n" 330 331 "|___________|_________|__________|__________________|_______________|\n", 331 extensionName, n umSmfDetections, numDetectionsOut, unmatched, numOfDuplicates);332 extensionName, nDet, numDetectionsOut, unmatched, numOfDuplicates); 332 333 333 334 if (dvoDetections!= NULL) dvoFree(dvoDetections); -
trunk/ippToPsps/src/ippToPspsBatchDifference.c
r27345 r27431 9 9 #include "ippToPsps.h" 10 10 #include "ippToPspsConfig.h" 11 #include "ippToPspsDiffEnums.h" 11 12 12 13 /** … … 41 42 42 43 for (uint16_t i = 0; i<this->numOfInputFiles; i++) { 43 //for (uint16_t i = 0; i<3; i++) {44 44 45 45 if (fits_open_file(&fitsIn, this->inputFiles[i], READONLY, &status)) { … … 57 57 fits_get_hdrspace(fitsIn, &nKeys, NULL, &status); 58 58 ippToPspsConfig_writeTable(this->config, fitsIn, this->fitsOut, 1, "StackMeta", true); 59 fits_write_col(this->fitsOut, TLONG, 2, 1, 1, 1, &skycell, &status);59 fits_write_col(this->fitsOut, TLONG, STACKMETA_SKYCELLID, 1, 1, 1, &skycell, &status); 60 60 61 61 // build StackToImage … … 107 107 ippToPspsConfig_writeTable(this->config, fitsIn, this->fitsOut, 1, "StackLowSigDelta", false); 108 108 ippToPspsConfig_writeTable(this->config, fitsIn, this->fitsOut, tableSize, "StackHighSigDelta", false); 109 fits_write_col(this->fitsOut, TFLOAT, 5, 1, 1, tableSize, obsTimes, &status);109 fits_write_col(this->fitsOut, TFLOAT, STACKHIGHSIGDELTA_OBSTIME, 1, 1, tableSize, obsTimes, &status); 110 110 if (numLowSig) fits_delete_rowlist(this->fitsOut, lowSig, numLowSig, &status); 111 111
Note:
See TracChangeset
for help on using the changeset viewer.
