GDAL
gdal.h
Go to the documentation of this file.
1 /******************************************************************************
2  * $Id: gdal.h 25545 2013-01-25 17:55:47Z warmerdam $
3  *
4  * Project: GDAL Core
5  * Purpose: GDAL Core C/Public declarations.
6  * Author: Frank Warmerdam, warmerdam@pobox.com
7  *
8  ******************************************************************************
9  * Copyright (c) 1998, 2002 Frank Warmerdam
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_H_INCLUDED
31 #define GDAL_H_INCLUDED
32 
39 #ifndef DOXYGEN_SKIP
40 #include "gdal_version.h"
41 #include "cpl_port.h"
42 #include "cpl_error.h"
43 #include "cpl_progress.h"
44 #endif
45 
46 /* -------------------------------------------------------------------- */
47 /* Significant constants. */
48 /* -------------------------------------------------------------------- */
49 
50 CPL_C_START
51 
53 typedef enum { GDT_Unknown = 0, GDT_Byte = 1, GDT_UInt16 = 2, GDT_Int16 = 3, GDT_UInt32 = 4, GDT_Int32 = 5, GDT_Float32 = 6, GDT_Float64 = 7, GDT_CInt16 = 8, GDT_CInt32 = 9, GDT_CFloat32 = 10, GDT_CFloat64 = 11,
66  GDT_TypeCount = 12 /* maximum type # + 1 */
67 } GDALDataType;
68 
69 int CPL_DLL CPL_STDCALL GDALGetDataTypeSize( GDALDataType );
70 int CPL_DLL CPL_STDCALL GDALDataTypeIsComplex( GDALDataType );
71 const char CPL_DLL * CPL_STDCALL GDALGetDataTypeName( GDALDataType );
72 GDALDataType CPL_DLL CPL_STDCALL GDALGetDataTypeByName( const char * );
74 
78 typedef enum
79 {
80  GARIO_PENDING = 0,
81  GARIO_UPDATE = 1,
82  GARIO_ERROR = 2,
83  GARIO_COMPLETE = 3,
84  GARIO_TypeCount = 4
86 
87 const char CPL_DLL * CPL_STDCALL GDALGetAsyncStatusTypeName( GDALAsyncStatusType );
88 GDALAsyncStatusType CPL_DLL CPL_STDCALL GDALGetAsyncStatusTypeByName( const char * );
89 
91 typedef enum { GA_ReadOnly = 0, GA_Update = 1
94 } GDALAccess;
95 
97 typedef enum { GF_Read = 0, GF_Write = 1
100 } GDALRWFlag;
101 
103 typedef enum
104 {
124 
125 const char CPL_DLL *GDALGetColorInterpretationName( GDALColorInterp );
126 GDALColorInterp CPL_DLL GDALGetColorInterpretationByName( const char *pszName );
127 
129 typedef enum
130 { GPI_Gray=0, GPI_RGB=1, GPI_CMYK=2, GPI_HLS=3
136 
138 
139 /* "well known" metadata items. */
140 
141 #define GDALMD_AREA_OR_POINT "AREA_OR_POINT"
142 # define GDALMD_AOP_AREA "Area"
143 # define GDALMD_AOP_POINT "Point"
144 
145 /* -------------------------------------------------------------------- */
146 /* GDAL Specific error codes. */
147 /* */
148 /* error codes 100 to 299 reserved for GDAL. */
149 /* -------------------------------------------------------------------- */
150 #define CPLE_WrongFormat 200
151 
152 /* -------------------------------------------------------------------- */
153 /* Define handle types related to various internal classes. */
154 /* -------------------------------------------------------------------- */
155 
157 typedef void *GDALMajorObjectH;
158 
160 typedef void *GDALDatasetH;
161 
163 typedef void *GDALRasterBandH;
164 
166 typedef void *GDALDriverH;
167 
168 #ifndef DOXYGEN_SKIP
169 /* Deprecated / unused */
170 typedef void *GDALProjDefH;
171 #endif
172 
174 typedef void *GDALColorTableH;
175 
178 
180 typedef void *GDALAsyncReaderH;
181 
182 /* ==================================================================== */
183 /* Registration/driver related. */
184 /* ==================================================================== */
185 
186 #ifndef DOXYGEN_SKIP
187 /* Deprecated / unused */
188 typedef struct {
189  char *pszOptionName;
190  char *pszValueType; /* "boolean", "int", "float", "string",
191  "string-select" */
192  char *pszDescription;
193  char **papszOptions;
194 } GDALOptionDefinition;
195 #endif
196 
197 #define GDAL_DMD_LONGNAME "DMD_LONGNAME"
198 #define GDAL_DMD_HELPTOPIC "DMD_HELPTOPIC"
199 #define GDAL_DMD_MIMETYPE "DMD_MIMETYPE"
200 #define GDAL_DMD_EXTENSION "DMD_EXTENSION"
201 #define GDAL_DMD_CREATIONOPTIONLIST "DMD_CREATIONOPTIONLIST"
202 #define GDAL_DMD_CREATIONDATATYPES "DMD_CREATIONDATATYPES"
203 #define GDAL_DMD_SUBDATASETS "DMD_SUBDATASETS"
204 
205 #define GDAL_DCAP_CREATE "DCAP_CREATE"
206 #define GDAL_DCAP_CREATECOPY "DCAP_CREATECOPY"
207 #define GDAL_DCAP_VIRTUALIO "DCAP_VIRTUALIO"
208 
209 void CPL_DLL CPL_STDCALL GDALAllRegister( void );
210 
211 GDALDatasetH CPL_DLL CPL_STDCALL GDALCreate( GDALDriverH hDriver,
212  const char *, int, int, int, GDALDataType,
213  char ** ) CPL_WARN_UNUSED_RESULT;
214 GDALDatasetH CPL_DLL CPL_STDCALL
215 GDALCreateCopy( GDALDriverH, const char *, GDALDatasetH,
216  int, char **, GDALProgressFunc, void * ) CPL_WARN_UNUSED_RESULT;
217 
218 GDALDriverH CPL_DLL CPL_STDCALL GDALIdentifyDriver( const char * pszFilename,
219  char ** papszFileList );
220 GDALDatasetH CPL_DLL CPL_STDCALL
221 GDALOpen( const char *pszFilename, GDALAccess eAccess ) CPL_WARN_UNUSED_RESULT;
222 GDALDatasetH CPL_DLL CPL_STDCALL GDALOpenShared( const char *, GDALAccess ) CPL_WARN_UNUSED_RESULT;
223 int CPL_DLL CPL_STDCALL GDALDumpOpenDatasets( FILE * );
224 
225 GDALDriverH CPL_DLL CPL_STDCALL GDALGetDriverByName( const char * );
226 int CPL_DLL CPL_STDCALL GDALGetDriverCount( void );
227 GDALDriverH CPL_DLL CPL_STDCALL GDALGetDriver( int );
228 void CPL_DLL CPL_STDCALL GDALDestroyDriver( GDALDriverH );
229 int CPL_DLL CPL_STDCALL GDALRegisterDriver( GDALDriverH );
230 void CPL_DLL CPL_STDCALL GDALDeregisterDriver( GDALDriverH );
231 void CPL_DLL CPL_STDCALL GDALDestroyDriverManager( void );
232 CPLErr CPL_DLL CPL_STDCALL GDALDeleteDataset( GDALDriverH, const char * );
233 CPLErr CPL_DLL CPL_STDCALL GDALRenameDataset( GDALDriverH,
234  const char * pszNewName,
235  const char * pszOldName );
236 CPLErr CPL_DLL CPL_STDCALL GDALCopyDatasetFiles( GDALDriverH,
237  const char * pszNewName,
238  const char * pszOldName);
239 int CPL_DLL CPL_STDCALL GDALValidateCreationOptions( GDALDriverH,
240  char** papszCreationOptions);
241 
242 /* The following are deprecated */
243 const char CPL_DLL * CPL_STDCALL GDALGetDriverShortName( GDALDriverH );
244 const char CPL_DLL * CPL_STDCALL GDALGetDriverLongName( GDALDriverH );
245 const char CPL_DLL * CPL_STDCALL GDALGetDriverHelpTopic( GDALDriverH );
246 const char CPL_DLL * CPL_STDCALL GDALGetDriverCreationOptionList( GDALDriverH );
247 
248 /* ==================================================================== */
249 /* GDAL_GCP */
250 /* ==================================================================== */
251 
253 typedef struct
254 {
256  char *pszId;
257 
259  char *pszInfo;
260 
262  double dfGCPPixel;
264  double dfGCPLine;
265 
267  double dfGCPX;
268 
270  double dfGCPY;
271 
273  double dfGCPZ;
274 } GDAL_GCP;
275 
276 void CPL_DLL CPL_STDCALL GDALInitGCPs( int, GDAL_GCP * );
277 void CPL_DLL CPL_STDCALL GDALDeinitGCPs( int, GDAL_GCP * );
278 GDAL_GCP CPL_DLL * CPL_STDCALL GDALDuplicateGCPs( int, const GDAL_GCP * );
279 
280 int CPL_DLL CPL_STDCALL
281 GDALGCPsToGeoTransform( int nGCPCount, const GDAL_GCP *pasGCPs,
282  double *padfGeoTransform, int bApproxOK );
283 int CPL_DLL CPL_STDCALL
284 GDALInvGeoTransform( double *padfGeoTransformIn,
285  double *padfInvGeoTransformOut );
286 void CPL_DLL CPL_STDCALL GDALApplyGeoTransform( double *, double, double,
287  double *, double * );
288 
289 /* ==================================================================== */
290 /* major objects (dataset, and, driver, drivermanager). */
291 /* ==================================================================== */
292 
293 char CPL_DLL ** CPL_STDCALL GDALGetMetadata( GDALMajorObjectH, const char * );
294 CPLErr CPL_DLL CPL_STDCALL GDALSetMetadata( GDALMajorObjectH, char **,
295  const char * );
296 const char CPL_DLL * CPL_STDCALL
297 GDALGetMetadataItem( GDALMajorObjectH, const char *, const char * );
298 CPLErr CPL_DLL CPL_STDCALL
299 GDALSetMetadataItem( GDALMajorObjectH, const char *, const char *,
300  const char * );
301 const char CPL_DLL * CPL_STDCALL GDALGetDescription( GDALMajorObjectH );
302 void CPL_DLL CPL_STDCALL GDALSetDescription( GDALMajorObjectH, const char * );
303 
304 /* ==================================================================== */
305 /* GDALDataset class ... normally this represents one file. */
306 /* ==================================================================== */
307 
308 GDALDriverH CPL_DLL CPL_STDCALL GDALGetDatasetDriver( GDALDatasetH );
309 char CPL_DLL ** CPL_STDCALL GDALGetFileList( GDALDatasetH );
310 void CPL_DLL CPL_STDCALL GDALClose( GDALDatasetH );
311 int CPL_DLL CPL_STDCALL GDALGetRasterXSize( GDALDatasetH );
312 int CPL_DLL CPL_STDCALL GDALGetRasterYSize( GDALDatasetH );
313 int CPL_DLL CPL_STDCALL GDALGetRasterCount( GDALDatasetH );
314 GDALRasterBandH CPL_DLL CPL_STDCALL GDALGetRasterBand( GDALDatasetH, int );
315 
316 CPLErr CPL_DLL CPL_STDCALL GDALAddBand( GDALDatasetH hDS, GDALDataType eType,
317  char **papszOptions );
318 
319 GDALAsyncReaderH CPL_DLL CPL_STDCALL
320 GDALBeginAsyncReader(GDALDatasetH hDS, int nXOff, int nYOff,
321  int nXSize, int nYSize,
322  void *pBuf, int nBufXSize, int nBufYSize,
323  GDALDataType eBufType, int nBandCount, int* panBandMap,
324  int nPixelSpace, int nLineSpace, int nBandSpace,
325  char **papszOptions);
326 
327 void CPL_DLL CPL_STDCALL
328 GDALEndAsyncReader(GDALDatasetH hDS, GDALAsyncReaderH hAsynchReaderH);
329 
330 CPLErr CPL_DLL CPL_STDCALL GDALDatasetRasterIO(
331  GDALDatasetH hDS, GDALRWFlag eRWFlag,
332  int nDSXOff, int nDSYOff, int nDSXSize, int nDSYSize,
333  void * pBuffer, int nBXSize, int nBYSize, GDALDataType eBDataType,
334  int nBandCount, int *panBandCount,
335  int nPixelSpace, int nLineSpace, int nBandSpace);
336 
337 CPLErr CPL_DLL CPL_STDCALL GDALDatasetAdviseRead( GDALDatasetH hDS,
338  int nDSXOff, int nDSYOff, int nDSXSize, int nDSYSize,
339  int nBXSize, int nBYSize, GDALDataType eBDataType,
340  int nBandCount, int *panBandCount, char **papszOptions );
341 
342 const char CPL_DLL * CPL_STDCALL GDALGetProjectionRef( GDALDatasetH );
343 CPLErr CPL_DLL CPL_STDCALL GDALSetProjection( GDALDatasetH, const char * );
344 CPLErr CPL_DLL CPL_STDCALL GDALGetGeoTransform( GDALDatasetH, double * );
345 CPLErr CPL_DLL CPL_STDCALL GDALSetGeoTransform( GDALDatasetH, double * );
346 
347 int CPL_DLL CPL_STDCALL GDALGetGCPCount( GDALDatasetH );
348 const char CPL_DLL * CPL_STDCALL GDALGetGCPProjection( GDALDatasetH );
349 const GDAL_GCP CPL_DLL * CPL_STDCALL GDALGetGCPs( GDALDatasetH );
350 CPLErr CPL_DLL CPL_STDCALL GDALSetGCPs( GDALDatasetH, int, const GDAL_GCP *,
351  const char * );
352 
353 void CPL_DLL * CPL_STDCALL GDALGetInternalHandle( GDALDatasetH, const char * );
354 int CPL_DLL CPL_STDCALL GDALReferenceDataset( GDALDatasetH );
355 int CPL_DLL CPL_STDCALL GDALDereferenceDataset( GDALDatasetH );
356 
357 CPLErr CPL_DLL CPL_STDCALL
358 GDALBuildOverviews( GDALDatasetH, const char *, int, int *,
359  int, int *, GDALProgressFunc, void * );
360 void CPL_DLL CPL_STDCALL GDALGetOpenDatasets( GDALDatasetH **hDS, int *pnCount );
361 int CPL_DLL CPL_STDCALL GDALGetAccess( GDALDatasetH hDS );
362 void CPL_DLL CPL_STDCALL GDALFlushCache( GDALDatasetH hDS );
363 
364 CPLErr CPL_DLL CPL_STDCALL
365  GDALCreateDatasetMaskBand( GDALDatasetH hDS, int nFlags );
366 
367 CPLErr CPL_DLL CPL_STDCALL GDALDatasetCopyWholeRaster(
368  GDALDatasetH hSrcDS, GDALDatasetH hDstDS, char **papszOptions,
369  GDALProgressFunc pfnProgress, void *pProgressData );
370 
371 CPLErr CPL_DLL CPL_STDCALL GDALRasterBandCopyWholeRaster(
372  GDALRasterBandH hSrcBand, GDALRasterBandH hDstBand, char **papszOptions,
373  GDALProgressFunc pfnProgress, void *pProgressData );
374 
375 CPLErr CPL_DLL
377  int nOverviewCount, GDALRasterBandH *pahOverviewBands,
378  const char *pszResampling,
379  GDALProgressFunc pfnProgress, void *pProgressData );
380 
381 /* ==================================================================== */
382 /* GDALRasterBand ... one band/channel in a dataset. */
383 /* ==================================================================== */
384 
389 #define SRCVAL(papoSource, eSrcType, ii) \
390  (eSrcType == GDT_Byte ? \
391  ((GByte *)papoSource)[ii] : \
392  (eSrcType == GDT_Float32 ? \
393  ((float *)papoSource)[ii] : \
394  (eSrcType == GDT_Float64 ? \
395  ((double *)papoSource)[ii] : \
396  (eSrcType == GDT_Int32 ? \
397  ((GInt32 *)papoSource)[ii] : \
398  (eSrcType == GDT_UInt16 ? \
399  ((GUInt16 *)papoSource)[ii] : \
400  (eSrcType == GDT_Int16 ? \
401  ((GInt16 *)papoSource)[ii] : \
402  (eSrcType == GDT_UInt32 ? \
403  ((GUInt32 *)papoSource)[ii] : \
404  (eSrcType == GDT_CInt16 ? \
405  ((GInt16 *)papoSource)[ii * 2] : \
406  (eSrcType == GDT_CInt32 ? \
407  ((GInt32 *)papoSource)[ii * 2] : \
408  (eSrcType == GDT_CFloat32 ? \
409  ((float *)papoSource)[ii * 2] : \
410  (eSrcType == GDT_CFloat64 ? \
411  ((double *)papoSource)[ii * 2] : 0)))))))))))
412 
413 typedef CPLErr
414 (*GDALDerivedPixelFunc)(void **papoSources, int nSources, void *pData,
415  int nBufXSize, int nBufYSize,
416  GDALDataType eSrcType, GDALDataType eBufType,
417  int nPixelSpace, int nLineSpace);
418 
419 GDALDataType CPL_DLL CPL_STDCALL GDALGetRasterDataType( GDALRasterBandH );
420 void CPL_DLL CPL_STDCALL
421 GDALGetBlockSize( GDALRasterBandH, int * pnXSize, int * pnYSize );
422 
423 CPLErr CPL_DLL CPL_STDCALL GDALRasterAdviseRead( GDALRasterBandH hRB,
424  int nDSXOff, int nDSYOff, int nDSXSize, int nDSYSize,
425  int nBXSize, int nBYSize, GDALDataType eBDataType, char **papszOptions );
426 
427 CPLErr CPL_DLL CPL_STDCALL
428 GDALRasterIO( GDALRasterBandH hRBand, GDALRWFlag eRWFlag,
429  int nDSXOff, int nDSYOff, int nDSXSize, int nDSYSize,
430  void * pBuffer, int nBXSize, int nBYSize,GDALDataType eBDataType,
431  int nPixelSpace, int nLineSpace );
432 CPLErr CPL_DLL CPL_STDCALL GDALReadBlock( GDALRasterBandH, int, int, void * );
433 CPLErr CPL_DLL CPL_STDCALL GDALWriteBlock( GDALRasterBandH, int, int, void * );
434 int CPL_DLL CPL_STDCALL GDALGetRasterBandXSize( GDALRasterBandH );
435 int CPL_DLL CPL_STDCALL GDALGetRasterBandYSize( GDALRasterBandH );
436 GDALAccess CPL_DLL CPL_STDCALL GDALGetRasterAccess( GDALRasterBandH );
437 int CPL_DLL CPL_STDCALL GDALGetBandNumber( GDALRasterBandH );
438 GDALDatasetH CPL_DLL CPL_STDCALL GDALGetBandDataset( GDALRasterBandH );
439 
440 GDALColorInterp CPL_DLL CPL_STDCALL
442 CPLErr CPL_DLL CPL_STDCALL
445 CPLErr CPL_DLL CPL_STDCALL GDALSetRasterColorTable( GDALRasterBandH, GDALColorTableH );
446 int CPL_DLL CPL_STDCALL GDALHasArbitraryOverviews( GDALRasterBandH );
447 int CPL_DLL CPL_STDCALL GDALGetOverviewCount( GDALRasterBandH );
448 GDALRasterBandH CPL_DLL CPL_STDCALL GDALGetOverview( GDALRasterBandH, int );
449 double CPL_DLL CPL_STDCALL GDALGetRasterNoDataValue( GDALRasterBandH, int * );
450 CPLErr CPL_DLL CPL_STDCALL GDALSetRasterNoDataValue( GDALRasterBandH, double );
451 char CPL_DLL ** CPL_STDCALL GDALGetRasterCategoryNames( GDALRasterBandH );
452 CPLErr CPL_DLL CPL_STDCALL GDALSetRasterCategoryNames( GDALRasterBandH, char ** );
453 double CPL_DLL CPL_STDCALL GDALGetRasterMinimum( GDALRasterBandH, int *pbSuccess );
454 double CPL_DLL CPL_STDCALL GDALGetRasterMaximum( GDALRasterBandH, int *pbSuccess );
455 CPLErr CPL_DLL CPL_STDCALL GDALGetRasterStatistics(
456  GDALRasterBandH, int bApproxOK, int bForce,
457  double *pdfMin, double *pdfMax, double *pdfMean, double *pdfStdDev );
458 CPLErr CPL_DLL CPL_STDCALL GDALComputeRasterStatistics(
459  GDALRasterBandH, int bApproxOK,
460  double *pdfMin, double *pdfMax, double *pdfMean, double *pdfStdDev,
461  GDALProgressFunc pfnProgress, void *pProgressData );
462 CPLErr CPL_DLL CPL_STDCALL GDALSetRasterStatistics(
463  GDALRasterBandH hBand,
464  double dfMin, double dfMax, double dfMean, double dfStdDev );
465 
466 const char CPL_DLL * CPL_STDCALL GDALGetRasterUnitType( GDALRasterBandH );
467 CPLErr CPL_DLL CPL_STDCALL GDALSetRasterUnitType( GDALRasterBandH hBand, const char *pszNewValue );
468 double CPL_DLL CPL_STDCALL GDALGetRasterOffset( GDALRasterBandH, int *pbSuccess );
469 CPLErr CPL_DLL CPL_STDCALL GDALSetRasterOffset( GDALRasterBandH hBand, double dfNewOffset);
470 double CPL_DLL CPL_STDCALL GDALGetRasterScale( GDALRasterBandH, int *pbSuccess );
471 CPLErr CPL_DLL CPL_STDCALL GDALSetRasterScale( GDALRasterBandH hBand, double dfNewOffset );
472 void CPL_DLL CPL_STDCALL
473 GDALComputeRasterMinMax( GDALRasterBandH hBand, int bApproxOK,
474  double adfMinMax[2] );
475 CPLErr CPL_DLL CPL_STDCALL GDALFlushRasterCache( GDALRasterBandH hBand );
476 CPLErr CPL_DLL CPL_STDCALL GDALGetRasterHistogram( GDALRasterBandH hBand,
477  double dfMin, double dfMax,
478  int nBuckets, int *panHistogram,
479  int bIncludeOutOfRange, int bApproxOK,
480  GDALProgressFunc pfnProgress,
481  void * pProgressData );
482 CPLErr CPL_DLL CPL_STDCALL GDALGetDefaultHistogram( GDALRasterBandH hBand,
483  double *pdfMin, double *pdfMax,
484  int *pnBuckets, int **ppanHistogram,
485  int bForce,
486  GDALProgressFunc pfnProgress,
487  void * pProgressData );
488 CPLErr CPL_DLL CPL_STDCALL GDALSetDefaultHistogram( GDALRasterBandH hBand,
489  double dfMin, double dfMax,
490  int nBuckets, int *panHistogram );
491 int CPL_DLL CPL_STDCALL
492 GDALGetRandomRasterSample( GDALRasterBandH, int, float * );
493 GDALRasterBandH CPL_DLL CPL_STDCALL
495 CPLErr CPL_DLL CPL_STDCALL GDALFillRaster( GDALRasterBandH hBand,
496  double dfRealValue, double dfImaginaryValue );
497 CPLErr CPL_DLL CPL_STDCALL
498 GDALComputeBandStats( GDALRasterBandH hBand, int nSampleStep,
499  double *pdfMean, double *pdfStdDev,
500  GDALProgressFunc pfnProgress,
501  void *pProgressData );
502 CPLErr CPL_DLL GDALOverviewMagnitudeCorrection( GDALRasterBandH hBaseBand,
503  int nOverviewCount,
504  GDALRasterBandH *pahOverviews,
505  GDALProgressFunc pfnProgress,
506  void *pProgressData );
507 
508 GDALRasterAttributeTableH CPL_DLL CPL_STDCALL GDALGetDefaultRAT(
509  GDALRasterBandH hBand );
510 CPLErr CPL_DLL CPL_STDCALL GDALSetDefaultRAT( GDALRasterBandH,
512 CPLErr CPL_DLL CPL_STDCALL GDALAddDerivedBandPixelFunc( const char *pszName,
513  GDALDerivedPixelFunc pfnPixelFunc );
514 
515 GDALRasterBandH CPL_DLL CPL_STDCALL GDALGetMaskBand( GDALRasterBandH hBand );
516 int CPL_DLL CPL_STDCALL GDALGetMaskFlags( GDALRasterBandH hBand );
517 CPLErr CPL_DLL CPL_STDCALL
518  GDALCreateMaskBand( GDALRasterBandH hBand, int nFlags );
519 
520 #define GMF_ALL_VALID 0x01
521 #define GMF_PER_DATASET 0x02
522 #define GMF_ALPHA 0x04
523 #define GMF_NODATA 0x08
524 
525 /* ==================================================================== */
526 /* GDALAsyncReader */
527 /* ==================================================================== */
528 
529 GDALAsyncStatusType CPL_DLL CPL_STDCALL
530 GDALARGetNextUpdatedRegion(GDALAsyncReaderH hARIO, double dfTimeout,
531  int* pnXBufOff, int* pnYBufOff,
532  int* pnXBufSize, int* pnYBufSize );
533 int CPL_DLL CPL_STDCALL GDALARLockBuffer(GDALAsyncReaderH hARIO,
534  double dfTimeout);
535 void CPL_DLL CPL_STDCALL GDALARUnlockBuffer(GDALAsyncReaderH hARIO);
536 
537 /* -------------------------------------------------------------------- */
538 /* Helper functions. */
539 /* -------------------------------------------------------------------- */
540 int CPL_DLL CPL_STDCALL GDALGeneralCmdLineProcessor( int nArgc, char ***ppapszArgv,
541  int nOptions );
542 void CPL_DLL CPL_STDCALL GDALSwapWords( void *pData, int nWordSize, int nWordCount,
543  int nWordSkip );
544 void CPL_DLL CPL_STDCALL
545  GDALCopyWords( void * pSrcData, GDALDataType eSrcType, int nSrcPixelOffset,
546  void * pDstData, GDALDataType eDstType, int nDstPixelOffset,
547  int nWordCount );
548 
549 void CPL_DLL
550 GDALCopyBits( const GByte *pabySrcData, int nSrcOffset, int nSrcStep,
551  GByte *pabyDstData, int nDstOffset, int nDstStep,
552  int nBitCount, int nStepCount );
553 
554 int CPL_DLL CPL_STDCALL GDALLoadWorldFile( const char *, double * );
555 int CPL_DLL CPL_STDCALL GDALReadWorldFile( const char *, const char *,
556  double * );
557 int CPL_DLL CPL_STDCALL GDALWriteWorldFile( const char *, const char *,
558  double * );
559 int CPL_DLL CPL_STDCALL GDALLoadTabFile( const char *, double *, char **,
560  int *, GDAL_GCP ** );
561 int CPL_DLL CPL_STDCALL GDALReadTabFile( const char *, double *, char **,
562  int *, GDAL_GCP ** );
563 int CPL_DLL CPL_STDCALL GDALLoadOziMapFile( const char *, double *, char **,
564  int *, GDAL_GCP ** );
565 int CPL_DLL CPL_STDCALL GDALReadOziMapFile( const char * , double *,
566  char **, int *, GDAL_GCP ** );
567 char CPL_DLL ** CPL_STDCALL GDALLoadRPBFile( const char *pszFilename,
568  char **papszSiblingFiles );
569 char CPL_DLL ** CPL_STDCALL GDALLoadRPCFile( const char *pszFilename,
570  char **papszSiblingFiles );
571 CPLErr CPL_DLL CPL_STDCALL GDALWriteRPBFile( const char *pszFilename,
572  char **papszMD );
573 char CPL_DLL ** CPL_STDCALL GDALLoadIMDFile( const char *pszFilename,
574  char **papszSiblingFiles );
575 CPLErr CPL_DLL CPL_STDCALL GDALWriteIMDFile( const char *pszFilename,
576  char **papszMD );
577 
578 const char CPL_DLL * CPL_STDCALL GDALDecToDMS( double, const char *, int );
579 double CPL_DLL CPL_STDCALL GDALPackedDMSToDec( double );
580 double CPL_DLL CPL_STDCALL GDALDecToPackedDMS( double );
581 
582 /* Note to developers : please keep this section in sync with ogr_core.h */
583 
584 #ifndef GDAL_VERSION_INFO_DEFINED
585 #define GDAL_VERSION_INFO_DEFINED
586 const char CPL_DLL * CPL_STDCALL GDALVersionInfo( const char * );
587 #endif
588 
589 #ifndef GDAL_CHECK_VERSION
590 
591 int CPL_DLL CPL_STDCALL GDALCheckVersion( int nVersionMajor, int nVersionMinor,
592  const char* pszCallingComponentName);
593 
597 #define GDAL_CHECK_VERSION(pszCallingComponentName) \
598  GDALCheckVersion(GDAL_VERSION_MAJOR, GDAL_VERSION_MINOR, pszCallingComponentName)
599 
600 #endif
601 
602 typedef struct {
603  double dfLINE_OFF;
604  double dfSAMP_OFF;
605  double dfLAT_OFF;
606  double dfLONG_OFF;
607  double dfHEIGHT_OFF;
608 
609  double dfLINE_SCALE;
610  double dfSAMP_SCALE;
611  double dfLAT_SCALE;
612  double dfLONG_SCALE;
613  double dfHEIGHT_SCALE;
614 
615  double adfLINE_NUM_COEFF[20];
616  double adfLINE_DEN_COEFF[20];
617  double adfSAMP_NUM_COEFF[20];
618  double adfSAMP_DEN_COEFF[20];
619 
620  double dfMIN_LONG;
621  double dfMIN_LAT;
622  double dfMAX_LONG;
623  double dfMAX_LAT;
624 
625 } GDALRPCInfo;
626 
627 int CPL_DLL CPL_STDCALL GDALExtractRPCInfo( char **, GDALRPCInfo * );
628 
629 /* ==================================================================== */
630 /* Color tables. */
631 /* ==================================================================== */
632 
634 typedef struct
635 {
637  short c1;
638 
640  short c2;
641 
643  short c3;
644 
646  short c4;
648 
650 void CPL_DLL CPL_STDCALL GDALDestroyColorTable( GDALColorTableH );
653 int CPL_DLL CPL_STDCALL GDALGetColorEntryCount( GDALColorTableH );
654 const GDALColorEntry CPL_DLL * CPL_STDCALL GDALGetColorEntry( GDALColorTableH, int );
655 int CPL_DLL CPL_STDCALL GDALGetColorEntryAsRGB( GDALColorTableH, int, GDALColorEntry *);
656 void CPL_DLL CPL_STDCALL GDALSetColorEntry( GDALColorTableH, int, const GDALColorEntry * );
657 void CPL_DLL CPL_STDCALL GDALCreateColorRamp( GDALColorTableH hTable,
658  int nStartIndex, const GDALColorEntry *psStartColor,
659  int nEndIndex, const GDALColorEntry *psEndColor );
660 
661 /* ==================================================================== */
662 /* Raster Attribute Table */
663 /* ==================================================================== */
664 
666 typedef enum { GFT_Integer , GFT_Real, GFT_String
671 
673 typedef enum { GFU_Generic = 0, GFU_PixelCount = 1, GFU_Name = 2, GFU_Min = 3, GFU_Max = 4, GFU_MinMax = 5, GFU_Red = 6, GFU_Green = 7, GFU_Blue = 8, GFU_Alpha = 9, GFU_RedMin = 10, GFU_GreenMin = 11, GFU_BlueMin = 12, GFU_AlphaMin = 13, GFU_RedMax = 14, GFU_GreenMax = 15, GFU_BlueMax = 16, GFU_AlphaMax = 17, GFU_MaxCount
694 
695 GDALRasterAttributeTableH CPL_DLL CPL_STDCALL
697 void CPL_DLL CPL_STDCALL GDALDestroyRasterAttributeTable(
699 
700 int CPL_DLL CPL_STDCALL GDALRATGetColumnCount( GDALRasterAttributeTableH );
701 
702 const char CPL_DLL * CPL_STDCALL GDALRATGetNameOfCol(
704 GDALRATFieldUsage CPL_DLL CPL_STDCALL GDALRATGetUsageOfCol(
706 GDALRATFieldType CPL_DLL CPL_STDCALL GDALRATGetTypeOfCol(
708 
709 int CPL_DLL CPL_STDCALL GDALRATGetColOfUsage( GDALRasterAttributeTableH,
711 int CPL_DLL CPL_STDCALL GDALRATGetRowCount( GDALRasterAttributeTableH );
712 
713 const char CPL_DLL * CPL_STDCALL GDALRATGetValueAsString(
714  GDALRasterAttributeTableH, int ,int);
715 int CPL_DLL CPL_STDCALL GDALRATGetValueAsInt(
716  GDALRasterAttributeTableH, int ,int);
717 double CPL_DLL CPL_STDCALL GDALRATGetValueAsDouble(
718  GDALRasterAttributeTableH, int ,int);
719 
720 void CPL_DLL CPL_STDCALL GDALRATSetValueAsString( GDALRasterAttributeTableH, int, int,
721  const char * );
722 void CPL_DLL CPL_STDCALL GDALRATSetValueAsInt( GDALRasterAttributeTableH, int, int,
723  int );
724 void CPL_DLL CPL_STDCALL GDALRATSetValueAsDouble( GDALRasterAttributeTableH, int, int,
725  double );
726 void CPL_DLL CPL_STDCALL GDALRATSetRowCount( GDALRasterAttributeTableH,
727  int );
728 CPLErr CPL_DLL CPL_STDCALL GDALRATCreateColumn( GDALRasterAttributeTableH,
729  const char *,
732 CPLErr CPL_DLL CPL_STDCALL GDALRATSetLinearBinning( GDALRasterAttributeTableH,
733  double, double );
734 int CPL_DLL CPL_STDCALL GDALRATGetLinearBinning( GDALRasterAttributeTableH,
735  double *, double * );
736 CPLErr CPL_DLL CPL_STDCALL GDALRATInitializeFromColorTable(
739  GDALRasterAttributeTableH, int nEntryCount );
740 void CPL_DLL CPL_STDCALL GDALRATDumpReadable( GDALRasterAttributeTableH,
741  FILE * );
742 GDALRasterAttributeTableH CPL_DLL CPL_STDCALL
744 
745 int CPL_DLL CPL_STDCALL GDALRATGetRowOfValue( GDALRasterAttributeTableH , double );
746 
747 
748 /* ==================================================================== */
749 /* GDAL Cache Management */
750 /* ==================================================================== */
751 
752 void CPL_DLL CPL_STDCALL GDALSetCacheMax( int nBytes );
753 int CPL_DLL CPL_STDCALL GDALGetCacheMax(void);
754 int CPL_DLL CPL_STDCALL GDALGetCacheUsed(void);
755 void CPL_DLL CPL_STDCALL GDALSetCacheMax64( GIntBig nBytes );
756 GIntBig CPL_DLL CPL_STDCALL GDALGetCacheMax64(void);
757 GIntBig CPL_DLL CPL_STDCALL GDALGetCacheUsed64(void);
758 
759 int CPL_DLL CPL_STDCALL GDALFlushCacheBlock(void);
760 
761 CPL_C_END
762 
763 #endif /* ndef GDAL_H_INCLUDED */

Generated for GDAL by doxygen 1.8.1.2.