21 #ifndef otbWrapperApplication_h
22 #define otbWrapperApplication_h
38 #include "itkMersenneTwisterRandomVariateGenerator.h"
39 #include "OTBApplicationEngineExport.h"
58 ApplicationException(
const char* file,
unsigned int line,
const char* message =
"Application error.",
const char* loc =
"Unknown");
61 ApplicationException(
const std::string& file,
unsigned int line,
const char* message =
"Application error.",
const char* loc =
"Unknown");
63 ApplicationException(
const std::string& file,
unsigned int line,
const std::string& message =
"Application error.",
const std::string& loc =
"Unknown");
76 class OTBApplicationEngine_EXPORT
Application :
public itk::Object
227 void SetParameterInt(std::string
const& parameter,
int value,
bool hasUserValueFlag =
true);
235 void SetParameterFloat(std::string
const& parameter,
float value,
bool hasUserValueFlag =
true);
256 void SetParameterString(std::string
const& parameter, std::string value,
bool hasUserValueFlag =
true);
279 void SetParameterStringList(std::string
const& parameter, std::vector<std::string> values,
bool hasUserValueFlag =
true);
740 m_ParameterList = paramGroup;
798 ImageBaseType::PointType
GetImageOrigin(
const std::string& key,
unsigned int idx = 0);
802 ImageBaseType::SpacingType
GetImageSpacing(
const std::string& key,
unsigned int idx = 0);
806 ImageBaseType::SizeType
GetImageSize(
const std::string& key,
unsigned int idx = 0);
896 void AddProcess(itk::ProcessObject*
object, std::string description);
899 void AddChoice(std::string
const& paramKey, std::string
const& paramName);
910 void AddRAMParameter(std::string
const& paramKey, std::string
const& paramName,
unsigned int defaultValue);
916 void AddRANDParameter(std::string
const& paramKey, std::string
const& paramName,
unsigned int defaultValue);
941 template <
class TImageType>
942 TImageType* GetParameterImage(std::string
const& parameter);
955 template <
class TImageType>
956 void SetParameterOutputImage(std::string
const& parameter, TImageType* value);
959 itkSetMacro(MultiWriting,
bool);
1046 #ifndef OTB_MANUAL_INSTANTIATION
1056 extern template OTBApplicationEngine_EXPORT_TEMPLATE
UInt8VectorImageType* Application::GetParameterImage<UInt8VectorImageType>(std::string
const&);
1057 extern template OTBApplicationEngine_EXPORT_TEMPLATE
Int16VectorImageType* Application::GetParameterImage<Int16VectorImageType>(std::string
const&);
1058 extern template OTBApplicationEngine_EXPORT_TEMPLATE
UInt16VectorImageType* Application::GetParameterImage<UInt16VectorImageType>(std::string
const&);
1059 extern template OTBApplicationEngine_EXPORT_TEMPLATE
Int32VectorImageType* Application::GetParameterImage<Int32VectorImageType>(std::string
const&);
1060 extern template OTBApplicationEngine_EXPORT_TEMPLATE
UInt32VectorImageType* Application::GetParameterImage<UInt32VectorImageType>(std::string
const&);
1062 extern template OTBApplicationEngine_EXPORT_TEMPLATE
FloatVectorImageType* Application::GetParameterImage<FloatVectorImageType>(std::string
const&);
1063 extern template OTBApplicationEngine_EXPORT_TEMPLATE
DoubleVectorImageType* Application::GetParameterImage<DoubleVectorImageType>(std::string
const&);
1066 Application::GetParameterImage<ComplexInt16VectorImageType>(std::string
const&);
1068 Application::GetParameterImage<ComplexInt32VectorImageType>(std::string
const&);
1071 Application::GetParameterImage<ComplexFloatVectorImageType>(std::string
const&);
1073 Application::GetParameterImage<ComplexDoubleVectorImageType>(std::string
const&);
1075 extern template OTBApplicationEngine_EXPORT_TEMPLATE
UInt8RGBImageType* Application::GetParameterImage<UInt8RGBImageType>(std::string
const&);
1076 extern template OTBApplicationEngine_EXPORT_TEMPLATE
UInt8RGBAImageType* Application::GetParameterImage<UInt8RGBAImageType>(std::string
const&);
1078 extern template OTBApplicationEngine_EXPORT_TEMPLATE
UInt8ImageType* Application::GetParameterImage<UInt8ImageType>(std::string
const&);
1079 extern template OTBApplicationEngine_EXPORT_TEMPLATE
Int16ImageType* Application::GetParameterImage<Int16ImageType>(std::string
const&);
1080 extern template OTBApplicationEngine_EXPORT_TEMPLATE
UInt16ImageType* Application::GetParameterImage<UInt16ImageType>(std::string
const&);
1081 extern template OTBApplicationEngine_EXPORT_TEMPLATE
Int32ImageType* Application::GetParameterImage<Int32ImageType>(std::string
const&);
1082 extern template OTBApplicationEngine_EXPORT_TEMPLATE
UInt32ImageType* Application::GetParameterImage<UInt32ImageType>(std::string
const&);
1084 extern template OTBApplicationEngine_EXPORT_TEMPLATE
FloatImageType* Application::GetParameterImage<FloatImageType>(std::string
const&);
1085 extern template OTBApplicationEngine_EXPORT_TEMPLATE
DoubleImageType* Application::GetParameterImage<DoubleImageType>(std::string
const&);
1087 extern template OTBApplicationEngine_EXPORT_TEMPLATE
ComplexInt16ImageType* Application::GetParameterImage<ComplexInt16ImageType>(std::string
const&);
1088 extern template OTBApplicationEngine_EXPORT_TEMPLATE
ComplexInt32ImageType* Application::GetParameterImage<ComplexInt32ImageType>(std::string
const&);
1090 extern template OTBApplicationEngine_EXPORT_TEMPLATE
ComplexFloatImageType* Application::GetParameterImage<ComplexFloatImageType>(std::string
const&);
1091 extern template OTBApplicationEngine_EXPORT_TEMPLATE
ComplexDoubleImageType* Application::GetParameterImage<ComplexDoubleImageType>(std::string
const&);
1095 extern template OTBApplicationEngine_EXPORT_TEMPLATE
void Application::SetParameterOutputImage<UInt8VectorImageType>(std::string
const&,
UInt8VectorImageType*);
1096 extern template OTBApplicationEngine_EXPORT_TEMPLATE
void Application::SetParameterOutputImage<Int16VectorImageType>(std::string
const&,
Int16VectorImageType*);
1097 extern template OTBApplicationEngine_EXPORT_TEMPLATE
void Application::SetParameterOutputImage<UInt16VectorImageType>(std::string
const&,
1099 extern template OTBApplicationEngine_EXPORT_TEMPLATE
void Application::SetParameterOutputImage<Int32VectorImageType>(std::string
const&,
Int32VectorImageType*);
1100 extern template OTBApplicationEngine_EXPORT_TEMPLATE
void Application::SetParameterOutputImage<UInt32VectorImageType>(std::string
const&,
1103 extern template OTBApplicationEngine_EXPORT_TEMPLATE
void Application::SetParameterOutputImage<FloatVectorImageType>(std::string
const&,
FloatVectorImageType*);
1104 extern template OTBApplicationEngine_EXPORT_TEMPLATE
void Application::SetParameterOutputImage<DoubleVectorImageType>(std::string
const&,
1107 extern template OTBApplicationEngine_EXPORT_TEMPLATE
void Application::SetParameterOutputImage<ComplexInt16VectorImageType>(std::string
const&,
1109 extern template OTBApplicationEngine_EXPORT_TEMPLATE
void Application::SetParameterOutputImage<ComplexInt32VectorImageType>(std::string
const&,
1112 extern template OTBApplicationEngine_EXPORT_TEMPLATE
void Application::SetParameterOutputImage<ComplexFloatVectorImageType>(std::string
const&,
1114 extern template OTBApplicationEngine_EXPORT_TEMPLATE
void Application::SetParameterOutputImage<ComplexDoubleVectorImageType>(std::string
const&,
1117 extern template OTBApplicationEngine_EXPORT_TEMPLATE
void Application::SetParameterOutputImage<UInt8RGBImageType>(std::string
const&,
UInt8RGBImageType*);
1118 extern template OTBApplicationEngine_EXPORT_TEMPLATE
void Application::SetParameterOutputImage<UInt8RGBAImageType>(std::string
const&,
UInt8RGBAImageType*);
1120 extern template OTBApplicationEngine_EXPORT_TEMPLATE
void Application::SetParameterOutputImage<UInt8ImageType>(std::string
const&,
UInt8ImageType*);
1121 extern template OTBApplicationEngine_EXPORT_TEMPLATE
void Application::SetParameterOutputImage<Int16ImageType>(std::string
const&,
Int16ImageType*);
1122 extern template OTBApplicationEngine_EXPORT_TEMPLATE
void Application::SetParameterOutputImage<UInt16ImageType>(std::string
const&,
UInt16ImageType*);
1123 extern template OTBApplicationEngine_EXPORT_TEMPLATE
void Application::SetParameterOutputImage<Int32ImageType>(std::string
const&,
Int32ImageType*);
1124 extern template OTBApplicationEngine_EXPORT_TEMPLATE
void Application::SetParameterOutputImage<UInt32ImageType>(std::string
const&,
UInt32ImageType*);
1126 extern template OTBApplicationEngine_EXPORT_TEMPLATE
void Application::SetParameterOutputImage<FloatImageType>(std::string
const&,
FloatImageType*);
1127 extern template OTBApplicationEngine_EXPORT_TEMPLATE
void Application::SetParameterOutputImage<DoubleImageType>(std::string
const&,
DoubleImageType*);
1129 extern template OTBApplicationEngine_EXPORT_TEMPLATE
void Application::SetParameterOutputImage<ComplexInt16ImageType>(std::string
const&,
1131 extern template OTBApplicationEngine_EXPORT_TEMPLATE
void Application::SetParameterOutputImage<ComplexInt32ImageType>(std::string
const&,
1134 extern template OTBApplicationEngine_EXPORT_TEMPLATE
void Application::SetParameterOutputImage<ComplexFloatImageType>(std::string
const&,
1136 extern template OTBApplicationEngine_EXPORT_TEMPLATE
void Application::SetParameterOutputImage<ComplexDoubleImageType>(std::string
const&,
Exception for runtime errors in OTB Applications.
ApplicationException(const char *file, unsigned int line, const char *message="Application error.", const char *loc="Unknown")
ApplicationException(const std::string &file, unsigned int line, const std::string &message="Application error.", const std::string &loc="Unknown")
ApplicationException(const std::string &file, unsigned int line, const char *message="Application error.", const char *loc="Unknown")
Creation of an "otb" image which contains metadata.
An ITK logger specialized for OTB.
itk::SmartPointer< Self > Pointer
This class is a generic all-purpose wrapping around an std::vector<itk::SmartPointer<ObjectType> >.
This class represents a hierarchy of vector data.
Creation of an "otb" vector image which contains metadata.
This class represent an application TODO.
void SetDefaultOutputPixelType(std::string const ¶meter, ImagePixelType type)
ParameterGroup::Pointer m_ParameterList
bool IsMultiWritingEnabled()
void SetParameterUserValue(std::string const ¶mKey, bool value)
virtual const char * GetDocLongDescription() const
void SetMaximumParameterFloatValue(std::string const ¶meter, float value)
bool IsApplicationReady()
std::string GetParameterAsString(std::string const ¶mKey)
ComplexDoubleVectorImageType * GetParameterComplexDoubleVectorImage(std::string const &)
std::vector< std::string > GetChoiceNames(std::string const ¶mKey)
DocExampleStructure::Pointer m_DocExample
ImageBaseType * GetParameterOutputImage(std::string const ¶meter)
Parameter * GetParameterByKey(std::string const ¶meter, bool follow=true)
unsigned int AddExample(const std::string &comm="")
void ClearParameterInputImageList(std::string const ¶meter)
virtual void SetDocAuthors(const std::string &)
void SetParameterInputImage(std::string const ¶meter, ImageBaseType *inputImage)
void SetNthParameterInputImageList(std::string const ¶meter, const unsigned int &id, ImageBaseType *img)
itk::ProcessObject::Pointer m_ProgressSource
void SetParameterUserLevel(std::string const ¶mKey, UserLevel level)
UInt8RGBImageType * GetParameterUInt8RGBImage(std::string const &)
int GetParameterInt(std::string const ¶meter) const
std::string GetParameterDescription(std::string const ¶mKey)
void SetParameterImageBase(const std::string &key, ImageBaseType *img, unsigned int idx=0)
void ClearValue(std::string const ¶mKey)
std::string GetExampleParameterKey(unsigned int exId, unsigned int paramId)
void SetImageMetadata(const ImageMetadata &imd, const std::string &key, unsigned int idx=0)
Application(const Application &)=delete
ImageBaseType::PointType GetImageOrigin(const std::string &key, unsigned int idx=0)
UInt16VectorImageType * GetParameterUInt16VectorImage(std::string const &)
unsigned int GetNumberOfElementsInParameterInputImageList(std::string const ¶meter)
void SetParameterStringList(std::string const ¶meter, std::vector< std::string > values, bool hasUserValueFlag=true)
double GetLastExecutionTiming() const
ParameterType GetParameterType(std::string const ¶mKey) const
std::vector< int > GetSelectedItems(std::string const ¶mKey)
void SetTypeFilter(std::string const &key, FieldParameter::TypeFilterType const &typeFilter)
std::set< itk::ProcessObject::Pointer > m_Filters
void DisableInPrivateDo()
void MandatoryOff(std::string const ¶mKey)
virtual const char * GetDocAuthors() const
std::string GetParameterString(std::string const ¶meter) const
std::vector< std::pair< std::string, std::string > > GetOutputParametersSumUp()
virtual std::vector< std::string > GetDocTags() const
void LoadParametersFromXML(const std::string &filename)
UInt8VectorImageType * GetParameterUInt8VectorImage(std::string const &)
void SetDefaultParameterDouble(std::string const ¶meter, double value)
UInt32VectorImageType * GetParameterUInt32VectorImage(std::string const &)
virtual void SetDocTags(std::vector< std::string >)
void SetVectorData(std::string const &key, std::string const &vectorData)
itk::SmartPointer< const Self > ConstPointer
void SetParameterRole(std::string const ¶mKey, Role role)
VectorDataListType * GetParameterVectorDataList(std::string const ¶meter)
Int16VectorImageType * GetParameterInt16VectorImage(std::string const &)
void SetParameterInt(std::string const ¶meter, int value, bool hasUserValueFlag=true)
std::string m_Description
std::string GetParameterName(std::string const ¶mKey)
UserLevel GetParameterUserLevel(std::string const ¶mKey) const
void AddRANDParameter(std::string const ¶mKey="rand")
virtual void AfterExecuteAndWriteOutputs()
Int32ImageType * GetParameterInt32Image(std::string const &)
virtual void SetName(const std::string &)
virtual void DoExecute()=0
itk::SmartPointer< Self > Pointer
void SetParameterOutputImage(std::string const ¶meter, FloatVectorImageType *value)
void SetDefaultParameterFloat(std::string const ¶meter, float value)
void SetParameterDouble(std::string const ¶meter, double value, bool hasUserValueFlag=true)
const FieldParameter::TypeFilterType & GetTypeFilter(std::string const &key) const
DocExampleStructure::Pointer GetDocExample()
void SaveParametersToXML(const std::string &filename)
double GetParameterDouble(std::string const ¶meter) const
void AddChoice(std::string const ¶mKey, std::string const ¶mName)
virtual const char * GetDocLimitations() const
VectorDataType * GetParameterVectorData(std::string const ¶meter)
virtual void SetDocLink(const std::string &link)
itk::ProcessObject * GetProgressSource() const
ComplexInt32VectorImageType * GetParameterComplexInt32VectorImage(std::string const &)
ImageMetadata & GetImageMetadata(const std::string &key, unsigned int idx=0)
void AddParameterStringList(std::string const ¶meter, const std::string &str)
std::string GetExampleParameterValue(unsigned int exId, unsigned int paramId)
virtual const char * GetDocSeeAlso() const
void operator=(const Application &)=delete
bool HasUserValue(std::string const ¶mKey) const
void SetParameterFloat(std::string const ¶meter, float value, bool hasUserValueFlag=true)
bool IsMandatory(std::string const ¶mKey) const
virtual const std::string & GetDocLink() const
UInt16ImageType * GetParameterUInt16Image(std::string const &)
void AddParameter(ParameterType type, std::string const ¶mKey, std::string const ¶mName)
std::string m_DocLongDescription
void AutomaticValueOff(std::string const ¶mKey)
void AddRAMParameter(std::string const ¶mKey, std::string const ¶mName, unsigned int defaultValue)
virtual void SetDocLimitations(const std::string &)
void AddRAMParameter(std::string const ¶mKey="ram")
FloatImageType * GetParameterFloatImage(std::string const &)
std::string m_ProgressSourceDescription
void SetLogger(otb::Logger *logger)
unsigned int GetExampleNumberOfParameters(unsigned int id)
Int16ImageType * GetParameterInt16Image(std::string const &)
std::string GetCLExample()
std::string GetImageProjection(const std::string &key, unsigned int idx=0)
int ExecuteAndWriteOutput()
void SetParameterOutputVectorData(std::string const ¶meter, VectorDataType *value)
std::vector< std::string > GetParametersKeys(bool recursive=true)
void AddDocTag(const std::string &)
void EnableParameter(std::string const ¶mKey)
void SetRasterData(std::string const &key, std::string const &rasterData)
std::string m_DocLimitations
void AddProcess(itk::ProcessObject *object, std::string description)
void SetParameterList(ParameterGroup::Pointer paramGroup)
virtual const char * GetDescription() const
FloatVectorImageListType * GetParameterImageList(std::string const ¶meter)
ComplexFloatVectorImageType * GetParameterComplexFloatVectorImage(std::string const &)
void SetMaximumParameterDoubleValue(std::string const ¶meter, double value)
void DisableParameter(std::string const ¶mKey)
FloatVectorImageType * GetParameterImage(std::string const ¶meter)
void SetParameterDescription(std::string const ¶mKey, std::string dec)
void AutomaticValueOn(std::string const ¶mKey)
void SetDefaultOutputComplexPixelType(std::string const ¶meter, ComplexImagePixelType type)
virtual void DoFreeResources()
ComplexFloatImageType * GetParameterComplexFloatImage(std::string const &)
UInt32ImageType * GetParameterUInt32Image(std::string const &)
std::vector< std::string > m_DocTags
void SetMaximumParameterIntValue(std::string const ¶meter, int value)
ImageBaseType::SizeType GetImageSize(const std::string &key, unsigned int idx=0)
void SetListViewSingleSelectionMode(std::string const ¶meter, bool status)
UInt8ImageType * GetParameterUInt8Image(std::string const &)
unsigned int GetImageNbBands(const std::string &key, unsigned int idx=0)
void ClearChoices(std::string const &key)
float GetParameterFloat(std::string const ¶meter) const
void SetOfficialDocLink()
void SetNthParameterStringList(std::string const ¶meter, const unsigned int &id, const std::string &str)
virtual void SetDocSeeAlso(const std::string &)
UInt8RGBAImageType * GetParameterUInt8RGBAImage(std::string const &)
bool ConnectImage(std::string in, Application *app, std::string out)
void SetParameterOutputImagePixelType(std::string const ¶meter, ImagePixelType pixelType)
virtual const char * GetName() const
ImageBaseType::SpacingType GetImageSpacing(const std::string &key, unsigned int idx=0)
otb::Logger * GetLogger() const
double GetDefaultParameterDouble(std::string const ¶meter)
std::vector< std::string > GetParameterStringList(const std::string ¶meter)
const Parameter * GetParameterByKey(std::string const ¶meter, bool follow=true) const
ImagePixelType GetImageBasePixelType(const std::string &key, unsigned int idx=0)
void SetMinimumParameterFloatValue(std::string const ¶meter, float value)
int GetDefaultParameterInt(std::string const ¶meter)
std::string GetExampleComment(unsigned int id)
bool HasAutomaticValue(std::string const ¶mKey) const
otb::Logger::Pointer m_Logger
itk::MetaDataDictionary GetMetadataDictionary(const std::string &key, unsigned int idx=0)
virtual void DoUpdateParameters()=0
bool IsInitialized() const
float GetDefaultParameterFloat(std::string const ¶meter)
ImagePixelType GetParameterOutputImagePixelType(std::string const ¶meter)
void SetDocExampleParameterValue(const std::string key, const std::string value, unsigned int exId=0)
void AddRANDParameter(std::string const ¶mKey, std::string const ¶mName, unsigned int defaultValue)
void SetDescription(const std::string &)
std::vector< std::string > GetChoiceKeys(std::string const ¶mKey)
void SetDefaultParameterInt(std::string const ¶meter, int value)
void AddImageToParameterInputImageList(std::string const ¶meter, ImageBaseType *img)
Int32VectorImageType * GetParameterInt32VectorImage(std::string const &)
unsigned int GetNumberOfExamples()
void SetMinimumParameterDoubleValue(std::string const ¶meter, double value)
std::string GetProgressDescription() const
void MandatoryOn(std::string const ¶mKey)
Role GetParameterRole(std::string const ¶mKey) const
bool HasValue(std::string const ¶mKey) const
virtual void SetDocLongDescription(const std::string &)
ComplexInt16ImageType * GetParameterComplexInt16Image(std::string const &)
bool GetListViewSingleSelectionMode(const std::string ¶meter)
void SetMinimumParameterIntValue(std::string const ¶meter, int value)
std::string GetHtmlExample()
bool IsParameterMissing(const std::string &key) const
DoubleVectorImageType * GetParameterDoubleVectorImage(std::string const &)
bool IsParameterEnabled(std::string const ¶mKey, bool recurseParents=false) const
ParameterGroup * GetParameterList()
DoubleImageType * GetParameterDoubleImage(std::string const &)
ImageBaseType::RegionType GetImageRequestedRegion(const std::string &key, unsigned int idx=0)
ComplexInt16VectorImageType * GetParameterComplexInt16VectorImage(std::string const &)
ComplexDoubleImageType * GetParameterComplexDoubleImage(std::string const &)
ComplexInt32ImageType * GetParameterComplexInt32Image(std::string const &)
void PropagateConnectMode(bool isMem)
void SetParameterString(std::string const ¶meter, std::string value, bool hasUserValueFlag=true)
FloatVectorImageType * GetParameterFloatVectorImage(std::string const &)
ImageBaseType * GetParameterImageBase(const std::string &key, unsigned int idx=0)
void SetExampleComment(const std::string &comm, unsigned int i)
unsigned long PropagateRequestedRegion(const std::string &key, ImageBaseType::RegionType region, unsigned int idx=0)
itk::SmartPointer< Self > Pointer
This class represent a helper class for elevation modes. It add the parameters automatically to the a...
std::vector< OGRFieldType > TypeFilterType
This class represent a helper class.
itk::SmartPointer< Self > Pointer
This class represent a parameter for the wrapper framework This class is a high level class represent...
otb::Image< double > DoubleImageType
otb::Image< DoubleComplexPixelType, 2 > ComplexDoubleImageType
otb::VectorImage< float > FloatVectorImageType
itk::ImageBase< 2 > ImageBaseType
otb::Image< Int16ComplexPixelType, 2 > ComplexInt16ImageType
otb::VectorImage< short > Int16VectorImageType
otb::Image< unsigned short > UInt16ImageType
otb::VectorImage< unsigned short > UInt16VectorImageType
otb::VectorImage< Int32ComplexPixelType, 2 > ComplexInt32VectorImageType
otb::VectorImage< DoubleComplexPixelType, 2 > ComplexDoubleVectorImageType
otb::Image< short > Int16ImageType
otb::Image< float > FloatImageType
otb::Image< unsigned char > UInt8ImageType
otb::Image< itk::RGBPixel< unsigned char > > UInt8RGBImageType
otb::VectorImage< int > Int32VectorImageType
otb::VectorImage< double > DoubleVectorImageType
otb::Image< Int32ComplexPixelType, 2 > ComplexInt32ImageType
otb::Image< unsigned int > UInt32ImageType
otb::Image< FloatComplexPixelType, 2 > ComplexFloatImageType
otb::Image< int > Int32ImageType
otb::VectorImage< unsigned char > UInt8VectorImageType
otb::VectorImage< Int16ComplexPixelType, 2 > ComplexInt16VectorImageType
otb::VectorImage< unsigned int > UInt32VectorImageType
otb::Image< itk::RGBAPixel< unsigned char > > UInt8RGBAImageType
otb::VectorImage< FloatComplexPixelType, 2 > ComplexFloatVectorImageType
The "otb" namespace contains all Orfeo Toolbox (OTB) classes.