Skip to content

Commit f5ca8d1

Browse files
authored
Merge pull request #19 from christiangil/main: add Spectra2DExtended struct
adding Spectra2DExtended struct
2 parents a25cf0f + 2aa8916 commit f5ca8d1

2 files changed

Lines changed: 25 additions & 1 deletion

File tree

src/types/spectra.jl

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,20 @@ struct Spectra2DBasic{T1<:Real,T2<:Real,T3<:Real,
5050
metadata::MetadataT # Dict{Symbol,Any}
5151
end
5252

53+
""" Basic struct for Spectra2D (or region of specturm)
54+
Instruments can specialize their own if additional data is avaliable. """
55+
struct Spectra2DExtended{T1<:Real,T2<:Real,T3<:Real,
56+
AA1<:AbstractArray{T1,2},AA2<:AbstractArray{T2,2},AA3<:AbstractArray{T3,2},
57+
InstT<:AbstractInstrument
58+
} <: AbstractSpectra2D
59+
λ::AA1
60+
λ_obs::AA1
61+
flux::AA2
62+
var::AA3
63+
inst::InstT
64+
metadata::MetadataT # Dict{Symbol,Any}
65+
end
66+
5367

5468
function Spectra1DBasic::A1, flux::A2, var::A3, inst::InstT;
5569
metadata::Dict{Symbol,Any} = Dict{Symbol,Any}() ) where {
@@ -73,3 +87,13 @@ function Spectra2DBasic(λ::A1, flux::A2, var::A3, inst::InstT;
7387
@assert 1 <= min_pixel_in_order(inst) <= max_pixel_in_order(inst)
7488
Spectra2DBasic{eltype(λ),eltype(flux),eltype(var),typeof(λ),typeof(flux),typeof(var),typeof(inst)}(λ,flux,var,inst,metadata)
7589
end
90+
91+
function Spectra2DExtended::A1, λ_obs::A1, flux::A2, var::A3, inst::InstT;
92+
metadata::MetadataT = MetadataT() ) where {
93+
T1<:Real, T2<:Real, T3<:Real, A1<:AbstractArray{T1,2}, A2<:AbstractArray{T2,2}, A3<:AbstractArray{T3,2},
94+
InstT<:AbstractInstrument }
95+
@assert size(λ) == size(λ_obs) == size(flux) == size(var)
96+
@assert 1 <= size(λ,1) <= max_pixel_in_order(inst)-min_pixel_in_order(inst)+1
97+
@assert 1 <= size(λ,2) <= max_order(inst)-min_order(inst)+1
98+
Spectra2DExtended{eltype(λ),eltype(flux),eltype(var),typeof(λ),typeof(flux),typeof(var),typeof(inst)}(λ,λ_obs,flux,var,inst,metadata)
99+
end

src/types/types.jl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ export AbstractInstrument, AbstractInstrument1D, AbstractInstrument2D
66

77
include("spectra.jl")
88
export AbstractSpectra, AbstractSpectra1D, AbstractSpectra2D
9-
export Spectra1DBasic, Spectra2DBasic
9+
export Spectra1DBasic, Spectra2DBasic, Spectra2DExtended
1010

1111
include("chunks.jl")
1212
export AbstractChunkOfSpectrum, ChunkOfSpectrum

0 commit comments

Comments
 (0)