24 .def(luabind::constructor<>())
25 .def(
"as_register_output_base", &hr_spec_as_register_output_base)
26 .def(
"add_as_observer", &hr_spec_add_as_standard_fm_observer)
27 .def(
"add_as_observer", &hr_spec_add_as_lsi_rt_observer)
33 Array<double, 1> res(0);
38 int nrow = s->spectral_domain().data().rows();
39 Range save_range(res.rows(), res.rows() + nrow - 1);
40 res.resizeAndPreserve(res.rows() + nrow);
41 res(save_range) = s->spectral_domain().data();
49 Array<double, 1> res(0);
54 int nrow = s->spectral_range().data().rows();
55 Range save_range(res.rows(), res.rows() + nrow - 1);
56 res.resizeAndPreserve(res.rows() + nrow);
57 res(save_range) = s->spectral_range().data();
72 register_named_spectrum(Obs,
"grid_",
"radiance_");
82 register_named_spectrum(named_spec,
"",
"reflectance_");
86 const std::string& domain_prefix,
const std::string& range_prefix) {
87 std::vector<boost::shared_ptr<Spectrum> > &name_spec_vec = saved_spectra[named_spec->name()];
88 if ((
int) name_spec_vec.size() <= named_spec->index())
89 name_spec_vec.resize(named_spec->index()+1);
92 named_spec->spectral_range().clone()) );
98 boost::function<Array<double, 1>() > f;
100 if (domain_prefix.length() > 0) {
102 out->register_data_source(
"/HighResSpectra/" + domain_prefix + named_spec->name(), f);
105 if (range_prefix.length() > 0) {
107 out->register_data_source(
"/HighResSpectra/" + range_prefix + named_spec->name(), f);
const blitz::Array< double, 1 > saved_spectral_domain(const std::string &spectra_name)
const Unit s("s", 1.0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0)
This does a Low Stream Interpolator correction to another RadiativeTransfer object.
virtual void notify_update(const boost::shared_ptr< NamedSpectrum > &Obs)
On notification this class registers a dataset based on the name in the NamedSpectrum.
This class will recieve observer notifications from any class that pushes out NamedSpectrum and write...
virtual void add_observer(Observer< std::vector< boost::shared_ptr< NamedSpectrum > > > &Obs)
Required observable functions.
#define REGISTER_LUA_CLASS(X)
Apply value function to a blitz array.
This is the forward model used form GOSAT/OCO.
This is a full spectrum, which contains a SpectralRange and SpectralDomain.
virtual void add_observer(Observer< boost::shared_ptr< NamedSpectrum > > &Obs)
Required observable functions.
const blitz::Array< double, 1 > saved_spectral_range(const std::string &spectra_name)
As described in the Output class, we have a decentralized model of producing output for L2 Full Physi...
Contains classes to abstract away details in various Spurr Radiative Transfer software.
#define REGISTER_LUA_END()