13 double wn_end,
double wn_step)
17 int nspec = (int) floor((wn_end + 0.05 * wn_step - wn_start) / wn_step) + 1;
18 Array<double, 1>
wn(nspec);
19 for(
int i = 0; i < nspec; ++i)
20 wn(i) = wn_start + i * wn_step;
30 double wn_start1,
double wn_end1,
double wn_step1,
31 double wn_start2,
double wn_end2,
double wn_step2,
32 double wn_start3,
double wn_end3,
double wn_step3)
35 int nspec1 = (int) floor((wn_end1 + 0.05 * wn_step1 - wn_start1) / wn_step1) + 1;
36 int nspec2 = (int) floor((wn_end2 + 0.05 * wn_step2 - wn_start2) / wn_step2) + 1;
37 int nspec3 = (int) floor((wn_end3 + 0.05 * wn_step3 - wn_start3) / wn_step3) + 1;
38 Array<double, 1>
wn(nspec1);
39 for(
int i = 0; i < nspec1; ++i)
40 wn(i) = wn_start1 + i * wn_step1;
43 for(
int i = 0; i < nspec2; ++i)
44 wn(i) = wn_start2 + i * wn_step2;
47 for(
int i = 0; i < nspec3; ++i)
48 wn(i) = wn_start3 + i * wn_step3;
58 Os <<
"SimpleFixedSpectrumSampling";
60 Os <<
" " << i + 1 <<
":\n" 61 <<
" wn_start: " << spec_domain[i].data()(0) <<
"\n" 62 <<
" wn_end: " << spec_domain[i].data()(spec_domain[i].data().rows() - 1) <<
"\n" 63 <<
" wn_space: " << spec_domain[i].data()(1) - spec_domain[i].data()(0) <<
"\n";
SimpleFixedSpectrumSampling(double wn_start, double wn_end, double wn_step)
Constructor.
For different instruments, it is more natural to either work with wavenumbers (e.g., GOSAT) or wavelength (e.g., OCO).
int number_spectrometer() const
Number of spectrometers we have.
virtual void print(std::ostream &Os) const
Print to stream.
Apply value function to a blitz array.
This determines the sampling of the spectrum that should be used for each of the spectrum indexes...
Contains classes to abstract away details in various Spurr Radiative Transfer software.