Skip to content

Commit 737bd95

Browse files
committed
add params for calc rvs
1 parent ade17e3 commit 737bd95

File tree

1 file changed

+27
-20
lines changed

1 file changed

+27
-20
lines changed

examples/daily_rvs_v1.2.jl

Lines changed: 27 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ verbose = true
22
using Dates
33
if verbose println(now()) end
44
if verbose && !isdefined(Main,:RvSpectML) println("# Loading RvSpecML") end
5+
using PDMats # SOme dependancy needs this explicit first
56
using RvSpectMLBase
67
using EchelleCCFs
78
using EchelleInstruments#, EchelleInstruments.NEID
@@ -59,6 +60,14 @@ println("# Parsing arguments...")
5960
arg_type = String
6061
default = "template"
6162
#default = "gaussian"
63+
"--frac_of_width_to_fit"
64+
help = "Regions of CCF to fit, as fraction of measured width."
65+
arg_type = Float64
66+
default = 0.5
67+
"--measure_width_at_frac_depth"
68+
help = "Measure CCF width at this fractional depth."
69+
arg_type = Float64
70+
default = 0.5
6271
"--template_file"
6372
help = "Filename with CCF template stored as 'order_ccfs' with 'clean_obs_mask' for which observations to include (jld2)."
6473
arg_type = String
@@ -138,8 +147,7 @@ println("# Parsing arguments...")
138147
arg_type = Int
139148
default = 300 # TODO: Increase after finish testing
140149
end
141-
142-
return parse_args(s)
150+
return parse_args(s)
143151
end
144152
args = parse_commandline()
145153
@assert any(map(alg->occursin(alg,args["rv_alg"]), ["template","gaussian","quadratic"] ))
@@ -196,21 +204,21 @@ manifest_use = manifest |>
196204
@filter( args["max_solar_hour_angle"] == nothing || abs(_.hour_angle) <= args["max_solar_hour_angle"] ) |>
197205
#@filter( args["start_time"] == nothing || Time(julian2datetime(_.bjd)) >= start_time ) |>
198206
#@filter( args["stop_time"] == nothing || Time(julian2datetime(_.bjd)) <= stop_time ) |> # TODO for other instruments may need to deal wtih cross end of 24 UTC
199-
@filter( args["min_expmeter"] == nothing || _.expmeter_mean >= args["min_expmeter"] ) |>
207+
@filter( args["min_expmeter"] == nothing || _.expmeter_mean >= args["min_expmeter"] ) |>
200208
DataFrame
201209

202210
if hasproperty(manifest_use,:mean_pyroflux) && hasproperty(manifest_use,:rms_pyroflux)
203-
manifest_use = manifest_use |>
211+
manifest_use = manifest_use |>
204212
@filter( args["max_pyrhelio_frac_rms"] == nothing || _.rms_pyroflux <= args["max_pyrhelio_frac_rms"] * _.mean_pyroflux ) |>
205213
DataFrame
206214
else
207215
println("# Warning: mean_pyroflux and rms_pyroflux not found. Reverting to expmeter_mean and expmeter_rms.")
208-
manifest_use = manifest_use |>
216+
manifest_use = manifest_use |>
209217
@filter( args["max_expmeter_frac_rms"] == nothing || _.expmeter_rms <= args["max_expmeter_frac_rms"] * _.expmeter_mean ) |>
210218
DataFrame
211219
end
212220

213-
manifest_use = manifest_use |>
221+
manifest_use = manifest_use |>
214222
@take(args["max_num_spectra"] ) |> @orderby(_.bjd) |>
215223
DataFrame
216224

@@ -222,7 +230,7 @@ end
222230

