21 #ifndef otbSailModel_h
22 #define otbSailModel_h
24 #include "OTBSimulationExport.h"
78 itkSetMacro(LAI,
double);
79 itkGetMacro(LAI,
double);
83 itkSetMacro(Angl,
double);
84 itkGetMacro(Angl,
double);
88 itkSetMacro(PSoil,
double);
89 itkGetMacro(PSoil,
double);
93 itkSetMacro(Skyl,
double);
94 itkGetMacro(Skyl,
double);
98 itkSetMacro(HSpot,
double);
99 itkGetMacro(HSpot,
double);
103 itkSetMacro(TTS,
double);
104 itkGetMacro(TTS,
double);
108 itkSetMacro(TTO,
double);
109 itkGetMacro(TTO,
double);
113 itkSetMacro(PSI,
double);
114 itkGetMacro(PSI,
double);
118 itkGetMacro(FCoverView,
double);
135 using Superclass::SetInput;
146 void PrintSelf(std::ostream& os, itk::Indent indent)
const override;
149 using Superclass::MakeOutput;
157 double Jfunc1(
const double k,
const double l,
const double t)
const;
158 double Jfunc2(
const double k,
const double l,
const double t)
const;
159 double Jfunc3(
const double k,
const double l,
const double t)
const;
162 void Volscatt(
const double tts,
const double tto,
const double psi,
const double ttl,
VectorType& result)
const;
185 #ifndef OTB_MANUAL_INSTANTIATION
This class implements the SAIL model (see http://teledetection.ipgp.jussieu.fr/prosail/).
virtual SpectralResponseType * GetHemisphericalAbsorptance()
void SetInput(const ParametersType &)
void Campbell(const double ala, VectorType &freq) const
DataObjectPointer MakeOutput(DataObjectPointerArraySizeType) override
virtual SpectralResponseType * GetHemisphericalReflectance()
double Jfunc3(const double k, const double l, const double t) const
SpectralResponseType * GetTransmittance()
virtual SpectralResponseType * GetViewingAbsorptance()
itk::SmartPointer< Self > Pointer
double Jfunc2(const double k, const double l, const double t) const
Superclass::SpectralResponseType SpectralResponseType
void PrintSelf(std::ostream &os, itk::Indent indent) const override
const ParametersType GetInput()
void Calc_LIDF(const double a, VectorType &lidf) const
SpectralResponseType * GetReflectance()
itk::SmartPointer< const Self > ConstPointer
void operator=(const Self &)=delete
SimulationStep2Base Superclass
void UseExternalSoilDB(std::shared_ptr< SoilDataBase > SoilDB, vcl_size_t SoilIndex)
double Jfunc1(const double k, const double l, const double t) const
SailModel(const Self &)=delete
void SetReflectance(const SpectralResponseType *object) override
itk::ProcessObject::DataObjectPointerArraySizeType DataObjectPointerArraySizeType
std::shared_ptr< SoilDataBase > m_SoilDataBase
void SetTransmittance(const SpectralResponseType *object) override
virtual SpectralResponseType * GetViewingReflectance()
Superclass::ParametersType ParametersType
void GenerateData() override
std::vector< double > VectorType
void Volscatt(const double tts, const double tto, const double psi, const double ttl, VectorType &result) const
Base class for all methods that generate spectrum of an object using its reflectance and transmittanc...
itk::Array< ParametersValueType > ParametersType
This class represents the spectral response of an object (or a satellite band).
The "otb" namespace contains all Orfeo Toolbox (OTB) classes.