QGIS API Documentation 3.99.0-Master (21b3aa880ba)
Loading...
Searching...
No Matches
QgsRasterAttributeTable Class Reference

Represents a Raster Attribute Table (RAT). More...

#include <qgsrasterattributetable.h>

Classes

class  Field
 The Field class represents a Raster Attribute Table field, including its name, usage and type. More...
class  MinMaxClass
 The Field class represents a Raster Attribute Table classification entry for a thematic Raster Attribute Table. More...
class  UsageInformation
 The UsageInformation class represents information about a field usage. More...

Public Member Functions

bool appendField (const QgsRasterAttributeTable::Field &field, QString *errorMessage=nullptr)
 Appends a new field, optionally reporting any error in errorMessage, returns true on success.
bool appendField (const QString &name, const Qgis::RasterAttributeTableFieldUsage usage, const QMetaType::Type type, QString *errorMessage=nullptr)
 Creates a new field from name, usage and type and appends it to the fields, optionally reporting any error in errorMessage, returns true on success.
bool appendField (const QString &name, const Qgis::RasterAttributeTableFieldUsage usage, const QVariant::Type type, QString *errorMessage=nullptr)
 Creates a new field from name, usage and type and appends it to the fields, optionally reporting any error in errorMessage, returns true on success.
bool appendRow (const QVariantList &data, QString *errorMessage=nullptr)
 Appends a row of data to the RAT, optionally reporting any error in errorMessage, returns true on success.
PRIVATE QColor color (int row) const
 Returns the color of the rat row or an invalid color if row does not exist or if there is no color definition.
QgsGradientColorRamp colorRamp (QStringList &labels, const int labelColumn=-1) const
 Returns the color ramp for an athematic Raster Attribute Table setting the labels in labels, optionally generated from labelColumn.
QgsRasterRenderercreateRenderer (QgsRasterDataProvider *provider, const int bandNumber, const int classificationColumn=-1)
 Creates and returns a (possibly nullptr) raster renderer for the specified provider and bandNumber and optionally reclassified by classificationColumn, the default value of -1 makes the method guess the classification column based on the field usage.
const QList< QList< QVariant > > data () const
 Returns the Raster Attribute Table rows.
const QgsRasterAttributeTable::Field fieldByName (const QString name, bool *ok=nullptr) const
 Returns a field by name or a default constructed field with empty name if the field is not found.
QList< QgsRasterAttributeTable::Fieldfields () const
 Returns the Raster Attribute Table fields.
const QList< QgsRasterAttributeTable::FieldfieldsByUsage (const Qgis::RasterAttributeTableFieldUsage fieldUsage) const
 Returns the list of fields matching fieldUsage.
QString filePath () const
 Returns the (possibly empty) path of the file-based RAT, the path is set when a RAT is read or written from/to a file.
bool hasColor () const
 Returns true if the Raster Attribute Table has color RGBA information.
bool hasRamp () const
 Returns true if the Raster Attribute Table has ramp RGBA information.
bool insertColor (int position, QString *errorMessage=nullptr)
 Create RGBA fields and inserts them at position, optionally reporting any error in errorMessage, returns true on success.
bool insertField (int position, const QgsRasterAttributeTable::Field &field, QString *errorMessage=nullptr)
 Inserts a new field at position, optionally reporting any error in errorMessage, returns true on success.
bool insertField (int position, const QString &name, const Qgis::RasterAttributeTableFieldUsage usage, const QMetaType::Type type, QString *errorMessage=nullptr)
 Creates a new field from name, usage and type and inserts it at position, optionally reporting any error in errorMessage, returns true on success.
Q_DECL_DEPRECATED bool insertField (int position, const QString &name, const Qgis::RasterAttributeTableFieldUsage usage, const QVariant::Type type, QString *errorMessage=nullptr)
 Creates a new field from name, usage and type and inserts it at position, optionally reporting any error in errorMessage, returns true on success.
bool insertRamp (int position, QString *errorMessage=nullptr)
 Create RGBA minimum and maximum fields and inserts them at position, optionally reporting any error in errorMessage, returns true on success.
