GDAL
gdal_proxy.h
1 /******************************************************************************
2  * $Id: gdal_proxy.h 20962 2010-10-25 23:00:16Z 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, Even Rouault
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 **GetMetadata( const char * pszDomain );
58  virtual CPLErr SetMetadata( char ** papszMetadata,
59  const char * pszDomain );
60  virtual const char *GetMetadataItem( const char * pszName,
61  const char * pszDomain );
62  virtual CPLErr SetMetadataItem( const char * pszName,
63  const char * pszValue,
64  const char * pszDomain );
65 
66  virtual void FlushCache(void);
67 
68  virtual const char *GetProjectionRef(void);
69  virtual CPLErr SetProjection( const char * );
70 
71  virtual CPLErr GetGeoTransform( double * );
72  virtual CPLErr SetGeoTransform( double * );
73 
74  virtual void *GetInternalHandle( const char * );
75  virtual GDALDriver *GetDriver(void);
76  virtual char **GetFileList(void);
77 
78  virtual int GetGCPCount();
79  virtual const char *GetGCPProjection();
80  virtual const GDAL_GCP *GetGCPs();
81  virtual CPLErr SetGCPs( int nGCPCount, const GDAL_GCP *pasGCPList,
82  const char *pszGCPProjection );
83 
84  virtual CPLErr AdviseRead( int nXOff, int nYOff, int nXSize, int nYSize,
85  int nBufXSize, int nBufYSize,
86  GDALDataType eDT,
87  int nBandCount, int *panBandList,
88  char **papszOptions );
89 
90  virtual CPLErr CreateMaskBand( int nFlags );
91 
92 };
93 
94 /* ******************************************************************** */
95 /* GDALProxyRasterBand */
96 /* ******************************************************************** */
97 
98 class CPL_DLL GDALProxyRasterBand : public GDALRasterBand
99 {
100  protected:
101  virtual GDALRasterBand* RefUnderlyingRasterBand() = 0;
102  virtual void UnrefUnderlyingRasterBand(GDALRasterBand* poUnderlyingRasterBand);
103 
104  virtual CPLErr IReadBlock( int, int, void * );
105  virtual CPLErr IWriteBlock( int, int, void * );
106  virtual CPLErr IRasterIO( GDALRWFlag, int, int, int, int,
107  void *, int, int, GDALDataType,
108  int, int );
109 
110  public:
111 
112  virtual char **GetMetadata( const char * pszDomain );
113  virtual CPLErr SetMetadata( char ** papszMetadata,
114  const char * pszDomain );
115  virtual const char *GetMetadataItem( const char * pszName,
116  const char * pszDomain );
117  virtual CPLErr SetMetadataItem( const char * pszName,
118  const char * pszValue,
119  const char * pszDomain );
120  virtual CPLErr FlushCache();
121  virtual char **GetCategoryNames();
122  virtual double GetNoDataValue( int *pbSuccess = NULL );
123  virtual double GetMinimum( int *pbSuccess = NULL );
124  virtual double GetMaximum(int *pbSuccess = NULL );
125  virtual double GetOffset( int *pbSuccess = NULL );
126  virtual double GetScale( int *pbSuccess = NULL );
127  virtual const char *GetUnitType();
129  virtual GDALColorTable *GetColorTable();
130  virtual CPLErr Fill(double dfRealValue, double dfImaginaryValue = 0);
131 
132  virtual CPLErr SetCategoryNames( char ** );
133  virtual CPLErr SetNoDataValue( double );
134  virtual CPLErr SetColorTable( GDALColorTable * );
135  virtual CPLErr SetColorInterpretation( GDALColorInterp );
136  virtual CPLErr SetOffset( double );
137  virtual CPLErr SetScale( double );
138  virtual CPLErr SetUnitType( const char * );
139 
140  virtual CPLErr GetStatistics( int bApproxOK, int bForce,
141  double *pdfMin, double *pdfMax,
142  double *pdfMean, double *padfStdDev );
143  virtual CPLErr ComputeStatistics( int bApproxOK,
144  double *pdfMin, double *pdfMax,
145  double *pdfMean, double *pdfStdDev,
146  GDALProgressFunc, void *pProgressData );
147  virtual CPLErr SetStatistics( double dfMin, double dfMax,
148  double dfMean, double dfStdDev );
149  virtual CPLErr ComputeRasterMinMax( int, double* );
150 
151  virtual int HasArbitraryOverviews();
152  virtual int GetOverviewCount();
153  virtual GDALRasterBand *GetOverview(int);
154  virtual GDALRasterBand *GetRasterSampleOverview( int );
155  virtual CPLErr BuildOverviews( const char *, int, int *,
156  GDALProgressFunc, void * );
157 
158  virtual CPLErr AdviseRead( int nXOff, int nYOff, int nXSize, int nYSize,
159  int nBufXSize, int nBufYSize,
160  GDALDataType eDT, char **papszOptions );
161 
162  virtual CPLErr GetHistogram( double dfMin, double dfMax,
163  int nBuckets, int * panHistogram,
164  int bIncludeOutOfRange, int bApproxOK,
165  GDALProgressFunc, void *pProgressData );
166 
167  virtual CPLErr GetDefaultHistogram( double *pdfMin, double *pdfMax,
168  int *pnBuckets, int ** ppanHistogram,
169  int bForce,
170  GDALProgressFunc, void *pProgressData);
171  virtual CPLErr SetDefaultHistogram( double dfMin, double dfMax,
172  int nBuckets, int *panHistogram );
173 
174  virtual const GDALRasterAttributeTable *GetDefaultRAT();
175  virtual CPLErr SetDefaultRAT( const GDALRasterAttributeTable * );
176 
177  virtual GDALRasterBand *GetMaskBand();
178  virtual int GetMaskFlags();
179  virtual CPLErr CreateMaskBand( int nFlags );
180 
181 };
182 
183 
184 /* ******************************************************************** */
185 /* GDALProxyPoolDataset */
186 /* ******************************************************************** */
187 
188 typedef struct _GDALProxyPoolCacheEntry GDALProxyPoolCacheEntry;
190 
192 {
193  private:
194  GIntBig responsiblePID;
195 
196  char *pszProjectionRef;
197  double adfGeoTransform[6];
198  int bHasSrcProjection;
199  int bHasSrcGeoTransform;
200  char *pszGCPProjection;
201  int nGCPCount;
202  GDAL_GCP *pasGCPList;
203  CPLHashSet *metadataSet;
204  CPLHashSet *metadataItemSet;
205 
206  GDALProxyPoolCacheEntry* cacheEntry;
207 
208  protected:
209  virtual GDALDataset *RefUnderlyingDataset();
210  virtual void UnrefUnderlyingDataset(GDALDataset* poUnderlyingDataset);
211 
212  friend class GDALProxyPoolRasterBand;
213 
214  public:
215  GDALProxyPoolDataset(const char* pszSourceDatasetDescription,
216  int nRasterXSize, int nRasterYSize,
217  GDALAccess eAccess = GA_ReadOnly,
218  int bShared = FALSE,
219  const char * pszProjectionRef = NULL,
220  double * padfGeoTransform = NULL);
222 
223  void AddSrcBandDescription( GDALDataType eDataType, int nBlockXSize, int nBlockYSize);
224 
225  virtual const char *GetProjectionRef(void);
226  virtual CPLErr SetProjection( const char * );
227 
228  virtual CPLErr GetGeoTransform( double * );
229  virtual CPLErr SetGeoTransform( double * );
230 
231  /* Special behaviour for the following methods : they return a pointer */
232  /* data type, that must be cached by the proxy, so it doesn't become invalid */
233  /* when the underlying object get closed */
234  virtual char **GetMetadata( const char * pszDomain );
235  virtual const char *GetMetadataItem( const char * pszName,
236  const char * pszDomain );
237 
238  virtual void *GetInternalHandle( const char * pszRequest );
239 
240  virtual const char *GetGCPProjection();
241  virtual const GDAL_GCP *GetGCPs();
242 };
243 
244 /* ******************************************************************** */
245 /* GDALProxyPoolRasterBand */
246 /* ******************************************************************** */
247 
250 
252 {
253  private:
254  CPLHashSet *metadataSet;
255  CPLHashSet *metadataItemSet;
256  char *pszUnitType;
257  char **papszCategoryNames;
258  GDALColorTable *poColorTable;
259 
260  int nSizeProxyOverviewRasterBand;
261  GDALProxyPoolOverviewRasterBand **papoProxyOverviewRasterBand;
262  GDALProxyPoolMaskBand *poProxyMaskBand;
263 
264  void Init();
265 
266  protected:
267  virtual GDALRasterBand* RefUnderlyingRasterBand();
268  virtual void UnrefUnderlyingRasterBand(GDALRasterBand* poUnderlyingRasterBand);
269 
270  friend class GDALProxyPoolOverviewRasterBand;
271  friend class GDALProxyPoolMaskBand;
272 
273  public:
275  GDALDataType eDataType,
276  int nBlockXSize, int nBlockYSize);
278  GDALRasterBand* poUnderlyingRasterBand);
280 
281  void AddSrcMaskBandDescription( GDALDataType eDataType, int nBlockXSize, int nBlockYSize);
282 
283  /* Special behaviour for the following methods : they return a pointer */
284  /* data type, that must be cached by the proxy, so it doesn't become invalid */
285  /* when the underlying object get closed */
286  virtual char **GetMetadata( const char * pszDomain );
287  virtual const char *GetMetadataItem( const char * pszName,
288  const char * pszDomain );
289  virtual char **GetCategoryNames();
290  virtual const char *GetUnitType();
291  virtual GDALColorTable *GetColorTable();
292  virtual GDALRasterBand *GetOverview(int);
293  virtual GDALRasterBand *GetRasterSampleOverview( int nDesiredSamples); // TODO
294  virtual GDALRasterBand *GetMaskBand();
295 
296 };
297 
298 /* ******************************************************************** */
299 /* GDALProxyPoolOverviewRasterBand */
300 /* ******************************************************************** */
301 
303 {
304  private:
305  GDALProxyPoolRasterBand *poMainBand;
306  int nOverviewBand;
307 
308  GDALRasterBand *poUnderlyingMainRasterBand;
309  int nRefCountUnderlyingMainRasterBand;
310 
311  protected:
312  virtual GDALRasterBand* RefUnderlyingRasterBand();
313  virtual void UnrefUnderlyingRasterBand(GDALRasterBand* poUnderlyingRasterBand);
314 
315  public:
317  GDALRasterBand* poUnderlyingOverviewBand,
318  GDALProxyPoolRasterBand* poMainBand,
319  int nOverviewBand);
321 };
322 
323 /* ******************************************************************** */
324 /* GDALProxyPoolMaskBand */
325 /* ******************************************************************** */
326 
328 {
329  private:
330  GDALProxyPoolRasterBand *poMainBand;
331 
332  GDALRasterBand *poUnderlyingMainRasterBand;
333  int nRefCountUnderlyingMainRasterBand;
334 
335  protected:
336  virtual GDALRasterBand* RefUnderlyingRasterBand();
337  virtual void UnrefUnderlyingRasterBand(GDALRasterBand* poUnderlyingRasterBand);
338 
339  public:
341  GDALRasterBand* poUnderlyingMaskBand,
342  GDALProxyPoolRasterBand* poMainBand);
344  GDALProxyPoolRasterBand* poMainBand,
345  GDALDataType eDataType,
346  int nBlockXSize, int nBlockYSize);
348 };
349 
350 #endif
351 
352 
353 /* ******************************************************************** */
354 /* C types and methods declarations */
355 /* ******************************************************************** */
356 
357 
358 CPL_C_START
359 
360 typedef struct GDALProxyPoolDatasetHS *GDALProxyPoolDatasetH;
361 
362 GDALProxyPoolDatasetH CPL_DLL GDALProxyPoolDatasetCreate(const char* pszSourceDatasetDescription,
363  int nRasterXSize, int nRasterYSize,
364  GDALAccess eAccess, int bShared,
365  const char * pszProjectionRef,
366  double * padfGeoTransform);
367 
368 void CPL_DLL GDALProxyPoolDatasetDelete(GDALProxyPoolDatasetH hProxyPoolDataset);
369 
370 void CPL_DLL GDALProxyPoolDatasetAddSrcBandDescription( GDALProxyPoolDatasetH hProxyPoolDataset,
371  GDALDataType eDataType,
372  int nBlockXSize, int nBlockYSize);
373 
374 CPL_C_END
375 
376 #endif /* GDAL_PROXY_H_INCLUDED */
Raster Attribute Table container.
Definition: gdal_rat.h:61
virtual GDALDriver * GetDriver(void)
Fetch the driver to which this dataset relates.
Definition: gdaldataset.cpp:989
virtual CPLErr GetGeoTransform(double *)
Fetch the affine transformation coefficients.
Definition: gdaldataset.cpp:854
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:3253
virtual CPLErr GetGeoTransform(double *)
Fetch the affine transformation coefficients.
GDALDataType
Definition: gdal.h:53
virtual double GetScale(int *pbSuccess=NULL)
Fetch the raster value scale.
Definition: gdalrasterband.cpp:2333
virtual GDALRasterBand * GetMaskBand()
Return the mask band associated with the band.
Definition: gdalrasterband.cpp:4418
virtual double GetMaximum(int *pbSuccess=NULL)
Fetch the maximum value for this band.
Definition: gdalrasterband.cpp:1628
virtual double GetNoDataValue(int *pbSuccess=NULL)
Fetch the no data value for this band.
Definition: gdalrasterband.cpp:1532
virtual char ** GetCategoryNames()
Fetch the list of category names for this raster.
Definition: gdalrasterband.cpp:1438
virtual void FlushCache(void)
Flush all write cached data to disk.
Definition: gdaldataset.cpp:330
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:3127
virtual CPLErr SetColorInterpretation(GDALColorInterp)
Set color interpretation of a band.
Definition: gdalrasterband.cpp:1844
virtual int HasArbitraryOverviews()
Check for arbitrary overviews.
Definition: gdalrasterband.cpp:1985
virtual GDALRasterBand * GetOverview(int)
Fetch overview raster band object.
Definition: gdalrasterband.cpp:2065
virtual GDALRasterBand * GetRasterSampleOverview(int)
Fetch best sampling overview.
Definition: gdalrasterband.cpp:2114
virtual CPLErr SetProjection(const char *)
Set the projection reference string for this dataset.
Definition: gdaldataset.cpp:791
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:1924
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:1806
Definition: gdal_proxy.h:98
virtual CPLErr SetScale(double)
Set scaling ratio.
Definition: gdalrasterband.cpp:2376
virtual double GetOffset(int *pbSuccess=NULL)
Fetch the raster value offset.
Definition: gdalrasterband.cpp:2235
virtual const char * GetProjectionRef(void)
Fetch the projection definition string for this dataset.
Definition: gdaldataset.cpp:748
virtual char ** GetMetadata(const char *pszDomain)
Fetch metadata.
virtual GDALRasterBand * GetRasterSampleOverview(int)
Fetch best sampling overview.
GDALRWFlag
Definition: gdal.h:97
virtual CPLErr SetStatistics(double dfMin, double dfMax, double dfMean, double dfStdDev)
Set statistics on band.
Definition: gdalrasterband.cpp:3852
virtual const GDALRasterAttributeTable * GetDefaultRAT()
Fetch default Raster Attribute Table.
Definition: gdalrasterband.cpp:4308
virtual int GetMaskFlags()
Return the status flags of the mask band associated with the band.
Definition: gdalrasterband.cpp:4607
virtual char ** GetMetadata(const char *pszDomain="")
Fetch metadata.
Definition: gdalmajorobject.cpp:161
virtual CPLErr SetOffset(double)
Set scaling offset.
Definition: gdalrasterband.cpp:2278
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:2191
virtual CPLErr SetGCPs(int nGCPCount, const GDAL_GCP *pasGCPList, const char *pszGCPProjection)
Assign GCPs.
Definition: gdaldataset.cpp:1293
virtual CPLErr ComputeStatistics(int bApproxOK, double *pdfMin, double *pdfMax, double *pdfMean, double *pdfStdDev, GDALProgressFunc, void *pProgressData)
Compute image statistics.
Definition: gdalrasterband.cpp:3447
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:1720
virtual char ** GetCategoryNames()
Fetch the list of category names for this raster.
virtual CPLErr FlushCache()
Flush raster data cache.
Definition: gdalrasterband.cpp:851
virtual CPLErr CreateMaskBand(int nFlags)
Adds a mask band to the current band.
Definition: gdalrasterband.cpp:4665
virtual const GDAL_GCP * GetGCPs()
Fetch GCPs.
virtual CPLErr SetDefaultHistogram(double dfMin, double dfMax, int nBuckets, int *panHistogram)
Set default histogram.
Definition: gdalrasterband.cpp:4262
virtual CPLErr CreateMaskBand(int nFlags)
Adds a mask band to the dataset.
Definition: gdaldataset.cpp:2126
virtual CPLErr SetColorTable(GDALColorTable *)
Set the raster color table.
Definition: gdalrasterband.cpp:1936
virtual const char * GetMetadataItem(const char *pszName, const char *pszDomain="")
Fetch single metadata item.
Definition: gdalmajorobject.cpp:249
virtual const GDAL_GCP * GetGCPs()
Fetch GCPs.
Definition: gdaldataset.cpp:1239
virtual CPLErr SetGeoTransform(double *)
Set the affine transformation coefficients.
Definition: gdaldataset.cpp:907
Public (C callable) GDAL entry points.
Definition: gdal_proxy.h:44
Definition: gdal_proxy.h:191
virtual const char * GetUnitType()
Return raster unit type.
virtual CPLErr SetMetadata(char **papszMetadata, const char *pszDomain="")
Set metadata.
Definition: gdalmajorobject.cpp:204
virtual int GetGCPCount()
Get number of GCPs.
Definition: gdaldataset.cpp:1163
Definition: gdal_proxy.h:302
virtual CPLErr SetNoDataValue(double)
Set the no data value for this band.
Definition: gdalrasterband.cpp:1580
virtual CPLErr ComputeRasterMinMax(int, double *)
Compute the min/max values for a band.
Definition: gdalrasterband.cpp:3920
virtual const char * GetUnitType()
Return raster unit type.
Definition: gdalrasterband.cpp:2423
Definition: gdal_proxy.h:327
virtual GDALColorTable * GetColorTable()
Fetch the color table associated with band.
Definition: gdalrasterband.cpp:1891
virtual char ** GetMetadata(const char *pszDomain)
Fetch metadata.
virtual char ** GetFileList(void)
Fetch files forming dataset.
Definition: gdaldataset.cpp:1999
virtual void * GetInternalHandle(const char *)
Fetch a format specific internally meaningful handle.
Definition: gdaldataset.cpp:951
virtual const char * GetGCPProjection()
Get output projection for GCPs.
Definition: gdaldataset.cpp:1202
virtual CPLErr SetCategoryNames(char **)
Set the category names for this band.
Definition: gdalrasterband.cpp:1482
virtual int GetOverviewCount()
Return the number of overview layers available.
Definition: gdalrasterband.cpp:2022
virtual GDALRasterBand * GetMaskBand()
Return the mask band associated with the band.
virtual CPLErr SetUnitType(const char *)
Set unit type.
Definition: gdalrasterband.cpp:2467
A single raster band (or channel).
Definition: gdal_priv.h:460
GDALAccess
Definition: gdal.h:91
A set of associated raster bands, usually from one file.
Definition: gdal_priv.h:249
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:4350
virtual const char * GetMetadataItem(const char *pszName, const char *pszDomain)
Fetch single metadata item.
GDALColorInterp
Definition: gdal.h:103
virtual CPLErr SetMetadataItem(const char *pszName, const char *pszValue, const char *pszDomain="")
Set single metadata item.
Definition: gdalmajorobject.cpp:292
virtual GDALColorTable * GetColorTable()
Fetch the color table associated with band.
Definition: gdal_proxy.h:251
virtual CPLErr GetStatistics(int bApproxOK, int bForce, double *pdfMin, double *pdfMax, double *pdfMean, double *padfStdDev)
Fetch image statistics.
Definition: gdalrasterband.cpp:3329
Definition: gdal.h:92
Format specific driver.
Definition: gdal_priv.h:679
virtual CPLErr GetHistogram(double dfMin, double dfMax, int nBuckets, int *panHistogram, int bIncludeOutOfRange, int bApproxOK, GDALProgressFunc, void *pProgressData)
Compute raster histogram.
Definition: gdalrasterband.cpp:2694
Definition: gdal_priv.h:432
virtual CPLErr Fill(double dfRealValue, double dfImaginaryValue=0)
Fill this band with a constant value.
Definition: gdalrasterband.cpp:1289
virtual const char * GetProjectionRef(void)
Fetch the projection definition string for this dataset.
Ground Control Point.
Definition: gdal.h:253

Generated for GDAL by doxygen 1.8.8.