Skip to content

Commit 2f695d8

Browse files
committed
Merge branch 'main' of github.com:RvSpectML/RvSpectMLBase.jl into main
2 parents 19afcbf + 91f5756 commit 2f695d8

4 files changed

Lines changed: 23 additions & 8 deletions

File tree

Project.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ Statistics = "10745b16-79ce-11e8-11f9-7d13ad32a3b2"
1616

1717
[compat]
1818
CSV = "0.7, 0.8"
19-
DataFrames = "0.21, 0.22"
19+
DataFrames = "0.21, 0.22, 1.0, 1.1"
2020
Interpolations = "0.12, 0.13"
2121
NaNMath = "0.3"
2222
Query = "1.0"

src/types/spectra.jl

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,9 @@ function Spectra2DBasic(λ::A1, flux::A2, var::A3, inst::InstT;
6767
InstT<:AbstractInstrument }
6868
@assert size(λ) == size(flux)
6969
@assert size(λ) == size(var)
70-
@assert 1 <= min_pixel_in_order(inst) <= max_pixel_in_order(inst) <= size(λ,1)
71-
@assert 1 <= min_order(inst) <= max_order(inst) <= size(λ,2)
70+
@assert 1 <= size(λ,1) <= max_pixel_in_order(inst)
71+
@assert 1 <= size(λ,2) <= max_order(inst)
72+
@assert 1 <= min_order(inst) <= max_order(inst)
73+
@assert 1 <= min_pixel_in_order(inst) <= max_pixel_in_order(inst)
7274
Spectra2DBasic{eltype(λ),eltype(flux),eltype(var),typeof(λ),typeof(flux),typeof(var),typeof(inst)}(λ,flux,var,inst,metadata)
7375
end

src/util/physics.jl

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,8 @@ calc_doppler_factor(rv::Real, v_perp::Real) = (one(rv) + rv/speed_of_light_mps)/
4343

4444
calc_doppler_factor(;z::Real) = one(z) + z
4545

46+
calc_doppler_factor(;rv_kmps::Real) = one(rv_kmps) + rv_kmps*1000.0/speed_of_light_mps
47+
4648

4749
"""
4850
`absorption_line(x; mid, width, depth)`

src/util/spectra.jl

Lines changed: 16 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ global have_issued_ssb_warning = false
4242
global have_issued_drift_warning = false
4343
global have_issued_diffext_warning = false
4444
function apply_doppler_boost!(spectra::AS, dict::AbstractDict ) where { AS<:AbstractSpectra }
45-
global have_issued_ssb_warning, have_issued_drift_warning, have_issued_diffext_warning
45+
global have_issued_ssb_warning, have_issued_drift_warning, have_issued_diffext_warning, have_issued_multiple_ssb_warning
4646
local doppler_factor = one(eltype(spectra.λ))
4747
#= NEID drift model is now included in wavelengths provided
4848
if !haskey(dict,:drift_rv) && !haskey(dict,:drift_z ) && !have_issued_drift_warning
@@ -55,14 +55,24 @@ function apply_doppler_boost!(spectra::AS, dict::AbstractDict ) where { AS<:Abst
5555
doppler_factor *= calc_doppler_factor(dict[:drift_rv])
5656
end
5757
=#
58-
if !haskey(dict,:ssb_rv) && !haskey(dict,:ssbz) && !have_issued_ssb_warning
59-
@info "apply_doppler_boost! didn't find :ssb_rv or :ssbz to apply."
58+
if !haskey(dict,:ssb_rv) && !haskey(dict,:ssbz) && !haskey(dict,:ssb_rv_kmps) && !have_issued_ssb_warning
59+
@info "apply_doppler_boost! didn't find :ssbz, :ssb_rv or :ssb_rv_kmps to apply."
6060
have_issued_ssb_warning = true
6161
end
6262
if haskey(dict,:ssbz)
6363
doppler_factor *= calc_doppler_factor(z=dict[:ssbz])
64+
if haskey(dict,:ssb_rv) || haskey(dict,:ssb_rv_kmps)
65+
@info "apply_doppler_boost! found ssbz and either ssb_rv or ssb_rv_kmps. Defaulting to only use ssbz."
66+
have_issued_multiple_ssb_warning = true
67+
end
6468
elseif haskey(dict,:ssb_rv)
6569
doppler_factor *= calc_doppler_factor(dict[:ssb_rv])
70+
if haskey(dict,:ssb_rv_kmps)
71+
@info "apply_doppler_boost! found ssb_rv (in m/s) and ssb_rv_kmps (in km/s). Defaulting to only use ssb_rv."
72+
have_issued_multiple_ssb_warning = true
73+
end
74+
elseif haskey(dict,:ssb_rv_kmps)
75+
doppler_factor *= calc_doppler_factor(rv_kmps=dict[:ssb_rv_kmps])
6676
end
6777
#=
6878
# Now plan to apply correction at end, rather than to wavelength
@@ -71,6 +81,7 @@ function apply_doppler_boost!(spectra::AS, dict::AbstractDict ) where { AS<:Abst
7181
have_issued_diffext_warning = true
7282
end
7383
if haskey(dict,:diff_ext_rv) doppler_factor *= calc_doppler_factor.(dict[:diff_ext_rv]) end
84+
if haskey(dict,:binaryRV) doppler_factor *= calc_doppler_factor.(dict[:binaryRV]) end
7485
apply_doppler_boost!(spectra,doppler_factor)
7586
=#
7687
return spectra
@@ -122,11 +133,11 @@ function calc_snr end
122133

123134
function calc_snr(flux::AbstractArray{T1},var::AbstractArray{T2}) where {T1<:Real, T2<:Real}
124135
@assert size(flux) == size(var)
125-
sqrt(NaNMath.sum( flux.^2 ./ var))
136+
sqrt(NaNMath.sum( max.(0.0,flux.^2 ./ var)))
126137
end
127138

128139
function calc_snr(flux::Real,var::Real)
129-
flux / sqrt(var)
140+
flux / sqrt(max(0.0,var))
130141
end
131142

132143
function calc_snr(spectrum::ST, pixels::AR, order::Integer) where { ST<:AbstractSpectra2D, AR<:AbstractRange{Int64}, AA1<:AbstractArray{Int64,1} } #, AAR<:AbstractArray{AR,1} }

0 commit comments

Comments
 (0)