GDAL
gdal_proxy.h
1 /******************************************************************************
2  * $Id: gdal_proxy.h 28899 2015-04-14 09:27:00Z 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 *, GSpacing, GSpacing, GSpacing,
55  GDALRasterIOExtraArg* psExtraArg );
56  public:
57 
58  virtual char **GetMetadataDomainList();
59  virtual char **GetMetadata( const char * pszDomain );
60  virtual CPLErr SetMetadata( char ** papszMetadata,
61  const char * pszDomain );
62  virtual const char *GetMetadataItem( const char * pszName,
63  const char * pszDomain );
64  virtual CPLErr SetMetadataItem( const char * pszName,
65  const char * pszValue,
66  const char * pszDomain );
67 
68  virtual void FlushCache(void);
69 
70  virtual const char *GetProjectionRef(void);
71  virtual CPLErr SetProjection( const char * );
72 
73  virtual CPLErr GetGeoTransform( double * );
74  virtual CPLErr SetGeoTransform( double * );
75 
76  virtual void *GetInternalHandle( const char * );
77  virtual GDALDriver *GetDriver(void);
78  virtual char **GetFileList(void);
79 
80  virtual int GetGCPCount();
81  virtual const char *GetGCPProjection();
82  virtual const GDAL_GCP *GetGCPs();
83  virtual CPLErr SetGCPs( int nGCPCount, const GDAL_GCP *pasGCPList,
84  const char *pszGCPProjection );
85 
86  virtual CPLErr AdviseRead( int nXOff, int nYOff, int nXSize, int nYSize,
87  int nBufXSize, int nBufYSize,
88  GDALDataType eDT,
89  int nBandCount, int *panBandList,
90  char **papszOptions );
91 
92  virtual CPLErr CreateMaskBand( int nFlags );
93 
94 };
95 
96 /* ******************************************************************** */
97 /* GDALProxyRasterBand */
98 /* ******************************************************************** */
99 
100 class CPL_DLL GDALProxyRasterBand : public GDALRasterBand
101 {
102  protected:
103  virtual GDALRasterBand* RefUnderlyingRasterBand() = 0;
104  virtual void UnrefUnderlyingRasterBand(GDALRasterBand* poUnderlyingRasterBand);
105 
106  virtual CPLErr IReadBlock( int, int, void * );
107  virtual CPLErr IWriteBlock( int, int, void * );
108  virtual CPLErr IRasterIO( GDALRWFlag, int, int, int, int,
109  void *, int, int, GDALDataType,
110  GSpacing, GSpacing, GDALRasterIOExtraArg* psExtraArg );
111 
112  public:
113 
114  virtual char **GetMetadataDomainList();
115  virtual char **GetMetadata( const char * pszDomain );
116  virtual CPLErr SetMetadata( char ** papszMetadata,
117  const char * pszDomain );
118  virtual const char *GetMetadataItem( const char * pszName,
119  const char * pszDomain );
120  virtual CPLErr SetMetadataItem( const char * pszName,
121  const char * pszValue,
122  const char * pszDomain );
123  virtual CPLErr FlushCache();
124  virtual char **GetCategoryNames();
125  virtual double GetNoDataValue( int *pbSuccess = NULL );
126  virtual double GetMinimum( int *pbSuccess = NULL );
127  virtual double GetMaximum(int *pbSuccess = NULL );
128  virtual double GetOffset( int *pbSuccess = NULL );
129  virtual double GetScale( int *pbSuccess = NULL );
130  virtual const char *GetUnitType();
132  virtual GDALColorTable *GetColorTable();
133  virtual CPLErr Fill(double dfRealValue, double dfImaginaryValue = 0);
134 
135  virtual CPLErr SetCategoryNames( char ** );
136  virtual CPLErr SetNoDataValue( double );
137  virtual CPLErr SetColorTable( GDALColorTable * );
138  virtual CPLErr SetColorInterpretation( GDALColorInterp );
139  virtual CPLErr SetOffset( double );
140  virtual CPLErr SetScale( double );
141  virtual CPLErr SetUnitType( const char * );
142 
143  virtual CPLErr GetStatistics( int bApproxOK, int bForce,
144  double *pdfMin, double *pdfMax,
145  double *pdfMean, double *padfStdDev );
146  virtual CPLErr ComputeStatistics( int bApproxOK,
147  double *pdfMin, double *pdfMax,
148  double *pdfMean, double *pdfStdDev,
149  GDALProgressFunc, void *pProgressData );
150  virtual CPLErr SetStatistics( double dfMin, double dfMax,
151  double dfMean, double dfStdDev );
152  virtual CPLErr ComputeRasterMinMax( int, double* );
153 
154  virtual int HasArbitraryOverviews();
155  virtual int GetOverviewCount();
156  virtual GDALRasterBand *GetOverview(int);
157  virtual GDALRasterBand *GetRasterSampleOverview( GUIntBig );
158  virtual CPLErr BuildOverviews( const char *, int, int *,
159  GDALProgressFunc, void * );
160 
161  virtual CPLErr AdviseRead( int nXOff, int nYOff, int nXSize, int nYSize,
162  int nBufXSize, int nBufYSize,
163  GDALDataType eDT, char **papszOptions );
164 
165  virtual CPLErr GetHistogram( double dfMin, double dfMax,
166  int nBuckets, GUIntBig * panHistogram,
167  int bIncludeOutOfRange, int bApproxOK,
168  GDALProgressFunc, void *pProgressData );
169 
170  virtual CPLErr GetDefaultHistogram( double *pdfMin, double *pdfMax,
171  int *pnBuckets, GUIntBig ** ppanHistogram,
172  int bForce,
173  GDALProgressFunc, void *pProgressData);
174  virtual CPLErr SetDefaultHistogram( double dfMin, double dfMax,
175  int nBuckets, GUIntBig *panHistogram );
176 
178  virtual CPLErr SetDefaultRAT( const GDALRasterAttributeTable * );
179 
180  virtual GDALRasterBand *GetMaskBand();
181  virtual int GetMaskFlags();
182  virtual CPLErr CreateMaskBand( int nFlags );
183 
184  virtual CPLVirtualMem *GetVirtualMemAuto( GDALRWFlag eRWFlag,
185  int *pnPixelSpace,
186  GIntBig *pnLineSpace,
187  char **papszOptions );
188 };
189 
190 
191 /* ******************************************************************** */
192 /* GDALProxyPoolDataset */
193 /* ******************************************************************** */
194 
195 typedef struct _GDALProxyPoolCacheEntry GDALProxyPoolCacheEntry;
197 
199 {
200  private:
201  GIntBig responsiblePID;
202 
203  char *pszProjectionRef;
204  double adfGeoTransform[6];
205  int bHasSrcProjection;
206  int bHasSrcGeoTransform;
207  char *pszGCPProjection;
208  int nGCPCount;
209  GDAL_GCP *pasGCPList;
210  CPLHashSet *metadataSet;
211  CPLHashSet *metadataItemSet;
212 
213  GDALProxyPoolCacheEntry* cacheEntry;
214 
215  protected:
216  virtual GDALDataset *RefUnderlyingDataset();
217  virtual void UnrefUnderlyingDataset(GDALDataset* poUnderlyingDataset);
218 
219  friend class GDALProxyPoolRasterBand;
220 
221  public:
222  GDALProxyPoolDataset(const char* pszSourceDatasetDescription,
223  int nRasterXSize, int nRasterYSize,
224  GDALAccess eAccess = GA_ReadOnly,
225  int bShared = FALSE,
226  const char * pszProjectionRef = NULL,
227  double * padfGeoTransform = NULL);
229 
230  void SetOpenOptions(char** papszOpenOptions);
231  void AddSrcBandDescription( GDALDataType eDataType, int nBlockXSize, int nBlockYSize);
232 
233  virtual const char *GetProjectionRef(void);
234  virtual CPLErr SetProjection( const char * );
235 
236  virtual CPLErr GetGeoTransform( double * );
237  virtual CPLErr SetGeoTransform( double * );
238 
239  /* Special behaviour for the following methods : they return a pointer */
240  /* data type, that must be cached by the proxy, so it doesn't become invalid */
241  /* when the underlying object get closed */
242  virtual char **GetMetadata( const char * pszDomain );
243  virtual const char *GetMetadataItem( const char * pszName,
244  const char * pszDomain );
245 
246  virtual void *GetInternalHandle( const char * pszRequest );
247 
248  virtual const char *GetGCPProjection();
249  virtual const GDAL_GCP *GetGCPs();
250 };
251 
252 /* ******************************************************************** */
253 /* GDALProxyPoolRasterBand */
254 /* ******************************************************************** */
255 
258 
260 {
261  private:
262  CPLHashSet *metadataSet;
263  CPLHashSet *metadataItemSet;
264  char *pszUnitType;
265  char **papszCategoryNames;
266  GDALColorTable *poColorTable;
267 
268  int nSizeProxyOverviewRasterBand;
269  GDALProxyPoolOverviewRasterBand **papoProxyOverviewRasterBand;
270  GDALProxyPoolMaskBand *poProxyMaskBand;
271 
272  void Init();
273 
274  protected:
275  virtual GDALRasterBand* RefUnderlyingRasterBand();
276  virtual void UnrefUnderlyingRasterBand(GDALRasterBand* poUnderlyingRasterBand);
277 
278  friend class GDALProxyPoolOverviewRasterBand;
279  friend class GDALProxyPoolMaskBand;
280 
281  public:
283  GDALDataType eDataType,
284  int nBlockXSize, int nBlockYSize);
286  GDALRasterBand* poUnderlyingRasterBand);
288 
289  void AddSrcMaskBandDescription( GDALDataType eDataType, int nBlockXSize, int nBlockYSize);
290 
291  /* Special behaviour for the following methods : they return a pointer */
292  /* data type, that must be cached by the proxy, so it doesn't become invalid */
293  /* when the underlying object get closed */
294  virtual char **GetMetadata( const char * pszDomain );
295  virtual const char *GetMetadataItem( const char * pszName,
296  const char * pszDomain );
297  virtual char **GetCategoryNames();
298  virtual const char *GetUnitType();
299  virtual GDALColorTable *GetColorTable();
300  virtual GDALRasterBand *GetOverview(int);
301  virtual GDALRasterBand *GetRasterSampleOverview( GUIntBig nDesiredSamples); // TODO
302  virtual GDALRasterBand *GetMaskBand();
303 
304 };
305 
306 /* ******************************************************************** */
307 /* GDALProxyPoolOverviewRasterBand */
308 /* ******************************************************************** */
309 
311 {
312  private:
313  GDALProxyPoolRasterBand *poMainBand;
314  int nOverviewBand;
315 
316  GDALRasterBand *poUnderlyingMainRasterBand;
317  int nRefCountUnderlyingMainRasterBand;
318 
319  protected:
320  virtual GDALRasterBand* RefUnderlyingRasterBand();
321  virtual void UnrefUnderlyingRasterBand(GDALRasterBand* poUnderlyingRasterBand);
322 
323  public:
325  GDALRasterBand* poUnderlyingOverviewBand,
326  GDALProxyPoolRasterBand* poMainBand,
327  int nOverviewBand);
329 };
330 
331 /* ******************************************************************** */
332 /* GDALProxyPoolMaskBand */
333 /* ******************************************************************** */
334 
336 {
337  private:
338  GDALProxyPoolRasterBand *poMainBand;
339 
340  GDALRasterBand *poUnderlyingMainRasterBand;
341  int nRefCountUnderlyingMainRasterBand;
342 
343  protected:
344  virtual GDALRasterBand* RefUnderlyingRasterBand();
345  virtual void UnrefUnderlyingRasterBand(GDALRasterBand* poUnderlyingRasterBand);
346 
347  public:
349  GDALRasterBand* poUnderlyingMaskBand,
350  GDALProxyPoolRasterBand* poMainBand);
352  GDALProxyPoolRasterBand* poMainBand,
353  GDALDataType eDataType,
354  int nBlockXSize, int nBlockYSize);
356 };
357 
358 #endif
359 
360 
361 /* ******************************************************************** */
362 /* C types and methods declarations */
363 /* ******************************************************************** */
364 
365 
366 CPL_C_START
367 
368 typedef struct GDALProxyPoolDatasetHS *GDALProxyPoolDatasetH;
369 
370 GDALProxyPoolDatasetH CPL_DLL GDALProxyPoolDatasetCreate(const char* pszSourceDatasetDescription,
371  int nRasterXSize, int nRasterYSize,
372  GDALAccess eAccess, int bShared,
373  const char * pszProjectionRef,
374  double * padfGeoTransform);
375 
376 void CPL_DLL GDALProxyPoolDatasetDelete(GDALProxyPoolDatasetH hProxyPoolDataset);
377 
378 void CPL_DLL GDALProxyPoolDatasetAddSrcBandDescription( GDALProxyPoolDatasetH hProxyPoolDataset,
379  GDALDataType eDataType,
380  int nBlockXSize, int nBlockYSize);
381 
382 CPL_C_END
383 
384 #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:1025
virtual CPLErr GetGeoTransform(double *)
Fetch the affine transformation coefficients.
Definition: gdaldataset.cpp:890
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:3590
virtual CPLVirtualMem * GetVirtualMemAuto(GDALRWFlag eRWFlag, int *pnPixelSpace, GIntBig *pnLineSpace, char **papszOptions)
Create a CPLVirtualMem object from a GDAL raster band object.
Definition: gdalrasterband.cpp:5394
virtual CPLErr GetGeoTransform(double *)
Fetch the affine transformation coefficients.
GDALDataType
Definition: gdal.h:57
virtual double GetScale(int *pbSuccess=NULL)
Fetch the raster value scale.
Definition: gdalrasterband.cpp:2515
virtual GDALRasterBand * GetMaskBand()
Return the mask band associated with the band.
Definition: gdalrasterband.cpp:4819
virtual double GetMaximum(int *pbSuccess=NULL)
Fetch the maximum value for this band.
Definition: gdalrasterband.cpp:1780
virtual double GetNoDataValue(int *pbSuccess=NULL)
Fetch the no data value for this band.
Definition: gdalrasterband.cpp:1684
virtual char ** GetCategoryNames()
Fetch the list of category names for this raster.
Definition: gdalrasterband.cpp:1591
virtual void FlushCache(void)
Flush all write cached data to disk.
Definition: gdaldataset.cpp:356
virtual const char * GetGCPProjection()
Get output projection for GCPs.
virtual CPLErr SetColorInterpretation(GDALColorInterp)
Set color interpretation of a band.
Definition: gdalrasterband.cpp:1998
virtual int HasArbitraryOverviews()
Check for arbitrary overviews.
Definition: gdalrasterband.cpp:2139
virtual GDALRasterBand * GetOverview(int)
Fetch overview raster band object.
Definition: gdalrasterband.cpp:2219
virtual CPLErr GetDefaultHistogram(double *pdfMin, double *pdfMax, int *pnBuckets, GUIntBig **ppanHistogram, int bForce, GDALProgressFunc, void *pProgressData)
Fetch default raster histogram.
Definition: gdalrasterband.cpp:3398
virtual CPLErr SetProjection(const char *)
Set the projection reference string for this dataset.
Definition: gdaldataset.cpp:833
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:2055
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:1958
Definition: gdal_proxy.h:100
virtual CPLErr SetScale(double)
Set scaling ratio.
Definition: gdalrasterband.cpp:2560
virtual GDALRasterBand * GetRasterSampleOverview(GUIntBig)
Fetch best sampling overview.
virtual double GetOffset(int *pbSuccess=NULL)
Fetch the raster value offset.
Definition: gdalrasterband.cpp:2416
virtual const char * GetProjectionRef(void)
Fetch the projection definition string for this dataset.
Definition: gdaldataset.cpp:790
virtual char ** GetMetadata(const char *pszDomain)
Fetch metadata.
GDALRWFlag
Definition: gdal.h:101
virtual CPLErr SetStatistics(double dfMin, double dfMax, double dfMean, double dfStdDev)
Set statistics on band.
Definition: gdalrasterband.cpp:4197
virtual int GetMaskFlags()
Return the status flags of the mask band associated with the band.
Definition: gdalrasterband.cpp:5019
virtual GDALRasterAttributeTable * GetDefaultRAT()
Fetch default Raster Attribute Table.
Definition: gdalrasterband.cpp:4706
virtual char ** GetMetadata(const char *pszDomain="")
Fetch metadata.
Definition: gdalmajorobject.cpp:243
virtual CPLErr SetOffset(double)
Set scaling offset.
Definition: gdalrasterband.cpp:2461
virtual CPLErr GetHistogram(double dfMin, double dfMax, int nBuckets, GUIntBig *panHistogram, int bIncludeOutOfRange, int bApproxOK, GDALProgressFunc, void *pProgressData)
Compute raster histogram.
Definition: gdalrasterband.cpp:2881
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:2372
virtual CPLErr SetGCPs(int nGCPCount, const GDAL_GCP *pasGCPList, const char *pszGCPProjection)
Assign GCPs.
Definition: gdaldataset.cpp:1328
virtual CPLErr ComputeStatistics(int bApproxOK, double *pdfMin, double *pdfMax, double *pdfMean, double *pdfStdDev, GDALProgressFunc, void *pProgressData)
Compute image statistics.
Definition: gdalrasterband.cpp:3785
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:1872
virtual char ** GetCategoryNames()
Fetch the list of category names for this raster.
virtual CPLErr FlushCache()
Flush raster data cache.
Definition: gdalrasterband.cpp:913
virtual const GDAL_GCP * GetGCPs()
Fetch GCPs.
GIntBig GSpacing
Type to express pixel, line or band spacing.
Definition: gdal.h:245
virtual CPLErr SetDefaultHistogram(double dfMin, double dfMax, int nBuckets, GUIntBig *panHistogram)
Set default histogram.
Definition: gdalrasterband.cpp:4611
virtual CPLErr SetColorTable(GDALColorTable *)
Set the raster color table.
Definition: gdalrasterband.cpp:2090
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:1274
virtual CPLErr SetGeoTransform(double *)
Set the affine transformation coefficients.
Definition: gdaldataset.cpp:943
Public (C callable) GDAL entry points.
Definition: gdal_proxy.h:44
Definition: gdal_proxy.h:198
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:1198
Definition: gdal_proxy.h:310
virtual CPLErr SetNoDataValue(double)
Set the no data value for this band.
Definition: gdalrasterband.cpp:1732
virtual CPLErr ComputeRasterMinMax(int, double *)
Compute the min/max values for a band.
Definition: gdalrasterband.cpp:4265
Structure to pass extra arguments to RasterIO() method.
Definition: gdal.h:129
virtual const char * GetUnitType()
Return raster unit type.
Definition: gdalrasterband.cpp:2607
Definition: gdal_proxy.h:335
virtual GDALColorTable * GetColorTable()
Fetch the color table associated with band.
Definition: gdalrasterband.cpp:2045
virtual char ** GetMetadata(const char *pszDomain)
Fetch metadata.
virtual CPLErr CreateMaskBand(int nFlagsIn)
Adds a mask band to the dataset.
Definition: gdaldataset.cpp:2269
virtual char ** GetFileList(void)
Fetch files forming dataset.
Definition: gdaldataset.cpp:2141
virtual void * GetInternalHandle(const char *)
Fetch a format specific internally meaningful handle.
Definition: gdaldataset.cpp:987
virtual const char * GetGCPProjection()
Get output projection for GCPs.
Definition: gdaldataset.cpp:1237
virtual CPLErr SetCategoryNames(char **)
Set the category names for this band.
Definition: gdalrasterband.cpp:1635
virtual int GetOverviewCount()
Return the number of overview layers available.
Definition: gdalrasterband.cpp:2176
virtual GDALRasterBand * GetMaskBand()
Return the mask band associated with the band.
virtual CPLErr SetUnitType(const char *)
Set unit type.
Definition: gdalrasterband.cpp:2651
A single raster band (or channel).
Definition: gdal_priv.h:611
GDALAccess
Definition: gdal.h:95
virtual CPLErr CreateMaskBand(int nFlagsIn)
Adds a mask band to the current band.
Definition: gdalrasterband.cpp:5092
A set of associated raster bands, usually from one file.
Definition: gdal_priv.h:276
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:4750
virtual GDALRasterBand * GetRasterSampleOverview(GUIntBig)
Fetch best sampling overview.
Definition: gdalrasterband.cpp:2269
virtual const char * GetMetadataItem(const char *pszName, const char *pszDomain)
Fetch single metadata item.
GDALColorInterp
Definition: gdal.h:170
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:259
virtual CPLErr GetStatistics(int bApproxOK, int bForce, double *pdfMin, double *pdfMax, double *pdfMean, double *padfStdDev)
Fetch image statistics.
Definition: gdalrasterband.cpp:3667
Definition: gdal.h:96
Format specific driver.
Definition: gdal_priv.h:877
Definition: gdal_priv.h:582
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:1441
virtual const char * GetProjectionRef(void)
Fetch the projection definition string for this dataset.
Ground Control Point.
Definition: gdal.h:442

Generated for GDAL by doxygen 1.8.11.