Changeset 29560
- Timestamp:
- Oct 25, 2010, 5:27:23 PM (16 years ago)
- Location:
- trunk/ppTranslate/src
- Files:
-
- 4 edited
-
ppMops.h (modified) (1 diff)
-
ppMopsArguments.c (modified) (3 diffs)
-
ppMopsRead.c (modified) (2 diffs)
-
ppMopsWrite.c (modified) (3 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/ppTranslate/src/ppMops.h
r29556 r29560 25 25 float rmsAstrom; // Astrometric solution RMS 26 26 psString output; // Output filename 27 psU16 version; // Version (for parameters) 27 28 } ppMopsArguments; 28 29 -
trunk/ppTranslate/src/ppMopsArguments.c
r25256 r29560 48 48 args->rmsAstrom = NAN; 49 49 args->output = NULL; 50 args->version = 1; 50 51 51 52 return args; … … 73 74 psMetadataAddF32(arguments, PS_LIST_TAIL, "-zp_error", 0, "Error in magnitude zero point", NAN); 74 75 psMetadataAddF32(arguments, PS_LIST_TAIL, "-astrom_rms", 0, "Astrometric solution RMS", NAN); 76 psMetadataAddU16(arguments, PS_LIST_TAIL, "-version", 0, "Parameters version (see ICD)", 1); 75 77 76 78 if (argc == 1 || !psArgumentParse(arguments, &argc, argv) || argc != 3) { … … 97 99 args->diff_id = psMetadataLookupS64(NULL, arguments, "-diff_id"); 98 100 args->positive = !psMetadataLookupBool(NULL, arguments, "-inverse"); // NOTE: negated 99 100 101 args->zp = psMetadataLookupF32(NULL, arguments, "-zp"); 101 102 args->zpErr = psMetadataLookupF32(NULL, arguments, "-zp_error"); 102 103 args->rmsAstrom = psMetadataLookupF32(NULL, arguments, "-astrom_rms"); 104 args->version = psMetadataLookupU16(NULL, arguments, "-version"); 103 105 104 106 psTrace("ppMops.args", 1, "Done parsing command-line arguments\n"); -
trunk/ppTranslate/src/ppMopsRead.c
r29556 r29560 109 109 det->naxis1->data.S32[numGood] = naxis1; 110 110 det->naxis2->data.S32[numGood] = naxis2; 111 112 111 det->nPos->data.S32[numGood] = psMetadataLookupS32(NULL, row, "DIFF_NPOS"); 113 112 det->fPos->data.F32[numGood] = psMetadataLookupF32(NULL, row, "DIFF_FRATIO"); … … 117 116 118 117 //Additions of 2010-10-25 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"); 118 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; 174 } 146 175 147 176 // Calculate error in RA, Dec -
trunk/ppTranslate/src/ppMopsWrite.c
r28623 r29560 18 18 return false; 19 19 } 20 21 20 22 21 psMetadata *header = psMetadataAlloc(); // Header to write … … 81 80 psMetadataAddF32(row, PS_LIST_TAIL, "RATIO_MASK", 0, "Ratio of positive pixels to masked", NAN); 82 81 psMetadataAddF32(row, PS_LIST_TAIL, "RATIO_ALL", 0, "Ratio of positive pixels to all", NAN); 82 83 if (args->version == 2) { 84 // Write data of version 2 (see ICD) 85 psMetadataAdd (row, PS_LIST_TAIL, "IPP_IDET", PS_DATA_U32, "IPP detection identifier index", 86 NAN); 87 psMetadataAdd (row, PS_LIST_TAIL, "PSF_INST_FLUX", PS_DATA_F32, "PSF fit instrumental magnitude", 88 NAN); 89 psMetadataAdd (row, PS_LIST_TAIL, "PSF_INST_FLUX_SIG",PS_DATA_F32, "Sigma of PSF instrumental magnitude", 90 NAN); 91 psMetadataAdd (row, PS_LIST_TAIL, "AP_MAG", PS_DATA_F32, "magnitude in standard aperture", 92 NAN); 93 psMetadataAdd (row, PS_LIST_TAIL, "AP_MAG_RAW", PS_DATA_F32, "magnitude in real aperture", 94 NAN); 95 psMetadataAdd (row, PS_LIST_TAIL, "AP_MAG_RADIUS", PS_DATA_F32, "radius used for aperture mags", 96 NAN); 97 psMetadataAdd (row, PS_LIST_TAIL, "AP_FLUX", PS_DATA_F32, "instrumental flux in standard aperture", 98 NAN); 99 psMetadataAdd (row, PS_LIST_TAIL, "AP_FLUX_SIG", PS_DATA_F32, "aperture flux error", 100 NAN); 101 psMetadataAdd (row, PS_LIST_TAIL, "PEAK_FLUX_AS_MAG", PS_DATA_F32, "Peak flux expressed as magnitude", 102 NAN); 103 psMetadataAdd (row, PS_LIST_TAIL, "CAL_PSF_MAG", PS_DATA_F32, "PSF Magnitude using supplied calibration", 104 NAN); 105 psMetadataAdd (row, PS_LIST_TAIL, "CAL_PSF_MAG_SIG", PS_DATA_F32, "measured scatter of zero point calibration", 106 NAN); 107 psMetadataAdd (row, PS_LIST_TAIL, "SKY", PS_DATA_F32, "Sky level", 108 NAN); 109 psMetadataAdd (row, PS_LIST_TAIL, "SKY_SIGMA", PS_DATA_F32, "Sigma of sky level", 110 NAN); 111 psMetadataAdd (row, PS_LIST_TAIL, "PSF_QF_PERFECT", PS_DATA_F32, "PSF coverage/quality factor (poor)", 112 NAN); 113 psMetadataAdd (row, PS_LIST_TAIL, "MOMENTS_R1", PS_DATA_F32, "first radial moment", 114 NAN); 115 psMetadataAdd (row, PS_LIST_TAIL, "MOMENTS_RH", PS_DATA_F32, "half radial moment", 116 NAN); 117 psMetadataAdd (row, PS_LIST_TAIL, "KRON_FLUX", PS_DATA_F32, "Kron Flux (in 2.5 R1)", 118 NAN); 119 psMetadataAdd (row, PS_LIST_TAIL, "KRON_FLUX_ERR", PS_DATA_F32, "Kron Flux Error", 120 NAN); 121 psMetadataAdd (row, PS_LIST_TAIL, "KRON_FLUX_INNER", PS_DATA_F32, "Kron Flux (in 1.0 R1)", 122 NAN); 123 psMetadataAdd (row, PS_LIST_TAIL, "KRON_FLUX_OUTER", PS_DATA_F32, "Kron Flux (in 4.0 R1)", 124 NAN); 125 psMetadataAdd (row, PS_LIST_TAIL, "DIFF_R_P", PS_DATA_F32, "distance to positive match source", 126 NAN); 127 psMetadataAdd (row, PS_LIST_TAIL, "DIFF_SN_P", PS_DATA_F32, "signal-to-noise of pos match src", 128 NAN); 129 psMetadataAdd (row, PS_LIST_TAIL, "DIFF_R_M", PS_DATA_F32, "distance to negative match source", 130 NAN); 131 psMetadataAdd (row, PS_LIST_TAIL, "DIFF_SN_M", PS_DATA_F32, "signal-to-noise of neg match src", 132 NAN); 133 psMetadataAdd (row, PS_LIST_TAIL, "FLAGS2", PS_DATA_U32, "psphot analysis flags (group 2)", 134 0); 135 psMetadataAdd (row, PS_LIST_TAIL, "N_FRAMES", PS_DATA_U16, "Number of frames overlapping source center", 136 0); 137 psMetadataAdd (row, PS_LIST_TAIL, "PADDING", PS_DATA_S16, "padding", 138 0); 139 } 140 83 141 if (!psFitsWriteTableEmpty(fits, header, row, OUT_EXTNAME)) { 84 142 psErrorStackPrint(stderr, "Unable to write empty table."); … … 134 192 det->diffSkyfileId->data.S64[i]); 135 193 194 if (args->version == 2) { 195 // Write data of version 2 (see ICD) 196 psMetadataAdd (row, PS_LIST_TAIL, "IPP_IDET", PS_DATA_U32, "IPP detection identifier index", 197 det->ippIdet->data.U32[i]); 198 psMetadataAdd (row, PS_LIST_TAIL, "PSF_INST_FLUX", PS_DATA_F32, "PSF fit instrumental magnitude", 199 det->psfInstFlux->data.F32[i]); 200 psMetadataAdd (row, PS_LIST_TAIL, "PSF_INST_FLUX_SIG",PS_DATA_F32, "Sigma of PSF instrumental magnitude", 201 det->psfInstFluxSig->data.F32[i]); 202 psMetadataAdd (row, PS_LIST_TAIL, "AP_MAG", PS_DATA_F32, "magnitude in standard aperture", 203 det->apMag->data.F32[i]); 204 psMetadataAdd (row, PS_LIST_TAIL, "AP_MAG_RAW", PS_DATA_F32, "magnitude in real aperture", 205 det->apMagRaw->data.F32[i]); 206 psMetadataAdd (row, PS_LIST_TAIL, "AP_MAG_RADIUS", PS_DATA_F32, "radius used for aperture mags", 207 det->apMagRadius->data.F32[i]); 208 psMetadataAdd (row, PS_LIST_TAIL, "AP_FLUX", PS_DATA_F32, "instrumental flux in standard aperture", 209 det->apFlux->data.F32[i]); 210 psMetadataAdd (row, PS_LIST_TAIL, "AP_FLUX_SIG", PS_DATA_F32, "aperture flux error", 211 det->apFluxSig->data.F32[i]); 212 psMetadataAdd (row, PS_LIST_TAIL, "PEAK_FLUX_AS_MAG", PS_DATA_F32, "Peak flux expressed as magnitude", 213 det->peakFluxAsMag->data.F32[i]); 214 psMetadataAdd (row, PS_LIST_TAIL, "CAL_PSF_MAG", PS_DATA_F32, "PSF Magnitude using supplied calibration", 215 det->calPsfMag->data.F32[i]); 216 psMetadataAdd (row, PS_LIST_TAIL, "CAL_PSF_MAG_SIG", PS_DATA_F32, "measured scatter of zero point calibration", 217 det->calPsfMagSig->data.F32[i]); 218 psMetadataAdd (row, PS_LIST_TAIL, "SKY", PS_DATA_F32, "Sky level", 219 det->sky->data.F32[i]); 220 psMetadataAdd (row, PS_LIST_TAIL, "SKY_SIGMA", PS_DATA_F32, "Sigma of sky level", 221 det->skySig->data.F32[i]); 222 psMetadataAdd (row, PS_LIST_TAIL, "PSF_QF_PERFECT", PS_DATA_F32, "PSF coverage/quality factor (poor)", 223 det->qualityPerfect->data.F32[i]); 224 psMetadataAdd (row, PS_LIST_TAIL, "MOMENTS_R1", PS_DATA_F32, "first radial moment", 225 det->momentsR1->data.F32[i]); 226 psMetadataAdd (row, PS_LIST_TAIL, "MOMENTS_RH", PS_DATA_F32, "half radial moment", 227 det->momentsRH->data.F32[i]); 228 psMetadataAdd (row, PS_LIST_TAIL, "KRON_FLUX", PS_DATA_F32, "Kron Flux (in 2.5 R1)", 229 det->kronFlux->data.F32[i]); 230 psMetadataAdd (row, PS_LIST_TAIL, "KRON_FLUX_ERR", PS_DATA_F32, "Kron Flux Error", 231 det->kronFluxErr->data.F32[i]); 232 psMetadataAdd (row, PS_LIST_TAIL, "KRON_FLUX_INNER", PS_DATA_F32, "Kron Flux (in 1.0 R1)", 233 det->kronFluxInner->data.F32[i]); 234 psMetadataAdd (row, PS_LIST_TAIL, "KRON_FLUX_OUTER", PS_DATA_F32, "Kron Flux (in 4.0 R1)", 235 det->kronFluxOuter->data.F32[i]); 236 psMetadataAdd (row, PS_LIST_TAIL, "DIFF_R_P", PS_DATA_F32, "distance to positive match source", 237 det->diffRP->data.F32[i]); 238 psMetadataAdd (row, PS_LIST_TAIL, "DIFF_SN_P", PS_DATA_F32, "signal-to-noise of pos match src", 239 det->diffSnP->data.F32[i]); 240 psMetadataAdd (row, PS_LIST_TAIL, "DIFF_R_M", PS_DATA_F32, "distance to negative match source", 241 det->diffRM->data.F32[i]); 242 psMetadataAdd (row, PS_LIST_TAIL, "DIFF_SN_M", PS_DATA_F32, "signal-to-noise of neg match src", 243 det->diffSnM->data.F32[i]); 244 psMetadataAdd (row, PS_LIST_TAIL, "FLAGS2", PS_DATA_U32, "psphot analysis flags (group 2)", 245 det->flags2->data.U32[i]); 246 psMetadataAdd (row, PS_LIST_TAIL, "N_FRAMES", PS_DATA_U16, "Number of frames overlapping source center", 247 det->nFrames->data.U16[i]); 248 psMetadataAdd (row, PS_LIST_TAIL, "PADDING", PS_DATA_S16, "padding", 249 det->padding->data.S16[i]); 250 } 251 252 //Update with the table with the current row 136 253 table->data[i] = row; 137 254 }
Note:
See TracChangeset
for help on using the changeset viewer.