bool insertRow (int position, const QVariantList &rowData, QString *errorMessage=nullptr)
 Inserts a row of rowData in the Raster Attribute Table at position, optionally reporting any error in errorMessage, returns true on success.
bool isDirty () const
 Returns true if the Raster Attribute Table was modified from its last reading from the storage.
bool isValid (QString *errorMessage=nullptr) const
 Returns true if the Raster Attribute Table is valid, optionally reporting validity checks results in errorMessage.
double maximumValue () const
 Returns the maximum value of the MinMax (thematic) or Max (athematic) column, returns NaN on errors.
double minimumValue () const
 Returns the minimum value of the MinMax (thematic) or Min (athematic) column, returns NaN on errors.
QList< QgsRasterAttributeTable::MinMaxClassminMaxClasses (const int classificationColumn=-1) const
 Returns the classes for a thematic Raster Attribute Table, classified by classificationColumn, the default value of -1 makes the method guess the classification column based on the field usage.
QList< QList< QVariant > > orderedRows () const
 Returns the data rows ordered by the value column(s) in ascending order, if the attribute table type is athematic the middle value for each row range is considered for ordering.
QgsFeatureList qgisFeatures () const
 Returns the Raster Attribute Table rows as a list of QgsFeature.
QgsFields qgisFields () const
 Returns the Raster Attribute Table fields as QgsFields.
QgsGradientColorRamp ramp (int row) const
 Returns the gradient color ramp of the rat row or a default constructed gradient if row does not exist or if there is no color ramp definition.
bool readFromFile (const QString &path, QString *errorMessage=nullptr)
 Reads the Raster Attribute Table from a DBF file specified by path, optionally reporting any error in errorMessage, returns true on success.
bool removeField (const QString &name, QString *errorMessage=nullptr)
 Removes the field with name, optionally reporting any error in errorMessage, returns true on success.
bool removeRow (int position=0, QString *errorMessage=nullptr)
 Removes the row in the Raster Attribute Table at position, optionally reporting any error in errorMessage, returns true on success.
QVariantList row (const double matchValue) const
 Returns a row of data for the given matchValue or and empty row if there is not match.
bool setColor (const int row, const QColor &color)
 Sets the color for the row at rowIndex to color.
void setDirty (bool isDirty)
 Sets the Raster Attribute Table dirty state to isDirty;.
bool setFieldUsage (int fieldIndex, const Qgis::RasterAttributeTableFieldUsage usage)
 Change the usage of the field at index fieldIndex to usage with checks for allowed types.
bool setRamp (const int row, const QColor &colorMin, const QColor &colorMax)
 Sets the color ramp for the row at rowIndex to colorMin and colorMax.
bool setValue (const int row, const int column, const QVariant &value)
 Sets the value for row and column.
Qgis::RasterAttributeTableType type () const
 Returns the Raster Attribute Table type.
QList< Qgis::RasterAttributeTableFieldUsageusages () const
 Returns the list of field usages.
QVariant value (const int row, const int column) const
 Returns the value for row and column.
bool writeToFile (const QString &path, QString *errorMessage=nullptr)
 Writes the Raster Attribute Table to a DBF file specified by path, optionally reporting any error in errorMessage, returns true on success.

Static Public Member Functions

static QgsRasterAttributeTablecreateFromRaster (QgsRasterLayer *rasterLayer, int *bandNumber=nullptr)
 Creates a new Raster Attribute Table from a raster layer, the renderer must be Paletted or SingleBandPseudoColor, optionally reporting the raster band from which the attribute table was created.
static Qgis::RasterAttributeTableFieldUsage guessFieldUsage (const QString &name, const QMetaType::Type type)
 Try to determine the field usage from its name and type.
static Qgis::RasterAttributeTableFieldUsage guessFieldUsage (const QString &name, const QVariant::Type type)
 Try to determine the field usage from its name and type.