223231
obs_to_use = map(i->searchsortedfirst(manifest.bjd,manifest_use.bjd[i]),1:size(manifest_use,1) )
224232
(num_vels, num_orders_to_use, num_obs) = size(input_data["order_ccfs"])
225-
233+
226234
order_ccfs = input_data["order_ccfs"]
227235
order_ccf_vars = input_data["order_ccf_vars"]
228236
non_nan_mask = map(i->(!any(isnan.(view(order_ccfs,:,:,i)))) && (!any(isnan.(view(order_ccf_vars,:,:,i)))), obs_to_use)
@@ -237,9 +245,9 @@ if !(sum(mask) >= 1)
237245
end
238246

239247
println("# Found ", length(obs_to_use), " files of ", size(manifest,1), " to use for RVs.")
240-
#df_out = manifest_use |> @rename(:drp_ccfjdmod=>:jd_drp,:drp_ccfrvmod => :rv_drp,:drp_dvrmsmod => :σrv_drp,
241-
df_out = manifest |> @rename(:drp_ccfjdmod=>:jd_drp,:drp_ccfrvmod => :rv_drp,:drp_dvrmsmod => :σrv_drp,
242-
:mean_pyroflux=>:pyrflux_mean, :rms_pyroflux=>:pyrflux_rms ) |> DataFrame
248+
#df_out = manifest_use |> @rename(:drp_ccfjdmod=>:jd_drp,:drp_ccfrvmod => :rv_drp,:drp_dvrmsmod => :σrv_drp,
249+
df_out = manifest |> @rename(:drp_ccfjdmod=>:jd_drp,:drp_ccfrvmod => :rv_drp,:drp_dvrmsmod => :σrv_drp,
250+
:mean_pyroflux=>:pyrflux_mean, :rms_pyroflux=>:pyrflux_rms ) |> DataFrame
243251
df_out[!,"mask"] = mask
244252

