4 #include <boost/foreach.hpp> 27 bool Convert_from_photon)
28 : param(Param), convert_from_photon(Convert_from_photon)
30 using namespace units;
42 Os <<
"SolarContinuumPolynomial:\n" 46 Os <<
"\n Parameter units: \n";
56 Array<double, 1> wl = spec_domain.
wavelength();
60 res.
value.resize(wl.shape());
61 res.
units = param.units;
62 res.
value = param.value(param.value.size() - 1);
63 for(
int i = ((
int) param.value.size()) - 2; i >= 0; i--) {
65 res.
value += param.value(i);
69 if(convert_from_photon)
const Unit s("s", 1.0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0)
This class calculates the solar continuum spectrum.
virtual void print(std::ostream &Os) const
Print description of object.
virtual Spectrum solar_continuum_spectrum(const SpectralDomain &spec_domain) const
This calculate the solar continuum spectrum.
This is a filtering stream that adds a pad to the front of every line written out.
For different instruments, it is more natural to either work with wavenumbers (e.g., GOSAT) or wavelength (e.g., OCO).
#define REGISTER_LUA_DERIVED_CLASS(X, Y)
blitz::Array< double, 1 > wavelength(const Unit &Units=units::micron) const
Return data as wavelengths You can optionally supply the units to use.
const Unit micron("micron", 1e-6 *m)
blitz::Array< T, D > value
Apply value function to a blitz array.
This class calculates the solar continuum spectrum.
This is a full spectrum, which contains a SpectralRange and SpectralDomain.
const Unit m("m", 1.0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)
We have a number of different spectrums that appear in different parts of the code.
ArrayWithUnit< double, 1 > photon_to_radiance_factor() const
We may want to convert from photon number per second to radiance units.
bool is_commensurate(const Unit &Units) const
Test if this set of units is commensurate with another set.
SolarContinuumPolynomial(const ArrayWithUnit< double, 1 > &Param, bool Convert_from_photon=true)
Constructor.
Contains classes to abstract away details in various Spurr Radiative Transfer software.
#define REGISTER_LUA_END()
#define range_min_check(V, Min)
Range check.
const Unit ph("ph", 1.0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0)