GDAL
Public Member Functions | Public Attributes | List of all members
VRTSourcedRasterBand Class Reference
Inheritance diagram for VRTSourcedRasterBand:
VRTRasterBand GDALRasterBand GDALMajorObject VRTDerivedRasterBand

Public Member Functions

 VRTSourcedRasterBand (GDALDataset *poDS, int nBand)
 
 VRTSourcedRasterBand (GDALDataType eType, int nXSize, int nYSize)
 
 VRTSourcedRasterBand (GDALDataset *poDS, int nBand, GDALDataType eType, int nXSize, int nYSize)
 
virtual CPLErr IRasterIO (GDALRWFlag, int, int, int, int, void *, int, int, GDALDataType, int, int)
 
virtual char ** GetMetadataDomainList ()
 Fetch list of metadata domains. More...
 
virtual const char * GetMetadataItem (const char *pszName, const char *pszDomain="")
 Fetch single metadata item. More...
 
virtual char ** GetMetadata (const char *pszDomain="")
 Fetch metadata. More...
 
virtual CPLErr SetMetadata (char **papszMetadata, const char *pszDomain="")
 Set metadata. More...
 
virtual CPLErr SetMetadataItem (const char *pszName, const char *pszValue, const char *pszDomain="")
 Set single metadata item. More...
 
virtual CPLErr XMLInit (CPLXMLNode *, const char *)
 
virtual CPLXMLNodeSerializeToXML (const char *pszVRTPath)
 
virtual double GetMinimum (int *pbSuccess=NULL)
 Fetch the minimum value for this band. More...
 
virtual double GetMaximum (int *pbSuccess=NULL)
 Fetch the maximum value for this band. More...
 
virtual CPLErr ComputeRasterMinMax (int bApproxOK, double *adfMinMax)
 Compute the min/max values for a band. More...
 
virtual CPLErr ComputeStatistics (int bApproxOK, double *pdfMin, double *pdfMax, double *pdfMean, double *pdfStdDev, GDALProgressFunc pfnProgress, void *pProgressData)
 Compute image statistics. More...
 
virtual CPLErr GetHistogram (double dfMin, double dfMax, int nBuckets, int *panHistogram, int bIncludeOutOfRange, int bApproxOK, GDALProgressFunc pfnProgress, void *pProgressData)
 Compute raster histogram. More...
 
CPLErr AddSource (VRTSource *)
 
CPLErr AddSimpleSource (GDALRasterBand *poSrcBand, int nSrcXOff=-1, int nSrcYOff=-1, int nSrcXSize=-1, int nSrcYSize=-1, int nDstXOff=-1, int nDstYOff=-1, int nDstXSize=-1, int nDstYSize=-1, const char *pszResampling="near", double dfNoDataValue=VRT_NODATA_UNSET)
 
CPLErr AddComplexSource (GDALRasterBand *poSrcBand, int nSrcXOff=-1, int nSrcYOff=-1, int nSrcXSize=-1, int nSrcYSize=-1, int nDstXOff=-1, int nDstYOff=-1, int nDstXSize=-1, int nDstYSize=-1, double dfScaleOff=0.0, double dfScaleRatio=1.0, double dfNoDataValue=VRT_NODATA_UNSET, int nColorTableComponent=0)
 
CPLErr AddMaskBandSource (GDALRasterBand *poSrcBand, int nSrcXOff=-1, int nSrcYOff=-1, int nSrcXSize=-1, int nSrcYSize=-1, int nDstXOff=-1, int nDstYOff=-1, int nDstXSize=-1, int nDstYSize=-1)
 
CPLErr AddFuncSource (VRTImageReadFunc pfnReadFunc, void *hCBData, double dfNoDataValue=VRT_NODATA_UNSET)
 
void ConfigureSource (VRTSimpleSource *poSimpleSource, GDALRasterBand *poSrcBand, int bAddAsMaskBand, int nSrcXOff, int nSrcYOff, int nSrcXSize, int nSrcYSize, int nDstXOff, int nDstYOff, int nDstXSize, int nDstYSize)
 
virtual CPLErr IReadBlock (int, int, void *)
 
virtual void GetFileList (char ***ppapszFileList, int *pnSize, int *pnMaxSize, CPLHashSet *hSetFiles)
 
virtual int CloseDependentDatasets ()
 
virtual int IsSourcedRasterBand ()
 
- Public Member Functions inherited from VRTRasterBand
virtual CPLErr SetNoDataValue (double)
 Set the no data value for this band. More...
 
virtual double GetNoDataValue (int *pbSuccess=NULL)
 Fetch the no data value for this band. More...
 