static QHash< Qgis::RasterAttributeTableFieldUsage, QgsRasterAttributeTable::UsageInformationusageInformation ()
 Returns information about supported Raster Attribute Table usages.
static QString usageName (const Qgis::RasterAttributeTableFieldUsage fieldusage)
 Returns the translated human readable name of fieldUsage.
static QList< Qgis::RasterAttributeTableFieldUsagevalueAndColorFieldUsages ()
 Returns the list of field usages for colors and values.

Detailed Description

Represents a Raster Attribute Table (RAT).

This class is modeled after the GDAL Raster Attribute Table implementation, it adds some convenience methods to handle data from QGIS and to import/export a Raster Attribute Table from/to a DBF VAT file.

Since
QGIS 3.30

Definition at line 43 of file qgsrasterattributetable.h.

Member Function Documentation

◆ appendField() [1/3]

bool QgsRasterAttributeTable::appendField ( const QgsRasterAttributeTable::Field & field,
QString * errorMessage = nullptr )

Appends a new field, optionally reporting any error in errorMessage, returns true on success.

Definition at line 418 of file qgsrasterattributetable.cpp.

◆ appendField() [2/3]

bool QgsRasterAttributeTable::appendField ( const QString & name,
const Qgis::RasterAttributeTableFieldUsage usage,
const QMetaType::Type type,
QString * errorMessage = nullptr )

Creates a new field from name, usage and type and appends it to the fields, optionally reporting any error in errorMessage, returns true on success.

Definition at line 408 of file qgsrasterattributetable.cpp.

◆ appendField() [3/3]

bool QgsRasterAttributeTable::appendField ( const QString & name,
const Qgis::RasterAttributeTableFieldUsage usage,
const QVariant::Type type,
QString * errorMessage = nullptr )

Creates a new field from name, usage and type and appends it to the fields, optionally reporting any error in errorMessage, returns true on success.

Definition at line 413 of file qgsrasterattributetable.cpp.

◆ appendRow()

bool QgsRasterAttributeTable::appendRow ( const QVariantList & data,
QString * errorMessage = nullptr )

Appends a row of data to the RAT, optionally reporting any error in errorMessage, returns true on success.

Definition at line 502 of file qgsrasterattributetable.cpp.

◆ color()

QColor QgsRasterAttributeTable::color ( int row) const

Returns the color of the rat row or an invalid color if row does not exist or if there is no color definition.

See also
hasColor()
setColor()
hasRamp()
setRamp()
ramp()

Definition at line 157 of file qgsrasterattributetable.cpp.

◆ colorRamp()

QgsGradientColorRamp QgsRasterAttributeTable::colorRamp ( QStringList & labels,
const int labelColumn = -1 ) const

Returns the color ramp for an athematic Raster Attribute Table setting the labels in labels, optionally generated from labelColumn.

Definition at line 1351 of file qgsrasterattributetable.cpp.

◆ createFromRaster()

QgsRasterAttributeTable * QgsRasterAttributeTable::createFromRaster ( QgsRasterLayer * rasterLayer,
int * bandNumber = nullptr )
static

Creates a new Raster Attribute Table from a raster layer, the renderer must be Paletted or SingleBandPseudoColor, optionally reporting the raster band from which the attribute table was created.

Parameters
rasterLayerraster layer
bandNumberband number
Returns
nullptr in case of errors or unsupported renderer.

Definition at line 1063 of file qgsrasterattributetable.cpp.

◆ createRenderer()

QgsRasterRenderer * QgsRasterAttributeTable::createRenderer ( QgsRasterDataProvider * provider,
const int bandNumber,
const int classificationColumn = -1 )

Creates and returns a (possibly nullptr) raster renderer for the specified provider and bandNumber and optionally reclassified by classificationColumn, the default value of -1 makes the method guess the classification column based on the field usage.

Note
athematic attribute tables with color ramps cannot be reclassified, the renderer will still use the classificationColumn for generating the class labels.

Definition at line 1506 of file qgsrasterattributetable.cpp.

◆ data()

const QList< QList< QVariant > > QgsRasterAttributeTable::data ( ) const

