IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Changeset 41717


Ignore:
Timestamp:
Jul 13, 2021, 10:50:28 AM (5 years ago)
Author:
eugene
Message:

code cleanup : try to simplify names of temp and output vectors, method to subset the group

Location:
trunk/tools/eam/teleff
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/tools/eam/teleff/cammask.pro

    r41716 r41717  
    88if (not($?MATCH_RADIUS)) set MATCH_RADIUS = 2.0
    99
    10 $SMF_FIELDS = X_PSF Y_PSF RA_PSF DEC_PSF CAL_PSF_MAG PSF_QF PSF_QF_PERFECT
    11 $REF_FIELDS = Rref Dref Mref
    12 $XTR_FIELDS = Xref Yref Nref Q1ref
     10$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
    1313
    1414macro get.camera.eff
     
    4646 # load the reference source table
    4747 # 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
    4949 set Nref = ramp(Rref)
    5050
     
    7070   get.chip.mask.stats $camMask:$i
    7171
    72    foreach field SMF_FIELDS
     72   foreach field SMF_FIELDS_CAM
    7373     concat $field\_found $field\_out
    7474     delete $field\_found
    7575   end
    76    foreach field REF_FIELDS $XTR_FIELDS
     76   foreach field REF_FIELDS_CAM $XTR_FIELDS_CAM
    7777     concat $field\_onchp $field\_out
    7878     delete $field\_onchp
     
    8181
    8282 $OUT_FIELDS =
    83  foreach field $SMP_FIELDS $REF_FIELDS $XTR_FIELDS
     83 foreach field $SMP_FIELDS_CAM $REF_FIELDS_CAM $XTR_FIELDS_CAM
    8484   $OUT_FIELDS = $OUT_FIELDS $field\_out
    8585 end
    8686
    87  sprintf output "%s/%s.%s.%s.cam.stf" $OUTDIR $expname $chipName:$i $OUTVERSION
     87 sprintf output "%s/%s.%s.cam.stf" $OUTDIR $expname $OUTVERSION
    8888 write -fits DATA $output $OUT_FIELDS
    8989end
     
    127127  # do we need to grow the range at all?
    128128  set keep = (Rref >= $minR) && (Rref <= $maxR) && (Dref >= $minD) && (Dref <= $maxD)
    129   foreach field $REF_FIELDS Nref
     129  foreach field $REF_FIELDS_CAM Nref
    130130    subset $field\_tmp = $field if keep
    131131  end
     
    138138  # generate a subset of sources which are within the boundaries of the chip
    139139  set keep = (Xref_tmp >= 0) && (Xref_tmp <= $NAXIS1) && (Yref_tmp >= 0) && (Yref_tmp <= $NAXIS2)
    140   foreach field $REF_FIELDS Nref Xref Yref
     140  foreach field $REF_FIELDS_CAM Nref Xref Yref
    141141    subset $field\_onchp = $field\_tmp if keep
    142142    delete $field\_tmp
     
    148148  if ($USE_EXTNAME)
    149149    sprintf extname "%s.psf" $chipname
    150     read -fits $extname $SMF_FIELDS
     150    read -fits $extname $SMF_FIELDS_CAM
    151151  else
    152     read -fits {$chipnseq+1} -extnum $SMF_FIELDS
     152    read -fits {$chipnseq+1} -extnum $SMF_FIELDS_CAM
    153153  end
    154154
    155155  # match radius currently needs to be larger for MPC objects
    156156  match2d Xref_onchp Yref_onchp X_PSF Y_PSF $MATCH_RADIUS -closest
    157   foreach field $SMF_FIELDS
     157  foreach field $SMF_FIELDS_CAM
    158158    reindex $field\_found = $field using index1 -keep-unmatched
    159159  end
     
    328328 # load the reference source table
    329329 # 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
    331331 set Nref = ramp(Rref)
    332332
  • trunk/tools/eam/teleff/diffmask.pro

    r41712 r41717  
    1010
    1111if (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
    1216
    1317macro get.diff.eff
     
    4448  # load the reference source table
    4549  # how to choose the name of the filter?
    46   data $refsrcs; read -fits DATA Rref Dref Mref
     50  data $refsrcs; read -fits DATA $REF_FIELDS_DIF
    4751  set Nref = ramp(Rref)
    4852  if ($VERBOSE) echo "loaded Rref[] sources from reference $refsrcs"
     
    5862    if ("$diffMask:$i" == "")
    5963      echo "no mask file found for $i, skipping maskstats"
    60       set Q1refSS = zero(XrefSS) + NAN
     64      set Q1ref_onchp = zero(Xref_onchp) + NAN
    6165    else
    6266      get.diff.mask.stats $diffMask:$i
    6367    end
    6468
    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
    6886end
    6987
     
    7896  end
    7997
    80   local filename
     98  local filename NAXIS1 NAXIS2
    8199  $filename = $1
    82100  if ("$filename" == "")
     
    100118  # do we need to grow the range at all?
    101119  set keep = (Rref >= $minR) && (Rref <= $maxR) && (Dref >= $minD) && (Dref <= $maxD)
    102   subset RrefS = Rref if keep
    103   subset DrefS = Dref if keep
    104   subset MrefS = Mref if keep
     120  foreach field $REF_FIELDS_DIF Nref
     121    subset $field\_tmp = $field if keep
     122  end
    105123
    106124  # convert the subset coordinates to pixels
    107   set XrefS = RrefS
    108   set YrefS = DrefS
    109   coords -q hdr -c XrefS YrefS
     125  set Xref_tmp = Rref_tmp
     126  set Yref_tmp = Dref_tmp
     127  coords -q hdr -c Xref_tmp Yref_tmp
    110128
    111129  # generate a subset of sources which are within the boundaries of the skycell
    112130  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
    118135
    119136  # now read the smf detections
    120137  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
    137144end
    138145
     
    160167  # I want to set an image based on the bit values but I fear
    161168  # 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
     173end
     174
     175## utilities
    210176
    211177macro init.radec.range
  • trunk/tools/eam/teleff/warpmask.pro

    r41712 r41717  
    55$OUTDIR     = .
    66$OUTVERSION = XXX
     7
     8$REF_FIELDS_WRP = Rref Dref Mref
     9$XTR_FIELDS_WRP = Xref Yref Nref Q1ref
    710
    811macro get.warp.eff
     
    3942  data $refsrcs
    4043  # NOTE: Mref is chosen to match filter for this exposure
    41   data $refsrcs; read -fits DATA Rref Dref Mref
     44  data $refsrcs; read -fits DATA $REF_FIELDS_WRP
    4245  set Nref = ramp(Rref)
    4346  if ($VERBOSE) echo "loaded Rref[] sources from reference $refsrcs"
     
    4750    get.warp.mask.stats $warpMask:$i
    4851
    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
    5265end
    5366
     
    6780
    6881  # select the sources which are within the bounds of this image
    69   # output is XrefSS YrefSS RrefSS DrefSS MrefSS
     82  # output is Xref_onchp Yref_onchp Rref_onchp Dref_onchp Mref_onchp
    7083  get.warp.detect.coords mk
    7184
     
    7588  # I want to set an image based on the bit values but I fear
    7689  # 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
    8294end
    8395
     
    92104  end
    93105
    94   local buffname
     106  local buffname NAXIS1 NAXIS2
    95107  $buffname = $1
    96108
     
    106118  # do we need to grow the range at all?
    107119  set keep = (Rref >= $minR) && (Rref <= $maxR) && (Dref >= $minD) && (Dref <= $maxD)
    108   subset RrefS = Rref if keep
    109   subset DrefS = Dref if keep
    110   subset MrefS = Mref if keep
     120  foreach field $REF_FIELDS_WRP Nref
     121    subset $field\_tmp = $field if keep
     122  end
    111123
    112124  # convert the subset coordinates to pixels
    113   set XrefS = RrefS
    114   set YrefS = DrefS
    115   coords -q $buffname -c XrefS YrefS
     125  set Xref_tmp = Rref_tmp
     126  set Yref_tmp = Dref_tmp
     127  coords -q $buffname -c Xref_tmp Yref_tmp
    116128
    117129  # 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
    124135end
    125136
Note: See TracChangeset for help on using the changeset viewer.