1 #ifndef NONUNIFORM_SPECTRUM_SAMPLING_H 2 #define NONUNIFORM_SPECTRUM_SAMPLING_H 3 #include <boost/shared_ptr.hpp> 45 {
return interpolated_sampling->
52 {
return (spec_domain[Spec_index].data().rows() > 0); }
53 virtual void print(std::ostream& Os)
const;
57 std::vector<SpectralDomain> spec_domain;
virtual SpectralDomain spectral_domain_interpolated(int Spec_index, const SpectralDomain &Lowres_grid, const DoubleWithUnit &Ils_half_width) const
The interpolated spectral domain.
For different instruments, it is more natural to either work with wavenumbers (e.g., GOSAT) or wavelength (e.g., OCO).
virtual ~NonuniformSpectrumSampling()
This determines the sampling of the spectrum that should be used for each of the spectrum indexes...
We frequently have a double with units associated with it.
NonuniformSpectrumSampling(const SpectralDomain &Grid, const boost::shared_ptr< SpectrumSampling > &Interpolated_sampling)
Constructor.
virtual bool need_interpolation(int Spec_index) const
Indicate if spectral_domain and spectral_domain_interpolated are different at all.
Contains classes to abstract away details in various Spurr Radiative Transfer software.
virtual SpectralDomain spectral_domain(int spec_index, const SpectralDomain &Lowres_grid, const DoubleWithUnit &Ils_half_width) const
Wavenumbers/Wavelengths to use for the given spectrometer.
virtual void print(std::ostream &Os) const
Print to stream.
This is a simple SpectrumSampling that is just a nonuniform sampling.