GDAL
|
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, GSpacing nPixelSpace, GSpacing nLineSpace, GDALRasterIOExtraArg *psExtraArg) |
virtual char ** | GetMetadataDomainList () |
Fetch list of metadata domains. | |
virtual const char * | GetMetadataItem (const char *pszName, const char *pszDomain="") |
Fetch single metadata item. | |
virtual char ** | GetMetadata (const char *pszDomain="") |
Fetch metadata. | |
virtual CPLErr | SetMetadata (char **papszMetadata, const char *pszDomain="") |
Set metadata. | |
virtual CPLErr | SetMetadataItem (const char *pszName, const char *pszValue, const char *pszDomain="") |
Set single metadata item. | |
virtual CPLErr | XMLInit (CPLXMLNode *, const char *) |
virtual CPLXMLNode * | SerializeToXML (const char *pszVRTPath) |
virtual double | GetMinimum (int *pbSuccess=NULL) |
Fetch the minimum value for this band. | |
virtual double | GetMaximum (int *pbSuccess=NULL) |
Fetch the maximum value for this band. | |
virtual CPLErr | ComputeRasterMinMax (int bApproxOK, double *adfMinMax) |
Compute the min/max values for a band. | |
virtual CPLErr | ComputeStatistics (int bApproxOK, double *pdfMin, double *pdfMax, double *pdfMean, double *pdfStdDev, GDALProgressFunc pfnProgress, void *pProgressData) |
Compute image statistics. | |
virtual CPLErr | GetHistogram (double dfMin, double dfMax, int nBuckets, GUIntBig *panHistogram, int bIncludeOutOfRange, int bApproxOK, GDALProgressFunc pfnProgress, void *pProgressData) |
Compute raster histogram. | |
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 Attributes | |
int | nSources |
VRTSource ** | papoSources |
int | bEqualAreas |
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().
bApproxOK | TRUE if an approximate (faster) answer is OK, otherwise FALSE. |
adfMinMax | the array in which the minimum (adfMinMax[0]) and the maximum (adfMinMax[1]) are returned. |
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().
bApproxOK | If TRUE statistics may be computed based on overviews or a subset of all tiles. |
pdfMin | Location into which to load image minimum (may be NULL). |
pdfMax | Location into which to load image maximum (may be NULL).- |
pdfMean | Location into which to load image mean (may be NULL). |
pdfStdDev | Location into which to load image standard deviation (may be NULL). |
pfnProgress | a function to call to report progress, or NULL. |
pProgressData | application data to pass to the progress function. |
Reimplemented from GDALRasterBand.
CPLErr VRTSourcedRasterBand::GetHistogram | ( | double | dfMin, |
double | dfMax, | ||
int | nBuckets, | ||
GUIntBig * | 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.
GUIntBig 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 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 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().
pbSuccess | pointer to a boolean to use to indicate if the returned value is a tight maximum or not. May be NULL (default). |
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().
pszDomain | the domain of interest. Use "" or NULL for the default domain. |
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().
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.
pszName | the key for the metadata item to fetch. |
pszDomain | the domain to fetch for, use NULL for the default domain. |
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().
pbSuccess | pointer to a boolean to use to indicate if the returned value is a tight minimum or not. May be NULL (default). |
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.
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 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.
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 VRTRasterBand.