19 (boost::dynamic_pointer_cast<AbsorberAbsco>(A), Sb));
39 { blitz::Array<double, 1> res(sb.number_spectrometer());
40 for(
int i = 0; i < res.rows(); ++i) {
43 if(abs(sb.upper_bound(i).value - sb.lower_bound(i).value) > 0) {
45 res(i) = absco->table_scale(wn.
value);
62 double xco2_value()
const {
return abs->xgas(
"CO2").value(); }
69 {
return abs->pressure_weighting_function_grid().value(); }
71 {
return abs->dry_air_column_thickness_layer().convert(
Unit(
"m^-2")).value.value(); }
73 {
return abs->wet_air_column_thickness_layer().convert(
Unit(
"m^-2")).value.value(); }
87 if(afreeze->gas_index(
"CO2") != -1)
88 out->register_data_source(
"/RetrievalResults/xco2_apriori",
91 if(afreeze->gas_index(
"O2") != -1)
92 out->register_data_source(
"/RetrievalResults/apriori_o2_column",
100 if(a->gas_index(
"CO2") != -1) {
101 out->register_data_source(
"/RetrievalResults/xco2",
103 out->register_data_source_pad
104 (
"/RetrievalResults/xco2_pressure_weighting_function",
106 num_level, fill_value<double>());
108 out->register_data_source(
"/RetrievalResults/retrieved_co2_column",
112 if(a->gas_index(
"O2") != -1) {
113 out->register_data_source(
"/RetrievalResults/retrieved_o2_column",
116 out->register_data_source(
"/Metadata/VMRO2",
120 if(a->gas_index(
"H2O") != -1) {
121 out->register_data_source(
"/RetrievalResults/retrieved_h2o_column",
124 out->register_data_source_pad(
"/RetrievalResults/retrieved_h2o_column_layer_thickness",
129 out->register_data_source_pad(
"/RetrievalResults/retrieved_dry_air_column_layer_thickness",
132 out->register_data_source_pad(
"/RetrievalResults/retrieved_wet_air_column_layer_thickness",
134 for(
int i = 0; i < a->number_species(); ++i) {
135 std::string gas_name = a->gas_name(i);
137 boost::dynamic_pointer_cast<
Absco>(a->gas_absorption_ptr(gas_name));
141 out->register_data_source(
"/Metadata/Absco" + gas_name +
"Scale",
This class is used to read the absco tables.
blitz::Array< double, 1 > absco_scale() const
double average_vmr_o2_value() const
double xco2_value() const
This class maintains the absorber portion of the state.
virtual void register_output_apriori(const boost::shared_ptr< Output > &out) const
Register apriori portions of class.
blitz::Array< double, 1 > layer_column_thickness_h2o_value() const
#define REGISTER_LUA_DERIVED_CLASS(X, Y)
virtual void register_output(const boost::shared_ptr< Output > &out) const
Register portions of class that will be written to output.
This registers the portions of the Absorber class that should be written as output.
Apply value function to a blitz array.
const Unit A("A", 1.0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0)
This gives the upper and lower bounds of the SpectralWindow.
blitz::Array< double, 1 > dry_air_column_thickness_value() const
We frequently have a double with units associated with it.
double total_column_thickness_co2_value() const
blitz::Array< double, 1 > pressure_weighting_function_grid_value() const
As described in the Output class, we have a decentralized model of producing output for L2 Full Physi...
double total_column_thickness_o2_value() const
Libraries such as boost::units allow unit handling where we know the units at compile time...
Contains classes to abstract away details in various Spurr Radiative Transfer software.
#define REGISTER_LUA_END()
def(luabind::constructor< int >()) .def("rows"
blitz::Array< double, 1 > wet_air_column_thickness_value() const
AbsorberAbscoOutputHelper(const boost::shared_ptr< AbsorberAbsco > &Abs)
double total_column_thickness_h2o_value() const
GasAbscoOutputHelper(const boost::shared_ptr< Absco > &Ab, const SpectralBound &Sb)