1 #include <boost/lexical_cast.hpp> 26 :input(new
HdfFile(input_filename))
35 TinyVector<int, 2> lat_shape = input->read_shape<2>(group_name +
"/latitude");
41 std::string rad_ds_name = group_name +
"/radiance_" + boost::lexical_cast<std::string>(Spec_index + 1);
42 std::string uncert_ds_name = group_name +
"/uncertainty_" + boost::lexical_cast<std::string>(Spec_index + 1);
44 TinyVector<int, 2> rad_ds_shape = input->read_shape<2>(rad_ds_name);
45 TinyVector<int, 2> rad_start, rad_size;
46 rad_start = data_index, 0;
47 rad_size = 1, rad_ds_shape(1);
49 Unit(
"Ph sec^{-1} m^{-2} sr^{-1} um^{-1}"),
52 if (input->has_object(uncert_ds_name)) {
53 TinyVector<int, 2> uncert_ds_shape = input->read_shape<2>(uncert_ds_name);
54 TinyVector<int, 2> uncert_start, uncert_size;
55 uncert_start = data_index, 0;
56 uncert_size = 1, uncert_ds_shape(1);
57 Array<double, 2> uncertainty = input->read_field<double, 2>(uncert_ds_name, uncert_start, uncert_size);
65 DoubleWithUnit ExampleLevel1b::read_scalar_with_unit(
const std::string& dataset_name,
int i,
const Unit& default_unit)
const 68 TinyVector<int, 2> start, size;
69 start = data_index, i;
75 double ExampleLevel1b::read_scalar(
const std::string& dataset_name,
int i)
const 78 TinyVector<int, 2> start, size;
79 start = data_index, i;
81 Array<double, 2> val_arr = input->read_field<double, 2>(dataset_name, start, size);
89 TinyVector<int, 3> ds_shape = input->read_shape<3>(dataset_name);
90 TinyVector<int, 3> start, size;
91 start = data_index, i, 0;
92 size = 1, 1, ds_shape(2);
98 ret_val.value.resize(ds_shape(2));
99 ret_val.value = val_arr.
value(0, 0, Range::all());
104 Array<double, 1> ExampleLevel1b::read_array(
const std::string& dataset_name,
int i)
const 107 TinyVector<int, 3> ds_shape = input->read_shape<3>(dataset_name);
108 TinyVector<int, 3> start, size;
109 start = data_index, i, 0;
110 size = 1, 1, ds_shape(2);
111 Array<double, 3> val_arr = input->read_field<double, 3>(dataset_name, start, size);
112 return val_arr(0, 0, Range::all());
#define range_check(V, Min, Max)
Range check.
This is used to wrap the nominal Level 1B file reader.
We frequently have a array of numbers with units associated with them.
Defines a simple mechanism by where a specific dataset from a HDF file is read along with some sort o...
#define REGISTER_LUA_DERIVED_CLASS(X, Y)
ExampleLevel1b(const boost::shared_ptr< HdfFile > &input_file, const std::string &observation_id)
blitz::Array< T, D > value
virtual int number_spectrometer() const
Number of spectrometers.
This class reads and writes a HDF5 file.
Apply value function to a blitz array.
We frequently have a double with units associated with it.
We have a number of different spectrums that appear in different parts of the code.
This is an example L1B reader that reads a HDF formatted file that corresponds one-to-one with the ex...
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()
virtual SpectralRange radiance(int Spec_index) const
Radiance, for given spectral band.
double value(const FullPhysics::AutoDerivative< double > &Ad)