GDAL
|
PAM raster band. More...
#include <gdal_pam.h>
Public Member Functions | |
void | SetDescription (const char *) override |
Set object description. More... | |
CPLErr | SetNoDataValue (double) override |
Set the no data value for this band. More... | |
double | GetNoDataValue (int *pbSuccess=nullptr) override |
Fetch the no data value for this band. More... | |
CPLErr | DeleteNoDataValue () override |
Remove the no data value for this band. More... | |
CPLErr | SetColorTable (GDALColorTable *) override |
Set the raster color table. More... | |
GDALColorTable * | GetColorTable () override |
Fetch the color table associated with band. More... | |
CPLErr | SetColorInterpretation (GDALColorInterp) override |
Set color interpretation of a band. More... | |
GDALColorInterp | GetColorInterpretation () override |
How should this band be interpreted as color? More... | |
const char * | GetUnitType () override |
Return raster unit type. More... | |
CPLErr | SetUnitType (const char *) override |
Set unit type. More... | |
char ** | GetCategoryNames () override |
Fetch the list of category names for this raster. More... | |
CPLErr | SetCategoryNames (char **) override |
Set the category names for this band. More... | |
double | GetOffset (int *pbSuccess=nullptr) override |
Fetch the raster value offset. More... | |
CPLErr | SetOffset (double) override |
Set scaling offset. More... | |
double | GetScale (int *pbSuccess=nullptr) override |
Fetch the raster value scale. More... | |
CPLErr | SetScale (double) override |
Set scaling ratio. More... | |
CPLErr | GetHistogram (double dfMin, double dfMax, int nBuckets, GUIntBig *panHistogram, int bIncludeOutOfRange, int bApproxOK, GDALProgressFunc, void *pProgressData) override |
Compute raster histogram. More... | |
CPLErr | GetDefaultHistogram (double *pdfMin, double *pdfMax, int *pnBuckets, GUIntBig **ppanHistogram, int bForce, GDALProgressFunc, void *pProgressData) override |
Fetch default raster histogram. More... | |
CPLErr | SetDefaultHistogram (double dfMin, double dfMax, int nBuckets, GUIntBig *panHistogram) override |
Set default histogram. More... | |
CPLErr | SetMetadata (char **papszMetadata, const char *pszDomain="") override |
Set metadata. More... | |
CPLErr | SetMetadataItem (const char *pszName, const char *pszValue, const char *pszDomain="") override |
Set single metadata item. More... | |
GDALRasterAttributeTable * | GetDefaultRAT () override |
Fetch default Raster Attribute Table. More... | |
CPLErr | SetDefaultRAT (const GDALRasterAttributeTable *) override |
Set default Raster Attribute Table. More... | |
Public Member Functions inherited from GDALRasterBand | |
GDALRasterBand () | |
GDALRasterBand (int bForceCachedIO) | |
Constructor. More... | |
~GDALRasterBand () override | |
int | GetXSize () |
Fetch XSize of raster. More... | |
int | GetYSize () |
Fetch YSize of raster. More... | |
int | GetBand () |
Fetch the band number. More... | |
GDALDataset * | GetDataset () |
Fetch the owning dataset handle. More... | |
GDALDataType | GetRasterDataType (void) |
Fetch the pixel data type for this band. More... | |
void | GetBlockSize (int *, int *) |
Fetch the "natural" block size of this band. More... | |
CPLErr | GetActualBlockSize (int, int, int *, int *) |
Fetch the actual block size for a given block offset. More... | |
GDALAccess | GetAccess () |
Find out if we have update permission for this band. More... | |
CPLErr | RasterIO (GDALRWFlag, int, int, int, int, void *, int, int, GDALDataType, GSpacing, GSpacing, GDALRasterIOExtraArg *psExtraArg) CPL_WARN_UNUSED_RESULT |
Read/write a region of image data for this band. More... | |
CPLErr | ReadBlock (int, int, void *) CPL_WARN_UNUSED_RESULT |
Read a block of image data efficiently. More... | |
CPLErr | WriteBlock (int, int, void *) CPL_WARN_UNUSED_RESULT |
Write a block of image data efficiently. More... | |
GDALRasterBlock * | GetLockedBlockRef (int nXBlockOff, int nYBlockOff, int bJustInitialize=FALSE) CPL_WARN_UNUSED_RESULT |
Fetch a pointer to an internally cached raster block. More... | |
CPLErr | FlushBlock (int, int, int bWriteDirtyBlock=TRUE) |
Flush a block out of the block cache. More... | |
unsigned char * | GetIndexColorTranslationTo (GDALRasterBand *poReferenceBand, unsigned char *pTranslationTable=nullptr, int *pApproximateMatching=nullptr) |
Compute translation table for color tables. More... | |
virtual CPLErr | FlushCache () |
Flush raster data cache. More... | |
virtual double | GetMinimum (int *pbSuccess=nullptr) |
Fetch the minimum value for this band. More... | |
virtual double | GetMaximum (int *pbSuccess=nullptr) |
Fetch the maximum value for this band. More... | |
virtual CPLErr | Fill (double dfRealValue, double dfImaginaryValue=0) |
Fill this band with a constant value. More... | |
virtual CPLErr | GetStatistics (int bApproxOK, int bForce, double *pdfMin, double *pdfMax, double *pdfMean, double *padfStdDev) |
Fetch image statistics. More... | |
virtual CPLErr | ComputeStatistics (int bApproxOK, double *pdfMin, double *pdfMax, double *pdfMean, double *pdfStdDev, GDALProgressFunc, void *pProgressData) |
Compute image statistics. More... | |
virtual CPLErr | SetStatistics (double dfMin, double dfMax, double dfMean, double dfStdDev) |
Set statistics on band. More... | |
virtual CPLErr | ComputeRasterMinMax (int, double *) |
Compute the min/max values for a band. More... | |
char ** | GetMetadata (const char *pszDomain="") override |
Fetch metadata. More... | |
CPLErr | SetMetadata (char **papszMetadata, const char *pszDomain) override |
Set metadata. More... | |
const char * | GetMetadataItem (const char *pszName, const char *pszDomain) override |
Fetch single metadata item. More... | |
CPLErr | SetMetadataItem (const char *pszName, const char *pszValue, const char *pszDomain) override |
Set single metadata item. More... | |
virtual int | HasArbitraryOverviews () |
Check for arbitrary overviews. More... | |
virtual int | GetOverviewCount () |
Return the number of overview layers available. More... | |
virtual GDALRasterBand * | GetOverview (int) |
Fetch overview raster band object. More... | |
virtual GDALRasterBand * | GetRasterSampleOverview (GUIntBig) |
Fetch best sampling overview. More... | |
virtual CPLErr | BuildOverviews (const char *pszResampling, int nOverviews, int *panOverviewList, GDALProgressFunc pfnProgress, void *pProgressData) |
Build raster overview(s) More... | |
virtual CPLErr | AdviseRead (int nXOff, int nYOff, int nXSize, int nYSize, int nBufXSize, int nBufYSize, GDALDataType eBufType, char **papszOptions) |
Advise driver of upcoming read requests. More... | |
virtual GDALRasterBand * | GetMaskBand () |
Return the mask band associated with the band. More... | |
virtual int | GetMaskFlags () |
Return the status flags of the mask band associated with the band. More... | |
virtual CPLErr | CreateMaskBand (int nFlagsIn) |
Adds a mask band to the current band. More... | |
virtual CPLVirtualMem * | GetVirtualMemAuto (GDALRWFlag eRWFlag, int *pnPixelSpace, GIntBig *pnLineSpace, char **papszOptions) CPL_WARN_UNUSED_RESULT |
Create a CPLVirtualMem object from a GDAL raster band object. More... | |
int | GetDataCoverageStatus (int nXOff, int nYOff, int nXSize, int nYSize, int nMaskFlagStop=0, double *pdfDataPct=nullptr) |
Get the coverage status of a sub-window of the raster. More... | |
void | ReportError (CPLErr eErrClass, CPLErrorNum err_no, const char *fmt,...) CPL_PRINT_FUNC_FORMAT(4 |
Emits an error related to a raster band. More... | |
Public Member Functions inherited from GDALMajorObject | |
int | GetMOFlags () const |
Returns the GMO_ flags. More... | |
void | SetMOFlags (int nFlagsIn) |
Assign GMO_flags. More... | |
virtual const char * | GetDescription () const |
Fetch object description. More... | |
virtual char ** | GetMetadataDomainList () |
Fetch list of metadata domains. More... | |
Friends | |
class | GDALPamDataset |
Additional Inherited Members | |
Static Public Member Functions inherited from GDALRasterBand | |
void static GDALRasterBandH | ToHandle (GDALRasterBand *poBand) |
Convert a GDALRasterBand* to a GDALRasterBandH. More... | |
static GDALRasterBand * | FromHandle (GDALRasterBandH hBand) |
Convert a GDALRasterBandH to a GDALRasterBand*. More... | |
Static Public Member Functions inherited from GDALMajorObject | |
static GDALMajorObjectH | ToHandle (GDALMajorObject *poMajorObject) |
Convert a GDALMajorObject* to a GDALMajorObjectH. More... | |
static GDALMajorObject * | FromHandle (GDALMajorObjectH hMajorObject) |
Convert a GDALMajorObjectH to a GDALMajorObject*. More... | |
Protected Member Functions inherited from GDALRasterBand | |
virtual CPLErr | IReadBlock (int nBlockXOff, int nBlockYOff, void *pData)=0 |
Read a block of data. More... | |
virtual CPLErr | IWriteBlock (int nBlockXOff, int nBlockYOff, void *pData) |
Write a block of data. More... | |
virtual CPLErr | IRasterIO (GDALRWFlag, int, int, int, int, void *, int, int, GDALDataType, GSpacing, GSpacing, GDALRasterIOExtraArg *psExtraArg) CPL_WARN_UNUSED_RESULT |
Read/write a region of image data for this band. More... | |
virtual int | IGetDataCoverageStatus (int nXOff, int nYOff, int nXSize, int nYSize, int nMaskFlagStop, double *pdfDataPct) |
Get the coverage status of a sub-window of the raster. More... | |
GDALRasterBlock * | TryGetLockedBlockRef (int nXBlockOff, int nYBlockYOff) |
Try fetching block ref. More... | |
Protected Member Functions inherited from GDALMajorObject | |
char ** | BuildMetadataDomainList (char **papszList, int bCheckNonEmpty,...) CPL_NULL_TERMINATED |
Helper function for custom implementations of GetMetadataDomainList() More... | |
PAM raster band.
|
overridevirtual |
Remove the no data value for this band.
This method is the same as the C function GDALDeleteRasterNoDataValue().
Reimplemented from GDALRasterBand.
|
overridevirtual |
Fetch the list of category names for this raster.
The return list is a "StringList" in the sense of the CPL functions. That is a NULL terminated array of strings. Raster values without associated names will have an empty string in the returned list. The first entry in the list is for raster values of zero, and so on.
The returned stringlist should not be altered or freed by the application. It may change on the next GDAL call, so please copy it if it is needed for any period of time.
This method is the same as the C function GDALGetRasterCategoryNames().
Reimplemented from GDALRasterBand.
|
overridevirtual |
How should this band be interpreted as color?
GCI_Undefined is returned when the format doesn't know anything about the color interpretation.
This method is the same as the C function GDALGetRasterColorInterpretation().
Reimplemented from GDALRasterBand.
|
overridevirtual |
Fetch the color table associated with band.
If there is no associated color table, the return result is NULL. The returned color table remains owned by the GDALRasterBand, and can't be depended on for long, nor should it ever be modified by the caller.
This method is the same as the C function GDALGetRasterColorTable().
Reimplemented from GDALRasterBand.
|
overridevirtual |
Fetch default raster histogram.
The default method in GDALRasterBand will compute a default histogram. This method is overridden by derived classes (such as GDALPamRasterBand, VRTDataset, HFADataset...) that may be able to fetch efficiently an already stored histogram.
This method is the same as the C functions GDALGetDefaultHistogram() and GDALGetDefaultHistogramEx().
pdfMin | pointer to double value that will contain the lower bound of the histogram. |
pdfMax | pointer to double value that will contain the upper bound of the histogram. |
pnBuckets | pointer to int value that will contain the number of buckets in *ppanHistogram. |
ppanHistogram | pointer to array into which the histogram totals are placed. To be freed with VSIFree |
bForce | TRUE to force the computation. If FALSE and no default histogram is available, the method will return CE_Warning |
pfnProgress | function to report progress to completion. |
pProgressData | application data to pass to pfnProgress. |
Reimplemented from GDALRasterBand.
|
overridevirtual |
Fetch default Raster Attribute Table.
A RAT will be returned if there is a default one associated with the band, otherwise NULL is returned. The returned RAT is owned by the band and should not be deleted by the application.
This method is the same as the C function GDALGetDefaultRAT().
Reimplemented from GDALRasterBand.
|
overridevirtual |
Compute raster histogram.
Note that the bucket size is (dfMax-dfMin) / nBuckets.
For example to compute a simple 256 entry histogram of eight bit data, the following would be suitable. The unusual bounds are to ensure that bucket boundaries don't fall right on integer values causing possible errors due to rounding after scaling.
GUIntBig anHistogram[256];
poBand->GetHistogram( -0.5, 255.5, 256, anHistogram, FALSE, FALSE, GDALDummyProgress, nullptr );
Note that setting bApproxOK will generally result in a subsampling of the file, and will utilize overviews if available. It should generally produce a representative histogram for the data that is suitable for use in generating histogram based luts for instance. Generally bApproxOK is much faster than an exactly computed histogram.
This method is the same as the C functions GDALGetRasterHistogram() and GDALGetRasterHistogramEx().
dfMin | the lower bound of the histogram. |
dfMax | the upper bound of the histogram. |
nBuckets | the number of buckets in panHistogram. |
panHistogram | array into which the histogram totals are placed. |
bIncludeOutOfRange | if TRUE values below the histogram range will mapped into panHistogram[0], and values above will be mapped into panHistogram[nBuckets-1] otherwise out of range values are discarded. |
bApproxOK | TRUE if an approximate, or incomplete histogram OK. |
pfnProgress | function to report progress to completion. |
pProgressData | application data to pass to pfnProgress. |
Reimplemented from GDALRasterBand.
|
overridevirtual |
Fetch the no data value for this band.
If there is no out of data value, an out of range value will generally be returned. The no data value for a band is generally a special marker value used to mark pixels that are not valid data. Such pixels should generally not be displayed, nor contribute to analysis operations.
The no data value returned is 'raw', meaning that it has no offset and scale applied.
This method is the same as the C function GDALGetRasterNoDataValue().
pbSuccess | pointer to a boolean to use to indicate if a value is actually associated with this layer. May be NULL (default). |
Reimplemented from GDALRasterBand.
|
overridevirtual |
Fetch the raster value offset.
This value (in combination with the GetScale() value) can be used to transform raw pixel values into the units returned by GetUnitType(). For example this might be used to store elevations in GUInt16 bands with a precision of 0.1, and starting from -100.
Units value = (raw value * scale) + offset
Note that applying scale and offset is of the responsibility of the user, and is not done by methods such as RasterIO() or ReadBlock().
For file formats that don't know this intrinsically a value of zero is returned.
This method is the same as the C function GDALGetRasterOffset().
pbSuccess | pointer to a boolean to use to indicate if the returned value is meaningful or not. May be NULL (default). |
Reimplemented from GDALRasterBand.
|
overridevirtual |
Fetch the raster value scale.
This value (in combination with the GetOffset() value) can be used to transform raw pixel values into the units returned by GetUnitType(). For example this might be used to store elevations in GUInt16 bands with a precision of 0.1, and starting from -100.
Units value = (raw value * scale) + offset
Note that applying scale and offset is of the responsibility of the user, and is not done by methods such as RasterIO() or ReadBlock().
For file formats that don't know this intrinsically a value of one is returned.
This method is the same as the C function GDALGetRasterScale().
pbSuccess | pointer to a boolean to use to indicate if the returned value is meaningful or not. May be NULL (default). |
Reimplemented from GDALRasterBand.
|
overridevirtual |
Return raster unit type.
Return a name for the units of this raster's values. For instance, it might be "m" for an elevation model in meters, or "ft" for feet. If no units are available, a value of "" will be returned. The returned string should not be modified, nor freed by the calling application.
This method is the same as the C function GDALGetRasterUnitType().
Reimplemented from GDALRasterBand.
|
overridevirtual |
Set the category names for this band.
See the GetCategoryNames() method for more on the interpretation of category names.
This method is the same as the C function GDALSetRasterCategoryNames().
papszNames | the NULL terminated StringList of category names. May be NULL to just clear the existing list. |
Reimplemented from GDALRasterBand.
|
overridevirtual |
Set color interpretation of a band.
This method is the same as the C function GDALSetRasterColorInterpretation().
eColorInterp | the new color interpretation to apply to this band. |
Reimplemented from GDALRasterBand.
|
overridevirtual |
Set the raster color table.
The driver will make a copy of all desired data in the colortable. It remains owned by the caller after the call.
This method is the same as the C function GDALSetRasterColorTable().
poCT | the color table to apply. This may be NULL to clear the color table (where supported). |
Reimplemented from GDALRasterBand.
|
overridevirtual |
Set default histogram.
This method is the same as the C function GDALSetDefaultHistogram() and GDALSetDefaultHistogramEx()
Reimplemented from GDALRasterBand.
|
overridevirtual |
Set default Raster Attribute Table.
Associates a default RAT with the band. If not implemented for the format a CPLE_NotSupported error will be issued. If successful a copy of the RAT is made, the original remains owned by the caller.
This method is the same as the C function GDALSetDefaultRAT().
poRAT | the RAT to assign to the band. |
Reimplemented from GDALRasterBand.
|
overridevirtual |
Set object description.
The semantics of the description are specific to the derived type. For GDALDatasets it is the dataset name. For GDALRasterBands it is actually a description (if supported) or "".
Normally application code should not set the "description" for GDALDatasets. It is handled internally.
This method is the same as the C function GDALSetDescription().
Reimplemented from GDALMajorObject.
|
overridevirtual |
Set metadata.
The C function GDALSetMetadata() does the same thing as this method.
papszMetadataIn | the metadata in name=value string list format to apply. |
pszDomain | the domain of interest. Use "" or NULL for the default domain. |
Reimplemented from GDALMajorObject.
|
overridevirtual |
Set single metadata item.
The C function GDALSetMetadataItem() does the same thing as this method.
pszName | the key for the metadata item to fetch. |
pszValue | the value to assign to the key. |
pszDomain | the domain to set within, use NULL for the default domain. |
Reimplemented from GDALMajorObject.
|
overridevirtual |
Set the no data value for this band.
Depending on drivers, changing the no data value may or may not have an effect on the pixel values of a raster that has just been created. It is thus advised to explicitly called Fill() if the intent is to initialize the raster to the nodata value. In ay case, changing an existing no data value, when one already exists and the dataset exists or has been initialized, has no effect on the pixel whose value matched the previous nodata value.
To clear the nodata value, use DeleteNoDataValue().
This method is the same as the C function GDALSetRasterNoDataValue().
dfNoData | the value to set. |
Reimplemented from GDALRasterBand.
|
overridevirtual |
Set scaling offset.
Very few formats implement this method. When not implemented it will issue a CPLE_NotSupported error and return CE_Failure.
This method is the same as the C function GDALSetRasterOffset().
dfNewOffset | the new offset. |
Reimplemented from GDALRasterBand.
|
overridevirtual |
Set scaling ratio.
Very few formats implement this method. When not implemented it will issue a CPLE_NotSupported error and return CE_Failure.
This method is the same as the C function GDALSetRasterScale().
dfNewScale | the new scale. |
Reimplemented from GDALRasterBand.
|
overridevirtual |
Set unit type.
Set the unit type for a raster band. Values should be one of "" (the default indicating it is unknown), "m" indicating meters, or "ft" indicating feet, though other nonstandard values are allowed.
This method is the same as the C function GDALSetRasterUnitType().
pszNewValue | the new unit type value. |
Reimplemented from GDALRasterBand.