Returns the Raster Attribute Table rows.

Definition at line 693 of file qgsrasterattributetable.cpp.

◆ fieldByName()

const QgsRasterAttributeTable::Field QgsRasterAttributeTable::fieldByName ( const QString name,
bool * ok = nullptr ) const

Returns a field by name or a default constructed field with empty name if the field is not found.

Parameters
nameof the field
okif specified, will be set to true if the field was found.
Returns
the matching field or a default constructed one.

Definition at line 698 of file qgsrasterattributetable.cpp.

◆ fields()

QList< QgsRasterAttributeTable::Field > QgsRasterAttributeTable::fields ( ) const

Returns the Raster Attribute Table fields.

See also
qgisFields()

Definition at line 204 of file qgsrasterattributetable.cpp.

◆ fieldsByUsage()

const QList< QgsRasterAttributeTable::Field > QgsRasterAttributeTable::fieldsByUsage ( const Qgis::RasterAttributeTableFieldUsage fieldUsage) const

Returns the list of fields matching fieldUsage.

Definition at line 718 of file qgsrasterattributetable.cpp.

◆ filePath()

PRIVATE QString QgsRasterAttributeTable::filePath ( ) const

Returns the (possibly empty) path of the file-based RAT, the path is set when a RAT is read or written from/to a file.

See also
writeToFile()
readFromFile()

Definition at line 1263 of file qgsrasterattributetable.cpp.

◆ guessFieldUsage() [1/2]

Qgis::RasterAttributeTableFieldUsage QgsRasterAttributeTable::guessFieldUsage ( const QString & name,
const QMetaType::Type type )
static

Try to determine the field usage from its name and type.

Definition at line 874 of file qgsrasterattributetable.cpp.

◆ guessFieldUsage() [2/2]

Qgis::RasterAttributeTableFieldUsage QgsRasterAttributeTable::guessFieldUsage ( const QString & name,
const QVariant::Type type )
static

Try to determine the field usage from its name and type.

Definition at line 990 of file qgsrasterattributetable.cpp.

◆ hasColor()

bool QgsRasterAttributeTable::hasColor ( ) const

Returns true if the Raster Attribute Table has color RGBA information.

See also
color()
setColor()
hasRamp()
setRamp()
ramp()

Definition at line 46 of file qgsrasterattributetable.cpp.

◆ hasRamp()

bool QgsRasterAttributeTable::hasRamp ( ) const

Returns true if the Raster Attribute Table has ramp RGBA information.

See also
setRamp()
ramp()
hasColor()
setColor()

Definition at line 128 of file qgsrasterattributetable.cpp.

◆ insertColor()

bool QgsRasterAttributeTable::insertColor ( int position,
QString * errorMessage = nullptr )

Create RGBA fields and inserts them at position, optionally reporting any error in errorMessage, returns true on success.

Definition at line 352 of file qgsrasterattributetable.cpp.

◆ insertField() [1/3]

bool QgsRasterAttributeTable::insertField ( int position,
const QgsRasterAttributeTable::Field & field,
QString * errorMessage = nullptr )

Inserts a new field at position, optionally reporting any error in errorMessage, returns true on success.

Note
Out of range position is automatically clamped to a valid value.

Definition at line 247 of file qgsrasterattributetable.cpp.

◆ insertField() [2/3]

bool QgsRasterAttributeTable::insertField ( int position,
const QString & name,
const Qgis::RasterAttributeTableFieldUsage usage,
const QMetaType::Type type,
QString * errorMessage = nullptr )

Creates a new field from name, usage and type and inserts it at position, optionally reporting any error in errorMessage, returns true on success.

Definition at line 342 of file qgsrasterattributetable.cpp.

◆ insertField() [3/3]

bool QgsRasterAttributeTable::insertField ( int position,
const QString & name,
const Qgis::RasterAttributeTableFieldUsage usage,
const QVariant::Type type,
QString * errorMessage = nullptr )

Creates a new field from name, usage and type and inserts it at position, optionally reporting any error in errorMessage, returns true on success.