virtual CPLErr SetColorTable (GDALColorTable *)
 Set the raster color table. More...
 
virtual GDALColorTableGetColorTable ()
 Fetch the color table associated with band. More...
 
virtual CPLErr SetColorInterpretation (GDALColorInterp)
 Set color interpretation of a band. More...
 
virtual GDALColorInterp GetColorInterpretation ()
 How should this band be interpreted as color? More...
 
virtual const char * GetUnitType ()
 Return raster unit type. More...
 
CPLErr SetUnitType (const char *)
 Set unit type. More...
 
virtual char ** GetCategoryNames ()
 Fetch the list of category names for this raster. More...
 
virtual CPLErr SetCategoryNames (char **)
 Set the category names for this band. More...
 
virtual double GetOffset (int *pbSuccess=NULL)
 Fetch the raster value offset. More...
 
CPLErr SetOffset (double)
 Set scaling offset. More...
 
virtual double GetScale (int *pbSuccess=NULL)
 Fetch the raster value scale. More...
 
CPLErr SetScale (double)
 Set scaling ratio. More...
 
virtual int GetOverviewCount ()
 Return the number of overview layers available. More...
 
virtual GDALRasterBandGetOverview (int)
 Fetch overview raster band object. More...
 
virtual CPLErr GetDefaultHistogram (double *pdfMin, double *pdfMax, int *pnBuckets, int **ppanHistogram, int bForce, GDALProgressFunc, void *pProgressData)
 Fetch default raster histogram. More...
 
virtual CPLErr SetDefaultHistogram (double dfMin, double dfMax, int nBuckets, int *panHistogram)
 Set default histogram. More...
 
CPLErr CopyCommonInfoFrom (GDALRasterBand *)
 
virtual void SetDescription (const char *)
 Set object description. More...
 
virtual GDALRasterBandGetMaskBand ()
 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 nFlags)
 Adds a mask band to the current band. More...
 
void SetMaskBand (VRTRasterBand *poMaskBand)
 
void SetIsMaskBand ()
 
CPLErr UnsetNoDataValue ()
 
- Public Member Functions inherited from GDALRasterBand
 GDALRasterBand ()
 
virtual ~GDALRasterBand ()
 
int GetXSize ()
 Fetch XSize of raster. More...
 
int GetYSize ()
 Fetch YSize of raster. More...
 
int GetBand ()
 Fetch the band number. More...
 
GDALDatasetGetDataset ()
 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...
 
GDALAccess GetAccess ()
 Find out if we have update permission for this band. More...
 
CPLErr RasterIO (GDALRWFlag, int, int, int, int, void *, int, int, GDALDataType, int, int)
 Read/write a region of image data for this band. More...
 
CPLErr ReadBlock (int, int, void *)
 Read a block of image data efficiently. More...
 
CPLErr WriteBlock (int, int, void *)
 Write a block of image data efficiently. More...
 
GDALRasterBlockGetLockedBlockRef (int nXBlockOff, int nYBlockOff, int bJustInitialize=FALSE)
 Fetch a pointer to an internally cached raster block. More...
 
CPLErr FlushBlock (int=-1, int=-1, int bWriteDirtyBlock=TRUE)
 
unsigned char * GetIndexColorTranslationTo (GDALRasterBand *poReferenceBand, unsigned char *pTranslationTable=NULL, int *pApproximateMatching=NULL)
 Compute translation table for color tables. More...
 
virtual CPLErr FlushCache ()
 Flush raster data cache. 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 SetStatistics (double dfMin, double dfMax, double dfMean, double dfStdDev)
 Set statistics on band. More...
 
virtual int HasArbitraryOverviews ()
 Check for arbitrary overviews. More...
 
virtual GDALRasterBandGetRasterSampleOverview (int)
 Fetch best sampling overview. More...
 
virtual CPLErr BuildOverviews (const char *, int, int *, GDALProgressFunc, void *)
 Build raster overview(s) More...
 
virtual CPLErr AdviseRead (int nXOff, int nYOff, int nXSize, int nYSize, int nBufXSize, int nBufYSize, GDALDataType eDT, char **papszOptions)
 Advise driver of upcoming read requests. More...
 
virtual GDALRasterAttributeTableGetDefaultRAT ()
 Fetch default Raster Attribute Table. More...
 
virtual CPLErr SetDefaultRAT (const GDALRasterAttributeTable *)
 Set default Raster Attribute Table. More...
 
