InstrumentOperator.jl
Collection of instrument line-shape methods for hyperspectral remote sensing. Basic objective is to provide composable routines to apply a variety of instrument line-shapes (ILS) for the convolution and resampling of high resolution modeled radiance (R) with an instrument operator. At the moment, we have FTS systems (sinc function convolved with assymetric box), spectrally varying lookup tables as for the Orbiting Carbon Observatory and generic distribution functions (e.g. Gaussian) as instrument kernels.
The main purpose is thus to provide a flexible framework to create ILS functions as $ILS(\Delta\lambda)$ with appropriate upper/lower limits to perform the convolution at the high resolution grid:
\[(R*ILS)(\lambda_{hr}) = \int_{-\infty}^{\infty} R(x)ILS(\lambda_{hr}-x)dx\]
and the necessary interpolation from the high resolution (hr) grid to the low resolution (lr) detector grid after convolution.
\[(R*ILS)(\lambda_{hr}) \xrightarrow{\text{Cubic Spline}} (R*ILS)(\lambda_{lr})\]
To simplify calculations, we require the high resolution grid to be equidistant, ideally defined as Range. The ILS kernel (implemented as OffsetArray
) and the grid in R
thus require the same spacing, as we implement the convolution using finite response functions over indices in both ILS and R:
\[(R*ILS)(\lambda_i)=\sum_{m=-M}^{M}R[\lambda_i-m]ILS[m]\]
Installation
InstrumentOperator can be installed using the Julia package manager. From the Julia REPL, type ]
to enter the Pkg REPL mode and run
pkg> add https://github.com/RadiativeTransfer/InstrumentOperator.jl
Specific functions, structs
InstrumentOperator.create_instrument_kernel
— FunctionCreate kernel from a single continous distribution function
Create kernel from multiple single continous distribution function (convolves those)
InstrumentOperator.conv_spectra
— FunctionConvolves and resamples the input spectrum with a fixed kernel
Convolves and resamples the input spectrum with a variable kernel (per spectral position)
InstrumentOperator.FixedKernelInstrument
— Typestruct FixedKernelInstrument{FT}
A struct which provides all parameters for the convolution with a kernel, which is identical across the instrument spectral axis
Fields
kernel
convolution Kernel
ν_out
Output spectral grid
InstrumentOperator.VariableKernelInstrument
— Typestruct VariableInstrument{FT}
A struct which provides all parameters for the convolution with a kernel, which varies across the instrument spectral axis
Fields
kernel
convolution Kernel
ν_out
Output spectral grid
ind_out
Output index grid