PSF-Matching Notes for DM-8088

Goal:  Make a PSF-Matched Warp/CoaddTempExp by warping first and PSF-matching second on ci_hsc data.


Why?  
Warping after PSF-Matching will undo the matching if the warping is not a circularly-symmetric rotation or scaling.   SDSS example:  fields with Dec~60deg warped to an inappropriate CEA projection which skews images. We’d never do this, but it demos how PSF-matching first (right) fails.  


Challenges: 
  1. Psf-Matching code has hard-coded assumptions about PSF dimensions and kernel sizes. 
  • Matching kernel dimensions < Science PSF dimensions
  • Science PSF dimensions = Template PSF dimensions
  • Obvious naive solution is padding the Science PSF dimensions, which hasn’t been giving good solutions. 

  1. Warping a PSF gives PSF dimensions that vary across an image.
  1. Warping a PSF gives PSF dimensions that vary from visit to visit.  

Step 1:  Establish baseline performance for HSC. 


Currently, ModelPSFMatch will only operate on a KernelPsf.  To get the true baseline performance without editing ip_diffim requires running processCcd with PcaPsf rather than the obs_subaru default, PsfexPsf. 

makeCoaddTempExp Configs:

  1. Basic
doApplyUberCal=False
doPsfMatch=True
modelPsf.size=39

  1. Check variety of Model PSF sigma:
modelPsf.defaultFwhm=7 to modelPsf.defaultFwhm=15


  1. Check Kernel dimensions:
There are two ways to control the kernel size:
  1. config.warpAndPsfMatch.psfMatch.kernel['AL'].scaleByFwhm=False
  • uses the configs:

# Number of rows/columns in the convolution kernel; should be odd-valued.
#                  Modified by kernelSizeFwhmScaling if scaleByFwhm = true
config.warpAndPsfMatch.psfMatch.kernel['AL'].kernelSize=35

# Sigma in pixels of Gaussians (FWHM = 2.35 sigma).  Must in number equal alardNGauss
config.warpAndPsfMatch.psfMatch.kernel['AL'].alardSigGauss=[0.7, 1.5, 3.0]


#!/bin/bash                                                                           
ks=(11 13 15 17 19 21 23 25 27 29 31 33 35)
for i in "${ks[@]}"
do
echo "config.warpAndPsfMatch.psfMatch.kernel['AL'].kernelSize=$i