22 #ifndef otbGDALImageIO_h
23 #define otbGDALImageIO_h
32 #include "OTBIOGDALExport.h"
36 class GDALDatasetWrapper;
37 class GDALDataTypeWrapper;
86 std::pair<int, double>
97 itkSetMacro(CompressionLevel,
int);
98 itkGetMacro(CompressionLevel,
int);
102 itkSetMacro(IsComplex,
bool);
103 itkGetMacro(IsComplex,
bool);
107 itkSetMacro(IsVectorImage,
bool);
108 itkGetMacro(IsVectorImage,
bool);
112 itkSetMacro(WriteRPCTags,
bool);
113 itkGetMacro(WriteRPCTags,
bool);
120 m_CreationOptions = opts;
125 return m_CreationOptions;
131 m_NoDataList = noDataList;
137 bool isVectorImage)
override
139 this->SetIsComplex(isComplexInternalPixelType);
140 this->SetIsVectorImage(isVectorImage);
148 bool CanReadFile(
const char*)
override;
157 void ReadImageInformation()
override;
160 void Read(
void* buffer)
override;
163 virtual void ReadVolume(
void* buffer);
166 bool GetSubDatasetInfo(std::vector<std::string>& names, std::vector<std::string>& desc);
169 bool GDALPixelTypeIsComplex();
175 bool CanWriteFile(
const char*)
override;
178 bool CanStreamWrite()
override;
182 void WriteImageInformation()
override;
186 void Write(
const void* buffer)
override;
189 bool GetAvailableResolutions(std::vector<unsigned int>& res);
192 bool GetResolutionInfo(std::vector<unsigned int>& res, std::vector<std::string>& desc);
199 unsigned int GetOverviewsCount()
override;
202 std::vector<std::string> GetOverviewsInfo()
override;
205 std::string GetGdalPixelTypeAsString()
const;
207 itkGetMacro(NbBands,
int);
220 void PrintSelf(std::ostream& os,
itk::Indent indent)
const override;
222 void InternalReadImageInformation();
225 void InternalWriteImageInformation(
const void* buffer);
244 void operator =(
const Self&) =
delete;
247 std::string GetGdalWriteImageFileName(
const std::string& gdalDriverShortName,
const std::string& filename)
const;
249 std::string FilenameToGdalDriverShortName(
const std::string& name)
const;
252 bool GetOriginFromGMLBox(std::vector<double> &origin);
257 bool CreationOptionContains(std::string partialOption)
const;
267 bool GDALInfoReportCorner(
const char * corner_name,
double x,
double y,
268 double& dfGeoX,
double& dfGeoY)
const;
314 #endif // otbGDALImageIO_h
itk::SmartPointer< GDALDatasetWrapper > GDALDatasetWrapperPointer
std::vector< std::string > GDALCreationOptionsType
OTBApplicationEngine_EXPORT int Read(const std::string &filename, Application::Pointer application)
itk::SmartPointer< Self > Pointer
unsigned char InputPixelType
otb::ImageIOBase Superclass
unsigned int m_ResolutionFactor
NoDataListType m_NoDataList
void SetNoDataList(const NoDataListType &noDataList)
Abstract superclass defines image IO interface.
GDALCreationOptionsType GetOptions(void)
void SetOptions(const GDALCreationOptionsType &opts)
bool CanStreamRead() override
GDALDatasetWrapperPointer m_Dataset
unsigned int m_DatasetNumber
GDALDataTypeWrapper * m_PxType
OTBApplicationEngine_EXPORT void Write(const std::string &filename, Application::Pointer application)
GDALCreationOptionsType m_CreationOptions
std::vector< std::pair< unsigned int, unsigned int > > m_OverviewsSize
void SetOutputImagePixelType(bool isComplexInternalPixelType, bool isVectorImage) override
unsigned int m_NumberOfOverviews
ImageIO object for reading and writing images with GDAL.
std::vector< unsigned int > m_OriginalDimensions
bool m_FlagWriteImageInformation
std::vector< std::pair< int, double > > NoDataListType