Changeset 38114 for trunk/psModules/src/objects
- Timestamp:
- Apr 13, 2015, 5:59:19 PM (11 years ago)
- File:
-
- 1 edited
-
trunk/psModules/src/objects/pmSourceIO_CMF.c.in (modified) (4 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/psModules/src/objects/pmSourceIO_CMF.c.in
r38062 r38114 552 552 psMetadataAddStr (outhead, PS_LIST_TAIL, "EXTNAME", PS_META_REPLACE, "xsrc table extension", extname); 553 553 554 // we can either write out the petrosian mag errors correctly or inverted (by default, psphot writes them out inverted) 555 bool repairMagErrors = psMetadataLookupBool (&status, recipe, "REPAIR.PETROSIAN.MAG.ERRORS"); 556 if (repairMagErrors) { 557 psMetadataAddBool (outhead, PS_LIST_TAIL, "REPAIR.PETROSIAN.MAG.ERRORS", PS_META_REPLACE, "", true); 558 } 559 554 560 pmChip *chip = readout->parent->parent; 555 561 pmFPA *fpa = chip->parent; … … 651 657 // XXX note that this mag is either calibrated or instrumental depending on existence of zero point 652 658 float mag = (extpars->petrosianFlux > 0.0) ? -2.5*log10(extpars->petrosianFlux) + magOffset : NAN; // XXX zero point 653 // XXX NOTE EAM 20140806 : PETRO_MAG_ERR is inverted!! oops!!659 // NOTE EAM 20140806 : PETRO_MAG_ERR was inverted!! this allows for it to be repaired 654 660 float magErr = (extpars->petrosianFlux > 0.0) ? extpars->petrosianFlux / extpars->petrosianFluxErr : NAN; // XXX zero point 661 if (repairMagErrors) { 662 // I need to add the kron error in quadrature becasue pet_error ignores the object flux 663 float Krf = source->moments ? source->moments->KronFlux : NAN; 664 float dKrf = source->moments ? source->moments->KronFluxErr : NAN; 665 if (isfinite (Krf) && isfinite (dKrf)) { 666 magErr = sqrt(PS_SQR(1.0 / magErr) + PS_SQR(dKrf / Krf)); 667 } else { 668 magErr = 1.0 / magErr; 669 } 670 } 655 671 psMetadataAdd (row, PS_LIST_TAIL, "PETRO_MAG", PS_DATA_F32, "Petrosian Magnitude", mag); 656 672 psMetadataAdd (row, PS_LIST_TAIL, "PETRO_MAG_ERR", PS_DATA_F32, "Petrosian Magnitude Error", magErr); … … 836 852 } 837 853 854 bool repairMagErrors = psMetadataLookupBool (&status, tableHeader, "REPAIR.PETROSIAN.MAG.ERRORS"); 855 838 856 for (long i = 0; i < numSources; i++) { 839 857 psMetadata *row = psFitsReadTableRow(fits, i); // Table row … … 867 885 extpars->axes.theta = psMetadataLookupF32(&status, row, "F25_THETA"); 868 886 887 // magErr may have been saved in inverted form 869 888 float mag = psMetadataLookupF32(&status, row, "PETRO_MAG"); 870 889 float magErr = psMetadataLookupF32(&status, row, "PETRO_MAG_ERR"); 871 890 if (isfinite(mag)) { 872 extpars->petrosianFlux = pow(10., (magOffset - mag) / 2.5); 873 if (isfinite(magErr)) { 874 extpars->petrosianFluxErr = extpars->petrosianFlux / magErr; 875 } 876 } 891 extpars->petrosianFlux = pow(10., (magOffset - mag) / 2.5); 892 if (isfinite(magErr)) { 893 if (repairMagErrors) { 894 // I need to add the kron error in quadrature becasue pet_error ignores the object flux 895 float Krf = source->moments ? source->moments->KronFlux : NAN; 896 float dKrf = source->moments ? source->moments->KronFluxErr : NAN; 897 if (isfinite (Krf) && isfinite (dKrf)) { 898 magErr = 1.0 / sqrt(PS_SQR(magErr) - PS_SQR(dKrf / Krf)); 899 } else { 900 magErr = 1.0 / magErr; 901 } 902 extpars->petrosianFluxErr = extpars->petrosianFlux * magErr; 903 } else { 904 extpars->petrosianFluxErr = extpars->petrosianFlux / magErr; 905 } 906 } 907 } 877 908 878 909 extpars->petrosianRadius = psMetadataLookupF32(&status, row, "PETRO_RADIUS");
Note:
See TracChangeset
for help on using the changeset viewer.
