IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Ignore:
Timestamp:
Jun 27, 2018, 4:11:56 PM (8 years ago)
Author:
eugene
Message:

add new psf model type for HSC

Location:
trunk/psModules
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/psModules

  • trunk/psModules/src/objects/models/fwhm.sh

    r38280 r40491  
    161161end
    162162
    163 # qgauss is like ps1_v1 with z^2.25
    164 macro find.fwhm.qgauss
     163# hsc
     164macro find.fwhm.hscv1
    165165  if ($0 != 2)
    166     echo "USAGE: find.qgauss (K)"
     166    echo "USAGE: find.fwhm (K)"
    167167    break
    168168  end
     
    180180  create z 0 50 $dz
    181181
    182   # set f = 1.0 / (1.0 + $K*z + z^2.25)
    183   # f = $K*z + z^2.25 - 1.0, find where f == 0.0
    184  
    185   set f = $K*z + z^2.25 - 1.0
    186   set dfdz = $K + 2.25*z^1.25
     182  # set f = 1.0 / (1.0 + $K*z + z^1.667)
     183  # f = $K*z + z^1.667 - 1.0, find where f == 0.0
     184 
     185  set f = $K*z + z^1.8 - 1.0
     186  set dfdz = $K + 1.8*z^0.8
    187187
    188188  #lim -n 0 z f; clear; box; plot z f
    189189  #lim -n 1 z dfdz; clear; box; plot z dfdz 
    190190
    191   $nZ0 = 0
    192   $nZ1 = 5 / $dz
     191  # these just need to bound the solution
     192  $nZ0 = 0.5 / $dz
     193  $nZ1 = 5.0 / $dz
    193194
    194195  $Zg = 0.5*(z[$nZ0] + z[$nZ1]) 
     
    206207    $dZ = $Fg / $dFdz_g
    207208
     209    # echo -no-return $Zg $Fg $dZ $dFdz_g
     210
     211    $Zg -= $dZ
     212
     213    $Zg = max ($Zg , 0)
     214    $Zg = min ($Zg , z[-2])
     215    $nZg = int($Zg / $dz)
     216   
     217    # echo ": $Zg $nZg"
     218  end
     219  # echo $Zg $Fg $dZ $dFdz_g
     220  $Zhm = $Zg
     221  $FWHM = 2*sqrt(2*$Zg)
     222
     223  fprintf "%4.2f, // %4.1f, %4.2f" $FWHM $K $Zhm
     224end
     225
     226# qgauss is like ps1_v1 with z^2.25
     227macro find.fwhm.qgauss
     228  if ($0 != 2)
     229    echo "USAGE: find.qgauss (K)"
     230    break
     231  end
     232 
     233  $K = $1
     234
     235  if ($K == 0.0)
     236    $Zhm = 1.0
     237    $FWHM = 2*sqrt(2)
     238    fprintf "%4.2f, // %4.1f, %4.2f" $FWHM $K $Zhm
     239    return
     240  end
     241
     242  $dz = 0.01
     243  create z 0 50 $dz
     244
     245  # set f = 1.0 / (1.0 + $K*z + z^2.25)
     246  # f = $K*z + z^2.25 - 1.0, find where f == 0.0
     247 
     248  set f = $K*z + z^2.25 - 1.0
     249  set dfdz = $K + 2.25*z^1.25
     250
     251  #lim -n 0 z f; clear; box; plot z f
     252  #lim -n 1 z dfdz; clear; box; plot z dfdz 
     253
     254  $nZ0 = 0
     255  $nZ1 = 5 / $dz
     256
     257  $Zg = 0.5*(z[$nZ0] + z[$nZ1]) 
     258  $nZg = int($Zg / $dz)
     259  $dZ = 1.0
     260
     261  for i 0 10
     262    # interpolate between $nZg and $nZg + 1
     263    $Fg = f[$nZg] + ($Zg - $nZg*$dz)*(f[$nZg+1] - f[$nZg])/$dz
     264    $dFdz_g = dfdz[$nZg] + ($Zg - $nZg*$dz)*(dfdz[$nZg+1] - dfdz[$nZg])/$dz
     265
     266    # $Fg = f[$nZg]
     267    # $dFdz_g = dfdz[$nZg]
     268
     269    $dZ = $Fg / $dFdz_g
     270
    208271    # echo $Zg $Fg $dZ $dFdz_g
    209272
     
    223286  if ($0 != 4)
    224287    echo "USAGE: fwhm.trend (model) (struct) (output)"
    225     echo "  model: pgauss, rgauss, ps1v1, qgauss"
     288    echo "  model: pgauss, rgauss, ps1v1, qgauss, hscv1"
    226289    break
    227290  end
     
    229292  delete fwhm_v k_v
    230293
    231   $SAVE = 0
     294  $SAVE = 1
    232295  if ($SAVE) exec rm -f $3
    233296  if ($SAVE) output $3
     
    240303  if ($SAVE) echo "# define MIN_FWHM_BIN $minK"
    241304  if ($SAVE) echo "# define N_FWHM_BIN {int(($maxK - $minK) / $delK) + 1}"
    242   if ($SAVE) echo "static float $2[] = \{"
     305#  if ($SAVE) echo "static float $2[] = \{"
    243306
    244307  for k $minK $maxK $delK -incl
     
    247310    concat $FWHM fwhm_v
    248311  end
    249   if ($SAVE) echo "\}@"
     312#  if ($SAVE) echo "\}@"
    250313  if ($SAVE) output stdout
    251314
    252   lim k_v fwhm_v; clear; box; plot k_v fwhm_v -pt 10 -sz 1.0
    253 end
    254 
     315#  lim k_v fwhm_v; clear; box; plot k_v fwhm_v -pt 10 -sz 1.0
     316end
     317
Note: See TracChangeset for help on using the changeset viewer.