virtual CPLVirtualMemGetVirtualMemAuto (GDALRWFlag eRWFlag, int *pnPixelSpace, GIntBig *pnLineSpace, char **papszOptions)
 Create a CPLVirtualMem object from a GDAL raster band object. More...
 
void ReportError (CPLErr eErrClass, int 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 ()
 
void SetMOFlags (int nFlags)
 
virtual const char * GetDescription () const
 Fetch object description. More...
 

Public Attributes

int nSources
 
VRTSource ** papoSources
 
int bEqualAreas
 

Additional Inherited Members

- Protected Member Functions inherited from VRTRasterBand
void Initialize (int nXSize, int nYSize)
 
- Protected Member Functions inherited from GDALRasterBand
void InvalidateMaskBand ()
 
virtual CPLErr IWriteBlock (int, int, void *)
 
CPLErr OverviewRasterIO (GDALRWFlag, int, int, int, int, void *, int, int, GDALDataType, int, int)
 
int InitBlockInfo ()
 
CPLErr AdoptBlock (int, int, GDALRasterBlock *)
 
GDALRasterBlockTryGetLockedBlockRef (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...
 
- Protected Attributes inherited from VRTRasterBand
int bIsMaskBand
 
int bNoDataValueSet
 
int bHideNoDataValue
 
double dfNoDataValue
 
GDALColorTablepoColorTable
 
GDALColorInterp eColorInterp
 
char * pszUnitType
 
char ** papszCategoryNames
 
double dfOffset
 
double dfScale
 
CPLXMLNodepsSavedHistograms
 
std::vector< VRTOverviewInfoapoOverviews
 
VRTRasterBandpoMaskBand
 
- Protected Attributes inherited from GDALRasterBand
GDALDatasetpoDS
 
int nBand
 
int nRasterXSize
 
int nRasterYSize
 
GDALDataType eDataType
 
GDALAccess eAccess
 
int nBlockXSize
 
int nBlockYSize
 
int nBlocksPerRow
 
int nBlocksPerColumn
 
int bSubBlockingActive
 
int nSubBlocksPerRow
 
int nSubBlocksPerColumn
 
GDALRasterBlock ** papoBlocks
 
int nBlockReads
 
int bForceCachedIO
 
GDALRasterBandpoMask
 
bool bOwnMask
 
int nMaskFlags
 
- Protected Attributes inherited from GDALMajorObject
int nFlags
 
CPLString sDescription
 
GDALMultiDomainMetadata oMDMD
 

Member Function Documentation

CPLErr VRTSourcedRasterBand::ComputeRasterMinMax ( int  ,
double *   
)
virtual

Compute the min/max values for a band.

If approximate is OK, then the band's GetMinimum()/GetMaximum() will be trusted. If it doesn't work, a subsample of blocks will be read to get an approximate min/max. If the band has a nodata value it will be excluded from the minimum and maximum.

If bApprox is FALSE, then all pixels will be read and used to compute an exact range.

This method is the same as the C function GDALComputeRasterMinMax().

Parameters
bApproxOKTRUE if an approximate (faster) answer is OK, otherwise FALSE.
adfMinMaxthe array in which the minimum (adfMinMax[0]) and the maximum (adfMinMax[1]) are returned.
Returns
CE_None on success or CE_Failure on failure.

Reimplemented from GDALRasterBand.

CPLErr VRTSourcedRasterBand::ComputeStatistics ( int  bApproxOK,
double *  pdfMin,
double *  pdfMax,
double *  pdfMean,
double *  pdfStdDev,
GDALProgressFunc  pfnProgress,
void *  pProgressData 
)
virtual

Compute image statistics.

Returns the minimum, maximum, mean and standard deviation of all pixel values in this band. If approximate statistics are sufficient, the bApproxOK flag can be set to true in which case overviews, or a subset of image tiles may be used in computing the statistics.

Once computed, the statistics will generally be "set" back on the raster band using SetStatistics().

This method is the same as the C function GDALComputeRasterStatistics().

Parameters
bApproxOKIf TRUE statistics may be computed based on overviews or a subset of all tiles.
pdfMinLocation into which to load image minimum (may be NULL).
pdfMaxLocation into which to load image maximum (may be NULL).-
pdfMeanLocation into which to load image mean (may be NULL).
pdfStdDevLocation into which to load image standard deviation (may be NULL).
pfnProgressa function to call to report progress, or NULL.
pProgressDataapplication data to pass to the progress function.
Returns
CE_None on success, or CE_Failure if an error occurs or processing is terminated by the user.

Reimplemented from GDALRasterBand.

CPLErr VRTSourcedRasterBand::GetHistogram ( double  dfMin,
double  dfMax,
int  nBuckets,
int *  panHistogram,
int  bIncludeOutOfRange,
int  bApproxOK,
GDALProgressFunc  pfnProgress,
void *  pProgressData 
)
virtual

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.

    int anHistogram[256];
    poBand->GetHistogram( -0.5, 255.5, 256, anHistogram, FALSE, FALSE, 
                          GDALDummyProgress, NULL );

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 function GDALGetRasterHistogram().

Parameters
dfMinthe lower bound of the histogram.
dfMaxthe upper bound of the histogram.
nBucketsthe number of buckets in panHistogram.
panHistogramarray into which the histogram totals are placed.
bIncludeOutOfRangeif 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.
bApproxOKTRUE if an approximate, or incomplete histogram OK.
pfnProgressfunction to report progress to completion.
pProgressDataapplication data to pass to pfnProgress.
Returns
CE_None on success, or CE_Failure if something goes wrong.

Reimplemented from VRTRasterBand.

double VRTSourcedRasterBand::GetMaximum ( int *  pbSuccess = NULL)
virtual

Fetch the maximum value for this band.

For file formats that don't know this intrinsically, the maximum supported value for the data type will generally be returned.

This method is the same as the C function GDALGetRasterMaximum().

Parameters
pbSuccesspointer to a boolean to use to indicate if the returned value is a tight maximum or not. May be NULL (default).
Returns
the maximum raster value (excluding no data pixels)

Reimplemented from GDALRasterBand.

char ** VRTSourcedRasterBand::GetMetadata ( const char *  pszDomain = "")
virtual

Fetch metadata.

The returned string list is owned by the object, and may change at any time. It is formated as a "Name=value" list with the last pointer value being NULL. Use the the CPL StringList functions such as CSLFetchNameValue() to manipulate it.

Note that relatively few formats return any metadata at this time.

This method does the same thing as the C function GDALGetMetadata().

Parameters
pszDomainthe domain of interest. Use "" or NULL for the default domain.
Returns
NULL or a string list.

Reimplemented from GDALMajorObject.

char ** VRTSourcedRasterBand::GetMetadataDomainList ( )
virtual

Fetch list of metadata domains.

The returned string list is the list of (non-empty) metadata domains.

This method does the same thing as the C function GDALGetMetadataDomainList().

Returns
NULL or a string list. Must be freed with CSLDestroy()
Since
GDAL 1.11

Reimplemented from GDALMajorObject.

const char * VRTSourcedRasterBand::GetMetadataItem ( const char *  pszName,
const char *  pszDomain = "" 
)
virtual

Fetch single metadata item.

The C function GDALGetMetadataItem() does the same thing as this method.

Parameters
pszNamethe key for the metadata item to fetch.
pszDomainthe domain to fetch for, use NULL for the default domain.
Returns
NULL on failure to find the key, or a pointer to an internal copy of the value string on success.

Reimplemented from GDALMajorObject.

double VRTSourcedRasterBand::GetMinimum ( int *  pbSuccess = NULL)
virtual

Fetch the minimum value for this band.

For file formats that don't know this intrinsically, the minimum supported value for the data type will generally be returned.

This method is the same as the C function GDALGetRasterMinimum().

Parameters
pbSuccesspointer to a boolean to use to indicate if the returned value is a tight minimum or not. May be NULL (default).
Returns
the minimum raster value (excluding no data pixels)

Reimplemented from GDALRasterBand.

CPLErr VRTSourcedRasterBand::SetMetadata ( char **  papszMetadataIn,
const char *  pszDomain = "" 
)
virtual

Set metadata.

The C function GDALSetMetadata() does the same thing as this method.

Parameters
papszMetadataInthe metadata in name=value string list format to apply.
pszDomainthe domain of interest. Use "" or NULL for the default domain.
Returns
CE_None on success, CE_Failure on failure and CE_Warning if the metadata has been accepted, but is likely not maintained persistently by the underlying object between sessions.

Reimplemented from VRTRasterBand.

CPLErr VRTSourcedRasterBand::SetMetadataItem ( const char *  pszName,
const char *  pszValue,
const char *  pszDomain = "" 
)
virtual

Set single metadata item.

The C function GDALSetMetadataItem() does the same thing as this method.

Parameters
pszNamethe key for the metadata item to fetch.
pszValuethe value to assign to the key.
pszDomainthe domain to set within, use NULL for the default domain.
Returns
CE_None on success, or an error code on failure.

Reimplemented from VRTRasterBand.


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

Generated for GDAL by doxygen 1.8.11.