Instrument Line Shapes
Using packages:
using Plots
using Plots.PlotMeasures
This needs to be installed from https://github.com/RadiativeTransfer/RadiativeTransfer.jl
using RadiativeTransfer.Absorption
using InstrumentOperator
Load HITRAN data and CO2 cross sections
hitran_data = read_hitran(artifact("CO2"), mol=2, iso=1, ν_min=6000, ν_max=6400)
line_co2 = make_hitran_model(hitran_data, Voigt(), architecture=CPU())
Compute a high resolution transmission spectrum
Δν = 0.0025
ν_min = 6320;
ν_max = 6355;
ν = ν_min:Δν:ν_max;
CO₂ cross section at 800hPa and 296K:
σ_co2 = absorption_cross_section(line_co2, ν, 800.0, 296.0);
nothing #hide
Transmission through a typical atmosphere (8e21 molec/cm²)
T = exp.(-8e21*σ_co2);
nothing #hide
plot high resolution transmission
plot(ν, T, lw=2, label="High resolution", top_margin = 10mm, bottom_margin = 10mm, left_margin = 5mm, right_margin = 5mm)
Define the instrument kernel grid
x = -8:Δν:8;
Create a kernel at a center wavenumber of 6300cm⁻¹
Use FTS with 5cm MOPD, FOV of 7.9mrad, no assymetry:
FTS = FTSInstrument(5.0, 7.9e-3, 0.0)
FTSkernel = create_instrument_kernel(FTS, x,6300.0)
margin = 5.0
sampling = 0.01
FTS_instr = FixedKernelInstrument(FTSkernel, collect(ν_min+margin:sampling:ν_max-margin))
FixedKernelInstrument{Float64}([3.103154742108218e-7, 4.118639572709501e-7, 5.10936422300988e-7, 6.069187065724935e-7, 6.992153234676476e-7, 7.872531563628298e-7, 8.70485016820565e-7, 9.48393044991749e-7, 1.0204919311077903e-6, 1.086331938023197e-6 … -4.267180266584847e-6, -3.4450483239496215e-6, -2.701208008292877e-6, -2.0401948666991217e-6, -1.4660311248207805e-6, -9.822012192814042e-7, -5.916306596842205e-7, -2.9666834841354145e-7, -9.907246502968032e-8, 5.618484051898666e-19], [6325.0, 6325.01, 6325.02, 6325.03, 6325.04, 6325.05, 6325.06, 6325.07, 6325.08, 6325.09 … 6349.91, 6349.92, 6349.93, 6349.94, 6349.95, 6349.96, 6349.97, 6349.98, 6349.99, 6350.0])
Convolve with instrument kernel
T_conv = conv_spectra(FTS_instr, ν, T);
nothing #hide
overplot convolved transmission:
plot!(FTS_instr.ν_out, T_conv, label="Convolved")
This page was generated using Literate.jl.