GDAL
gdal_proxy.h
1 /******************************************************************************
2  * $Id: gdal_proxy.h 27044 2014-03-16 23:41:27Z rouault $
3  *
4  * Project: GDAL Core
5  * Purpose: GDAL Core C++/Private declarations
6  * Author: Even Rouault <even dot rouault at mines dash paris dot org>
7  *
8  ******************************************************************************
9  * Copyright (c) 2008-2014, Even Rouault <even dot rouault at mines-paris dot org>
10  *
11  * Permission is hereby granted, free of charge, to any person obtaining a
12  * copy of this software and associated documentation files (the "Software"),
13  * to deal in the Software without restriction, including without limitation
14  * the rights to use, copy, modify, merge, publish, distribute, sublicense,
15  * and/or sell copies of the Software, and to permit persons to whom the
16  * Software is furnished to do so, subject to the following conditions:
17  *
18  * The above copyright notice and this permission notice shall be included
19  * in all copies or substantial portions of the Software.
20  *
21  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
22  * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
23  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
24  * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
25  * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
26  * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
27  * DEALINGS IN THE SOFTWARE.
28  ****************************************************************************/
29 
30 #ifndef GDAL_PROXY_H_INCLUDED
31 #define GDAL_PROXY_H_INCLUDED
32 
33 #include "gdal.h"
34 
35 #ifdef __cplusplus
36 
37 #include "gdal_priv.h"
38 #include "cpl_hash_set.h"
39 
40 /* ******************************************************************** */
41 /* GDALProxyDataset */
42 /* ******************************************************************** */
43 
44 class CPL_DLL GDALProxyDataset : public GDALDataset
45 {
46  protected:
47  virtual GDALDataset *RefUnderlyingDataset() = 0;
48  virtual void UnrefUnderlyingDataset(GDALDataset* poUnderlyingDataset);
49 
50  virtual CPLErr IBuildOverviews( const char *, int, int *,
51  int, int *, GDALProgressFunc, void * );
52  virtual CPLErr IRasterIO( GDALRWFlag, int, int, int, int,
53  void *, int, int, GDALDataType,
54  int, int *, int, int, int );
55  public:
56 
57  virtual char **GetMetadataDomainList();
58  virtual char **GetMetadata( const char * pszDomain );
59  virtual CPLErr SetMetadata( char ** papszMetadata,
60  const char * pszDomain );
61  virtual const char *GetMetadataItem( const char * pszName,
62  const char * pszDomain );
63  virtual CPLErr SetMetadataItem( const char * pszName,
64  const char * pszValue,
65  const char * pszDomain );
66 
67  virtual void FlushCache(void);
68 
69  virtual const char *GetProjectionRef(void);
70  virtual CPLErr SetProjection( const char * );
71 
72  virtual CPLErr GetGeoTransform( double * );
73  virtual CPLErr SetGeoTransform( double * );
74 
75  virtual void *GetInternalHandle( const char * );
76  virtual GDALDriver *GetDriver(void);
77  virtual char **GetFileList(void);
78 
79  virtual int GetGCPCount();
80  virtual const char *GetGCPProjection();
81  virtual const GDAL_GCP *GetGCPs();
82  virtual CPLErr SetGCPs( int nGCPCount, const GDAL_GCP *pasGCPList,
83  const char *pszGCPProjection );
84 
85  virtual CPLErr AdviseRead( int nXOff, int nYOff, int nXSize, int nYSize,
86  int nBufXSize, int nBufYSize,
87  GDALDataType eDT,
88  int nBandCount, int *panBandList,
89  char **papszOptions );
90 
91  virtual CPLErr CreateMaskBand( int nFlags );
92 
93 };
94 
95 /* ******************************************************************** */
96 /* GDALProxyRasterBand */
97 /* ******************************************************************** */
98 
99 class CPL_DLL GDALProxyRasterBand : public GDALRasterBand
100 {
101  protected:
102  virtual GDALRasterBand* RefUnderlyingRasterBand() = 0;
103  virtual void UnrefUnderlyingRasterBand(GDALRasterBand* poUnderlyingRasterBand);
104 
105  virtual CPLErr IReadBlock( int, int, void * );
106  virtual CPLErr IWriteBlock( int, int, void * );
107  virtual CPLErr IRasterIO( GDALRWFlag, int, int, int, int,
108  void *, int, int, GDALDataType,
109  int, int );
110 
111  public:
112 
113  virtual char **GetMetadataDomainList();
114  virtual char **GetMetadata( const char * pszDomain );
115  virtual CPLErr SetMetadata( char ** papszMetadata,
116  const char * pszDomain );
117  virtual const char *GetMetadataItem( const char * pszName,
118  const char * pszDomain );
119  virtual CPLErr SetMetadataItem( const char * pszName,
120  const char * pszValue,
121  const char * pszDomain );
122  virtual CPLErr FlushCache();
123  virtual char **GetCategoryNames();
124  virtual double GetNoDataValue( int *pbSuccess = NULL );
125  virtual double GetMinimum( int *pbSuccess = NULL );
126  virtual double GetMaximum(int *pbSuccess = NULL );
127  virtual double GetOffset( int *pbSuccess = NULL );
128  virtual double GetScale( int *pbSuccess = NULL );
129  virtual const char *GetUnitType();
131  virtual GDALColorTable *GetColorTable();
132  virtual CPLErr Fill(double dfRealValue, double dfImaginaryValue = 0);
133 
134  virtual CPLErr SetCategoryNames( char ** );
135  virtual CPLErr SetNoDataValue( double );
136  virtual CPLErr SetColorTable( GDALColorTable * );
137  virtual CPLErr SetColorInterpretation( GDALColorInterp );
138  virtual CPLErr SetOffset( double );
139  virtual CPLErr SetScale( double );
140  virtual CPLErr SetUnitType( const char * );
141 
142  virtual CPLErr GetStatistics( int bApproxOK, int bForce,
143  double *pdfMin, double *pdfMax,
144  double *pdfMean, double *padfStdDev );
145  virtual CPLErr ComputeStatistics( int bApproxOK,
146  double *pdfMin, double *pdfMax,
147  double *pdfMean, double *pdfStdDev,
148  GDALProgressFunc, void *pProgressData );
149  virtual CPLErr SetStatistics( double dfMin, double dfMax,
150  double dfMean, double dfStdDev );
151  virtual CPLErr ComputeRasterMinMax( int, double* );
152 
153  virtual int HasArbitraryOverviews();
154  virtual int GetOverviewCount();
155  virtual GDALRasterBand *GetOverview(int);
156  virtual GDALRasterBand *GetRasterSampleOverview( int );
157  virtual CPLErr BuildOverviews( const char *, int, int *,
158  GDALProgressFunc, void * );
159 
160  virtual CPLErr AdviseRead( int nXOff, int nYOff, int nXSize, int nYSize,
161  int nBufXSize, int nBufYSize,
162  GDALDataType eDT, char **papszOptions );
163 
164  virtual CPLErr GetHistogram( double dfMin, double dfMax,
165  int nBuckets, int * panHistogram,
166  int bIncludeOutOfRange, int bApproxOK,
167  GDALProgressFunc, void *pProgressData );
168 
169  virtual CPLErr GetDefaultHistogram( double *pdfMin, double *pdfMax,
170  int *pnBuckets, int ** ppanHistogram,
171  int bForce,
172  GDALProgressFunc, void *pProgressData);
173  virtual CPLErr SetDefaultHistogram( double dfMin, double dfMax,
174  int nBuckets, int *panHistogram );
175 
177  virtual CPLErr SetDefaultRAT( const GDALRasterAttributeTable * );
178 
179  virtual GDALRasterBand *GetMaskBand();
180  virtual int GetMaskFlags();
181  virtual CPLErr CreateMaskBand( int nFlags );
182 
183  virtual CPLVirtualMem *GetVirtualMemAuto( GDALRWFlag eRWFlag,
184  int *pnPixelSpace,
185  GIntBig *pnLineSpace,
186  char **papszOptions );
187 };
188 
189 
190 /* ******************************************************************** */
191 /* GDALProxyPoolDataset */
192 /* ******************************************************************** */
193 
194 typedef struct _GDALProxyPoolCacheEntry GDALProxyPoolCacheEntry;
196 
198 {
199  private:
200  GIntBig responsiblePID;
201 
202  char *pszProjectionRef;
203  double adfGeoTransform[6];
204  int bHasSrcProjection;
205  int bHasSrcGeoTransform;
206  char *pszGCPProjection;
207  int nGCPCount;
208  GDAL_GCP *pasGCPList;
209  CPLHashSet *metadataSet;
210  CPLHashSet *metadataItemSet;
211 
212  GDALProxyPoolCacheEntry* cacheEntry;
213 
214  protected:
215  virtual GDALDataset *RefUnderlyingDataset();
216  virtual void UnrefUnderlyingDataset(GDALDataset* poUnderlyingDataset);
217 
218  friend class GDALProxyPoolRasterBand;
219 
220  public:
221  GDALProxyPoolDataset(const char* pszSourceDatasetDescription,
222  int nRasterXSize, int nRasterYSize,
223  GDALAccess eAccess = GA_ReadOnly,
224  int bShared = FALSE,
225  const char * pszProjectionRef = NULL,
226  double * padfGeoTransform = NULL);
228 
229  void AddSrcBandDescription( GDALDataType eDataType, int nBlockXSize, int nBlockYSize);
230 
231  virtual const char *GetProjectionRef(void);
232  virtual CPLErr SetProjection( const char * );
233 
234  virtual CPLErr GetGeoTransform( double * );
235  virtual CPLErr SetGeoTransform( double * );
236 
237  /* Special behaviour for the following methods : they return a pointer */
238  /* data type, that must be cached by the proxy, so it doesn't become invalid */
239  /* when the underlying object get closed */
240  virtual char **GetMetadata( const char * pszDomain );
241  virtual const char *GetMetadataItem( const char * pszName,
242  const char * pszDomain );
243 
244  virtual void *GetInternalHandle( const char * pszRequest );
245 
246  virtual const char *GetGCPProjection();
247  virtual const GDAL_GCP *GetGCPs();
248 };
249 
250 /* ******************************************************************** */
251 /* GDALProxyPoolRasterBand */
252 /* ******************************************************************** */
253 
256 
258 {
259  private:
260  CPLHashSet *metadataSet;
261  CPLHashSet *metadataItemSet;
262  char *pszUnitType;
263  char **papszCategoryNames;
264  GDALColorTable *poColorTable;
265 
266  int nSizeProxyOverviewRasterBand;
267  GDALProxyPoolOverviewRasterBand **papoProxyOverviewRasterBand;
268  GDALProxyPoolMaskBand *poProxyMaskBand;
269 
270  void Init();
271 
272  protected:
273  virtual GDALRasterBand* RefUnderlyingRasterBand();
274  virtual void UnrefUnderlyingRasterBand(GDALRasterBand* poUnderlyingRasterBand);
275 
276  friend class GDALProxyPoolOverviewRasterBand;
277  friend class GDALProxyPoolMaskBand;
278 
279  public:
281  GDALDataType eDataType,
282  int nBlockXSize, int nBlockYSize);
284  GDALRasterBand* poUnderlyingRasterBand);
286 
287  void AddSrcMaskBandDescription( GDALDataType eDataType, int nBlockXSize, int nBlockYSize);
288 
289  /* Special behaviour for the following methods : they return a pointer */
290  /* data type, that must be cached by the proxy, so it doesn't become invalid */
291  /* when the underlying object get closed */
292  virtual char **GetMetadata( const char * pszDomain );
293  virtual const char *GetMetadataItem( const char * pszName,
294  const char * pszDomain );
295  virtual char **GetCategoryNames();
296  virtual const char *GetUnitType();
297  virtual GDALColorTable *GetColorTable();
298  virtual GDALRasterBand *GetOverview(int);
299  virtual GDALRasterBand *GetRasterSampleOverview( int nDesiredSamples); // TODO
300  virtual GDALRasterBand *GetMaskBand();
301 
302 };
303 
304 /* ******************************************************************** */
305 /* GDALProxyPoolOverviewRasterBand */
306 /* ******************************************************************** */
307 
309 {
310  private:
311  GDALProxyPoolRasterBand *poMainBand;
312  int nOverviewBand;
313 
314  GDALRasterBand *poUnderlyingMainRasterBand;
315  int nRefCountUnderlyingMainRasterBand;
316 
317  protected:
318  virtual GDALRasterBand* RefUnderlyingRasterBand();
319  virtual void UnrefUnderlyingRasterBand(GDALRasterBand* poUnderlyingRasterBand);
320 
321  public:
323  GDALRasterBand* poUnderlyingOverviewBand,
324  GDALProxyPoolRasterBand* poMainBand,
325  int nOverviewBand);
327 };
328 
329 /* ******************************************************************** */
330 /* GDALProxyPoolMaskBand */
331 /* ******************************************************************** */
332 
334 {
335  private:
336  GDALProxyPoolRasterBand *poMainBand;
337 
338  GDALRasterBand *poUnderlyingMainRasterBand;
339  int nRefCountUnderlyingMainRasterBand;
340 
341  protected:
342  virtual GDALRasterBand* RefUnderlyingRasterBand();
343  virtual void UnrefUnderlyingRasterBand(GDALRasterBand* poUnderlyingRasterBand);
344 
345  public:
347  GDALRasterBand* poUnderlyingMaskBand,
348  GDALProxyPoolRasterBand* poMainBand);
350  GDALProxyPoolRasterBand* poMainBand,
351  GDALDataType eDataType,
352  int nBlockXSize, int nBlockYSize);
354 };
355 
356 #endif
357 
358 
359 /* ******************************************************************** */
360 /* C types and methods declarations */
361 /* ******************************************************************** */
362 
363 
364 CPL_C_START
365 
366 typedef struct GDALProxyPoolDatasetHS *GDALProxyPoolDatasetH;
367 
368 GDALProxyPoolDatasetH CPL_DLL GDALProxyPoolDatasetCreate(const char* pszSourceDatasetDescription,
369  int nRasterXSize, int nRasterYSize,
370  GDALAccess eAccess, int bShared,
371  const char * pszProjectionRef,
372  double * padfGeoTransform);
373 
374 void CPL_DLL GDALProxyPoolDatasetDelete(GDALProxyPoolDatasetH hProxyPoolDataset);
375 
376 void CPL_DLL GDALProxyPoolDatasetAddSrcBandDescription( GDALProxyPoolDatasetH hProxyPoolDataset,
377  GDALDataType eDataType,
378  int nBlockXSize, int nBlockYSize);
379 
380 CPL_C_END
381 
382 #endif /* GDAL_PROXY_H_INCLUDED */
The GDALRasterAttributeTable (or RAT) class is used to encapsulate a table used to provide attribute ...
Definition: gdal_rat.h:46
virtual GDALDriver * GetDriver(void)
Fetch the driver to which this dataset relates.
Definition: gdaldataset.cpp:981
virtual CPLErr GetGeoTransform(double *)
Fetch the affine transformation coefficients.
Definition: gdaldataset.cpp:849
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.
Definition: gdalrasterband.cpp:3280
virtual CPLVirtualMem * GetVirtualMemAuto(GDALRWFlag eRWFlag, int *pnPixelSpace, GIntBig *pnLineSpace, char **papszOptions)
Create a CPLVirtualMem object from a GDAL raster band object.
Definition: gdalrasterband.cpp:5025
virtual CPLErr GetGeoTransform(double *)
Fetch the affine transformation coefficients.
GDALDataType
Definition: gdal.h:55
virtual double GetScale(int *pbSuccess=NULL)
Fetch the raster value scale.
Definition: gdalrasterband.cpp:2337
virtual GDALRasterBand * GetMaskBand()
Return the mask band associated with the band.
Definition: gdalrasterband.cpp:4450
virtual double GetMaximum(int *pbSuccess=NULL)
Fetch the maximum value for this band.
Definition: gdalrasterband.cpp:1629
virtual double GetNoDataValue(int *pbSuccess=NULL)
Fetch the no data value for this band.
Definition: gdalrasterband.cpp:1534
virtual char ** GetCategoryNames()
Fetch the list of category names for this raster.
Definition: gdalrasterband.cpp:1441
virtual void FlushCache(void)
Flush all write cached data to disk.
Definition: gdaldataset.cpp:331
virtual const char * GetGCPProjection()
Get output projection for GCPs.
virtual CPLErr GetDefaultHistogram(double *pdfMin, double *pdfMax, int *pnBuckets, int **ppanHistogram, int bForce, GDALProgressFunc, void *pProgressData)
Fetch default raster histogram.
Definition: gdalrasterband.cpp:3154
virtual CPLErr SetColorInterpretation(GDALColorInterp)
Set color interpretation of a band.
Definition: gdalrasterband.cpp:1847
virtual int HasArbitraryOverviews()
Check for arbitrary overviews.
Definition: gdalrasterband.cpp:1988
virtual GDALRasterBand * GetOverview(int)
Fetch overview raster band object.
Definition: gdalrasterband.cpp:2068
virtual GDALRasterBand * GetRasterSampleOverview(int)
Fetch best sampling overview.
Definition: gdalrasterband.cpp:2117
virtual CPLErr SetProjection(const char *)
Set the projection reference string for this dataset.
Definition: gdaldataset.cpp:792
virtual CPLErr AdviseRead(int nXOff, int nYOff, int nXSize, int nYSize, int nBufXSize, int nBufYSize, GDALDataType eDT, int nBandCount, int *panBandList, char **papszOptions)
Advise driver of upcoming read requests.
Definition: gdaldataset.cpp:1948
virtual CPLErr SetProjection(const char *)
Set the projection reference string for this dataset.
virtual CPLErr SetGeoTransform(double *)
Set the affine transformation coefficients.
virtual GDALColorInterp GetColorInterpretation()
How should this band be interpreted as color?
Definition: gdalrasterband.cpp:1807
Definition: gdal_proxy.h:99
virtual CPLErr SetScale(double)
Set scaling ratio.
Definition: gdalrasterband.cpp:2382
virtual double GetOffset(int *pbSuccess=NULL)
Fetch the raster value offset.
Definition: gdalrasterband.cpp:2238
virtual const char * GetProjectionRef(void)
Fetch the projection definition string for this dataset.
Definition: gdaldataset.cpp:749
virtual char ** GetMetadata(const char *pszDomain)
Fetch metadata.
virtual GDALRasterBand * GetRasterSampleOverview(int)
Fetch best sampling overview.
GDALRWFlag
Definition: gdal.h:99
virtual CPLErr SetStatistics(double dfMin, double dfMax, double dfMean, double dfStdDev)
Set statistics on band.
Definition: gdalrasterband.cpp:3878
virtual int GetMaskFlags()
Return the status flags of the mask band associated with the band.
Definition: gdalrasterband.cpp:4650
virtual GDALRasterAttributeTable * GetDefaultRAT()
Fetch default Raster Attribute Table.
Definition: gdalrasterband.cpp:4337
virtual char ** GetMetadata(const char *pszDomain="")
Fetch metadata.
Definition: gdalmajorobject.cpp:243
virtual CPLErr SetOffset(double)
Set scaling offset.
Definition: gdalrasterband.cpp:2283
virtual GDALRasterBand * GetOverview(int)
Fetch overview raster band object.
Hash set implementation.
virtual CPLErr BuildOverviews(const char *, int, int *, GDALProgressFunc, void *)
Build raster overview(s)
Definition: gdalrasterband.cpp:2194
virtual CPLErr SetGCPs(int nGCPCount, const GDAL_GCP *pasGCPList, const char *pszGCPProjection)
Assign GCPs.
Definition: gdaldataset.cpp:1285
virtual CPLErr ComputeStatistics(int bApproxOK, double *pdfMin, double *pdfMax, double *pdfMean, double *pdfStdDev, GDALProgressFunc, void *pProgressData)
Compute image statistics.
Definition: gdalrasterband.cpp:3473
struct CPLVirtualMem CPLVirtualMem
Opaque type that represents a virtual memory mapping.
Definition: cpl_virtualmem.h:60
virtual void * GetInternalHandle(const char *)
Fetch a format specific internally meaningful handle.
virtual double GetMinimum(int *pbSuccess=NULL)
Fetch the minimum value for this band.
Definition: gdalrasterband.cpp:1721
virtual char ** GetCategoryNames()
Fetch the list of category names for this raster.
virtual CPLErr FlushCache()
Flush raster data cache.
Definition: gdalrasterband.cpp:850
virtual CPLErr CreateMaskBand(int nFlags)
Adds a mask band to the current band.
Definition: gdalrasterband.cpp:4723
virtual const GDAL_GCP * GetGCPs()
Fetch GCPs.
virtual CPLErr SetDefaultHistogram(double dfMin, double dfMax, int nBuckets, int *panHistogram)
Set default histogram.
Definition: gdalrasterband.cpp:4290
virtual CPLErr CreateMaskBand(int nFlags)
Adds a mask band to the dataset.
Definition: gdaldataset.cpp:2161
virtual CPLErr SetColorTable(GDALColorTable *)
Set the raster color table.
Definition: gdalrasterband.cpp:1939
virtual const char * GetMetadataItem(const char *pszName, const char *pszDomain="")
Fetch single metadata item.
Definition: gdalmajorobject.cpp:331
virtual const GDAL_GCP * GetGCPs()
Fetch GCPs.
Definition: gdaldataset.cpp:1231
virtual CPLErr SetGeoTransform(double *)
Set the affine transformation coefficients.
Definition: gdaldataset.cpp:902
Public (C callable) GDAL entry points.
Definition: gdal_proxy.h:44
Definition: gdal_proxy.h:197
virtual const char * GetUnitType()
Return raster unit type.
virtual CPLErr SetMetadata(char **papszMetadata, const char *pszDomain="")
Set metadata.
Definition: gdalmajorobject.cpp:286
virtual int GetGCPCount()
Get number of GCPs.
Definition: gdaldataset.cpp:1155
Definition: gdal_proxy.h:308
virtual CPLErr SetNoDataValue(double)
Set the no data value for this band.
Definition: gdalrasterband.cpp:1582
virtual CPLErr ComputeRasterMinMax(int, double *)
Compute the min/max values for a band.
Definition: gdalrasterband.cpp:3946
virtual const char * GetUnitType()
Return raster unit type.
Definition: gdalrasterband.cpp:2428
Definition: gdal_proxy.h:333
virtual GDALColorTable * GetColorTable()
Fetch the color table associated with band.
Definition: gdalrasterband.cpp:1894
virtual char ** GetMetadata(const char *pszDomain)
Fetch metadata.
virtual char ** GetFileList(void)
Fetch files forming dataset.
Definition: gdaldataset.cpp:2034
virtual void * GetInternalHandle(const char *)
Fetch a format specific internally meaningful handle.
Definition: gdaldataset.cpp:944
virtual const char * GetGCPProjection()
Get output projection for GCPs.
Definition: gdaldataset.cpp:1194
virtual CPLErr SetCategoryNames(char **)
Set the category names for this band.
Definition: gdalrasterband.cpp:1485
virtual int GetOverviewCount()
Return the number of overview layers available.
Definition: gdalrasterband.cpp:2025
virtual GDALRasterBand * GetMaskBand()
Return the mask band associated with the band.
virtual CPLErr SetUnitType(const char *)
Set unit type.
Definition: gdalrasterband.cpp:2472
A single raster band (or channel).
Definition: gdal_priv.h:475
GDALAccess
Definition: gdal.h:93
A set of associated raster bands, usually from one file.
Definition: gdal_priv.h:254
virtual const char * GetMetadataItem(const char *pszName, const char *pszDomain)
Fetch single metadata item.
virtual CPLErr SetDefaultRAT(const GDALRasterAttributeTable *)
Set default Raster Attribute Table.
Definition: gdalrasterband.cpp:4381
virtual const char * GetMetadataItem(const char *pszName, const char *pszDomain)
Fetch single metadata item.
GDALColorInterp
Definition: gdal.h:105
virtual CPLErr SetMetadataItem(const char *pszName, const char *pszValue, const char *pszDomain="")
Set single metadata item.
Definition: gdalmajorobject.cpp:374
virtual GDALColorTable * GetColorTable()
Fetch the color table associated with band.
Definition: gdal_proxy.h:257
virtual CPLErr GetStatistics(int bApproxOK, int bForce, double *pdfMin, double *pdfMax, double *pdfMean, double *padfStdDev)
Fetch image statistics.
Definition: gdalrasterband.cpp:3355
Definition: gdal.h:94
Format specific driver.
Definition: gdal_priv.h:722
virtual CPLErr GetHistogram(double dfMin, double dfMax, int nBuckets, int *panHistogram, int bIncludeOutOfRange, int bApproxOK, GDALProgressFunc, void *pProgressData)
Compute raster histogram.
Definition: gdalrasterband.cpp:2701
Definition: gdal_priv.h:447
virtual char ** GetMetadataDomainList()
Fetch list of metadata domains.
Definition: gdalmajorobject.cpp:156
virtual CPLErr Fill(double dfRealValue, double dfImaginaryValue=0)
Fill this band with a constant value.
Definition: gdalrasterband.cpp:1290
virtual const char * GetProjectionRef(void)
Fetch the projection definition string for this dataset.
Ground Control Point.
Definition: gdal.h:255

Generated for GDAL by doxygen 1.8.11.