1 #ifndef SPECTRAL_DOMAIN_H 2 #define SPECTRAL_DOMAIN_H 7 #include <blitz/array.h> 41 const blitz::Array<int, 1>& Sindex,
44 const blitz::Array<int, 1>& Sindex,
47 const blitz::Array<int, 1>& Sindex);
59 const blitz::Array<double, 1>&
data()
const {
return data_.
value();}
77 const blitz::Array<int, 1>&
sample_index()
const {
return sindex_; }
106 void print(std::ostream& Os)
const { Os <<
"SpectralDomain";}
112 {
return (A.data_ == this->data_) && (A.units_ == this->units_) ; }
114 {
return !(A == *
this); }
122 blitz::Array<int, 1> sindex_;
bool operator==(const SpectralDomain &A) const
We can define != in terms of this operator.
bool operator!=(const SpectralDomain &A) const
SpectralDomain()
Default constructor needed for SWIG.
For different instruments, it is more natural to either work with wavenumbers (e.g., GOSAT) or wavelength (e.g., OCO).
const ArrayAd< double, 1 > & data_ad() const
Underlying data, possibly with a Jacobian.
const SpectralDomain clone() const
Clones object into a new copy.
blitz::Array< double, 1 > wavelength(const Unit &Units=units::micron) const
Return data as wavelengths You can optionally supply the units to use.
This is a Mixin for classes that can be printed.
const Unit micron("micron", 1e-6 *m)
const Unit A("A", 1.0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0)
const blitz::Array< T, D > & value() const
const Unit inv_cm("cm^-1", pow(cm, -1))
blitz::Array< double, 1 > convert_wave(const Unit &Units) const
Return data as the supplied the units.
ArrayAd< T, D > copy() const
const blitz::Array< int, 1 > & sample_index() const
Return sample index.
TypePreference type_preference() const
Indicate if this class prefers wavelength or wavenumber.
ArrayWithUnit< double, 1 > photon_to_radiance_factor() const
We may want to convert from photon number per second to radiance units.
Libraries such as boost::units allow unit handling where we know the units at compile time...
blitz::Array< double, 1 > wavenumber(const Unit &Units=units::inv_cm) const
Return data as wavenumbers.
const Unit units() const
Units that go with data()
bool is_commensurate(const Unit &Units) const
Test if this set of units is commensurate with another set.
Contains classes to abstract away details in various Spurr Radiative Transfer software.
const blitz::Array< double, 1 > & data() const
Return data.
void print(std::ostream &Os) const