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

Public Member Functions

 VRTDerivedRasterBand (GDALDataset *poDS, int nBand)
 
 VRTDerivedRasterBand (GDALDataset *poDS, int nBand, GDALDataType eType, int nXSize, int nYSize)
 
virtual CPLErr IRasterIO (GDALRWFlag, int, int, int, int, void *, int, int, GDALDataType, int, int)
 Read/write a region of image data for this band. More...
 
void SetPixelFunctionName (const char *pszFuncName)
 Set the pixel function name to be applied to this derived band. More...
 
void SetSourceTransferType (GDALDataType eDataType)
 Set the transfer type to be used to obtain pixel information from all of the sources. More...
 
virtual CPLErr XMLInit (CPLXMLNode *, const char *)
 
virtual CPLXMLNodeSerializeToXML (const char *pszVRTPath)
 
- Public Member Functions inherited from VRTSourcedRasterBand
 VRTSourcedRasterBand (GDALDataset *poDS, int nBand)
 
 VRTSourcedRasterBand (GDALDataType eType, int nXSize, int nYSize)
 
 VRTSourcedRasterBand (GDALDataset *poDS, int nBand, GDALDataType eType, int nXSize, int nYSize)
 
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 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...
 

Static Public Member Functions

static CPLErr AddPixelFunction (const char *pszFuncName, GDALDerivedPixelFunc pfnPixelFunc)
 This adds a pixel function to the global list of available pixel functions for derived bands. More...
 
static GDALDerivedPixelFunc GetPixelFunction (const char *pszFuncName)
 Get a pixel function previously registered using the global AddPixelFunction. More...
 

Public Attributes

char * pszFuncName
 
GDALDataType eSourceTransferType
 
- Public Attributes inherited from VRTSourcedRasterBand
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 VRTDerivedRasterBand::AddPixelFunction ( const char *  pszFuncName,
GDALDerivedPixelFunc  pfnNewFunction 
)
static

This adds a pixel function to the global list of available pixel functions for derived bands.

This is the same as the c function GDALAddDerivedBandPixelFunc()

Parameters
pszFuncNameName used to access pixel function
pfnNewFunctionPixel function associated with name. An existing pixel function registered with the same name will be replaced with the new one.
Returns
CE_None, invalid (NULL) parameters are currently ignored.
GDALDerivedPixelFunc VRTDerivedRasterBand::GetPixelFunction ( const char *  pszFuncName)
static

Get a pixel function previously registered using the global AddPixelFunction.

Parameters
pszFuncNameThe name associated with the pixel function.
Returns
A derived band pixel function, or NULL if none have been registered for pszFuncName.
CPLErr VRTDerivedRasterBand::IRasterIO ( GDALRWFlag  eRWFlag,
int  nXOff,
int  nYOff,
int  nXSize,
int  nYSize,
void *  pData,
int  nBufXSize,
int  nBufYSize,
GDALDataType  eBufType,
int  nPixelSpace,
int  nLineSpace 
)
virtual

Read/write a region of image data for this band.

Each of the sources for this derived band will be read and passed to the derived band pixel function. The pixel function is responsible for applying whatever algorithm is necessary to generate this band's pixels from the sources.

The sources will be read using the transfer type specified for sources using SetSourceTransferType(). If no transfer type has been set for this derived band, the band's data type will be used as the transfer type.

See also
gdalrasterband
Parameters
eRWFlagEither GF_Read to read a region of data, or GT_Write to write a region of data.
nXOffThe pixel offset to the top left corner of the region of the band to be accessed. This would be zero to start from the left side.
nYOffThe line offset to the top left corner of the region of the band to be accessed. This would be zero to start from the top.
nXSizeThe width of the region of the band to be accessed in pixels.
nYSizeThe height of the region of the band to be accessed in lines.
pDataThe buffer into which the data should be read, or from which it should be written. This buffer must contain at least nBufXSize * nBufYSize words of type eBufType. It is organized in left to right, top to bottom pixel order. Spacing is controlled by the nPixelSpace, and nLineSpace parameters.
nBufXSizeThe width of the buffer image into which the desired region is to be read, or from which it is to be written.
nBufYSizeThe height of the buffer image into which the desired region is to be read, or from which it is to be written.
eBufTypeThe type of the pixel values in the pData data buffer. The pixel values will automatically be translated to/from the GDALRasterBand data type as needed.
nPixelSpaceThe byte offset from the start of one pixel value in pData to the start of the next pixel value within a scanline. If defaulted (0) the size of the datatype eBufType is used.
nLineSpaceThe byte offset from the start of one scanline in pData to the start of the next. If defaulted the size of the datatype eBufType * nBufXSize is used.
Returns
CE_Failure if the access fails, otherwise CE_None.

Reimplemented from VRTSourcedRasterBand.

void VRTDerivedRasterBand::SetPixelFunctionName ( const char *  pszFuncName)

Set the pixel function name to be applied to this derived band.

The name should match a pixel function registered using AddPixelFunction.

Parameters
pszFuncNameName of pixel function to be applied to this derived band.
void VRTDerivedRasterBand::SetSourceTransferType ( GDALDataType  eDataType)

Set the transfer type to be used to obtain pixel information from all of the sources.

If unset, the transfer type used will be the same as the derived band data type. This makes it possible, for example, to pass CFloat32 source pixels to the pixel function, even if the pixel function generates a raster for a derived band that is of type Byte.

Parameters
eDataTypeData type to use to obtain pixel information from the sources to be passed to the derived band pixel function.

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

Generated for GDAL by doxygen 1.8.11.