1 #ifndef BAD_SAMPLE_NOISE_MODEL_H 2 #define BAD_SAMPLE_NOISE_MODEL_H 4 #include <boost/shared_ptr.hpp> 20 Underlying_noise_model,
21 const blitz::Array<T, 2>& Bad_sample_mask,
22 double Bad_sample_uncer)
23 : underlying_noise_model_(Underlying_noise_model),
24 bad_sample_uncer_(Bad_sample_uncer)
26 using namespace blitz;
27 bad_sample_mask_.resize(Bad_sample_mask.shape());
28 for(
int i = 0; i < bad_sample_mask_.rows(); ++i)
29 bad_sample_mask_(i, Range::all()) = where(Bad_sample_mask(i, Range::all()),
true,
false);
31 virtual blitz::Array<double, 1>
uncertainty(
int Spec_index,
const blitz::Array<double, 1>& Radiance)
const;
33 virtual void print(std::ostream& Os)
const;
37 {
return underlying_noise_model_;}
39 {
return bad_sample_mask_;}
42 blitz::Array<bool, 2> bad_sample_mask_;
43 double bad_sample_uncer_;
const blitz::Array< bool, 2 > & bad_sample_mask() const
virtual blitz::Array< double, 1 > uncertainty(int Spec_index, const blitz::Array< double, 1 > &Radiance) const
Calculate uncertainty, using underlying model except where we have bad samples, where we set this to ...
Apply value function to a blitz array.
const boost::shared_ptr< NoiseModel > & underlying_noise_model() const
virtual void print(std::ostream &Os) const
Print description of object.
BadSampleNoiseModel(const boost::shared_ptr< NoiseModel > &Underlying_noise_model, const blitz::Array< T, 2 > &Bad_sample_mask, double Bad_sample_uncer)
Interface for calculating noise/uncertainty values from radiance data given some internal representat...
When we have bad samples, we usually pass this to the spectral window to prevent the sample from even...
double bad_sample_uncertainty() const
Contains classes to abstract away details in various Spurr Radiative Transfer software.