Changeset 41717 for trunk/tools/eam/teleff/diffmask.pro
- Timestamp:
- Jul 13, 2021, 10:50:28 AM (5 years ago)
- File:
-
- 1 edited
-
trunk/tools/eam/teleff/diffmask.pro (modified) (6 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/tools/eam/teleff/diffmask.pro
r41712 r41717 10 10 11 11 if (not($?MATCH_RADIUS)) set MATCH_RADIUS = 2.0 12 13 $SMF_FIELDS_DIF = X_PSF Y_PSF RA_PSF DEC_PSF CAL_PSF_MAG PSF_QF PSF_QF_PERFECT 14 $REF_FIELDS_DIF = Rref Dref Mref 15 $XTR_FIELDS_DIF = Xref Yref Nref Q1ref 12 16 13 17 macro get.diff.eff … … 44 48 # load the reference source table 45 49 # how to choose the name of the filter? 46 data $refsrcs; read -fits DATA Rref Dref Mref50 data $refsrcs; read -fits DATA $REF_FIELDS_DIF 47 51 set Nref = ramp(Rref) 48 52 if ($VERBOSE) echo "loaded Rref[] sources from reference $refsrcs" … … 58 62 if ("$diffMask:$i" == "") 59 63 echo "no mask file found for $i, skipping maskstats" 60 set Q1ref SS = zero(XrefSS) + NAN64 set Q1ref_onchp = zero(Xref_onchp) + NAN 61 65 else 62 66 get.diff.mask.stats $diffMask:$i 63 67 end 64 68 65 sprintf output "%s/%s.%s.%s.diff.stf" $OUTDIR $expname $skycell:$i $OUTVERSION 66 write -fits DATA $output RrefSS DrefSS MrefSS XrefSS YrefSS Q1refSS X_PSF_found Y_PSF_found M_PSF_found Q1_PSF_found Q2_PSF_found 67 end 69 foreach field SMF_FIELDS_DIF 70 concat $field\_found $field\_out 71 delete $field\_found 72 end 73 foreach field REF_FIELDS_DIF $XTR_FIELDS_DIF 74 concat $field\_onchp $field\_out 75 delete $field\_onchp 76 end 77 end 78 79 $OUT_FIELDS = 80 foreach field $SMP_FIELDS_DIF $REF_FIELDS_DIF $XTR_FIELDS_DIF 81 $OUT_FIELDS = $OUT_FIELDS $field\_out 82 end 83 84 sprintf output "%s/%s.%s.diff.stf" $OUTDIR $expname $OUTVERSION 85 write -fits DATA $output $OUT_FIELDS 68 86 end 69 87 … … 78 96 end 79 97 80 local filename 98 local filename NAXIS1 NAXIS2 81 99 $filename = $1 82 100 if ("$filename" == "") … … 100 118 # do we need to grow the range at all? 101 119 set keep = (Rref >= $minR) && (Rref <= $maxR) && (Dref >= $minD) && (Dref <= $maxD) 102 subset RrefS = Rref if keep103 subset DrefS = Drefif keep104 subset MrefS = Mref if keep120 foreach field $REF_FIELDS_DIF Nref 121 subset $field\_tmp = $field if keep 122 end 105 123 106 124 # convert the subset coordinates to pixels 107 set Xref S = RrefS108 set Yref S = DrefS109 coords -q hdr -c Xref S YrefS125 set Xref_tmp = Rref_tmp 126 set Yref_tmp = Dref_tmp 127 coords -q hdr -c Xref_tmp Yref_tmp 110 128 111 129 # generate a subset of sources which are within the boundaries of the skycell 112 130 set keep = (XrefS >= 0) && (XrefS <= $NAXIS1) && (YrefS >= 0) && (YrefS <= $NAXIS2) 113 subset XrefSS = XrefS if keep 114 subset YrefSS = YrefS if keep 115 subset RrefSS = RrefS if keep 116 subset DrefSS = DrefS if keep 117 subset MrefSS = MrefS if keep 131 foreach field $REF_FIELDS_DIF Nref Xref Yref 132 subset $field\_onchp = $field\_tmp if keep 133 delete $field\_tmp 134 end 118 135 119 136 # now read the smf detections 120 137 data $filename 121 read -fits SkyChip.psf X_PSF Y_PSF RA_PSF DEC_PSF CAL_PSF_MAG PSF_QF PSF_QF_PERFECT 122 123 match2d XrefSS YrefSS X_PSF Y_PSF $MATCH_RADIUS -closest 124 125 reindex X_PSF_found = X_PSF using index1 -keep-unmatched 126 reindex Y_PSF_found = Y_PSF using index1 -keep-unmatched 127 reindex M_PSF_found = CAL_PSF_MAG using index1 -keep-unmatched 128 reindex Q1_PSF_found = PSF_QF using index1 -keep-unmatched 129 reindex Q2_PSF_found = PSF_QF_PERFECT using index1 -keep-unmatched 130 131 set dX = XrefSS - X_PSF_found; subset dXs = dX where (MrefSS < 18); vstat -q dXs 132 set dY = YrefSS - Y_PSF_found; subset dYs = dY where (MrefSS < 18); vstat -q dYs 133 set dM = MrefSS - M_PSF_found; subset dMs = dM where (MrefSS < 18); vstat -q dMs 134 135 # measure some stats, eg: 136 # * fraction detected vs mag, filter by PSF_QF, PSF_QF_PERFECT 138 read -fits SkyChip.psf $SMF_FIELDS_DIF 139 140 match2d Xref_onchp Yref_onchp X_PSF Y_PSF $MATCH_RADIUS -closest 141 foreach field $SMF_FIELDS_DIF 142 reindex $field\_found = $field using index1 -keep-unmatched 143 end 137 144 end 138 145 … … 160 167 # I want to set an image based on the bit values but I fear 161 168 # the mask has been converted to a float when read 162 forcedphot mkPerfect XrefSS YrefSS -output Q1refSS 163 164 subset tmp = Q1refSS where (Q1refSS > 0.85) 165 166 if ($VERBOSE) echo tmp[] of Q1refSS[] are unmasked 167 end 168 169 macro get.diff.detect.coords 170 if ($0 != 2) 171 echo "USAGE: get.diff.detect.coords (buffer)" 172 echo " assumes existence of vectors (Rref, Dref, Mref) and buffer (PHU)" 173 echo " matches known sources to detections in the smf file extensions for each chip" 174 echo " calculates detection fraction as a function of magnitude" 175 echo " also astrometric and photometric scatter vs magnitude for good detections" 176 break 177 end 178 179 local buffname 180 $buffname = $1 181 182 keyword $buffname NAXIS1 NAXIS1 183 keyword $buffname NAXIS2 NAXIS2 184 185 coords -q $buffname -p 0 0; init.radec.range 186 coords -q $buffname -p $NAXIS1 0; set.radec.range 187 coords -q $buffname -p $NAXIS1 $NAXIS2; set.radec.range 188 coords -q $buffname -p 0 $NAXIS2; set.radec.range 189 190 # generate a subset which could be on this chip 191 # do we need to grow the range at all? 192 set keep = (Rref >= $minR) && (Rref <= $maxR) && (Dref >= $minD) && (Dref <= $maxD) 193 subset RrefS = Rref if keep 194 subset DrefS = Dref if keep 195 subset MrefS = Mref if keep 196 197 # convert the subset coordinates to pixels 198 set XrefS = RrefS 199 set YrefS = DrefS 200 coords -q $buffname -c XrefS YrefS 201 202 # generate a subset of sources which are within the boundaries of the chip 203 set keep = (XrefS >= 0) && (XrefS <= $NAXIS1) && (YrefS >= 0) && (YrefS <= $NAXIS2) 204 subset XrefSS = XrefS if keep 205 subset YrefSS = YrefS if keep 206 subset RrefSS = RrefS if keep 207 subset DrefSS = DrefS if keep 208 subset MrefSS = MrefS if keep 209 end 169 forcedphot mkPerfect Xref_onchp Yref_onchp -output Q1ref_onchp 170 171 subset tmp = Q1ref_onchp where (Q1ref_onchp > 0.85) 172 if ($VERBOSE) echo tmp[] of Q1ref_onchp[] are unmasked 173 end 174 175 ## utilities 210 176 211 177 macro init.radec.range
Note:
See TracChangeset
for help on using the changeset viewer.
