Changeset 29565 for trunk/ppTranslate/src/ppMopsRead.c
- Timestamp:
- Oct 26, 2010, 12:30:29 PM (16 years ago)
- File:
-
- 1 edited
-
trunk/ppTranslate/src/ppMopsRead.c (modified) (4 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/ppTranslate/src/ppMopsRead.c
r29560 r29565 8 8 #include "ppMops.h" 9 9 10 psArray *ppMopsRead(const ppMopsArguments *args) 10 /* 11 ppMopsRead possibly modifies the args->version if the user did not 12 set it explicitely. 13 */ 14 psArray *ppMopsRead(ppMopsArguments *args) 11 15 { 12 16 psTrace("ppMops.read", 1, "Reading input detections\n"); … … 17 21 for (int i = 0; i < num; i++) { 18 22 psFits *fits = psFitsOpen(inNames->data[i], "r"); // FITS file 23 19 24 if (!fits) { 20 25 psError(PS_ERR_IO, false, "Unable to open input %d", i); … … 37 42 return false; 38 43 } 44 int skyChipPsfVersion = ppMopsGetSkyChipPsfVersion(fits); 45 if (args->version == 0) { 46 psTrace("ppMops.read", 1, "Changing args->version to %d\n", skyChipPsfVersion); 47 args->version = skyChipPsfVersion; 48 } 49 if (skyChipPsfVersion == 0) { 50 // Try to read with the user specified version? 51 skyChipPsfVersion = args->version; 52 } 53 /* Display a warning message if there are version 54 inconsistencies between the file and the flag (note that 55 those inconsistencies might be wanted) */ 56 if (skyChipPsfVersion != args->version) { 57 if (skyChipPsfVersion > args->version) { 58 psWarning("The FITS data will be downgraded from PS1_DV%d to PS1_DV%d\n", 59 skyChipPsfVersion, args->version); 60 } else { // Necessarily: skyChipPsfVersion > args->version 61 psWarning("The FITS data will be upgraded from PS1_DV%d to PS1_DV%d (new values set to default 0, NaN...)\n", 62 skyChipPsfVersion, args->version); 63 } 64 } 39 65 40 66 long size = psFitsTableSize(fits); // Size of table … … 117 143 //Additions of 2010-10-25 118 144 if (args->version == 2) { 119 det->psfInstFlux->data.F32[numGood] = psMetadataLookupS32(NULL, row, "PSF_INST_FLUX"); 120 det->psfInstFluxSig->data.F32[numGood] = psMetadataLookupS32(NULL, row, "PSF_INST_FLUX_SIG"); 121 det->apMag->data.F32[numGood] = psMetadataLookupS32(NULL, row, "AP_MAG"); 122 det->apMagRaw->data.F32[numGood] = psMetadataLookupS32(NULL, row, "AP_MAG_RAW"); 123 det->apMagRadius->data.F32[numGood] = psMetadataLookupS32(NULL, row, "AP_MAG_RADIUS"); 124 det->apFlux->data.F32[numGood] = psMetadataLookupS32(NULL, row, "AP_FLUX"); 125 det->apFluxSig->data.F32[numGood] = psMetadataLookupS32(NULL, row, "AP_FLUX_SIG"); 126 det->peakFluxAsMag->data.F32[numGood] = psMetadataLookupS32(NULL, row, "PEAK_FLUX_AS_MAG"); 127 det->calPsfMag->data.F32[numGood] = psMetadataLookupS32(NULL, row, "CAL_PSF_MAG"); 128 det->calPsfMagSig->data.F32[numGood] = psMetadataLookupS32(NULL, row, "CAL_PSF_MAG_SIG"); 129 det->sky->data.F32[numGood] = psMetadataLookupS32(NULL, row, "SKY"); 130 det->skySig->data.F32[numGood] = psMetadataLookupS32(NULL, row, "SKY_SIGMA"); 131 det->qualityPerfect->data.F32[numGood] = psMetadataLookupF32(NULL, row, "PSF_QF_PERFECT"); 132 det->momentsR1->data.F32[numGood] = psMetadataLookupF32(NULL, row, "MOMENTS_R1"); 133 det->momentsRH->data.F32[numGood] = psMetadataLookupF32(NULL, row, "MOMENTS_RH"); 134 det->kronFlux->data.F32[numGood] = psMetadataLookupF32(NULL, row, "KRON_FLUX"); 135 det->kronFluxErr->data.F32[numGood] = psMetadataLookupF32(NULL, row, "KRON_FLUX_ERR"); 136 det->kronFluxInner->data.F32[numGood] = psMetadataLookupF32(NULL, row, "KRON_FLUX_INNER"); 137 det->kronFluxOuter->data.F32[numGood] = psMetadataLookupF32(NULL, row, "KRON_FLUX_OUTER"); 138 det->diffRP->data.F32[numGood] = psMetadataLookupF32(NULL, row, "DIFF_R_P"); 139 det->diffSnP->data.F32[numGood] = psMetadataLookupF32(NULL, row, "DIFF_SN_P"); 140 det->diffRM->data.F32[numGood] = psMetadataLookupF32(NULL, row, "DIFF_R_M"); 141 det->diffSnM->data.F32[numGood] = psMetadataLookupF32(NULL, row, "DIFF_SN_M"); 142 det->flags2->data.U32[numGood] = psMetadataLookupU32(NULL, row, "FLAGS2"); 143 det->ippIdet->data.U32[numGood] = psMetadataLookupU32(NULL, row, "IPP_IDET"); 144 det->nFrames->data.U16[numGood] = psMetadataLookupU16(NULL, row, "N_FRAMES"); 145 det->padding->data.S16[numGood] = psMetadataLookupS16(NULL, row, "PADDING"); 146 } else { 147 det->psfInstFlux->data.F32[numGood] = NAN; 148 det->psfInstFluxSig->data.F32[numGood] = NAN; 149 det->apMag->data.F32[numGood] = NAN; 150 det->apMagRaw->data.F32[numGood] = NAN; 151 det->apMagRadius->data.F32[numGood] = NAN; 152 det->apFlux->data.F32[numGood] = NAN; 153 det->apFluxSig->data.F32[numGood] = NAN; 154 det->peakFluxAsMag->data.F32[numGood] = NAN; 155 det->calPsfMag->data.F32[numGood] = NAN; 156 det->calPsfMagSig->data.F32[numGood] = NAN; 157 det->sky->data.F32[numGood] = NAN; 158 det->skySig->data.F32[numGood] = NAN; 159 det->qualityPerfect->data.F32[numGood] = NAN; 160 det->momentsR1->data.F32[numGood] = NAN; 161 det->momentsRH->data.F32[numGood] = NAN; 162 det->kronFlux->data.F32[numGood] = NAN; 163 det->kronFluxErr->data.F32[numGood] = NAN; 164 det->kronFluxInner->data.F32[numGood] = NAN; 165 det->kronFluxOuter->data.F32[numGood] = NAN; 166 det->diffRP->data.F32[numGood] = NAN; 167 det->diffSnP->data.F32[numGood] = NAN; 168 det->diffRM->data.F32[numGood] = NAN; 169 det->diffSnM->data.F32[numGood] = NAN; 170 det->flags2->data.U32[numGood] = 0; 171 det->ippIdet->data.U32[numGood] = 0; 172 det->nFrames->data.U16[numGood] = 0; 173 det->padding->data.S16[numGood] = 0; 145 //Values are set only if the version is 2 146 if (skyChipPsfVersion == 2) { 147 det->psfInstFlux->data.F32[numGood] = psMetadataLookupS32(NULL, row, "PSF_INST_FLUX"); 148 det->psfInstFluxSig->data.F32[numGood] = psMetadataLookupS32(NULL, row, "PSF_INST_FLUX_SIG"); 149 det->apMag->data.F32[numGood] = psMetadataLookupS32(NULL, row, "AP_MAG"); 150 det->apMagRaw->data.F32[numGood] = psMetadataLookupS32(NULL, row, "AP_MAG_RAW"); 151 det->apMagRadius->data.F32[numGood] = psMetadataLookupS32(NULL, row, "AP_MAG_RADIUS"); 152 det->apFlux->data.F32[numGood] = psMetadataLookupS32(NULL, row, "AP_FLUX"); 153 det->apFluxSig->data.F32[numGood] = psMetadataLookupS32(NULL, row, "AP_FLUX_SIG"); 154 det->peakFluxAsMag->data.F32[numGood] = psMetadataLookupS32(NULL, row, "PEAK_FLUX_AS_MAG"); 155 det->calPsfMag->data.F32[numGood] = psMetadataLookupS32(NULL, row, "CAL_PSF_MAG"); 156 det->calPsfMagSig->data.F32[numGood] = psMetadataLookupS32(NULL, row, "CAL_PSF_MAG_SIG"); 157 det->sky->data.F32[numGood] = psMetadataLookupS32(NULL, row, "SKY"); 158 det->skySig->data.F32[numGood] = psMetadataLookupS32(NULL, row, "SKY_SIGMA"); 159 det->qualityPerfect->data.F32[numGood] = psMetadataLookupF32(NULL, row, "PSF_QF_PERFECT"); 160 det->momentsR1->data.F32[numGood] = psMetadataLookupF32(NULL, row, "MOMENTS_R1"); 161 det->momentsRH->data.F32[numGood] = psMetadataLookupF32(NULL, row, "MOMENTS_RH"); 162 det->kronFlux->data.F32[numGood] = psMetadataLookupF32(NULL, row, "KRON_FLUX"); 163 det->kronFluxErr->data.F32[numGood] = psMetadataLookupF32(NULL, row, "KRON_FLUX_ERR"); 164 det->kronFluxInner->data.F32[numGood] = psMetadataLookupF32(NULL, row, "KRON_FLUX_INNER"); 165 det->kronFluxOuter->data.F32[numGood] = psMetadataLookupF32(NULL, row, "KRON_FLUX_OUTER"); 166 det->diffRP->data.F32[numGood] = psMetadataLookupF32(NULL, row, "DIFF_R_P"); 167 det->diffSnP->data.F32[numGood] = psMetadataLookupF32(NULL, row, "DIFF_SN_P"); 168 det->diffRM->data.F32[numGood] = psMetadataLookupF32(NULL, row, "DIFF_R_M"); 169 det->diffSnM->data.F32[numGood] = psMetadataLookupF32(NULL, row, "DIFF_SN_M"); 170 det->flags2->data.U32[numGood] = psMetadataLookupU32(NULL, row, "FLAGS2"); 171 det->ippIdet->data.U32[numGood] = psMetadataLookupU32(NULL, row, "IPP_IDET"); 172 det->nFrames->data.U16[numGood] = psMetadataLookupU16(NULL, row, "N_FRAMES"); 173 det->padding->data.S16[numGood] = psMetadataLookupS16(NULL, row, "PADDING"); 174 } else { 175 det->psfInstFlux->data.F32[numGood] = NAN; 176 det->psfInstFluxSig->data.F32[numGood] = NAN; 177 det->apMag->data.F32[numGood] = NAN; 178 det->apMagRaw->data.F32[numGood] = NAN; 179 det->apMagRadius->data.F32[numGood] = NAN; 180 det->apFlux->data.F32[numGood] = NAN; 181 det->apFluxSig->data.F32[numGood] = NAN; 182 det->peakFluxAsMag->data.F32[numGood] = NAN; 183 det->calPsfMag->data.F32[numGood] = NAN; 184 det->calPsfMagSig->data.F32[numGood] = NAN; 185 det->sky->data.F32[numGood] = NAN; 186 det->skySig->data.F32[numGood] = NAN; 187 det->qualityPerfect->data.F32[numGood] = NAN; 188 det->momentsR1->data.F32[numGood] = NAN; 189 det->momentsRH->data.F32[numGood] = NAN; 190 det->kronFlux->data.F32[numGood] = NAN; 191 det->kronFluxErr->data.F32[numGood] = NAN; 192 det->kronFluxInner->data.F32[numGood] = NAN; 193 det->kronFluxOuter->data.F32[numGood] = NAN; 194 det->diffRP->data.F32[numGood] = NAN; 195 det->diffSnP->data.F32[numGood] = NAN; 196 det->diffRM->data.F32[numGood] = NAN; 197 det->diffSnM->data.F32[numGood] = NAN; 198 det->flags2->data.U32[numGood] = 0; 199 det->ippIdet->data.U32[numGood] = 0; 200 det->nFrames->data.U16[numGood] = 0; 201 det->padding->data.S16[numGood] = 0; 202 } 174 203 } 175 204
Note:
See TracChangeset
for help on using the changeset viewer.
