30#ifndef GDAL_RAT_H_INCLUDED
31#define GDAL_RAT_H_INCLUDED
38#define RAT_MAX_ELEM_FOR_CLONE 1000000
195 const char *pszValue ) = 0;
210 virtual void SetValue(
int iRow,
int iField,
int nValue ) = 0;
225 virtual void SetValue(
int iRow,
int iField,
double dfValue) = 0;
261 int iStartRow,
int iLength,
264 int iStartRow,
int iLength,
int *pnData);
266 int iStartRow,
int iLength,
267 char **papszStrList);
279 double *pdfBinSize )
const;
322class GDALRasterAttributeField
331 std::vector<GInt32> anValues{};
332 std::vector<double> adfValues{};
333 std::vector<CPLString> aosValues{};
346 std::vector<GDALRasterAttributeField> aoFields{};
348 int bLinearBinning =
false;
349 double dfRow0Min = -0.5;
350 double dfBinSize = 1.0;
354 void AnalyseColumns();
355 int bColumnsAnalysed =
false;
383 void SetValue(
int iRow,
int iField,
384 const char *pszValue )
override;
385 void SetValue(
int iRow,
int iField,
double dfValue)
override;
386 void SetValue(
int iRow,
int iField,
int nValue )
override;
398 double dfBinSize )
override;
400 double *pdfBinSize )
const override;
Convenient string class based on std::string.
Definition cpl_string.h:333
A color table / palette.
Definition gdal_priv.h:1025
Raster Attribute Table container.
Definition gdal_rat.h:344
GDALDefaultRasterAttributeTable()
Construct empty table.
Definition gdal_rat.cpp:1183
int GetRowOfValue(double dfValue) const override
Get row for pixel value.
Definition gdal_rat.cpp:1942
int ChangesAreWrittenToFile() override
Determine whether changes made to this RAT are reflected directly in the dataset.
Definition gdal_rat.cpp:1911
int GetColumnCount() const override
Fetch table column count.
Definition gdal_rat.cpp:1261
GDALRATFieldUsage GetUsageOfCol(int) const override
Fetch column usage value.
Definition gdal_rat.cpp:1334
void SetRowCount(int iCount) override
Set row count.
Definition gdal_rat.cpp:1669
GDALRATFieldType GetTypeOfCol(int) const override
Fetch column type.
Definition gdal_rat.cpp:1376
double GetValueAsDouble(int iRow, int iField) const override
Fetch field value as a double.
Definition gdal_rat.cpp:1608
void RemoveStatistics() override
Remove Statistics from RAT.
Definition gdal_rat.cpp:2157
GDALRATTableType GetTableType() const override
Get RAT Table Type.
Definition gdal_rat.cpp:2077
void SetValue(int iRow, int iField, const char *pszValue) override
Set value.
Definition gdal_rat.cpp:1705
CPLErr CreateColumn(const char *pszFieldName, GDALRATFieldType eFieldType, GDALRATFieldUsage eFieldUsage) override
Create new column.
Definition gdal_rat.cpp:2111
CPLErr SetLinearBinning(double dfRow0Min, double dfBinSize) override
Set linear binning information.
Definition gdal_rat.cpp:2033
GDALDefaultRasterAttributeTable * Clone() const override
Copy Raster Attribute Table.
Definition gdal_rat.cpp:2197
const char * GetValueAsString(int iRow, int iField) const override
Fetch field value as a string.
Definition gdal_rat.cpp:1481
int GetRowCount() const override
Fetch row count.
Definition gdal_rat.cpp:1452
int GetColOfUsage(GDALRATFieldUsage) const override
Return the index of the column that corresponds to the passed usage.
Definition gdal_rat.cpp:1415
int GetLinearBinning(double *pdfRow0Min, double *pdfBinSize) const override
Get linear binning information.
Definition gdal_rat.cpp:2048
const char * GetNameOfCol(int) const override
Fetch name of indicated column.
Definition gdal_rat.cpp:1293
CPLErr SetTableType(const GDALRATTableType eInTableType) override
Set RAT Table Type.
Definition gdal_rat.cpp:2100
int GetValueAsInt(int iRow, int iField) const override
Fetch field value as a integer.
Definition gdal_rat.cpp:1549
The GDALRasterAttributeTable (or RAT) class is used to encapsulate a table used to provide attribute ...
Definition gdal_rat.h:48
virtual void DumpReadable(FILE *=nullptr)
Dump RAT in readable form.
Definition gdal_rat.cpp:1133
virtual void SetValue(int iRow, int iField, const char *pszValue)=0
Set field value from string.
virtual const char * GetValueAsString(int iRow, int iField) const =0
Fetch field value as a string.
virtual CPLErr XMLInit(CPLXMLNode *, const char *)
Deserialize from XML.
Definition gdal_rat.cpp:843
virtual double GetValueAsDouble(int iRow, int iField) const =0
Fetch field value as a double.
static GDALRasterAttributeTableH ToHandle(GDALRasterAttributeTable *poRAT)
Convert a GDALRasterAttributeTable* to a GDALRasterAttributeTableH.
Definition gdal_rat.h:299
virtual void RemoveStatistics()=0
Remove statistics from the RAT.
virtual int GetRowCount() const =0
Fetch row count.
virtual CPLErr CreateColumn(const char *pszFieldName, GDALRATFieldType eFieldType, GDALRATFieldUsage eFieldUsage)
Create new column.
Definition gdal_rat.cpp:440
virtual int ChangesAreWrittenToFile()=0
Determine whether changes made to this RAT are reflected directly in the dataset.
virtual int GetRowOfValue(double dfValue) const
Get row for pixel value.
Definition gdal_rat.cpp:363
virtual CPLErr ValuesIO(GDALRWFlag eRWFlag, int iField, int iStartRow, int iLength, double *pdfData)
Read or Write a block of doubles to/from the Attribute Table.
Definition gdal_rat.cpp:127
virtual CPLErr SetTableType(const GDALRATTableType eInTableType)=0
Set the RAT table type.
static GDALRasterAttributeTable * FromHandle(GDALRasterAttributeTableH hRAT)
Convert a GDALRasterAttributeTableH to a GDALRasterAttributeTable*.
Definition gdal_rat.h:305
virtual int GetColumnCount() const =0
Fetch table column count.
virtual void SetRowCount(int iCount)
Set row count.
Definition gdal_rat.cpp:317
virtual GDALRATFieldUsage GetUsageOfCol(int iCol) const =0
Fetch column usage value.
virtual void SetValue(int iRow, int iField, int nValue)=0
Set field value from integer.
virtual void * SerializeJSON() const
Serialize as a JSON object.
Definition gdal_rat.cpp:729
virtual GDALColorTable * TranslateToColorTable(int nEntryCount=-1)
Translate to a color table.
Definition gdal_rat.cpp:1028
virtual GDALRasterAttributeTable * Clone() const =0
Copy Raster Attribute Table.
virtual GDALRATTableType GetTableType() const =0
Get the RAT table type.
virtual void SetValue(int iRow, int iField, double dfValue)=0
Set field value from double.
virtual const char * GetNameOfCol(int iCol) const =0
Fetch name of indicated column.
virtual CPLErr SetLinearBinning(double dfRow0Min, double dfBinSize)
Set linear binning information.
Definition gdal_rat.cpp:488
virtual int GetValueAsInt(int iRow, int iField) const =0
Fetch field value as a integer.
virtual CPLErr InitializeFromColorTable(const GDALColorTable *)
Initialize from color table.
Definition gdal_rat.cpp:952
virtual int GetColOfUsage(GDALRATFieldUsage eUsage) const =0
Fetch column index for given usage.
virtual CPLXMLNode * Serialize() const
Serialize.
Definition gdal_rat.cpp:609
virtual int GetLinearBinning(double *pdfRow0Min, double *pdfBinSize) const
Get linear binning information.
Definition gdal_rat.cpp:532
virtual GDALRATFieldType GetTypeOfCol(int iCol) const =0
Fetch column type.
CPLErr
Error category.
Definition cpl_error.h:53
Definitions for CPL mini XML Parser/Serializer.
GDALRATTableType
RAT table type (thematic or athematic)
Definition gdal.h:1350
GDALRATFieldUsage
Field usage of raster attribute table.
Definition gdal.h:1325
@ GFU_Generic
Definition gdal.h:1326
GDALRATFieldType
Field type of raster attribute table.
Definition gdal.h:1318
@ GFT_Integer
Definition gdal.h:1319
void * GDALRasterAttributeTableH
Opaque type used for the C bindings of the C++ GDALRasterAttributeTable class.
Definition gdal.h:280
GDALRWFlag
Definition gdal.h:121
Document node structure.
Definition cpl_minixml.h:70