Deprecated
QGIS 3.38. Use the method with a QMetaType::Type argument instead.

Definition at line 347 of file qgsrasterattributetable.cpp.

◆ insertRamp()

bool QgsRasterAttributeTable::insertRamp ( int position,
QString * errorMessage = nullptr )

Create RGBA minimum and maximum fields and inserts them at position, optionally reporting any error in errorMessage, returns true on success.

Definition at line 386 of file qgsrasterattributetable.cpp.

◆ insertRow()

bool QgsRasterAttributeTable::insertRow ( int position,
const QVariantList & rowData,
QString * errorMessage = nullptr )

Inserts a row of rowData in the Raster Attribute Table at position, optionally reporting any error in errorMessage, returns true on success.

Note
Out of range position is automatically clamped to a valid value.

Definition at line 449 of file qgsrasterattributetable.cpp.

◆ isDirty()

bool QgsRasterAttributeTable::isDirty ( ) const

Returns true if the Raster Attribute Table was modified from its last reading from the storage.

Definition at line 237 of file qgsrasterattributetable.cpp.

◆ isValid()

bool QgsRasterAttributeTable::isValid ( QString * errorMessage = nullptr) const

Returns true if the Raster Attribute Table is valid, optionally reporting validity checks results in errorMessage.

Definition at line 641 of file qgsrasterattributetable.cpp.

◆ maximumValue()

double QgsRasterAttributeTable::maximumValue ( ) const

Returns the maximum value of the MinMax (thematic) or Max (athematic) column, returns NaN on errors.

Definition at line 799 of file qgsrasterattributetable.cpp.

◆ minimumValue()

double QgsRasterAttributeTable::minimumValue ( ) const

Returns the minimum value of the MinMax (thematic) or Min (athematic) column, returns NaN on errors.

Definition at line 764 of file qgsrasterattributetable.cpp.

◆ minMaxClasses()

QList< QgsRasterAttributeTable::MinMaxClass > QgsRasterAttributeTable::minMaxClasses ( const int classificationColumn = -1) const

Returns the classes for a thematic Raster Attribute Table, classified by classificationColumn, the default value of -1 makes the method guess the classification column based on the field usage.

Definition at line 1268 of file qgsrasterattributetable.cpp.

◆ orderedRows()

QList< QList< QVariant > > QgsRasterAttributeTable::orderedRows ( ) const

Returns the data rows ordered by the value column(s) in ascending order, if the attribute table type is athematic the middle value for each row range is considered for ordering.

If the attribute table does not have any value field (and hence is not valid), the current data are returned without any change.

Definition at line 1591 of file qgsrasterattributetable.cpp.

◆ qgisFeatures()

QgsFeatureList QgsRasterAttributeTable::qgisFeatures ( ) const

Returns the Raster Attribute Table rows as a list of QgsFeature.

Definition at line 220 of file qgsrasterattributetable.cpp.

◆ qgisFields()

QgsFields QgsRasterAttributeTable::qgisFields ( ) const

Returns the Raster Attribute Table fields as QgsFields.

See also
fields()

Definition at line 209 of file qgsrasterattributetable.cpp.

◆ ramp()

QgsGradientColorRamp QgsRasterAttributeTable::ramp ( int row) const

Returns the gradient color ramp of the rat row or a default constructed gradient if row does not exist or if there is no color ramp definition.

See also
hasRamp()
setRamp()
hasColor()
setColor()
color()

Definition at line 179 of file qgsrasterattributetable.cpp.

◆ readFromFile()

bool QgsRasterAttributeTable::readFromFile ( const QString & path,
QString * errorMessage = nullptr )

Reads the Raster Attribute Table from a DBF file specified by path, optionally reporting any error in errorMessage, returns true on success.

Definition at line 563 of file qgsrasterattributetable.cpp.

◆ removeField()

bool QgsRasterAttributeTable::removeField ( const QString & name,
QString * errorMessage = nullptr )

Removes the field with name, optionally reporting any error in errorMessage, returns true on success.