245253
ccf_sum = reshape(sum(order_ccfs,dims=2),num_vels,num_obs)
@@ -253,7 +261,7 @@ v_grid = collect(input_data["v_grid"])
253261
if occursin("template",args["rv_alg"])
254262
if isnothing(args["template_file"])
255263
template_ccf = view(ccf_sum,:,obs_to_use)
256-
template_ccf_var = view(ccf_var_sum,:,obs_to_use)
264+
template_ccf_var = view(ccf_var_sum,:,obs_to_use)
257265
else
258266
template_filename = args["template_file"]
259267
@assert isfile(template_filename) || islink(template_filename)
@@ -272,20 +280,20 @@ if occursin("template",args["rv_alg"])
272280
template_ccf_var = reshape(sum(view(template_order_ccf_vars,:,:,template_obs_to_use),dims=2),num_vels,template_num_obs)
273281
end
274282
#ccf_template = EchelleCCFs.calc_ccf_template(view(ccf_sum,:,obs_to_use), view(ccf_var_sum,:,obs_to_use) )
275-
ccf_template = EchelleCCFs.calc_ccf_template(template_ccf, template_ccf_var)
283+
ccf_template = EchelleCCFs.calc_ccf_template(template_ccf, template_ccf_var,frac_of_width_to_fit=args["frac_of_width_to_fit"], measure_width_at_frac_depth=args["measure_width_at_frac_depth"])
276284
alg_template = MeasureRvFromCCFTemplate(v_grid=collect(v_grid),template=ccf_template)
277285
rvs_template = DataFrame(map(i->any(isnan.(view(ccf_sum,:,i))) ? (rv=NaN, σ_rv=NaN) : measure_rv_from_ccf(v_grid,view(ccf_sum,:,i),view(ccf_var_sum,:,i),alg=alg_template),1:num_obs))
278286
df_out[!,Symbol("rv_template")] = rvs_template.rv
279287
df_out[!,Symbol("σrv_template")] = rvs_template.σ_rv
280288
end
281289
if occursin("gaussian",args["rv_alg"])
282-
alg_gauss = MeasureRvFromCCFGaussian(frac_of_width_to_fit=0.25)
290+
alg_gauss = MeasureRvFromCCFGaussian(frac_of_width_to_fit=args["frac_of_width_to_fit"], measure_width_at_frac_depth=args["measure_width_at_frac_depth"])
283291
rvs_gauss = DataFrame(map(i->any(isnan.(view(ccf_sum,:,i))) ? (rv=NaN, σ_rv=NaN) : measure_rv_from_ccf(v_grid,view(ccf_sum,:,i),view(ccf_var_sum,:,i),alg=alg_gauss),1:num_obs))
284-
df_out[!,Symbol("rv_gaussian")] = rvs_gauss.rv
292+
df_out[!,Symbol("rv_template")]= rvs_gauss.rv
285293
df_out[!,Symbol("σrv_gaussian")] = rvs_gauss.σ_rv
286294
end
287295
if occursin("quadratic",args["rv_alg"])
288-
alg_quad = MeasureRvFromCCFQuadratic(frac_of_width_to_fit=0.25)
296+
alg_quad = MeasureRvFromCCFQuadratic(frac_of_width_to_fit=args["frac_of_width_to_fit"], measure_width_at_frac_depth=args["measure_width_at_frac_depth"])
289297
rvs_quad = DataFrame(map(i->any(isnan.(view(ccf_sum,:,i))) ? (rv=NaN, σ_rv=NaN) : measure_rv_from_ccf(v_grid,view(ccf_sum,:,i),view(ccf_var_sum,:,i),alg=alg_quad),1:num_obs))
290298
df_out[!,Symbol("rv_quadratic")] = rvs_quad.rv
291299
df_out[!,Symbol("σrv_quadratic")] = rvs_quad.σ_rv
@@ -299,15 +307,15 @@ for j in 1:num_orders_to_use
299307
# Templated-based
300308
if isnothing(args["template_file"])
301309
global template_ccf = view(order_ccfs,:,j,obs_to_use)
302-
global template_ccf_var = view(order_ccf_vars,:,j,obs_to_use)
310+
global template_ccf_var = view(order_ccf_vars,:,j,obs_to_use)
303311
else
304312
global template_ccf = view(template_order_ccfs,:,j,template_obs_to_use)
305-
global template_ccf_var = view(template_order_ccf_vars,:,j,template_obs_to_use)
313+
global template_ccf_var = view(template_order_ccf_vars,:,j,template_obs_to_use)
306314
end
307315
#local ccf_template = EchelleCCFs.calc_ccf_template(view(order_ccfs,:,j,obs_to_use), view(order_ccf_vars,:,j,obs_to_use) )
308316
local ccf_template = EchelleCCFs.calc_ccf_template(template_ccf, template_ccf_var)
309-
local alg_template = MeasureRvFromCCFTemplate(v_grid=collect(v_grid),template=ccf_template)
310-
order_rvs_template = DataFrame(map(i->any(isnan.(view(order_ccfs,:,j,i))) ? (rv=NaN, σ_rv=NaN) : measure_rv_from_ccf(v_grid,view(order_ccfs,:,j,i),view(order_ccf_vars,:,j,i),alg=alg_template),1:num_obs))
317+
local alg_template = MeasureRvFromCCFTemplate(v_grid=collect(v_grid),template=ccf_template, frac_of_width_to_fit=args["frac_of_width_to_fit"], measure_width_at_frac_depth=args["measure_width_at_frac_depth"])
318+
order_rvs_template = DataFrame(map(i->any(isnan.(view(order_ccfs,:,j,i))) ? (rv=NaN, σ_rv=NaN) : measure_rv_from_ccf(v_grid,view(order_ccfs,:,j,i),view(order_ccf_vars,:,j,i),alg=alg_template),1:num_obs))
311319
df_out[!,Symbol("rv_" * string(orders_physical[j]) * "_template")] = order_rvs_template.rv
312320
df_out[!,Symbol("σrv_" * string(orders_physical[j]) * "_template")] = order_rvs_template.σ_rv
313321
end
@@ -327,4 +335,3 @@ end
327335

328336
println("# Writing daily RVs.")
329337
CSV.write(daily_rvs_filename,df_out)
330-

0 commit comments

Comments
 (0)