Changeset 41717
- Timestamp:
- Jul 13, 2021, 10:50:28 AM (5 years ago)
- Location:
- trunk/tools/eam/teleff
- Files:
-
- 3 edited
-
cammask.pro (modified) (8 diffs)
-
diffmask.pro (modified) (6 diffs)
-
warpmask.pro (modified) (7 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/tools/eam/teleff/cammask.pro
r41716 r41717 8 8 if (not($?MATCH_RADIUS)) set MATCH_RADIUS = 2.0 9 9 10 $SMF_FIELDS = X_PSF Y_PSF RA_PSF DEC_PSF CAL_PSF_MAG PSF_QF PSF_QF_PERFECT11 $REF_FIELDS = Rref Dref Mref12 $XTR_FIELDS = Xref Yref Nref Q1ref10 $SMF_FIELDS_CAM = X_PSF Y_PSF RA_PSF DEC_PSF CAL_PSF_MAG PSF_QF PSF_QF_PERFECT 11 $REF_FIELDS_CAM = Rref Dref Mref 12 $XTR_FIELDS_CAM = Xref Yref Nref Q1ref 13 13 14 14 macro get.camera.eff … … 46 46 # load the reference source table 47 47 # NOTE: Mref is chosen to match filter for this exposure 48 data $refsrcs; read -fits DATA $REF_FIELDS 48 data $refsrcs; read -fits DATA $REF_FIELDS_CAM 49 49 set Nref = ramp(Rref) 50 50 … … 70 70 get.chip.mask.stats $camMask:$i 71 71 72 foreach field SMF_FIELDS 72 foreach field SMF_FIELDS_CAM 73 73 concat $field\_found $field\_out 74 74 delete $field\_found 75 75 end 76 foreach field REF_FIELDS $XTR_FIELDS76 foreach field REF_FIELDS_CAM $XTR_FIELDS_CAM 77 77 concat $field\_onchp $field\_out 78 78 delete $field\_onchp … … 81 81 82 82 $OUT_FIELDS = 83 foreach field $SMP_FIELDS $REF_FIELDS $XTR_FIELDS83 foreach field $SMP_FIELDS_CAM $REF_FIELDS_CAM $XTR_FIELDS_CAM 84 84 $OUT_FIELDS = $OUT_FIELDS $field\_out 85 85 end 86 86 87 sprintf output "%s/%s.%s. %s.cam.stf" $OUTDIR $expname $chipName:$i$OUTVERSION87 sprintf output "%s/%s.%s.cam.stf" $OUTDIR $expname $OUTVERSION 88 88 write -fits DATA $output $OUT_FIELDS 89 89 end … … 127 127 # do we need to grow the range at all? 128 128 set keep = (Rref >= $minR) && (Rref <= $maxR) && (Dref >= $minD) && (Dref <= $maxD) 129 foreach field $REF_FIELDS Nref129 foreach field $REF_FIELDS_CAM Nref 130 130 subset $field\_tmp = $field if keep 131 131 end … … 138 138 # generate a subset of sources which are within the boundaries of the chip 139 139 set keep = (Xref_tmp >= 0) && (Xref_tmp <= $NAXIS1) && (Yref_tmp >= 0) && (Yref_tmp <= $NAXIS2) 140 foreach field $REF_FIELDS Nref Xref Yref140 foreach field $REF_FIELDS_CAM Nref Xref Yref 141 141 subset $field\_onchp = $field\_tmp if keep 142 142 delete $field\_tmp … … 148 148 if ($USE_EXTNAME) 149 149 sprintf extname "%s.psf" $chipname 150 read -fits $extname $SMF_FIELDS 150 read -fits $extname $SMF_FIELDS_CAM 151 151 else 152 read -fits {$chipnseq+1} -extnum $SMF_FIELDS 152 read -fits {$chipnseq+1} -extnum $SMF_FIELDS_CAM 153 153 end 154 154 155 155 # match radius currently needs to be larger for MPC objects 156 156 match2d Xref_onchp Yref_onchp X_PSF Y_PSF $MATCH_RADIUS -closest 157 foreach field $SMF_FIELDS 157 foreach field $SMF_FIELDS_CAM 158 158 reindex $field\_found = $field using index1 -keep-unmatched 159 159 end … … 328 328 # load the reference source table 329 329 # NOTE: Mref is chosen to match filter for this exposure 330 data $refsrcs; read -fits DATA $REF_FIELDS 330 data $refsrcs; read -fits DATA $REF_FIELDS_CAM 331 331 set Nref = ramp(Rref) 332 332 -
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 -
trunk/tools/eam/teleff/warpmask.pro
r41712 r41717 5 5 $OUTDIR = . 6 6 $OUTVERSION = XXX 7 8 $REF_FIELDS_WRP = Rref Dref Mref 9 $XTR_FIELDS_WRP = Xref Yref Nref Q1ref 7 10 8 11 macro get.warp.eff … … 39 42 data $refsrcs 40 43 # NOTE: Mref is chosen to match filter for this exposure 41 data $refsrcs; read -fits DATA Rref Dref Mref44 data $refsrcs; read -fits DATA $REF_FIELDS_WRP 42 45 set Nref = ramp(Rref) 43 46 if ($VERBOSE) echo "loaded Rref[] sources from reference $refsrcs" … … 47 50 get.warp.mask.stats $warpMask:$i 48 51 49 sprintf output "%s/%s.%s.%s.warp.stf" $OUTDIR $expname $skycell:$i $OUTVERSION 50 write -fits DATA $output RrefSS DrefSS MrefSS XrefSS YrefSS Q1refSS 51 end 52 foreach field REF_FIELDS_WRP $XTR_FIELDS_WRP 53 concat $field\_onchp $field\_out 54 delete $field\_onchp 55 end 56 end 57 58 $OUT_FIELDS = 59 foreach field $REF_FIELDS_WRP $XTR_FIELDS_WRP 60 $OUT_FIELDS = $OUT_FIELDS $field\_out 61 end 62 63 sprintf output "%s/%s.%s.%s.warp.stf" $OUTDIR $expname $skycell:$i $OUTVERSION 64 write -fits DATA $output $OUT_FIELDS 52 65 end 53 66 … … 67 80 68 81 # select the sources which are within the bounds of this image 69 # output is Xref SS YrefSS RrefSS DrefSS MrefSS82 # output is Xref_onchp Yref_onchp Rref_onchp Dref_onchp Mref_onchp 70 83 get.warp.detect.coords mk 71 84 … … 75 88 # I want to set an image based on the bit values but I fear 76 89 # the mask has been converted to a float when read 77 forcedphot mkPerfect XrefSS YrefSS -output Q1refSS 78 79 subset tmp = Q1refSS where (Q1refSS > 0.85) 80 81 if ($VERBOSE) echo tmp[] of Q1refSS[] are unmasked 90 forcedphot mkPerfect Xref_onchp Yref_onchp -output Q1ref_onchp 91 92 subset tmp = Q1ref_onchp where (Q1ref_onchp > 0.85) 93 if ($VERBOSE) echo tmp[] of Q1ref_onchp[] are unmasked 82 94 end 83 95 … … 92 104 end 93 105 94 local buffname 106 local buffname NAXIS1 NAXIS2 95 107 $buffname = $1 96 108 … … 106 118 # do we need to grow the range at all? 107 119 set keep = (Rref >= $minR) && (Rref <= $maxR) && (Dref >= $minD) && (Dref <= $maxD) 108 subset RrefS = Rref if keep109 subset DrefS = Drefif keep110 subset MrefS = Mref if keep120 foreach field $REF_FIELDS_WRP Nref 121 subset $field\_tmp = $field if keep 122 end 111 123 112 124 # convert the subset coordinates to pixels 113 set Xref S = RrefS114 set Yref S = DrefS115 coords -q $buffname -c Xref S YrefS125 set Xref_tmp = Rref_tmp 126 set Yref_tmp = Dref_tmp 127 coords -q $buffname -c Xref_tmp Yref_tmp 116 128 117 129 # generate a subset of sources which are within the boundaries of the chip 118 set keep = (XrefS >= 0) && (XrefS <= $NAXIS1) && (YrefS >= 0) && (YrefS <= $NAXIS2) 119 subset XrefSS = XrefS if keep 120 subset YrefSS = YrefS if keep 121 subset RrefSS = RrefS if keep 122 subset DrefSS = DrefS if keep 123 subset MrefSS = MrefS if keep 130 set keep = (Xref_tmp >= 0) && (Xref_tmp <= $NAXIS1) && (Yref_tmp >= 0) && (Yref_tmp <= $NAXIS2) 131 foreach field $REF_FIELDS_WRP Nref Xref Yref 132 subset $field\_onchp = $field\_tmp if keep 133 delete $field\_tmp 134 end 124 135 end 125 136
Note:
See TracChangeset
for help on using the changeset viewer.
