22 #ifndef otbReflectanceToSurfaceReflectanceImageFilter_h
23 #define otbReflectanceToSurfaceReflectanceImageFilter_h
31 #include "itkMetaDataDictionary.h"
49 template <
class TInput,
class TOutput>
110 outPixel =
static_cast<TOutput
>(temp2);
138 template <
class TInputImage,
class TOutputImage>
141 TInputImage, TOutputImage,
142 typename Functor::ReflectanceToSurfaceReflectanceImageFunctor<typename TInputImage::InternalPixelType, typename TOutputImage::InternalPixelType>>
146 itkStaticConstMacro(InputImageDimension,
unsigned int, TInputImage::ImageDimension);
147 itkStaticConstMacro(OutputImageDimension,
unsigned int, TOutputImage::ImageDimension);
201 m_AtmosphericRadiativeTerms = atmoRadTerms;
202 this->SetNthInput(1, m_AtmosphericRadiativeTerms);
203 m_IsSetAtmosphericRadiativeTerms =
true;
212 m_AtmoCorrectionParameters = atmoCorrTerms;
213 this->SetNthInput(2, m_AtmoCorrectionParameters);
214 m_IsSetAtmoCorrectionParameters =
true;
223 m_AcquiCorrectionParameters = acquiCorrTerms;
224 this->SetNthInput(3, m_AcquiCorrectionParameters);
225 m_IsSetAcquiCorrectionParameters =
true;
233 void GenerateParameters();
236 itkSetMacro(UseGenerateParameters,
bool);
237 itkGetMacro(UseGenerateParameters,
bool);
238 itkBooleanMacro(UseGenerateParameters);
242 itkSetMacro(IsSetAtmosphericRadiativeTerms,
bool);
243 itkGetMacro(IsSetAtmosphericRadiativeTerms,
bool);
244 itkBooleanMacro(IsSetAtmosphericRadiativeTerms);
255 void PrintSelf(std::ostream& os, itk::Indent indent)
const override;
258 void BeforeThreadedGenerateData()
override;
261 void UpdateAtmosphericRadiativeTerms();
264 void UpdateFunctors();
267 void Modified()
const override;
289 #ifndef OTB_MANUAL_INSTANTIATION
This class contains all atmospheric correction parameters.
itk::SmartPointer< Self > Pointer
This class is a vector of AtmosphericRadiativeTermsSingleChannel, it contains all atmospheric radiati...
itk::SmartPointer< Self > Pointer
This class contains the values of the filter function for the processed spectral band.
std::vector< WavelengthSpectralBandType > ValuesVectorType
float WavelengthSpectralBandType
Compute the surface reflectance pixel from a TOA reflectance.
void SetResidu(double res)
void SetSphericalAlbedo(double albedo)
double GetSphericalAlbedo()
TOutput operator()(const TInput &inPixel)
ReflectanceToSurfaceReflectanceImageFunctor()
void SetCoefficient(double coef)
virtual ~ReflectanceToSurfaceReflectanceImageFunctor()
Calculates the slope, the orientation incidence and exitance radius values for each pixel.
bool m_IsSetAcquiCorrectionParameters
AtmosphericRadiativeTermsType::Pointer AtmosphericRadiativeTermsPointerType
FilterFunctionValuesType::WavelengthSpectralBandType ValueType
itk::SmartPointer< Self > Pointer
AcquiCorrectionParametersType::WavelengthSpectralBandVectorType WavelengthSpectralBandVectorType
FilterFunctionValuesType::ValuesVectorType ValuesVectorType
OutputImageType::RegionType OutputImageRegionType
TInputImage InputImageType
OutputImageType::InternalPixelType OutputInternalPixelType
InputImageType::RegionType InputImageRegionType
Functor::ReflectanceToSurfaceReflectanceImageFunctor< typename InputImageType::InternalPixelType, typename OutputImageType::InternalPixelType > FunctorType
void SetAtmosphericRadiativeTerms(AtmosphericRadiativeTermsPointerType atmoRadTerms)
otb::RadiometryCorrectionParametersToAtmosphericRadiativeTerms CorrectionParametersToRadiativeTermsType
~ReflectanceToSurfaceReflectanceImageFilter() override
InputImageType::PixelType InputPixelType
bool m_UseGenerateParameters
bool m_IsSetAtmoCorrectionParameters
itkGetObjectMacro(AtmosphericRadiativeTerms, AtmosphericRadiativeTermsType)
AtmoCorrectionParametersType::Pointer AtmoCorrectionParametersPointerType
otb::AtmosphericCorrectionParameters AtmoCorrectionParametersType
ReflectanceToSurfaceReflectanceImageFilter Self
itk::MetaDataDictionary MetaDataDictionaryType
AcquiCorrectionParametersPointerType m_AcquiCorrectionParameters
void SetAcquiCorrectionParameters(AcquiCorrectionParametersPointerType acquiCorrTerms)
itkGetObjectMacro(AtmoCorrectionParameters, AtmoCorrectionParametersType)
InputImageType::InternalPixelType InputInternalPixelType
itk::SmartPointer< const Self > ConstPointer
AcquiCorrectionParametersType::Pointer AcquiCorrectionParametersPointerType
AtmosphericRadiativeTermsPointerType m_AtmosphericRadiativeTerms
bool m_FunctorParametersHaveBeenComputed
UnaryImageFunctorWithVectorImageFilter< InputImageType, OutputImageType, FunctorType > Superclass
TOutputImage OutputImageType
itkGetObjectMacro(AcquiCorrectionParameters, AcquiCorrectionParametersType)
AtmoCorrectionParametersPointerType m_AtmoCorrectionParameters
otb::AtmosphericRadiativeTerms AtmosphericRadiativeTermsType
bool m_IsSetAtmosphericRadiativeTerms
otb::FilterFunctionValues FilterFunctionValuesType
void SetAtmoCorrectionParameters(AtmoCorrectionParametersPointerType atmoCorrTerms)
otb::ImageMetadataCorrectionParameters AcquiCorrectionParametersType
OutputImageType::PixelType OutputPixelType
Applies a functor to a VectorImage.
The "otb" namespace contains all Orfeo Toolbox (OTB) classes.