GDAL
gdal_proxy.h
1 /******************************************************************************
2  * $Id: gdal_proxy.h 33694 2016-03-10 17:54:30Z goatbar $
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  GDALProxyDataset() {};
48 
49  virtual GDALDataset *RefUnderlyingDataset() = 0;
50  virtual void UnrefUnderlyingDataset(GDALDataset* poUnderlyingDataset);
51 
52  virtual CPLErr IBuildOverviews( const char *, int, int *,
53  int, int *, GDALProgressFunc, void * );
54  virtual CPLErr IRasterIO( GDALRWFlag, int, int, int, int,
55  void *, int, int, GDALDataType,
56  int, int *, GSpacing, GSpacing, GSpacing,
57  GDALRasterIOExtraArg* psExtraArg );
58  public:
59 
60  virtual char **GetMetadataDomainList();
61  virtual char **GetMetadata( const char * pszDomain );
62  virtual CPLErr SetMetadata( char ** papszMetadata,
63  const char * pszDomain );
64  virtual const char *GetMetadataItem( const char * pszName,
65  const char * pszDomain );
66  virtual CPLErr SetMetadataItem( const char * pszName,
67  const char * pszValue,
68  const char * pszDomain );
69 
70  virtual void FlushCache(void);
71 
72  virtual const char *GetProjectionRef(void);
73  virtual CPLErr SetProjection( const char * );
74 
75  virtual CPLErr GetGeoTransform( double * );
76  virtual CPLErr SetGeoTransform( double * );
77 
78  virtual void *GetInternalHandle( const char * );
79  virtual GDALDriver *GetDriver(void);
80  virtual char **GetFileList(void);
81 
82  virtual int GetGCPCount();
83  virtual const char *GetGCPProjection();
84  virtual const GDAL_GCP *GetGCPs();
85  virtual CPLErr SetGCPs( int nGCPCount, const GDAL_GCP *pasGCPList,
86  const char *pszGCPProjection );
87 
88  virtual CPLErr AdviseRead( int nXOff, int nYOff, int nXSize, int nYSize,
89  int nBufXSize, int nBufYSize,
90  GDALDataType eDT,
91  int nBandCount, int *panBandList,
92  char **papszOptions );
93 
94  virtual CPLErr CreateMaskBand( int nFlags );
95 
96  private:
97  CPL_DISALLOW_COPY_ASSIGN(GDALProxyDataset);
98 };
99 
100 /* ******************************************************************** */
101 /* GDALProxyRasterBand */
102 /* ******************************************************************** */
103 
104 class CPL_DLL GDALProxyRasterBand : public GDALRasterBand
105 {
106  protected:
107  GDALProxyRasterBand() {};
108 
109  virtual GDALRasterBand* RefUnderlyingRasterBand() = 0;
110  virtual void UnrefUnderlyingRasterBand(GDALRasterBand* poUnderlyingRasterBand);
111 
112  virtual CPLErr IReadBlock( int, int, void * );
113  virtual CPLErr IWriteBlock( int, int, void * );
114  virtual CPLErr IRasterIO( GDALRWFlag, int, int, int, int,
115  void *, int, int, GDALDataType,
116  GSpacing, GSpacing, GDALRasterIOExtraArg* psExtraArg );
117 
118  public:
119 
120  virtual char **GetMetadataDomainList();
121  virtual char **GetMetadata( const char * pszDomain );
122  virtual CPLErr SetMetadata( char ** papszMetadata,
123  const char * pszDomain );
124  virtual const char *GetMetadataItem( const char * pszName,
125  const char * pszDomain );
126  virtual CPLErr SetMetadataItem( const char * pszName,
127  const char * pszValue,
128  const char * pszDomain );
129  virtual CPLErr FlushCache();
130  virtual char **GetCategoryNames();
131  virtual double GetNoDataValue( int *pbSuccess = NULL );
132  virtual double GetMinimum( int *pbSuccess = NULL );
133  virtual double GetMaximum(int *pbSuccess = NULL );
134  virtual double GetOffset( int *pbSuccess = NULL );
135  virtual double GetScale( int *pbSuccess = NULL );
136  virtual const char *GetUnitType();
138  virtual GDALColorTable *GetColorTable();
139  virtual CPLErr Fill(double dfRealValue, double dfImaginaryValue = 0);
140 
141  virtual CPLErr SetCategoryNames( char ** );
142  virtual CPLErr SetNoDataValue( double );
143  virtual CPLErr DeleteNoDataValue();
144  virtual CPLErr SetColorTable( GDALColorTable * );
145  virtual CPLErr SetColorInterpretation( GDALColorInterp );
146  virtual CPLErr SetOffset( double );
147  virtual CPLErr SetScale( double );
148  virtual CPLErr SetUnitType( const char * );
149 
150  virtual CPLErr GetStatistics( int bApproxOK, int bForce,
151  double *pdfMin, double *pdfMax,
152  double *pdfMean, double *padfStdDev );
153  virtual CPLErr ComputeStatistics( int bApproxOK,
154  double *pdfMin, double *pdfMax,
155  double *pdfMean, double *pdfStdDev,
156  GDALProgressFunc, void *pProgressData );
157  virtual CPLErr SetStatistics( double dfMin, double dfMax,
158  double dfMean, double dfStdDev );
159  virtual CPLErr ComputeRasterMinMax( int, double* );
160 
161  virtual int HasArbitraryOverviews();
162  virtual int GetOverviewCount();
163  virtual GDALRasterBand *GetOverview(int);
164  virtual GDALRasterBand *GetRasterSampleOverview( GUIntBig );
165  virtual CPLErr BuildOverviews( const char *, int, int *,
166  GDALProgressFunc, void * );
167 
168  virtual CPLErr AdviseRead( int nXOff, int nYOff, int nXSize, int nYSize,
169  int nBufXSize, int nBufYSize,
170  GDALDataType eDT, char **papszOptions );
171 
172  virtual CPLErr GetHistogram( double dfMin, double dfMax,
173  int nBuckets, GUIntBig * panHistogram,
174  int bIncludeOutOfRange, int bApproxOK,
175  GDALProgressFunc, void *pProgressData );
176 
177  virtual CPLErr GetDefaultHistogram( double *pdfMin, double *pdfMax,
178  int *pnBuckets, GUIntBig ** ppanHistogram,
179  int bForce,
180  GDALProgressFunc, void *pProgressData);
181  virtual CPLErr SetDefaultHistogram( double dfMin, double dfMax,
182  int nBuckets, GUIntBig *panHistogram );
183 
185  virtual CPLErr SetDefaultRAT( const GDALRasterAttributeTable * );
186 
187  virtual GDALRasterBand *GetMaskBand();
188  virtual int GetMaskFlags();
189  virtual CPLErr CreateMaskBand( int nFlags );
190 
191  virtual CPLVirtualMem *GetVirtualMemAuto( GDALRWFlag eRWFlag,
192  int *pnPixelSpace,
193  GIntBig *pnLineSpace,
194  char **papszOptions );
195  private:
196  CPL_DISALLOW_COPY_ASSIGN(GDALProxyRasterBand);
197 };
198 
199 
200 /* ******************************************************************** */
201 /* GDALProxyPoolDataset */
202 /* ******************************************************************** */
203 
204 typedef struct _GDALProxyPoolCacheEntry GDALProxyPoolCacheEntry;
206 
208 {
209  private:
210  GIntBig responsiblePID;
211 
212  char *pszProjectionRef;
213  double adfGeoTransform[6];
214  int bHasSrcProjection;
215  int bHasSrcGeoTransform;
216  char *pszGCPProjection;
217  int nGCPCount;
218  GDAL_GCP *pasGCPList;
219  CPLHashSet *metadataSet;
220  CPLHashSet *metadataItemSet;
221 
222  GDALProxyPoolCacheEntry* cacheEntry;
223 
224  protected:
225  virtual GDALDataset *RefUnderlyingDataset();
226  virtual void UnrefUnderlyingDataset(GDALDataset* poUnderlyingDataset);
227 
228  friend class GDALProxyPoolRasterBand;
229 
230  public:
231  GDALProxyPoolDataset(const char* pszSourceDatasetDescription,
232  int nRasterXSize, int nRasterYSize,
233  GDALAccess eAccess = GA_ReadOnly,
234  int bShared = FALSE,
235  const char * pszProjectionRef = NULL,
236  double * padfGeoTransform = NULL);
238 
239  void SetOpenOptions(char** papszOpenOptions);
240  void AddSrcBandDescription( GDALDataType eDataType, int nBlockXSize, int nBlockYSize);
241 
242  virtual const char *GetProjectionRef(void);
243  virtual CPLErr SetProjection( const char * );
244 
245  virtual CPLErr GetGeoTransform( double * );
246  virtual CPLErr SetGeoTransform( double * );
247 
248  /* Special behaviour for the following methods : they return a pointer */
249  /* data type, that must be cached by the proxy, so it doesn't become invalid */
250  /* when the underlying object get closed */
251  virtual char **GetMetadata( const char * pszDomain );
252  virtual const char *GetMetadataItem( const char * pszName,
253  const char * pszDomain );
254 
255  virtual void *GetInternalHandle( const char * pszRequest );
256 
257  virtual const char *GetGCPProjection();
258  virtual const GDAL_GCP *GetGCPs();
259  private:
260  CPL_DISALLOW_COPY_ASSIGN(GDALProxyPoolDataset);
261 };
262 
263 /* ******************************************************************** */
264 /* GDALProxyPoolRasterBand */
265 /* ******************************************************************** */
266 
269 
271 {
272  private:
273  CPLHashSet *metadataSet;
274  CPLHashSet *metadataItemSet;
275  char *pszUnitType;
276  char **papszCategoryNames;
277  GDALColorTable *poColorTable;
278 
279  int nSizeProxyOverviewRasterBand;
280  GDALProxyPoolOverviewRasterBand **papoProxyOverviewRasterBand;
281  GDALProxyPoolMaskBand *poProxyMaskBand;
282 
283  void Init();
284 
285  protected:
286  virtual GDALRasterBand* RefUnderlyingRasterBand();
287  virtual void UnrefUnderlyingRasterBand(GDALRasterBand* poUnderlyingRasterBand);
288 
289  friend class GDALProxyPoolOverviewRasterBand;
290  friend class GDALProxyPoolMaskBand;
291 
292  public:
294  GDALDataType eDataType,
295  int nBlockXSize, int nBlockYSize);
297  GDALRasterBand* poUnderlyingRasterBand);
299 
300  void AddSrcMaskBandDescription( GDALDataType eDataType, int nBlockXSize, int nBlockYSize);
301 
302  /* Special behaviour for the following methods : they return a pointer */
303  /* data type, that must be cached by the proxy, so it doesn't become invalid */
304  /* when the underlying object get closed */
305  virtual char **GetMetadata( const char * pszDomain );
306  virtual const char *GetMetadataItem( const char * pszName,
307  const char * pszDomain );
308  virtual char **GetCategoryNames();
309  virtual const char *GetUnitType();
310  virtual GDALColorTable *GetColorTable();
311  virtual GDALRasterBand *GetOverview(int);
312  virtual GDALRasterBand *GetRasterSampleOverview( GUIntBig nDesiredSamples); // TODO
313  virtual GDALRasterBand *GetMaskBand();
314  private:
315  CPL_DISALLOW_COPY_ASSIGN(GDALProxyPoolRasterBand);
316 };
317 
318 /* ******************************************************************** */
319 /* GDALProxyPoolOverviewRasterBand */
320 /* ******************************************************************** */
321 
323 {
324  private:
325  GDALProxyPoolRasterBand *poMainBand;
326  int nOverviewBand;
327 
328  GDALRasterBand *poUnderlyingMainRasterBand;
329  int nRefCountUnderlyingMainRasterBand;
330 
331  protected:
332  virtual GDALRasterBand* RefUnderlyingRasterBand();
333  virtual void UnrefUnderlyingRasterBand(GDALRasterBand* poUnderlyingRasterBand);
334 
335  public:
337  GDALRasterBand* poUnderlyingOverviewBand,
338  GDALProxyPoolRasterBand* poMainBand,
339  int nOverviewBand);
341 };
342 
343 /* ******************************************************************** */
344 /* GDALProxyPoolMaskBand */
345 /* ******************************************************************** */
346 
348 {
349  private:
350  GDALProxyPoolRasterBand *poMainBand;
351 
352  GDALRasterBand *poUnderlyingMainRasterBand;
353  int nRefCountUnderlyingMainRasterBand;
354 
355  protected:
356  virtual GDALRasterBand* RefUnderlyingRasterBand();
357  virtual void UnrefUnderlyingRasterBand(GDALRasterBand* poUnderlyingRasterBand);
358 
359  public:
361  GDALRasterBand* poUnderlyingMaskBand,
362  GDALProxyPoolRasterBand* poMainBand);
364  GDALProxyPoolRasterBand* poMainBand,
365  GDALDataType eDataType,
366  int nBlockXSize, int nBlockYSize);
368 };
369 
370 #endif
371 
372 
373 /* ******************************************************************** */
374 /* C types and methods declarations */
375 /* ******************************************************************** */
376 
377 
378 CPL_C_START
379 
380 typedef struct GDALProxyPoolDatasetHS *GDALProxyPoolDatasetH;
381 
382 GDALProxyPoolDatasetH CPL_DLL GDALProxyPoolDatasetCreate(const char* pszSourceDatasetDescription,
383  int nRasterXSize, int nRasterYSize,
384  GDALAccess eAccess, int bShared,
385  const char * pszProjectionRef,
386  double * padfGeoTransform);
387 
388 void CPL_DLL GDALProxyPoolDatasetDelete(GDALProxyPoolDatasetH hProxyPoolDataset);
389 
390 void CPL_DLL GDALProxyPoolDatasetAddSrcBandDescription( GDALProxyPoolDatasetH hProxyPoolDataset,
391  GDALDataType eDataType,
392  int nBlockXSize, int nBlockYSize);
393 
394 CPL_C_END
395 
396 #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:1046
virtual CPLErr GetGeoTransform(double *)
Fetch the affine transformation coefficients.
Definition: gdaldataset.cpp:911
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:3393
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:2320
virtual GDALRasterBand * GetMaskBand()
Return the mask band associated with the band.
Definition: gdalrasterband.cpp:4621
virtual double GetMaximum(int *pbSuccess=NULL)
Fetch the maximum value for this band.
Definition: gdalrasterband.cpp:1592
virtual double GetNoDataValue(int *pbSuccess=NULL)
Fetch the no data value for this band.
Definition: gdalrasterband.cpp:1431
virtual char ** GetCategoryNames()
Fetch the list of category names for this raster.
Definition: gdalrasterband.cpp:1338
virtual void FlushCache(void)
Flush all write cached data to disk.
Definition: gdaldataset.cpp:382
virtual const char * GetGCPProjection()
Get output projection for GCPs.
virtual CPLErr SetColorInterpretation(GDALColorInterp)
Set color interpretation of a band.
Definition: gdalrasterband.cpp:1810
virtual int HasArbitraryOverviews()
Check for arbitrary overviews.
Definition: gdalrasterband.cpp:1951
virtual GDALRasterBand * GetOverview(int)
Fetch overview raster band object.
Definition: gdalrasterband.cpp:2031
virtual CPLErr GetDefaultHistogram(double *pdfMin, double *pdfMax, int *pnBuckets, GUIntBig **ppanHistogram, int bForce, GDALProgressFunc, void *pProgressData)
Fetch default raster histogram.
Definition: gdalrasterband.cpp:3201
virtual CPLErr SetProjection(const char *)
Set the projection reference string for this dataset.
Definition: gdaldataset.cpp:854
C++ GDAL entry points.
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:2226
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:1770
Definition: gdal_proxy.h:104
virtual CPLErr SetScale(double)
Set scaling ratio.
Definition: gdalrasterband.cpp:2365
virtual GDALRasterBand * GetRasterSampleOverview(GUIntBig)
Fetch best sampling overview.
virtual double GetOffset(int *pbSuccess=NULL)
Fetch the raster value offset.
Definition: gdalrasterband.cpp:2221
virtual const char * GetProjectionRef(void)
Fetch the projection definition string for this dataset.
Definition: gdaldataset.cpp:811
virtual char ** GetMetadata(const char *pszDomain)
Fetch metadata.
GDALRWFlag
Definition: gdal.h:104
virtual CPLErr SetStatistics(double dfMin, double dfMax, double dfMean, double dfStdDev)
Set statistics on band.
Definition: gdalrasterband.cpp:4000
virtual int GetMaskFlags()
Return the status flags of the mask band associated with the band.
Definition: gdalrasterband.cpp:4855
virtual GDALRasterAttributeTable * GetDefaultRAT()
Fetch default Raster Attribute Table.
Definition: gdalrasterband.cpp:4508
virtual char ** GetMetadata(const char *pszDomain="")
Fetch metadata.
Definition: gdalmajorobject.cpp:243
virtual CPLErr SetOffset(double)
Set scaling offset.
Definition: gdalrasterband.cpp:2266
virtual CPLErr GetHistogram(double dfMin, double dfMax, int nBuckets, GUIntBig *panHistogram, int bIncludeOutOfRange, int bApproxOK, GDALProgressFunc, void *pProgressData)
Compute raster histogram.
Definition: gdalrasterband.cpp:2686
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:2183
virtual CPLErr SetGCPs(int nGCPCount, const GDAL_GCP *pasGCPList, const char *pszGCPProjection)
Assign GCPs.
Definition: gdaldataset.cpp:1349
virtual CPLErr ComputeStatistics(int bApproxOK, double *pdfMin, double *pdfMax, double *pdfMean, double *pdfStdDev, GDALProgressFunc, void *pProgressData)
Compute image statistics.
Definition: gdalrasterband.cpp:3588
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:1684
virtual char ** GetCategoryNames()
Fetch the list of category names for this raster.
virtual CPLErr FlushCache()
Flush raster data cache.
Definition: gdalrasterband.cpp:849
virtual const GDAL_GCP * GetGCPs()
Fetch GCPs.
GIntBig GSpacing
Type to express pixel, line or band spacing.
Definition: gdal.h:248
virtual CPLErr SetDefaultHistogram(double dfMin, double dfMax, int nBuckets, GUIntBig *panHistogram)
Set default histogram.
Definition: gdalrasterband.cpp:4413
virtual CPLErr SetColorTable(GDALColorTable *)
Set the raster color table.
Definition: gdalrasterband.cpp:1902
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:1295
virtual CPLErr SetGeoTransform(double *)
Set the affine transformation coefficients.
Definition: gdaldataset.cpp:964
Public (C callable) GDAL entry points.
Definition: gdal_proxy.h:44
virtual CPLErr DeleteNoDataValue()
Remove the no data value for this band.
Definition: gdalrasterband.cpp:1542
Definition: gdal_proxy.h:207
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:1219
Definition: gdal_proxy.h:322
virtual CPLErr SetNoDataValue(double)
Set the no data value for this band.
Definition: gdalrasterband.cpp:1486
virtual CPLErr ComputeRasterMinMax(int, double *)
Compute the min/max values for a band.
Definition: gdalrasterband.cpp:4068
Structure to pass extra arguments to RasterIO() method.
Definition: gdal.h:132
virtual const char * GetUnitType()
Return raster unit type.
Definition: gdalrasterband.cpp:2412
Definition: gdal_proxy.h:347
virtual GDALColorTable * GetColorTable()
Fetch the color table associated with band.
Definition: gdalrasterband.cpp:1857
virtual char ** GetMetadata(const char *pszDomain)
Fetch metadata.
virtual CPLErr CreateMaskBand(int nFlagsIn)
Adds a mask band to the dataset.
Definition: gdaldataset.cpp:2439
virtual char ** GetFileList(void)
Fetch files forming dataset.
Definition: gdaldataset.cpp:2311
virtual void * GetInternalHandle(const char *)
Fetch a format specific internally meaningful handle.
Definition: gdaldataset.cpp:1008
virtual const char * GetGCPProjection()
Get output projection for GCPs.
Definition: gdaldataset.cpp:1258
virtual CPLErr SetCategoryNames(char **)
Set the category names for this band.
Definition: gdalrasterband.cpp:1382
virtual int GetOverviewCount()
Return the number of overview layers available.
Definition: gdalrasterband.cpp:1988
virtual CPLVirtualMem * GetVirtualMemAuto(GDALRWFlag eRWFlag, int *pnPixelSpace, GIntBig *pnLineSpace, char **papszOptions) CPL_WARN_UNUSED_RESULT
Create a CPLVirtualMem object from a GDAL raster band object.
Definition: gdalrasterband.cpp:5232
virtual GDALRasterBand * GetMaskBand()
Return the mask band associated with the band.
virtual CPLErr SetUnitType(const char *)
Set unit type.
Definition: gdalrasterband.cpp:2456
A single raster band (or channel).
Definition: gdal_priv.h:736
GDALAccess
Definition: gdal.h:98
virtual CPLErr CreateMaskBand(int nFlagsIn)
Adds a mask band to the current band.
Definition: gdalrasterband.cpp:4928
A set of associated raster bands, usually from one file.
Definition: gdal_priv.h:296
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:4552
virtual GDALRasterBand * GetRasterSampleOverview(GUIntBig)
Fetch best sampling overview.
Definition: gdalrasterband.cpp:2081
virtual const char * GetMetadataItem(const char *pszName, const char *pszDomain)
Fetch single metadata item.
GDALColorInterp
Definition: gdal.h:173
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:270
virtual CPLErr GetStatistics(int bApproxOK, int bForce, double *pdfMin, double *pdfMax, double *pdfMean, double *padfStdDev)
Fetch image statistics.
Definition: gdalrasterband.cpp:3470
Definition: gdal.h:99
Format specific driver.
Definition: gdal_priv.h:1036
Definition: gdal_priv.h:660
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:1194
virtual const char * GetProjectionRef(void)
Fetch the projection definition string for this dataset.
Ground Control Point.
Definition: gdal.h:492

Generated for GDAL by doxygen 1.8.13.