Changeset 40491 for trunk/psModules/src/objects/models/fwhm.sh
- Timestamp:
- Jun 27, 2018, 4:11:56 PM (8 years ago)
- Location:
- trunk/psModules
- Files:
-
- 2 edited
-
. (modified) (1 prop)
-
src/objects/models/fwhm.sh (modified) (7 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/psModules
-
Property svn:mergeinfo
set to
/branches/czw_branch/20160809/psModules merged eligible /branches/czw_branch/20170908/psModules merged eligible
-
Property svn:mergeinfo
set to
-
trunk/psModules/src/objects/models/fwhm.sh
r38280 r40491 161 161 end 162 162 163 # qgauss is like ps1_v1 with z^2.25164 macro find.fwhm. qgauss163 # hsc 164 macro find.fwhm.hscv1 165 165 if ($0 != 2) 166 echo "USAGE: find. qgauss(K)"166 echo "USAGE: find.fwhm (K)" 167 167 break 168 168 end … … 180 180 create z 0 50 $dz 181 181 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.0184 185 set f = $K*z + z^ 2.25- 1.0186 set dfdz = $K + 2.25*z^1.25182 # 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 187 187 188 188 #lim -n 0 z f; clear; box; plot z f 189 189 #lim -n 1 z dfdz; clear; box; plot z dfdz 190 190 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 193 194 194 195 $Zg = 0.5*(z[$nZ0] + z[$nZ1]) … … 206 207 $dZ = $Fg / $dFdz_g 207 208 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 224 end 225 226 # qgauss is like ps1_v1 with z^2.25 227 macro 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 208 271 # echo $Zg $Fg $dZ $dFdz_g 209 272 … … 223 286 if ($0 != 4) 224 287 echo "USAGE: fwhm.trend (model) (struct) (output)" 225 echo " model: pgauss, rgauss, ps1v1, qgauss "288 echo " model: pgauss, rgauss, ps1v1, qgauss, hscv1" 226 289 break 227 290 end … … 229 292 delete fwhm_v k_v 230 293 231 $SAVE = 0294 $SAVE = 1 232 295 if ($SAVE) exec rm -f $3 233 296 if ($SAVE) output $3 … … 240 303 if ($SAVE) echo "# define MIN_FWHM_BIN $minK" 241 304 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[] = \{" 243 306 244 307 for k $minK $maxK $delK -incl … … 247 310 concat $FWHM fwhm_v 248 311 end 249 if ($SAVE) echo "\}@"312 # if ($SAVE) echo "\}@" 250 313 if ($SAVE) output stdout 251 314 252 lim k_v fwhm_v; clear; box; plot k_v fwhm_v -pt 10 -sz 1.0253 end 254 315 # lim k_v fwhm_v; clear; box; plot k_v fwhm_v -pt 10 -sz 1.0 316 end 317
Note:
See TracChangeset
for help on using the changeset viewer.