Definition at line 423 of file qgsrasterattributetable.cpp.

◆ removeRow()

bool QgsRasterAttributeTable::removeRow ( int position = 0,
QString * errorMessage = nullptr )

Removes the row in the Raster Attribute Table at position, optionally reporting any error in errorMessage, returns true on success.

Note
position must be a valid position.

Definition at line 487 of file qgsrasterattributetable.cpp.

◆ row()

QVariantList QgsRasterAttributeTable::row ( const double matchValue) const

Returns a row of data for the given matchValue or and empty row if there is not match.

Definition at line 834 of file qgsrasterattributetable.cpp.

◆ setColor()

bool QgsRasterAttributeTable::setColor ( const int row,
const QColor & color )

Sets the color for the row at rowIndex to color.

returns true on success.

See also
hasColor()
setColor()
hasRamp()
setRamp()
ramp()

Definition at line 52 of file qgsrasterattributetable.cpp.

◆ setDirty()

void QgsRasterAttributeTable::setDirty ( bool isDirty)

Sets the Raster Attribute Table dirty state to isDirty;.

Definition at line 242 of file qgsrasterattributetable.cpp.

◆ setFieldUsage()

bool QgsRasterAttributeTable::setFieldUsage ( int fieldIndex,
const Qgis::RasterAttributeTableFieldUsage usage )

Change the usage of the field at index fieldIndex to usage with checks for allowed types.

Returns
true on success.

Definition at line 367 of file qgsrasterattributetable.cpp.

◆ setRamp()

bool QgsRasterAttributeTable::setRamp ( const int row,
const QColor & colorMin,
const QColor & colorMax )

Sets the color ramp for the row at rowIndex to colorMin and colorMax.

returns true on success.

See also
hasRamp()
ramp()
hasColor()
setColor()

Definition at line 84 of file qgsrasterattributetable.cpp.

◆ setValue()

bool QgsRasterAttributeTable::setValue ( const int row,
const int column,
const QVariant & value )

Sets the value for row and column.

Returns
true on success.

Definition at line 731 of file qgsrasterattributetable.cpp.

◆ type()

Qgis::RasterAttributeTableType QgsRasterAttributeTable::type ( ) const

Returns the Raster Attribute Table type.

Definition at line 40 of file qgsrasterattributetable.cpp.

◆ usageInformation()

QHash< Qgis::RasterAttributeTableFieldUsage, QgsRasterAttributeTable::UsageInformation > QgsRasterAttributeTable::usageInformation ( )
static

Returns information about supported Raster Attribute Table usages.

See also
usageName()

Definition at line 1215 of file qgsrasterattributetable.cpp.

◆ usageName()

QString QgsRasterAttributeTable::usageName ( const Qgis::RasterAttributeTableFieldUsage fieldusage)
static

Returns the translated human readable name of fieldUsage.

See also
usageInformation()

Definition at line 995 of file qgsrasterattributetable.cpp.

◆ usages()

QList< Qgis::RasterAttributeTableFieldUsage > QgsRasterAttributeTable::usages ( ) const

Returns the list of field usages.

Definition at line 135 of file qgsrasterattributetable.cpp.

◆ value()

QVariant QgsRasterAttributeTable::value ( const int row,
const int column ) const

Returns the value for row and column.

Definition at line 755 of file qgsrasterattributetable.cpp.

◆ valueAndColorFieldUsages()

QList< Qgis::RasterAttributeTableFieldUsage > QgsRasterAttributeTable::valueAndColorFieldUsages ( )
static

Returns the list of field usages for colors and values.

Definition at line 1041 of file qgsrasterattributetable.cpp.

◆ writeToFile()

bool QgsRasterAttributeTable::writeToFile ( const QString & path,
QString * errorMessage = nullptr )

Writes the Raster Attribute Table to a DBF file specified by path, optionally reporting any error in errorMessage, returns true on success.

Note
".vat.dbf" extension is automatically added to the file path if not present.

Definition at line 507 of file qgsrasterattributetable.cpp.


The documentation for this class was generated from the following files: