31 #ifndef VIRTUALDATASET_H_INCLUDED 32 #define VIRTUALDATASET_H_INCLUDED 34 #include "gdal_priv.h" 37 #include "cpl_hash_set.h" 39 int VRTApplyMetadata( CPLXMLNode *, GDALMajorObject * );
40 CPLXMLNode *VRTSerializeMetadata( GDALMajorObject * );
43 int VRTWarpedOverviewTransform(
void *pTransformArg,
int bDstToSrc,
45 double *padfX,
double *padfY,
double *padfZ,
47 void* VRTDeserializeWarpedOverviewTransformer( CPLXMLNode *psTree );
58 GDALRasterBand *poBand;
65 else if( poBand->GetDataset()->GetShared() )
66 GDALClose( (GDALDatasetH) poBand->GetDataset() );
68 poBand->GetDataset()->Dereference();
82 virtual CPLErr RasterIO(
int nXOff,
int nYOff,
int nXSize,
int nYSize,
83 void *pData,
int nBufXSize,
int nBufYSize,
84 GDALDataType eBufType,
85 GSpacing nPixelSpace, GSpacing nLineSpace,
86 GDALRasterIOExtraArg* psExtraArg ) = 0;
88 virtual double GetMinimum(
int nXSize,
int nYSize,
int *pbSuccess ) = 0;
89 virtual double GetMaximum(
int nXSize,
int nYSize,
int *pbSuccess ) = 0;
90 virtual CPLErr ComputeRasterMinMax(
int nXSize,
int nYSize,
int bApproxOK,
double* adfMinMax ) = 0;
91 virtual CPLErr ComputeStatistics(
int nXSize,
int nYSize,
93 double *pdfMin,
double *pdfMax,
94 double *pdfMean,
double *pdfStdDev,
95 GDALProgressFunc pfnProgress,
void *pProgressData ) = 0;
96 virtual CPLErr GetHistogram(
int nXSize,
int nYSize,
97 double dfMin,
double dfMax,
98 int nBuckets, GUIntBig * panHistogram,
99 int bIncludeOutOfRange,
int bApproxOK,
100 GDALProgressFunc pfnProgress,
void *pProgressData ) = 0;
102 virtual CPLErr XMLInit( CPLXMLNode *psTree,
const char * ) = 0;
103 virtual CPLXMLNode *SerializeToXML(
const char *pszVRTPath ) = 0;
105 virtual void GetFileList(
char*** ppapszFileList,
int *pnSize,
106 int *pnMaxSize, CPLHashSet* hSetFiles);
108 virtual int IsSimpleSource() {
return FALSE; }
111 typedef VRTSource *(*VRTSourceParser)(CPLXMLNode *,
const char *);
113 VRTSource *VRTParseCoreSources( CPLXMLNode *psTree,
const char * );
114 VRTSource *VRTParseFilterSources( CPLXMLNode *psTree,
const char * );
128 int bGeoTransformSet;
129 double adfGeoTransform[6];
132 GDAL_GCP *pasGCPList;
133 char *pszGCPProjection;
142 int bCompatibleForDatasetIO;
143 int CheckCompatibleForDatasetIO();
146 virtual int CloseDependentDatasets();
152 void SetNeedsFlush() { bNeedsFlush = TRUE; }
153 virtual void FlushCache();
155 void SetWritable(
int bWritable) { this->bWritable = bWritable; }
157 virtual CPLErr CreateMaskBand(
int nFlags );
160 virtual const char *GetProjectionRef(
void);
161 virtual CPLErr SetProjection(
const char * );
162 virtual CPLErr GetGeoTransform(
double * );
163 virtual CPLErr SetGeoTransform(
double * );
165 virtual CPLErr SetMetadata(
char **papszMD,
const char *pszDomain =
"" );
166 virtual CPLErr SetMetadataItem(
const char *pszName,
const char *pszValue,
167 const char *pszDomain =
"" );
169 virtual int GetGCPCount();
170 virtual const char *GetGCPProjection();
171 virtual const GDAL_GCP *GetGCPs();
172 virtual CPLErr SetGCPs(
int nGCPCount,
const GDAL_GCP *pasGCPList,
173 const char *pszGCPProjection );
175 virtual CPLErr AddBand( GDALDataType eType,
176 char **papszOptions=NULL );
178 virtual char **GetFileList();
180 virtual CPLErr IRasterIO( GDALRWFlag eRWFlag,
181 int nXOff,
int nYOff,
int nXSize,
int nYSize,
182 void * pData,
int nBufXSize,
int nBufYSize,
183 GDALDataType eBufType,
184 int nBandCount,
int *panBandMap,
185 GSpacing nPixelSpace, GSpacing nLineSpace,
187 GDALRasterIOExtraArg* psExtraArg);
189 virtual CPLXMLNode *SerializeToXML(
const char *pszVRTPath);
190 virtual CPLErr XMLInit( CPLXMLNode *,
const char * );
193 GDALDataset* GetSingleSimpleSource();
195 void UnsetPreservedRelativeFilenames();
197 static int Identify( GDALOpenInfo * );
198 static GDALDataset *Open( GDALOpenInfo * );
199 static GDALDataset *OpenXML(
const char *,
const char * = NULL, GDALAccess eAccess = GA_ReadOnly );
200 static GDALDataset *Create(
const char * pszName,
201 int nXSize,
int nYSize,
int nBands,
202 GDALDataType eType,
char ** papszOptions );
203 static CPLErr Delete(
const char * pszFilename );
210 class GDALWarpOperation;
217 GDALWarpOperation *poWarper;
223 void CreateImplicitOverviews();
228 virtual int CloseDependentDatasets();
234 CPLErr Initialize(
void * );
236 virtual CPLErr IBuildOverviews(
const char *,
int,
int *,
237 int,
int *, GDALProgressFunc,
void * );
239 virtual CPLErr SetMetadataItem(
const char *pszName,
const char *pszValue,
240 const char *pszDomain =
"" );
242 virtual CPLXMLNode *SerializeToXML(
const char *pszVRTPath );
243 virtual CPLErr XMLInit( CPLXMLNode *,
const char * );
245 virtual CPLErr AddBand( GDALDataType eType,
246 char **papszOptions=NULL );
248 virtual char **GetFileList();
250 CPLErr ProcessBlock(
int iBlockX,
int iBlockY );
252 void GetBlockSize(
int *,
int * );
268 int bHideNoDataValue;
269 double dfNoDataValue;
271 GDALColorTable *poColorTable;
273 GDALColorInterp eColorInterp;
276 char **papszCategoryNames;
281 CPLXMLNode *psSavedHistograms;
283 void Initialize(
int nXSize,
int nYSize );
285 std::vector<VRTOverviewInfo> apoOverviews;
294 virtual CPLErr XMLInit( CPLXMLNode *,
const char * );
295 virtual CPLXMLNode * SerializeToXML(
const char *pszVRTPath );
297 virtual CPLErr SetNoDataValue(
double );
298 virtual double GetNoDataValue(
int *pbSuccess = NULL );
300 virtual CPLErr SetColorTable( GDALColorTable * );
301 virtual GDALColorTable *GetColorTable();
303 virtual CPLErr SetColorInterpretation( GDALColorInterp );
304 virtual GDALColorInterp GetColorInterpretation();
306 virtual const char *GetUnitType();
307 CPLErr SetUnitType(
const char * );
309 virtual char **GetCategoryNames();
310 virtual CPLErr SetCategoryNames(
char ** );
312 virtual CPLErr SetMetadata(
char **papszMD,
const char *pszDomain =
"" );
313 virtual CPLErr SetMetadataItem(
const char *pszName,
const char *pszValue,
314 const char *pszDomain =
"" );
316 virtual double GetOffset(
int *pbSuccess = NULL );
317 CPLErr SetOffset(
double );
318 virtual double GetScale(
int *pbSuccess = NULL );
319 CPLErr SetScale(
double );
321 virtual int GetOverviewCount();
322 virtual GDALRasterBand *GetOverview(
int);
324 virtual CPLErr GetHistogram(
double dfMin,
double dfMax,
325 int nBuckets, GUIntBig * panHistogram,
326 int bIncludeOutOfRange,
int bApproxOK,
327 GDALProgressFunc,
void *pProgressData );
329 virtual CPLErr GetDefaultHistogram(
double *pdfMin,
double *pdfMax,
330 int *pnBuckets, GUIntBig ** ppanHistogram,
332 GDALProgressFunc,
void *pProgressData);
334 virtual CPLErr SetDefaultHistogram(
double dfMin,
double dfMax,
335 int nBuckets, GUIntBig *panHistogram );
337 CPLErr CopyCommonInfoFrom( GDALRasterBand * );
339 virtual void GetFileList(
char*** ppapszFileList,
int *pnSize,
340 int *pnMaxSize, CPLHashSet* hSetFiles);
342 virtual void SetDescription(
const char * );
344 virtual GDALRasterBand *GetMaskBand();
345 virtual int GetMaskFlags();
347 virtual CPLErr CreateMaskBand(
int nFlags );
351 void SetIsMaskBand();
353 CPLErr UnsetNoDataValue();
355 virtual int CloseDependentDatasets();
357 virtual int IsSourcedRasterBand() {
return FALSE; }
369 int nRecursionCounter;
370 CPLString osLastLocationInfo;
371 char **papszSourceList;
373 void Initialize(
int nXSize,
int nYSize );
375 int CanUseSourcesMinMaxImplementations();
384 int nXSize,
int nYSize );
387 int nXSize,
int nYSize );
390 virtual CPLErr IRasterIO( GDALRWFlag,
int,
int,
int,
int,
391 void *,
int,
int, GDALDataType,
392 GSpacing nPixelSpace, GSpacing nLineSpace,
393 GDALRasterIOExtraArg* psExtraArg);
395 virtual char **GetMetadataDomainList();
396 virtual const char *GetMetadataItem(
const char * pszName,
397 const char * pszDomain =
"" );
398 virtual char **GetMetadata(
const char * pszDomain =
"" );
399 virtual CPLErr SetMetadata(
char ** papszMetadata,
400 const char * pszDomain =
"" );
401 virtual CPLErr SetMetadataItem(
const char * pszName,
402 const char * pszValue,
403 const char * pszDomain =
"" );
405 virtual CPLErr XMLInit( CPLXMLNode *,
const char * );
406 virtual CPLXMLNode * SerializeToXML(
const char *pszVRTPath );
408 virtual double GetMinimum(
int *pbSuccess = NULL );
409 virtual double GetMaximum(
int *pbSuccess = NULL );
410 virtual CPLErr ComputeRasterMinMax(
int bApproxOK,
double* adfMinMax );
411 virtual CPLErr ComputeStatistics(
int bApproxOK,
412 double *pdfMin,
double *pdfMax,
413 double *pdfMean,
double *pdfStdDev,
414 GDALProgressFunc pfnProgress,
void *pProgressData );
415 virtual CPLErr GetHistogram(
double dfMin,
double dfMax,
416 int nBuckets, GUIntBig * panHistogram,
417 int bIncludeOutOfRange,
int bApproxOK,
418 GDALProgressFunc pfnProgress,
void *pProgressData );
421 CPLErr AddSimpleSource( GDALRasterBand *poSrcBand,
422 int nSrcXOff=-1,
int nSrcYOff=-1,
423 int nSrcXSize=-1,
int nSrcYSize=-1,
424 int nDstXOff=-1,
int nDstYOff=-1,
425 int nDstXSize=-1,
int nDstYSize=-1,
426 const char *pszResampling =
"near",
427 double dfNoDataValue = VRT_NODATA_UNSET);
428 CPLErr AddComplexSource( GDALRasterBand *poSrcBand,
429 int nSrcXOff=-1,
int nSrcYOff=-1,
430 int nSrcXSize=-1,
int nSrcYSize=-1,
431 int nDstXOff=-1,
int nDstYOff=-1,
432 int nDstXSize=-1,
int nDstYSize=-1,
433 double dfScaleOff=0.0,
434 double dfScaleRatio=1.0,
435 double dfNoDataValue = VRT_NODATA_UNSET,
436 int nColorTableComponent = 0);
438 CPLErr AddMaskBandSource( GDALRasterBand *poSrcBand,
439 int nSrcXOff=-1,
int nSrcYOff=-1,
440 int nSrcXSize=-1,
int nSrcYSize=-1,
441 int nDstXOff=-1,
int nDstYOff=-1,
442 int nDstXSize=-1,
int nDstYSize=-1 );
444 CPLErr AddFuncSource( VRTImageReadFunc pfnReadFunc,
void *hCBData,
445 double dfNoDataValue = VRT_NODATA_UNSET );
448 GDALRasterBand *poSrcBand,
450 int nSrcXOff,
int nSrcYOff,
451 int nSrcXSize,
int nSrcYSize,
452 int nDstXOff,
int nDstYOff,
453 int nDstXSize,
int nDstYSize);
455 virtual CPLErr IReadBlock(
int,
int,
void * );
457 virtual void GetFileList(
char*** ppapszFileList,
int *pnSize,
458 int *pnMaxSize, CPLHashSet* hSetFiles);
460 virtual int CloseDependentDatasets();
462 virtual int IsSourcedRasterBand() {
return TRUE; }
473 GDALDataType eType = GDT_Unknown );
476 virtual CPLErr XMLInit( CPLXMLNode *,
const char * );
477 virtual CPLXMLNode * SerializeToXML(
const char *pszVRTPath );
479 virtual CPLErr IReadBlock(
int,
int,
void * );
480 virtual CPLErr IWriteBlock(
int,
int,
void * );
482 virtual int GetOverviewCount();
483 virtual GDALRasterBand *GetOverview(
int);
495 GDALDataType eSourceTransferType;
499 GDALDataType eType,
int nXSize,
int nYSize);
502 virtual CPLErr IRasterIO( GDALRWFlag,
int,
int,
int,
int,
503 void *,
int,
int, GDALDataType,
504 GSpacing nPixelSpace, GSpacing nLineSpace,
505 GDALRasterIOExtraArg* psExtraArg );
507 static CPLErr AddPixelFunction
508 (
const char *pszFuncName, GDALDerivedPixelFunc pfnPixelFunc);
509 static GDALDerivedPixelFunc GetPixelFunction(
const char *pszFuncName);
511 void SetPixelFunctionName(
const char *pszFuncName);
512 void SetSourceTransferType(GDALDataType eDataType);
514 virtual CPLErr XMLInit( CPLXMLNode *,
const char * );
515 virtual CPLXMLNode * SerializeToXML(
const char *pszVRTPath );
527 RawRasterBand *poRawRaster;
529 char *pszSourceFilename;
534 GDALDataType eType = GDT_Unknown );
537 virtual CPLErr XMLInit( CPLXMLNode *,
const char * );
538 virtual CPLXMLNode * SerializeToXML(
const char *pszVRTPath );
540 virtual CPLErr IRasterIO( GDALRWFlag,
int,
int,
int,
int,
541 void *,
int,
int, GDALDataType,
542 GSpacing nPixelSpace, GSpacing nLineSpace,
543 GDALRasterIOExtraArg* psExtraArg );
545 virtual CPLErr IReadBlock(
int,
int,
void * );
546 virtual CPLErr IWriteBlock(
int,
int,
void * );
548 CPLErr SetRawLink(
const char *pszFilename,
549 const char *pszVRTPath,
551 vsi_l_offset nImageOffset,
552 int nPixelOffset,
int nLineOffset,
553 const char *pszByteOrder );
557 virtual void GetFileList(
char*** ppapszFileList,
int *pnSize,
558 int *pnMaxSize, CPLHashSet* hSetFiles);
567 void *pDeserializerData;
573 char **papszSourceParsers;
575 virtual char **GetMetadataDomainList();
576 virtual char **GetMetadata(
const char * pszDomain =
"" );
577 virtual CPLErr SetMetadata(
char ** papszMetadata,
578 const char * pszDomain =
"" );
580 VRTSource *ParseSource( CPLXMLNode *psSrc,
const char *pszVRTPath );
581 void AddSourceParser(
const char *pszElementName,
582 VRTSourceParser pfnParser );
592 GDALRasterBand *poRasterBand;
596 GDALRasterBand *poMaskBandMainBand;
609 double dfNoDataValue;
610 CPLString osResampling;
612 int bRelativeToVRTOri;
613 CPLString osSourceFileNameOri;
619 virtual CPLErr XMLInit( CPLXMLNode *psTree,
const char * );
620 virtual CPLXMLNode *SerializeToXML(
const char *pszVRTPath );
622 void SetSrcBand( GDALRasterBand * );
623 void SetSrcMaskBand( GDALRasterBand * );
624 void SetSrcWindow(
int,
int,
int,
int );
625 void SetDstWindow(
int,
int,
int,
int );
626 void SetNoDataValue(
double dfNoDataValue );
627 const CPLString& GetResampling()
const {
return osResampling; }
628 void SetResampling(
const char* pszResampling );
630 int GetSrcDstWindow(
int,
int,
int,
int,
int,
int,
631 double *pdfReqXOff,
double *pdfReqYOff,
632 double *pdfReqXSize,
double *pdfReqYSize,
633 int *,
int *,
int *,
int *,
634 int *,
int *,
int *,
int * );
636 virtual CPLErr RasterIO(
int nXOff,
int nYOff,
int nXSize,
int nYSize,
637 void *pData,
int nBufXSize,
int nBufYSize,
638 GDALDataType eBufType,
639 GSpacing nPixelSpace, GSpacing nLineSpace,
640 GDALRasterIOExtraArg* psExtraArg );
642 virtual double GetMinimum(
int nXSize,
int nYSize,
int *pbSuccess );
643 virtual double GetMaximum(
int nXSize,
int nYSize,
int *pbSuccess );
644 virtual CPLErr ComputeRasterMinMax(
int nXSize,
int nYSize,
int bApproxOK,
double* adfMinMax );
645 virtual CPLErr ComputeStatistics(
int nXSize,
int nYSize,
647 double *pdfMin,
double *pdfMax,
648 double *pdfMean,
double *pdfStdDev,
649 GDALProgressFunc pfnProgress,
void *pProgressData );
650 virtual CPLErr GetHistogram(
int nXSize,
int nYSize,
651 double dfMin,
double dfMax,
652 int nBuckets, GUIntBig * panHistogram,
653 int bIncludeOutOfRange,
int bApproxOK,
654 GDALProgressFunc pfnProgress,
void *pProgressData );
656 void DstToSrc(
double dfX,
double dfY,
657 double &dfXOut,
double &dfYOut );
658 void SrcToDst(
double dfX,
double dfY,
659 double &dfXOut,
double &dfYOut );
661 virtual void GetFileList(
char*** ppapszFileList,
int *pnSize,
662 int *pnMaxSize, CPLHashSet* hSetFiles);
664 virtual int IsSimpleSource() {
return TRUE; }
665 virtual const char* GetType() {
return "SimpleSource"; }
667 GDALRasterBand* GetBand();
669 CPLErr DatasetRasterIO(
670 int nXOff,
int nYOff,
int nXSize,
int nYSize,
671 void * pData,
int nBufXSize,
int nBufYSize,
672 GDALDataType eBufType,
673 int nBandCount,
int *panBandMap,
674 GSpacing nPixelSpace, GSpacing nLineSpace,
676 GDALRasterIOExtraArg* psExtraArg);
678 void UnsetPreservedRelativeFilenames();
689 virtual CPLErr RasterIO(
int nXOff,
int nYOff,
int nXSize,
int nYSize,
690 void *pData,
int nBufXSize,
int nBufYSize,
691 GDALDataType eBufType,
692 GSpacing nPixelSpace, GSpacing nLineSpace,
693 GDALRasterIOExtraArg* psExtraArg );
695 virtual double GetMinimum(
int nXSize,
int nYSize,
int *pbSuccess );
696 virtual double GetMaximum(
int nXSize,
int nYSize,
int *pbSuccess );
697 virtual CPLErr ComputeRasterMinMax(
int nXSize,
int nYSize,
int bApproxOK,
double* adfMinMax );
698 virtual CPLErr ComputeStatistics(
int nXSize,
int nYSize,
700 double *pdfMin,
double *pdfMax,
701 double *pdfMean,
double *pdfStdDev,
702 GDALProgressFunc pfnProgress,
void *pProgressData );
703 virtual CPLErr GetHistogram(
int nXSize,
int nYSize,
704 double dfMin,
double dfMax,
705 int nBuckets, GUIntBig * panHistogram,
706 int bIncludeOutOfRange,
int bApproxOK,
707 GDALProgressFunc pfnProgress,
void *pProgressData );
709 virtual CPLXMLNode *SerializeToXML(
const char *pszVRTPath );
710 virtual const char* GetType() {
return "AveragedSource"; }
721 VRT_SCALING_EXPONENTIAL,
722 } VRTComplexSourceScaling;
727 VRTComplexSourceScaling eScalingType;
732 int bSrcMinMaxDefined;
739 int nColorTableComponent;
741 CPLErr RasterIOInternal(
int nReqXOff,
int nReqYOff,
742 int nReqXSize,
int nReqYSize,
743 void *pData,
int nOutXSize,
int nOutYSize,
744 GDALDataType eBufType,
745 GSpacing nPixelSpace, GSpacing nLineSpace,
746 GDALRasterIOExtraArg* psExtraArg );
752 virtual CPLErr RasterIO(
int nXOff,
int nYOff,
int nXSize,
int nYSize,
753 void *pData,
int nBufXSize,
int nBufYSize,
754 GDALDataType eBufType,
755 GSpacing nPixelSpace, GSpacing nLineSpace,
756 GDALRasterIOExtraArg* psExtraArg );
758 virtual double GetMinimum(
int nXSize,
int nYSize,
int *pbSuccess );
759 virtual double GetMaximum(
int nXSize,
int nYSize,
int *pbSuccess );
760 virtual CPLErr ComputeRasterMinMax(
int nXSize,
int nYSize,
int bApproxOK,
double* adfMinMax );
761 virtual CPLErr ComputeStatistics(
int nXSize,
int nYSize,
763 double *pdfMin,
double *pdfMax,
764 double *pdfMean,
double *pdfStdDev,
765 GDALProgressFunc pfnProgress,
void *pProgressData );
766 virtual CPLErr GetHistogram(
int nXSize,
int nYSize,
767 double dfMin,
double dfMax,
768 int nBuckets, GUIntBig * panHistogram,
769 int bIncludeOutOfRange,
int bApproxOK,
770 GDALProgressFunc pfnProgress,
void *pProgressData );
772 virtual CPLXMLNode *SerializeToXML(
const char *pszVRTPath );
773 virtual CPLErr XMLInit( CPLXMLNode *,
const char * );
774 virtual const char* GetType() {
return "ComplexSource"; }
776 double LookupValue(
double dfInput );
778 void SetLinearScaling(
double dfOffset,
double dfScale);
779 void SetPowerScaling(
double dfExponent,
784 void SetColorTableComponent(
int nComponent);
786 double *padfLUTInputs;
787 double *padfLUTOutputs;
799 int IsTypeSupported( GDALDataType eType );
802 int nSupportedTypesCount;
803 GDALDataType aeSupportedTypes[20];
805 int nExtraEdgePixels;
811 void SetExtraEdgePixels(
int );
812 void SetFilteringDataTypesSupported(
int, GDALDataType * );
814 virtual CPLErr FilterData(
int nXSize,
int nYSize, GDALDataType eType,
815 GByte *pabySrcData, GByte *pabyDstData ) = 0;
817 virtual CPLErr RasterIO(
int nXOff,
int nYOff,
int nXSize,
int nYSize,
818 void *pData,
int nBufXSize,
int nBufYSize,
819 GDALDataType eBufType,
820 GSpacing nPixelSpace, GSpacing nLineSpace,
821 GDALRasterIOExtraArg* psExtraArg );
833 double *padfKernelCoefs;
841 virtual CPLErr XMLInit( CPLXMLNode *psTree,
const char * );
842 virtual CPLXMLNode *SerializeToXML(
const char *pszVRTPath );
844 virtual CPLErr FilterData(
int nXSize,
int nYSize, GDALDataType eType,
845 GByte *pabySrcData, GByte *pabyDstData );
847 CPLErr SetKernel(
int nKernelSize,
double *padfCoefs );
848 void SetNormalized(
int );
861 virtual CPLErr XMLInit( CPLXMLNode *psTree,
const char * );
862 virtual CPLXMLNode *SerializeToXML(
const char *pszVRTPath );
874 virtual CPLErr XMLInit( CPLXMLNode *,
const char *) {
return CE_Failure; }
875 virtual CPLXMLNode *SerializeToXML(
const char *pszVRTPath );
877 virtual CPLErr RasterIO(
int nXOff,
int nYOff,
int nXSize,
int nYSize,
878 void *pData,
int nBufXSize,
int nBufYSize,
879 GDALDataType eBufType,
880 GSpacing nPixelSpace, GSpacing nLineSpace,
881 GDALRasterIOExtraArg* psExtraArg );
883 virtual double GetMinimum(
int nXSize,
int nYSize,
int *pbSuccess );
884 virtual double GetMaximum(
int nXSize,
int nYSize,
int *pbSuccess );
885 virtual CPLErr ComputeRasterMinMax(
int nXSize,
int nYSize,
int bApproxOK,
double* adfMinMax );
886 virtual CPLErr ComputeStatistics(
int nXSize,
int nYSize,
888 double *pdfMin,
double *pdfMax,
889 double *pdfMean,
double *pdfStdDev,
890 GDALProgressFunc pfnProgress,
void *pProgressData );
891 virtual CPLErr GetHistogram(
int nXSize,
int nYSize,
892 double dfMin,
double dfMax,
893 int nBuckets, GUIntBig * panHistogram,
894 int bIncludeOutOfRange,
int bApproxOK,
895 GDALProgressFunc pfnProgress,
void *pProgressData );
897 VRTImageReadFunc pfnReadFunc;
Definition: vrtdataset.h:828
Definition: vrtdataset.h:685
Definition: vrtdataset.h:262
Definition: vrtdataset.h:77
Definition: vrtdataset.h:796
Definition: vrtdataset.h:366
Definition: vrtdataset.h:122
Definition: vrtdataset.h:53
Definition: vrtdataset.h:855
Definition: vrtdataset.h:525
Definition: vrtdataset.h:469
Definition: vrtdataset.h:490
Definition: vrtdataset.h:868
Definition: vrtdataset.h:724
Definition: vrtdataset.h:589
Definition: vrtdataset.h:565
Definition: vrtdataset.h:213