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.FixedKernelInstrumentType
struct 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

source
InstrumentOperator.VariableKernelInstrumentType
struct 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

source