GDAL
gdal.h
Go to the documentation of this file.
1 /******************************************************************************
2  * $Id: gdal.h 33852 2016-04-01 23:27:53Z goatbar $
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  * Copyright (c) 2007-2014, Even Rouault <even dot rouault at mines-paris dot org>
11  *
12  * Permission is hereby granted, free of charge, to any person obtaining a
13  * copy of this software and associated documentation files (the "Software"),
14  * to deal in the Software without restriction, including without limitation
15  * the rights to use, copy, modify, merge, publish, distribute, sublicense,
16  * and/or sell copies of the Software, and to permit persons to whom the
17  * Software is furnished to do so, subject to the following conditions:
18  *
19  * The above copyright notice and this permission notice shall be included
20  * in all copies or substantial portions of the Software.
21  *
22  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
23  * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
24  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
25  * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
26  * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
27  * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
28  * DEALINGS IN THE SOFTWARE.
29  ****************************************************************************/
30 
31 #ifndef GDAL_H_INCLUDED
32 #define GDAL_H_INCLUDED
33 
40 #ifndef DOXYGEN_SKIP
41 #include "gdal_version.h"
42 #include "cpl_port.h"
43 #include "cpl_error.h"
44 #include "cpl_progress.h"
45 #include "cpl_virtualmem.h"
46 #include "cpl_minixml.h"
47 #include "ogr_api.h"
48 #endif
49 
50 /* -------------------------------------------------------------------- */
51 /* Significant constants. */
52 /* -------------------------------------------------------------------- */
53 
54 CPL_C_START
55 
57 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,
70  GDT_TypeCount = 12 /* maximum type # + 1 */
71 } GDALDataType;
72 
73 int CPL_DLL CPL_STDCALL GDALGetDataTypeSize( GDALDataType ); // Deprecated.
74 int CPL_DLL CPL_STDCALL GDALGetDataTypeSizeBits( GDALDataType eDataType );
75 int CPL_DLL CPL_STDCALL GDALGetDataTypeSizeBytes( GDALDataType );
76 int CPL_DLL CPL_STDCALL GDALDataTypeIsComplex( GDALDataType );
77 const char CPL_DLL * CPL_STDCALL GDALGetDataTypeName( GDALDataType );
78 GDALDataType CPL_DLL CPL_STDCALL GDALGetDataTypeByName( const char * );
80 double CPL_DLL GDALAdjustValueToDataType( GDALDataType eDT, double dfValue, int* pbClamped, int* pbRounded );
81 
85 typedef enum
86 {
87  GARIO_PENDING = 0,
88  GARIO_UPDATE = 1,
89  GARIO_ERROR = 2,
90  GARIO_COMPLETE = 3,
91  GARIO_TypeCount = 4
93 
94 const char CPL_DLL * CPL_STDCALL GDALGetAsyncStatusTypeName( GDALAsyncStatusType );
95 GDALAsyncStatusType CPL_DLL CPL_STDCALL GDALGetAsyncStatusTypeByName( const char * );
96 
98 typedef enum { GA_ReadOnly = 0, GA_Update = 1
101 } GDALAccess;
102 
104 typedef enum { GF_Read = 0, GF_Write = 1
107 } GDALRWFlag;
108 
109 /* NOTE: values are selected to be consistent with GDALResampleAlg of alg/gdalwarper.h */
113 typedef enum
124  /* NOTE: values 8 to 12 are reserved for max,min,med,Q1,Q3 */
126 
127 /* NOTE to developers: only add members, and if so edit INIT_RASTERIO_EXTRA_ARG */
128 /* and INIT_RASTERIO_EXTRA_ARG */
132 typedef struct
133 {
135  int nVersion;
136 
139 
141  GDALProgressFunc pfnProgress;
144 
151  double dfXOff;
153  double dfYOff;
155  double dfXSize;
157  double dfYSize;
159 
160 #define RASTERIO_EXTRA_ARG_CURRENT_VERSION 1
161 
165 #define INIT_RASTERIO_EXTRA_ARG(s) \
166  do { (s).nVersion = RASTERIO_EXTRA_ARG_CURRENT_VERSION; \
167  (s).eResampleAlg = GRIORA_NearestNeighbour; \
168  (s).pfnProgress = NULL; \
169  (s).pProgressData = NULL; \
170  (s).bFloatingPointWindowValidity = FALSE; } while(0)
171 
173 typedef enum
174 {
194 
195 const char CPL_DLL *GDALGetColorInterpretationName( GDALColorInterp );
196 GDALColorInterp CPL_DLL GDALGetColorInterpretationByName( const char *pszName );
197 
199 typedef enum
200 { GPI_Gray=0, GPI_RGB=1, GPI_CMYK=2, GPI_HLS=3
206 
208 
209 /* "well known" metadata items. */
210 
211 #define GDALMD_AREA_OR_POINT "AREA_OR_POINT"
212 # define GDALMD_AOP_AREA "Area"
213 # define GDALMD_AOP_POINT "Point"
214 
215 /* -------------------------------------------------------------------- */
216 /* GDAL Specific error codes. */
217 /* */
218 /* error codes 100 to 299 reserved for GDAL. */
219 /* -------------------------------------------------------------------- */
220 #define CPLE_WrongFormat (CPLErrorNum)200
221 
222 /* -------------------------------------------------------------------- */
223 /* Define handle types related to various internal classes. */
224 /* -------------------------------------------------------------------- */
225 
227 typedef void *GDALMajorObjectH;
228 
230 typedef void *GDALDatasetH;
231 
233 typedef void *GDALRasterBandH;
234 
236 typedef void *GDALDriverH;
237 
239 typedef void *GDALColorTableH;
240 
243 
245 typedef void *GDALAsyncReaderH;
246 
248 typedef GIntBig GSpacing;
249 
250 /* ==================================================================== */
251 /* Registration/driver related. */
252 /* ==================================================================== */
253 
255 #define GDAL_DMD_LONGNAME "DMD_LONGNAME"
256 
258 #define GDAL_DMD_HELPTOPIC "DMD_HELPTOPIC"
259 
261 #define GDAL_DMD_MIMETYPE "DMD_MIMETYPE"
262 
264 #define GDAL_DMD_EXTENSION "DMD_EXTENSION"
265 
270 #define GDAL_DMD_CONNECTION_PREFIX "DMD_CONNECTION_PREFIX"
271 
275 #define GDAL_DMD_EXTENSIONS "DMD_EXTENSIONS"
276 
278 #define GDAL_DMD_CREATIONOPTIONLIST "DMD_CREATIONOPTIONLIST"
279 
283 #define GDAL_DMD_OPENOPTIONLIST "DMD_OPENOPTIONLIST"
284 
286 #define GDAL_DMD_CREATIONDATATYPES "DMD_CREATIONDATATYPES"
287 
291 #define GDAL_DMD_CREATIONFIELDDATATYPES "DMD_CREATIONFIELDDATATYPES"
292 
294 #define GDAL_DMD_SUBDATASETS "DMD_SUBDATASETS"
295 
297 #define GDAL_DCAP_OPEN "DCAP_OPEN"
298 
300 #define GDAL_DCAP_CREATE "DCAP_CREATE"
301 
303 #define GDAL_DCAP_CREATECOPY "DCAP_CREATECOPY"
304 
306 #define GDAL_DCAP_VIRTUALIO "DCAP_VIRTUALIO"
307 
311 #define GDAL_DCAP_RASTER "DCAP_RASTER"
312 
316 #define GDAL_DCAP_VECTOR "DCAP_VECTOR"
317 
321 #define GDAL_DCAP_GNM "DCAP_GNM"
322 
326 #define GDAL_DCAP_NOTNULL_FIELDS "DCAP_NOTNULL_FIELDS"
327 
331 #define GDAL_DCAP_DEFAULT_FIELDS "DCAP_DEFAULT_FIELDS"
332 
336 #define GDAL_DCAP_NOTNULL_GEOMFIELDS "DCAP_NOTNULL_GEOMFIELDS"
337 
338 void CPL_DLL CPL_STDCALL GDALAllRegister( void );
339 
340 GDALDatasetH CPL_DLL CPL_STDCALL GDALCreate( GDALDriverH hDriver,
341  const char *, int, int, int, GDALDataType,
342  char ** ) CPL_WARN_UNUSED_RESULT;
343 GDALDatasetH CPL_DLL CPL_STDCALL
344 GDALCreateCopy( GDALDriverH, const char *, GDALDatasetH,
345  int, char **, GDALProgressFunc, void * ) CPL_WARN_UNUSED_RESULT;
346 
347 GDALDriverH CPL_DLL CPL_STDCALL GDALIdentifyDriver( const char * pszFilename,
348  char ** papszFileList );
349 GDALDatasetH CPL_DLL CPL_STDCALL
350 GDALOpen( const char *pszFilename, GDALAccess eAccess ) CPL_WARN_UNUSED_RESULT;
351 GDALDatasetH CPL_DLL CPL_STDCALL GDALOpenShared( const char *, GDALAccess ) CPL_WARN_UNUSED_RESULT;
352 
353 
354 /* Note: we define GDAL_OF_READONLY and GDAL_OF_UPDATE to be on purpose */
355 /* equals to GA_ReadOnly and GA_Update */
356 
361 #define GDAL_OF_READONLY 0x00
362 
367 #define GDAL_OF_UPDATE 0x01
368 
373 #define GDAL_OF_ALL 0x00
374 
379 #define GDAL_OF_RASTER 0x02
380 
385 #define GDAL_OF_VECTOR 0x04
386 
387 
392 #define GDAL_OF_GNM 0x08
393 
394 /* Some space for GDAL 3.0 new types ;-) */
395 /*#define GDAL_OF_OTHER_KIND1 0x08 */
396 /*#define GDAL_OF_OTHER_KIND2 0x10 */
397 #ifndef DOXYGEN_SKIP
398 #define GDAL_OF_KIND_MASK 0x1E
399 #endif
400 
405 #define GDAL_OF_SHARED 0x20
406 
411 #define GDAL_OF_VERBOSE_ERROR 0x40
412 
419 #define GDAL_OF_INTERNAL 0x80
420 
430 #define GDAL_OF_DEFAULT_BLOCK_ACCESS 0
431 
440 #define GDAL_OF_ARRAY_BLOCK_ACCESS 0x100
441 
450 #define GDAL_OF_HASHSET_BLOCK_ACCESS 0x200
451 
452 #define GDAL_OF_RESERVED_1 0x300
453 #define GDAL_OF_BLOCK_ACCESS_MASK 0x300
454 
455 GDALDatasetH CPL_DLL CPL_STDCALL GDALOpenEx( const char* pszFilename,
456  unsigned int nOpenFlags,
457  const char* const* papszAllowedDrivers,
458  const char* const* papszOpenOptions,
459  const char* const* papszSiblingFiles ) CPL_WARN_UNUSED_RESULT;
460 
461 int CPL_DLL CPL_STDCALL GDALDumpOpenDatasets( FILE * );
462 
463 GDALDriverH CPL_DLL CPL_STDCALL GDALGetDriverByName( const char * );
464 int CPL_DLL CPL_STDCALL GDALGetDriverCount( void );
465 GDALDriverH CPL_DLL CPL_STDCALL GDALGetDriver( int );
466 void CPL_DLL CPL_STDCALL GDALDestroyDriver( GDALDriverH );
467 int CPL_DLL CPL_STDCALL GDALRegisterDriver( GDALDriverH );
468 void CPL_DLL CPL_STDCALL GDALDeregisterDriver( GDALDriverH );
469 void CPL_DLL CPL_STDCALL GDALDestroyDriverManager( void );
470 void CPL_DLL GDALDestroy( void );
471 CPLErr CPL_DLL CPL_STDCALL GDALDeleteDataset( GDALDriverH, const char * );
472 CPLErr CPL_DLL CPL_STDCALL GDALRenameDataset( GDALDriverH,
473  const char * pszNewName,
474  const char * pszOldName );
475 CPLErr CPL_DLL CPL_STDCALL GDALCopyDatasetFiles( GDALDriverH,
476  const char * pszNewName,
477  const char * pszOldName);
478 int CPL_DLL CPL_STDCALL GDALValidateCreationOptions( GDALDriverH,
479  char** papszCreationOptions);
480 
481 /* The following are deprecated */
482 const char CPL_DLL * CPL_STDCALL GDALGetDriverShortName( GDALDriverH );
483 const char CPL_DLL * CPL_STDCALL GDALGetDriverLongName( GDALDriverH );
484 const char CPL_DLL * CPL_STDCALL GDALGetDriverHelpTopic( GDALDriverH );
485 const char CPL_DLL * CPL_STDCALL GDALGetDriverCreationOptionList( GDALDriverH );
486 
487 /* ==================================================================== */
488 /* GDAL_GCP */
489 /* ==================================================================== */
490 
492 typedef struct
493 {
495  char *pszId;
496 
498  char *pszInfo;
499 
501  double dfGCPPixel;
503  double dfGCPLine;
504 
506  double dfGCPX;
507 
509  double dfGCPY;
510 
512  double dfGCPZ;
513 } GDAL_GCP;
514 
515 void CPL_DLL CPL_STDCALL GDALInitGCPs( int, GDAL_GCP * );
516 void CPL_DLL CPL_STDCALL GDALDeinitGCPs( int, GDAL_GCP * );
517 GDAL_GCP CPL_DLL * CPL_STDCALL GDALDuplicateGCPs( int, const GDAL_GCP * );
518 
519 int CPL_DLL CPL_STDCALL
520 GDALGCPsToGeoTransform( int nGCPCount, const GDAL_GCP *pasGCPs,
521  double *padfGeoTransform, int bApproxOK ) CPL_WARN_UNUSED_RESULT;
522 int CPL_DLL CPL_STDCALL
523 GDALInvGeoTransform( double *padfGeoTransformIn,
524  double *padfInvGeoTransformOut ) CPL_WARN_UNUSED_RESULT;
525 void CPL_DLL CPL_STDCALL GDALApplyGeoTransform( double *, double, double,
526  double *, double * );
527 void CPL_DLL GDALComposeGeoTransforms(const double *padfGeoTransform1,
528  const double *padfGeoTransform2,
529  double *padfGeoTransformOut);
530 
531 /* ==================================================================== */
532 /* major objects (dataset, and, driver, drivermanager). */
533 /* ==================================================================== */
534 
535 char CPL_DLL ** CPL_STDCALL GDALGetMetadataDomainList( GDALMajorObjectH hObject );
536 char CPL_DLL ** CPL_STDCALL GDALGetMetadata( GDALMajorObjectH, const char * );
537 CPLErr CPL_DLL CPL_STDCALL GDALSetMetadata( GDALMajorObjectH, char **,
538  const char * );
539 const char CPL_DLL * CPL_STDCALL
540 GDALGetMetadataItem( GDALMajorObjectH, const char *, const char * );
541 CPLErr CPL_DLL CPL_STDCALL
542 GDALSetMetadataItem( GDALMajorObjectH, const char *, const char *,
543  const char * );
544 const char CPL_DLL * CPL_STDCALL GDALGetDescription( GDALMajorObjectH );
545 void CPL_DLL CPL_STDCALL GDALSetDescription( GDALMajorObjectH, const char * );
546 
547 /* ==================================================================== */
548 /* GDALDataset class ... normally this represents one file. */
549 /* ==================================================================== */
550 
551 #define GDAL_DS_LAYER_CREATIONOPTIONLIST "DS_LAYER_CREATIONOPTIONLIST"
552 
553 GDALDriverH CPL_DLL CPL_STDCALL GDALGetDatasetDriver( GDALDatasetH );
554 char CPL_DLL ** CPL_STDCALL GDALGetFileList( GDALDatasetH );
555 void CPL_DLL CPL_STDCALL GDALClose( GDALDatasetH );
556 int CPL_DLL CPL_STDCALL GDALGetRasterXSize( GDALDatasetH );
557 int CPL_DLL CPL_STDCALL GDALGetRasterYSize( GDALDatasetH );
558 int CPL_DLL CPL_STDCALL GDALGetRasterCount( GDALDatasetH );
559 GDALRasterBandH CPL_DLL CPL_STDCALL GDALGetRasterBand( GDALDatasetH, int );
560 
561 CPLErr CPL_DLL CPL_STDCALL GDALAddBand( GDALDatasetH hDS, GDALDataType eType,
562  char **papszOptions );
563 
564 GDALAsyncReaderH CPL_DLL CPL_STDCALL
565 GDALBeginAsyncReader(GDALDatasetH hDS, int nXOff, int nYOff,
566  int nXSize, int nYSize,
567  void *pBuf, int nBufXSize, int nBufYSize,
568  GDALDataType eBufType, int nBandCount, int* panBandMap,
569  int nPixelSpace, int nLineSpace, int nBandSpace,
570  char **papszOptions) CPL_WARN_UNUSED_RESULT;
571 
572 void CPL_DLL CPL_STDCALL
573 GDALEndAsyncReader(GDALDatasetH hDS, GDALAsyncReaderH hAsynchReaderH);
574 
575 CPLErr CPL_DLL CPL_STDCALL GDALDatasetRasterIO(
576  GDALDatasetH hDS, GDALRWFlag eRWFlag,
577  int nDSXOff, int nDSYOff, int nDSXSize, int nDSYSize,
578  void * pBuffer, int nBXSize, int nBYSize, GDALDataType eBDataType,
579  int nBandCount, int *panBandCount,
580  int nPixelSpace, int nLineSpace, int nBandSpace) CPL_WARN_UNUSED_RESULT;
581 
582 CPLErr CPL_DLL CPL_STDCALL GDALDatasetRasterIOEx(
583  GDALDatasetH hDS, GDALRWFlag eRWFlag,
584  int nDSXOff, int nDSYOff, int nDSXSize, int nDSYSize,
585  void * pBuffer, int nBXSize, int nBYSize, GDALDataType eBDataType,
586  int nBandCount, int *panBandCount,
587  GSpacing nPixelSpace, GSpacing nLineSpace, GSpacing nBandSpace,
588  GDALRasterIOExtraArg* psExtraArg) CPL_WARN_UNUSED_RESULT;
589 
590 CPLErr CPL_DLL CPL_STDCALL GDALDatasetAdviseRead( GDALDatasetH hDS,
591  int nDSXOff, int nDSYOff, int nDSXSize, int nDSYSize,
592  int nBXSize, int nBYSize, GDALDataType eBDataType,
593  int nBandCount, int *panBandCount, char **papszOptions );
594 
595 const char CPL_DLL * CPL_STDCALL GDALGetProjectionRef( GDALDatasetH );
596 CPLErr CPL_DLL CPL_STDCALL GDALSetProjection( GDALDatasetH, const char * );
597 CPLErr CPL_DLL CPL_STDCALL GDALGetGeoTransform( GDALDatasetH, double * );
598 CPLErr CPL_DLL CPL_STDCALL GDALSetGeoTransform( GDALDatasetH, double * );
599 
600 int CPL_DLL CPL_STDCALL GDALGetGCPCount( GDALDatasetH );
601 const char CPL_DLL * CPL_STDCALL GDALGetGCPProjection( GDALDatasetH );
602 const GDAL_GCP CPL_DLL * CPL_STDCALL GDALGetGCPs( GDALDatasetH );
603 CPLErr CPL_DLL CPL_STDCALL GDALSetGCPs( GDALDatasetH, int, const GDAL_GCP *,
604  const char * );
605 
606 void CPL_DLL * CPL_STDCALL GDALGetInternalHandle( GDALDatasetH, const char * );
607 int CPL_DLL CPL_STDCALL GDALReferenceDataset( GDALDatasetH );
608 int CPL_DLL CPL_STDCALL GDALDereferenceDataset( GDALDatasetH );
609 
610 CPLErr CPL_DLL CPL_STDCALL
611 GDALBuildOverviews( GDALDatasetH, const char *, int, int *,
612  int, int *, GDALProgressFunc, void * ) CPL_WARN_UNUSED_RESULT;
613 void CPL_DLL CPL_STDCALL GDALGetOpenDatasets( GDALDatasetH **hDS, int *pnCount );
614 int CPL_DLL CPL_STDCALL GDALGetAccess( GDALDatasetH hDS );
615 void CPL_DLL CPL_STDCALL GDALFlushCache( GDALDatasetH hDS );
616 
617 CPLErr CPL_DLL CPL_STDCALL
618  GDALCreateDatasetMaskBand( GDALDatasetH hDS, int nFlags );
619 
620 CPLErr CPL_DLL CPL_STDCALL GDALDatasetCopyWholeRaster(
621  GDALDatasetH hSrcDS, GDALDatasetH hDstDS, char **papszOptions,
622  GDALProgressFunc pfnProgress, void *pProgressData ) CPL_WARN_UNUSED_RESULT;
623 
624 CPLErr CPL_DLL CPL_STDCALL GDALRasterBandCopyWholeRaster(
625  GDALRasterBandH hSrcBand, GDALRasterBandH hDstBand, char **papszOptions,
626  GDALProgressFunc pfnProgress, void *pProgressData ) CPL_WARN_UNUSED_RESULT;
627 
628 CPLErr CPL_DLL
630  int nOverviewCount, GDALRasterBandH *pahOverviewBands,
631  const char *pszResampling,
632  GDALProgressFunc pfnProgress, void *pProgressData );
633 
635 OGRLayerH CPL_DLL GDALDatasetGetLayer( GDALDatasetH, int );
636 OGRLayerH CPL_DLL GDALDatasetGetLayerByName( GDALDatasetH, const char * );
637 OGRErr CPL_DLL GDALDatasetDeleteLayer( GDALDatasetH, int );
638 OGRLayerH CPL_DLL GDALDatasetCreateLayer( GDALDatasetH, const char *,
639  OGRSpatialReferenceH, OGRwkbGeometryType,
640  char ** );
641 OGRLayerH CPL_DLL GDALDatasetCopyLayer( GDALDatasetH, OGRLayerH, const char *,
642  char ** );
643 int CPL_DLL GDALDatasetTestCapability( GDALDatasetH, const char * );
644 OGRLayerH CPL_DLL GDALDatasetExecuteSQL( GDALDatasetH, const char *,
645  OGRGeometryH, const char * );
646 void CPL_DLL GDALDatasetReleaseResultSet( GDALDatasetH, OGRLayerH );
647 OGRStyleTableH CPL_DLL GDALDatasetGetStyleTable( GDALDatasetH );
648 void CPL_DLL GDALDatasetSetStyleTableDirectly( GDALDatasetH, OGRStyleTableH );
649 void CPL_DLL GDALDatasetSetStyleTable( GDALDatasetH, OGRStyleTableH );
650 OGRErr CPL_DLL GDALDatasetStartTransaction(GDALDatasetH hDS, int bForce);
651 OGRErr CPL_DLL GDALDatasetCommitTransaction(GDALDatasetH hDS);
652 OGRErr CPL_DLL GDALDatasetRollbackTransaction(GDALDatasetH hDS);
653 
654 
655 /* ==================================================================== */
656 /* GDALRasterBand ... one band/channel in a dataset. */
657 /* ==================================================================== */
658 
663 #define SRCVAL(papoSource, eSrcType, ii) \
664  (eSrcType == GDT_Byte ? \
665  ((GByte *)papoSource)[ii] : \
666  (eSrcType == GDT_Float32 ? \
667  ((float *)papoSource)[ii] : \
668  (eSrcType == GDT_Float64 ? \
669  ((double *)papoSource)[ii] : \
670  (eSrcType == GDT_Int32 ? \
671  ((GInt32 *)papoSource)[ii] : \
672  (eSrcType == GDT_UInt16 ? \
673  ((GUInt16 *)papoSource)[ii] : \
674  (eSrcType == GDT_Int16 ? \
675  ((GInt16 *)papoSource)[ii] : \
676  (eSrcType == GDT_UInt32 ? \
677  ((GUInt32 *)papoSource)[ii] : \
678  (eSrcType == GDT_CInt16 ? \
679  ((GInt16 *)papoSource)[ii * 2] : \
680  (eSrcType == GDT_CInt32 ? \
681  ((GInt32 *)papoSource)[ii * 2] : \
682  (eSrcType == GDT_CFloat32 ? \
683  ((float *)papoSource)[ii * 2] : \
684  (eSrcType == GDT_CFloat64 ? \
685  ((double *)papoSource)[ii * 2] : 0)))))))))))
686 
687 typedef CPLErr
688 (*GDALDerivedPixelFunc)(void **papoSources, int nSources, void *pData,
689  int nBufXSize, int nBufYSize,
690  GDALDataType eSrcType, GDALDataType eBufType,
691  int nPixelSpace, int nLineSpace);
692 
693 GDALDataType CPL_DLL CPL_STDCALL GDALGetRasterDataType( GDALRasterBandH );
694 void CPL_DLL CPL_STDCALL
695 GDALGetBlockSize( GDALRasterBandH, int * pnXSize, int * pnYSize );
696 
697 CPLErr CPL_DLL CPL_STDCALL GDALRasterAdviseRead( GDALRasterBandH hRB,
698  int nDSXOff, int nDSYOff, int nDSXSize, int nDSYSize,
699  int nBXSize, int nBYSize, GDALDataType eBDataType, char **papszOptions );
700 
701 CPLErr CPL_DLL CPL_STDCALL
702 GDALRasterIO( GDALRasterBandH hRBand, GDALRWFlag eRWFlag,
703  int nDSXOff, int nDSYOff, int nDSXSize, int nDSYSize,
704  void * pBuffer, int nBXSize, int nBYSize,GDALDataType eBDataType,
705  int nPixelSpace, int nLineSpace ) CPL_WARN_UNUSED_RESULT;
706 CPLErr CPL_DLL CPL_STDCALL
707 GDALRasterIOEx( GDALRasterBandH hRBand, GDALRWFlag eRWFlag,
708  int nDSXOff, int nDSYOff, int nDSXSize, int nDSYSize,
709  void * pBuffer, int nBXSize, int nBYSize,GDALDataType eBDataType,
710  GSpacing nPixelSpace, GSpacing nLineSpace,
711  GDALRasterIOExtraArg* psExtraArg ) CPL_WARN_UNUSED_RESULT;
712 CPLErr CPL_DLL CPL_STDCALL GDALReadBlock( GDALRasterBandH, int, int, void * ) CPL_WARN_UNUSED_RESULT;
713 CPLErr CPL_DLL CPL_STDCALL GDALWriteBlock( GDALRasterBandH, int, int, void * ) CPL_WARN_UNUSED_RESULT;
714 int CPL_DLL CPL_STDCALL GDALGetRasterBandXSize( GDALRasterBandH );
715 int CPL_DLL CPL_STDCALL GDALGetRasterBandYSize( GDALRasterBandH );
716 GDALAccess CPL_DLL CPL_STDCALL GDALGetRasterAccess( GDALRasterBandH );
717 int CPL_DLL CPL_STDCALL GDALGetBandNumber( GDALRasterBandH );
718 GDALDatasetH CPL_DLL CPL_STDCALL GDALGetBandDataset( GDALRasterBandH );
719 
720 GDALColorInterp CPL_DLL CPL_STDCALL
722 CPLErr CPL_DLL CPL_STDCALL
725 CPLErr CPL_DLL CPL_STDCALL GDALSetRasterColorTable( GDALRasterBandH, GDALColorTableH );
726 int CPL_DLL CPL_STDCALL GDALHasArbitraryOverviews( GDALRasterBandH );
727 int CPL_DLL CPL_STDCALL GDALGetOverviewCount( GDALRasterBandH );
728 GDALRasterBandH CPL_DLL CPL_STDCALL GDALGetOverview( GDALRasterBandH, int );
729 double CPL_DLL CPL_STDCALL GDALGetRasterNoDataValue( GDALRasterBandH, int * );
730 CPLErr CPL_DLL CPL_STDCALL GDALSetRasterNoDataValue( GDALRasterBandH, double );
731 CPLErr CPL_DLL CPL_STDCALL GDALDeleteRasterNoDataValue( GDALRasterBandH );
732 char CPL_DLL ** CPL_STDCALL GDALGetRasterCategoryNames( GDALRasterBandH );
733 CPLErr CPL_DLL CPL_STDCALL GDALSetRasterCategoryNames( GDALRasterBandH, char ** );
734 double CPL_DLL CPL_STDCALL GDALGetRasterMinimum( GDALRasterBandH, int *pbSuccess );
735 double CPL_DLL CPL_STDCALL GDALGetRasterMaximum( GDALRasterBandH, int *pbSuccess );
736 CPLErr CPL_DLL CPL_STDCALL GDALGetRasterStatistics(
737  GDALRasterBandH, int bApproxOK, int bForce,
738  double *pdfMin, double *pdfMax, double *pdfMean, double *pdfStdDev );
739 CPLErr CPL_DLL CPL_STDCALL GDALComputeRasterStatistics(
740  GDALRasterBandH, int bApproxOK,
741  double *pdfMin, double *pdfMax, double *pdfMean, double *pdfStdDev,
742  GDALProgressFunc pfnProgress, void *pProgressData );
743 CPLErr CPL_DLL CPL_STDCALL GDALSetRasterStatistics(
744  GDALRasterBandH hBand,
745  double dfMin, double dfMax, double dfMean, double dfStdDev );
746 
747 const char CPL_DLL * CPL_STDCALL GDALGetRasterUnitType( GDALRasterBandH );
748 CPLErr CPL_DLL CPL_STDCALL GDALSetRasterUnitType( GDALRasterBandH hBand, const char *pszNewValue );
749 double CPL_DLL CPL_STDCALL GDALGetRasterOffset( GDALRasterBandH, int *pbSuccess );
750 CPLErr CPL_DLL CPL_STDCALL GDALSetRasterOffset( GDALRasterBandH hBand, double dfNewOffset);
751 double CPL_DLL CPL_STDCALL GDALGetRasterScale( GDALRasterBandH, int *pbSuccess );
752 CPLErr CPL_DLL CPL_STDCALL GDALSetRasterScale( GDALRasterBandH hBand, double dfNewOffset );
753 void CPL_DLL CPL_STDCALL
754 GDALComputeRasterMinMax( GDALRasterBandH hBand, int bApproxOK,
755  double adfMinMax[2] );
756 CPLErr CPL_DLL CPL_STDCALL GDALFlushRasterCache( GDALRasterBandH hBand );
757 CPLErr CPL_DLL CPL_STDCALL GDALGetRasterHistogram( GDALRasterBandH hBand,
758  double dfMin, double dfMax,
759  int nBuckets, int *panHistogram,
760  int bIncludeOutOfRange, int bApproxOK,
761  GDALProgressFunc pfnProgress,
762  void * pProgressData ) CPL_WARN_DEPRECATED("Use GDALGetRasterHistogramEx() instead");
763 CPLErr CPL_DLL CPL_STDCALL GDALGetRasterHistogramEx( GDALRasterBandH hBand,
764  double dfMin, double dfMax,
765  int nBuckets, GUIntBig *panHistogram,
766  int bIncludeOutOfRange, int bApproxOK,
767  GDALProgressFunc pfnProgress,
768  void * pProgressData );
769 CPLErr CPL_DLL CPL_STDCALL GDALGetDefaultHistogram( GDALRasterBandH hBand,
770  double *pdfMin, double *pdfMax,
771  int *pnBuckets, int **ppanHistogram,
772  int bForce,
773  GDALProgressFunc pfnProgress,
774  void * pProgressData ) CPL_WARN_DEPRECATED("Use GDALGetDefaultHistogramEx() instead");
775 CPLErr CPL_DLL CPL_STDCALL GDALGetDefaultHistogramEx( GDALRasterBandH hBand,
776  double *pdfMin, double *pdfMax,
777  int *pnBuckets, GUIntBig **ppanHistogram,
778  int bForce,
779  GDALProgressFunc pfnProgress,
780  void * pProgressData );
781 CPLErr CPL_DLL CPL_STDCALL GDALSetDefaultHistogram( GDALRasterBandH hBand,
782  double dfMin, double dfMax,
783  int nBuckets, int *panHistogram ) CPL_WARN_DEPRECATED("Use GDALSetDefaultHistogramEx() instead");
784 CPLErr CPL_DLL CPL_STDCALL GDALSetDefaultHistogramEx( GDALRasterBandH hBand,
785  double dfMin, double dfMax,
786  int nBuckets, GUIntBig *panHistogram );
787 int CPL_DLL CPL_STDCALL
788 GDALGetRandomRasterSample( GDALRasterBandH, int, float * );
789 GDALRasterBandH CPL_DLL CPL_STDCALL
791 GDALRasterBandH CPL_DLL CPL_STDCALL
793 CPLErr CPL_DLL CPL_STDCALL GDALFillRaster( GDALRasterBandH hBand,
794  double dfRealValue, double dfImaginaryValue );
795 CPLErr CPL_DLL CPL_STDCALL
796 GDALComputeBandStats( GDALRasterBandH hBand, int nSampleStep,
797  double *pdfMean, double *pdfStdDev,
798  GDALProgressFunc pfnProgress,
799  void *pProgressData );
800 CPLErr CPL_DLL GDALOverviewMagnitudeCorrection( GDALRasterBandH hBaseBand,
801  int nOverviewCount,
802  GDALRasterBandH *pahOverviews,
803  GDALProgressFunc pfnProgress,
804  void *pProgressData );
805 
806 GDALRasterAttributeTableH CPL_DLL CPL_STDCALL GDALGetDefaultRAT(
807  GDALRasterBandH hBand );
808 CPLErr CPL_DLL CPL_STDCALL GDALSetDefaultRAT( GDALRasterBandH,
810 CPLErr CPL_DLL CPL_STDCALL GDALAddDerivedBandPixelFunc( const char *pszName,
811  GDALDerivedPixelFunc pfnPixelFunc );
812 
813 GDALRasterBandH CPL_DLL CPL_STDCALL GDALGetMaskBand( GDALRasterBandH hBand );
814 int CPL_DLL CPL_STDCALL GDALGetMaskFlags( GDALRasterBandH hBand );
815 CPLErr CPL_DLL CPL_STDCALL
816  GDALCreateMaskBand( GDALRasterBandH hBand, int nFlags );
817 
818 #define GMF_ALL_VALID 0x01
819 #define GMF_PER_DATASET 0x02
820 #define GMF_ALPHA 0x04
821 #define GMF_NODATA 0x08
822 
823 /* ==================================================================== */
824 /* GDALAsyncReader */
825 /* ==================================================================== */
826 
827 GDALAsyncStatusType CPL_DLL CPL_STDCALL
828 GDALARGetNextUpdatedRegion(GDALAsyncReaderH hARIO, double dfTimeout,
829  int* pnXBufOff, int* pnYBufOff,
830  int* pnXBufSize, int* pnYBufSize );
831 int CPL_DLL CPL_STDCALL GDALARLockBuffer(GDALAsyncReaderH hARIO,
832  double dfTimeout);
833 void CPL_DLL CPL_STDCALL GDALARUnlockBuffer(GDALAsyncReaderH hARIO);
834 
835 /* -------------------------------------------------------------------- */
836 /* Helper functions. */
837 /* -------------------------------------------------------------------- */
838 int CPL_DLL CPL_STDCALL GDALGeneralCmdLineProcessor( int nArgc, char ***ppapszArgv,
839  int nOptions );
840 void CPL_DLL CPL_STDCALL GDALSwapWords( void *pData, int nWordSize, int nWordCount,
841  int nWordSkip );
842 void CPL_DLL CPL_STDCALL GDALSwapWordsEx( void *pData, int nWordSize, size_t nWordCount,
843  int nWordSkip );
844 
845 void CPL_DLL CPL_STDCALL
846  GDALCopyWords( const void * pSrcData, GDALDataType eSrcType, int nSrcPixelOffset,
847  void * pDstData, GDALDataType eDstType, int nDstPixelOffset,
848  int nWordCount );
849 
850 void CPL_DLL
851 GDALCopyBits( const GByte *pabySrcData, int nSrcOffset, int nSrcStep,
852  GByte *pabyDstData, int nDstOffset, int nDstStep,
853  int nBitCount, int nStepCount );
854 
855 int CPL_DLL CPL_STDCALL GDALLoadWorldFile( const char *, double * );
856 int CPL_DLL CPL_STDCALL GDALReadWorldFile( const char *, const char *,
857  double * );
858 int CPL_DLL CPL_STDCALL GDALWriteWorldFile( const char *, const char *,
859  double * );
860 int CPL_DLL CPL_STDCALL GDALLoadTabFile( const char *, double *, char **,
861  int *, GDAL_GCP ** );
862 int CPL_DLL CPL_STDCALL GDALReadTabFile( const char *, double *, char **,
863  int *, GDAL_GCP ** );
864 int CPL_DLL CPL_STDCALL GDALLoadOziMapFile( const char *, double *, char **,
865  int *, GDAL_GCP ** );
866 int CPL_DLL CPL_STDCALL GDALReadOziMapFile( const char *, double *,
867  char **, int *, GDAL_GCP ** );
868 
869 const char CPL_DLL * CPL_STDCALL GDALDecToDMS( double, const char *, int );
870 double CPL_DLL CPL_STDCALL GDALPackedDMSToDec( double );
871 double CPL_DLL CPL_STDCALL GDALDecToPackedDMS( double );
872 
873 /* Note to developers : please keep this section in sync with ogr_core.h */
874 
875 #ifndef GDAL_VERSION_INFO_DEFINED
876 #define GDAL_VERSION_INFO_DEFINED
877 const char CPL_DLL * CPL_STDCALL GDALVersionInfo( const char * );
878 #endif
879 
880 #ifndef GDAL_CHECK_VERSION
881 
882 int CPL_DLL CPL_STDCALL GDALCheckVersion( int nVersionMajor, int nVersionMinor,
883  const char* pszCallingComponentName);
884 
888 #define GDAL_CHECK_VERSION(pszCallingComponentName) \
889  GDALCheckVersion(GDAL_VERSION_MAJOR, GDAL_VERSION_MINOR, pszCallingComponentName)
890 
891 #endif
892 
893 typedef struct {
894  double dfLINE_OFF;
895  double dfSAMP_OFF;
896  double dfLAT_OFF;
897  double dfLONG_OFF;
898  double dfHEIGHT_OFF;
899 
900  double dfLINE_SCALE;
901  double dfSAMP_SCALE;
902  double dfLAT_SCALE;
903  double dfLONG_SCALE;
904  double dfHEIGHT_SCALE;
905 
906  double adfLINE_NUM_COEFF[20];
907  double adfLINE_DEN_COEFF[20];
908  double adfSAMP_NUM_COEFF[20];
909  double adfSAMP_DEN_COEFF[20];
910 
911  double dfMIN_LONG;
912  double dfMIN_LAT;
913  double dfMAX_LONG;
914  double dfMAX_LAT;
915 
916 } GDALRPCInfo;
917 
918 int CPL_DLL CPL_STDCALL GDALExtractRPCInfo( char **, GDALRPCInfo * );
919 
920 /* ==================================================================== */
921 /* Color tables. */
922 /* ==================================================================== */
923 
925 typedef struct
926 {
928  short c1;
929 
931  short c2;
932 
934  short c3;
935 
937  short c4;
939 
940 GDALColorTableH CPL_DLL CPL_STDCALL GDALCreateColorTable( GDALPaletteInterp ) CPL_WARN_UNUSED_RESULT;
941 void CPL_DLL CPL_STDCALL GDALDestroyColorTable( GDALColorTableH );
944 int CPL_DLL CPL_STDCALL GDALGetColorEntryCount( GDALColorTableH );
945 const GDALColorEntry CPL_DLL * CPL_STDCALL GDALGetColorEntry( GDALColorTableH, int );
946 int CPL_DLL CPL_STDCALL GDALGetColorEntryAsRGB( GDALColorTableH, int, GDALColorEntry *);
947 void CPL_DLL CPL_STDCALL GDALSetColorEntry( GDALColorTableH, int, const GDALColorEntry * );
948 void CPL_DLL CPL_STDCALL GDALCreateColorRamp( GDALColorTableH hTable,
949  int nStartIndex, const GDALColorEntry *psStartColor,
950  int nEndIndex, const GDALColorEntry *psEndColor );
951 
952 /* ==================================================================== */
953 /* Raster Attribute Table */
954 /* ==================================================================== */
955 
962 
964 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
985 
986 GDALRasterAttributeTableH CPL_DLL CPL_STDCALL
987  GDALCreateRasterAttributeTable(void) CPL_WARN_UNUSED_RESULT;
988 void CPL_DLL CPL_STDCALL GDALDestroyRasterAttributeTable(
990 
991 int CPL_DLL CPL_STDCALL GDALRATGetColumnCount( GDALRasterAttributeTableH );
992 
993 const char CPL_DLL * CPL_STDCALL GDALRATGetNameOfCol(
995 GDALRATFieldUsage CPL_DLL CPL_STDCALL GDALRATGetUsageOfCol(
997 GDALRATFieldType CPL_DLL CPL_STDCALL GDALRATGetTypeOfCol(
999 
1000 int CPL_DLL CPL_STDCALL GDALRATGetColOfUsage( GDALRasterAttributeTableH,
1002 int CPL_DLL CPL_STDCALL GDALRATGetRowCount( GDALRasterAttributeTableH );
1003 
1004 const char CPL_DLL * CPL_STDCALL GDALRATGetValueAsString(
1005  GDALRasterAttributeTableH, int, int);
1006 int CPL_DLL CPL_STDCALL GDALRATGetValueAsInt(
1007  GDALRasterAttributeTableH, int, int);
1008 double CPL_DLL CPL_STDCALL GDALRATGetValueAsDouble(
1009  GDALRasterAttributeTableH, int, int);
1010 
1011 void CPL_DLL CPL_STDCALL GDALRATSetValueAsString( GDALRasterAttributeTableH, int, int,
1012  const char * );
1013 void CPL_DLL CPL_STDCALL GDALRATSetValueAsInt( GDALRasterAttributeTableH, int, int,
1014  int );
1015 void CPL_DLL CPL_STDCALL GDALRATSetValueAsDouble( GDALRasterAttributeTableH, int, int,
1016  double );
1017 
1018 int CPL_DLL CPL_STDCALL GDALRATChangesAreWrittenToFile( GDALRasterAttributeTableH hRAT );
1019 
1020 CPLErr CPL_DLL CPL_STDCALL GDALRATValuesIOAsDouble( GDALRasterAttributeTableH hRAT, GDALRWFlag eRWFlag,
1021  int iField, int iStartRow, int iLength, double *pdfData );
1022 CPLErr CPL_DLL CPL_STDCALL GDALRATValuesIOAsInteger( GDALRasterAttributeTableH hRAT, GDALRWFlag eRWFlag,
1023  int iField, int iStartRow, int iLength, int *pnData);
1024 CPLErr CPL_DLL CPL_STDCALL GDALRATValuesIOAsString( GDALRasterAttributeTableH hRAT, GDALRWFlag eRWFlag,
1025  int iField, int iStartRow, int iLength, char **papszStrList);
1026 
1027 void CPL_DLL CPL_STDCALL GDALRATSetRowCount( GDALRasterAttributeTableH,
1028  int );
1029 CPLErr CPL_DLL CPL_STDCALL GDALRATCreateColumn( GDALRasterAttributeTableH,
1030  const char *,
1033 CPLErr CPL_DLL CPL_STDCALL GDALRATSetLinearBinning( GDALRasterAttributeTableH,
1034  double, double );
1035 int CPL_DLL CPL_STDCALL GDALRATGetLinearBinning( GDALRasterAttributeTableH,
1036  double *, double * );
1037 CPLErr CPL_DLL CPL_STDCALL GDALRATInitializeFromColorTable(
1039 GDALColorTableH CPL_DLL CPL_STDCALL GDALRATTranslateToColorTable(
1040  GDALRasterAttributeTableH, int nEntryCount );
1041 void CPL_DLL CPL_STDCALL GDALRATDumpReadable( GDALRasterAttributeTableH,
1042  FILE * );
1043 GDALRasterAttributeTableH CPL_DLL CPL_STDCALL
1045 
1046 void CPL_DLL* CPL_STDCALL
1047  GDALRATSerializeJSON( GDALRasterAttributeTableH ) CPL_WARN_UNUSED_RESULT;
1048 
1049 int CPL_DLL CPL_STDCALL GDALRATGetRowOfValue( GDALRasterAttributeTableH, double );
1050 
1051 
1052 /* ==================================================================== */
1053 /* GDAL Cache Management */
1054 /* ==================================================================== */
1055 
1056 void CPL_DLL CPL_STDCALL GDALSetCacheMax( int nBytes );
1057 int CPL_DLL CPL_STDCALL GDALGetCacheMax(void);
1058 int CPL_DLL CPL_STDCALL GDALGetCacheUsed(void);
1059 void CPL_DLL CPL_STDCALL GDALSetCacheMax64( GIntBig nBytes );
1060 GIntBig CPL_DLL CPL_STDCALL GDALGetCacheMax64(void);
1061 GIntBig CPL_DLL CPL_STDCALL GDALGetCacheUsed64(void);
1062 
1063 int CPL_DLL CPL_STDCALL GDALFlushCacheBlock(void);
1064 
1065 /* ==================================================================== */
1066 /* GDAL virtual memory */
1067 /* ==================================================================== */
1068 
1070  GDALRWFlag eRWFlag,
1071  int nXOff, int nYOff,
1072  int nXSize, int nYSize,
1073  int nBufXSize, int nBufYSize,
1074  GDALDataType eBufType,
1075  int nBandCount, int* panBandMap,
1076  int nPixelSpace,
1077  GIntBig nLineSpace,
1078  GIntBig nBandSpace,
1079  size_t nCacheSize,
1080  size_t nPageSizeHint,
1081  int bSingleThreadUsage,
1082  char **papszOptions ) CPL_WARN_UNUSED_RESULT;
1083 
1085  GDALRWFlag eRWFlag,
1086  int nXOff, int nYOff,
1087  int nXSize, int nYSize,
1088  int nBufXSize, int nBufYSize,
1089  GDALDataType eBufType,
1090  int nPixelSpace,
1091  GIntBig nLineSpace,
1092  size_t nCacheSize,
1093  size_t nPageSizeHint,
1094  int bSingleThreadUsage,
1095  char **papszOptions ) CPL_WARN_UNUSED_RESULT;
1096 
1098  GDALRWFlag eRWFlag,
1099  int *pnPixelSpace,
1100  GIntBig *pnLineSpace,
1101  char **papszOptions ) CPL_WARN_UNUSED_RESULT;
1102 
1103 typedef enum
1104 {
1112 
1114  GDALRWFlag eRWFlag,
1115  int nXOff, int nYOff,
1116  int nXSize, int nYSize,
1117  int nTileXSize, int nTileYSize,
1118  GDALDataType eBufType,
1119  int nBandCount, int* panBandMap,
1120  GDALTileOrganization eTileOrganization,
1121  size_t nCacheSize,
1122  int bSingleThreadUsage,
1123  char **papszOptions ) CPL_WARN_UNUSED_RESULT;
1124 
1126  GDALRWFlag eRWFlag,
1127  int nXOff, int nYOff,
1128  int nXSize, int nYSize,
1129  int nTileXSize, int nTileYSize,
1130  GDALDataType eBufType,
1131  size_t nCacheSize,
1132  int bSingleThreadUsage,
1133  char **papszOptions ) CPL_WARN_UNUSED_RESULT;
1134 
1135 /* ==================================================================== */
1136 /* VRTPansharpenedDataset class. */
1137 /* ==================================================================== */
1138 
1139 GDALDatasetH CPL_DLL GDALCreatePansharpenedVRT( const char* pszXML,
1140  GDALRasterBandH hPanchroBand,
1141  int nInputSpectralBands,
1142  GDALRasterBandH* pahInputSpectralBands ) CPL_WARN_UNUSED_RESULT;
1143 
1144 /* =================================================================== */
1145 /* Misc API */
1146 /* ==================================================================== */
1147 
1148 CPLXMLNode CPL_DLL* GDALGetJPEG2000Structure(const char* pszFilename,
1149  char** papszOptions) CPL_WARN_UNUSED_RESULT;
1150 
1151 CPL_C_END
1152 
1153 #endif /* ndef GDAL_H_INCLUDED */
double GDALRATGetValueAsDouble(GDALRasterAttributeTableH, int, int)
Fetch field value as a double.
Definition: gdal_rat.cpp:1485
int GDALRATGetColOfUsage(GDALRasterAttributeTableH, GDALRATFieldUsage)
Fetch column index for given usage.
Definition: gdal_rat.cpp:1271
CPLErr GDALGetRasterStatistics(GDALRasterBandH, int bApproxOK, int bForce, double *pdfMin, double *pdfMax, double *pdfMean, double *pdfStdDev)
Fetch image statistics.
Definition: gdalrasterband.cpp:3538
Definition: gdal.h:183
CPLErr GDALAddBand(GDALDatasetH hDS, GDALDataType eType, char **papszOptions)
Add a band to a dataset.
Definition: gdaldataset.cpp:554
GDALDatasetH GDALOpenEx(const char *pszFilename, unsigned int nOpenFlags, const char *const *papszAllowedDrivers, const char *const *papszOpenOptions, const char *const *papszSiblingFiles) CPL_WARN_UNUSED_RESULT
Open a raster or vector file as a GDALDataset.
Definition: gdaldataset.cpp:2626
Definition: gdal.h:100
CPLErr GDALSetProjection(GDALDatasetH, const char *)
Set the projection reference string for this dataset.
Definition: gdaldataset.cpp:872
Definition: gdal.h:971
GDALColorInterp GDALGetColorInterpretationByName(const char *pszName)
Get color interpretation by symbolic name.
Definition: gdal_misc.cpp:692
CPLErr GDALReadBlock(GDALRasterBandH, int, int, void *) CPL_WARN_UNUSED_RESULT
Read a block of image data efficiently.
Definition: gdalrasterband.cpp:488
GDALDataType
Definition: gdal.h:57
CPLErr GDALComputeRasterStatistics(GDALRasterBandH, int bApproxOK, double *pdfMin, double *pdfMax, double *pdfMean, double *pdfStdDev, GDALProgressFunc pfnProgress, void *pProgressData)
Compute image statistics.
Definition: gdalrasterband.cpp:3957
Definition: gdal.h:965
int GDALGetOverviewCount(GDALRasterBandH)
Return the number of overview layers available.
Definition: gdalrasterband.cpp:2007
Definition: gdal.h:67
char * pszInfo
Informational message or "".
Definition: gdal.h:498
Definition: gdal.h:983
CPLErr GDALWriteBlock(GDALRasterBandH, int, int, void *) CPL_WARN_UNUSED_RESULT
Write a block of image data efficiently.
Definition: gdalrasterband.cpp:614
Document node structure.
Definition: cpl_minixml.h:65
Definition: gdal.h:973
void GDALDatasetReleaseResultSet(GDALDatasetH, OGRLayerH)
Release results of ExecuteSQL().
Definition: gdaldataset.cpp:3367
Definitions for CPL mini XML Parser/Serializer.
double dfGCPPixel
Pixel (x) location of GCP on raster.
Definition: gdal.h:501
double GDALPackedDMSToDec(double)
Convert a packed DMS value (DDDMMMSSS.SS) into decimal degrees.
Definition: gdal_misc.cpp:1979
Definition: gdal.h:977
Definition: gdal.h:1110
GDALDataType GDALDataTypeUnion(GDALDataType, GDALDataType)
Return the smallest data type that can fully express both input data types.
Definition: gdal_misc.cpp:61
Definition: gdal.h:959
Definition: gdal.h:184
Definition: gdal.h:59
CPLErr GDALCreateDatasetMaskBand(GDALDatasetH hDS, int nFlags)
Adds a mask band to the dataset.
Definition: gdaldataset.cpp:2476
Definition: gdal.h:202
GDALDriverH GDALGetDriver(int)
Fetch driver by index.
Definition: gdaldrivermanager.cpp:356
CPLErr GDALSetRasterOffset(GDALRasterBandH hBand, double dfNewOffset)
Set scaling offset.
Definition: gdalrasterband.cpp:2286
double GDALAdjustValueToDataType(GDALDataType eDT, double dfValue, int *pbClamped, int *pbRounded)
Adjust a value to the output data type.
Definition: gdal_misc.cpp:439
int GDALGetColorEntryAsRGB(GDALColorTableH, int, GDALColorEntry *)
Fetch a table entry in RGB format.
Definition: gdalcolortable.cpp:178
CPLErr GDALSetDefaultHistogramEx(GDALRasterBandH hBand, double dfMin, double dfMax, int nBuckets, GUIntBig *panHistogram)
Set default histogram.
Definition: gdalrasterband.cpp:4481
GDALColorTableH GDALCloneColorTable(GDALColorTableH)
Make a copy of a color table.
Definition: gdalcolortable.cpp:276
Core portability definitions for CPL.
const GDALColorEntry * GDALGetColorEntry(GDALColorTableH, int)
Fetch a color entry from table.
Definition: gdalcolortable.cpp:129
void * GDALAsyncReaderH
Opaque type used for the C bindings of the C++ GDALAsyncReader class.
Definition: gdal.h:245
CPLVirtualMem * GDALRasterBandGetTiledVirtualMem(GDALRasterBandH hBand, GDALRWFlag eRWFlag, int nXOff, int nYOff, int nXSize, int nYSize, int nTileXSize, int nTileYSize, GDALDataType eBufType, size_t nCacheSize, int bSingleThreadUsage, char **papszOptions) CPL_WARN_UNUSED_RESULT
Create a CPLVirtualMem object from a GDAL rasterband object, with tiling organization.
Definition: gdalvirtualmem.cpp:1540
int bFloatingPointWindowValidity
Definition: gdal.h:149
int GDALRATGetColumnCount(GDALRasterAttributeTableH)
Fetch table column count.
Definition: gdal_rat.cpp:1138
Definition: gdal.h:189
GDALColorTableH GDALRATTranslateToColorTable(GDALRasterAttributeTableH, int nEntryCount)
Translate to a color table.
Definition: gdal_rat.cpp:954
int GDALGetColorEntryCount(GDALColorTableH)
Get number of color entries in table.
Definition: gdalcolortable.cpp:313
void GDALAllRegister(void)
Register all known configured GDAL drivers.
Definition: gdalallregister.cpp:63
Definition: gdal.h:181
int GDALGCPsToGeoTransform(int nGCPCount, const GDAL_GCP *pasGCPs, double *padfGeoTransform, int bApproxOK) CPL_WARN_UNUSED_RESULT
Generate Geotransform from GCPs.
Definition: gdal_misc.cpp:2029
CPLErr GDALSetRasterUnitType(GDALRasterBandH hBand, const char *pszNewValue)
Set unit type.
Definition: gdalrasterband.cpp:2477
GDALAsyncStatusType GDALGetAsyncStatusTypeByName(const char *)
Get AsyncStatusType by symbolic name.
Definition: gdal_misc.cpp:500
GDALDatasetH GDALCreatePansharpenedVRT(const char *pszXML, GDALRasterBandH hPanchroBand, int nInputSpectralBands, GDALRasterBandH *pahInputSpectralBands) CPL_WARN_UNUSED_RESULT
Create a virtual pansharpened dataset.
Definition: vrtpansharpened.cpp:79
void * GDALRATSerializeJSON(GDALRasterAttributeTableH) CPL_WARN_UNUSED_RESULT
Serialize Raster Attribute Table in Json format.
Definition: gdal_rat.cpp:1954
CPLErr GDALBuildOverviews(GDALDatasetH, const char *, int, int *, int, int *, GDALProgressFunc, void *) CPL_WARN_UNUSED_RESULT
Build raster overview(s)
Definition: gdaldataset.cpp:1465
Definition: gdal.h:106
Definition: gdal.h:975
CPLErr GDALGetRasterHistogram(GDALRasterBandH hBand, double dfMin, double dfMax, int nBuckets, int *panHistogram, int bIncludeOutOfRange, int bApproxOK, GDALProgressFunc pfnProgress, void *pProgressData) CPL_WARN_DEPRECATED("Use GDALGetRasterHistogramEx() instead")
Compute raster histogram.
Definition: gdalrasterband.cpp:3097
CPLErr GDALSetGCPs(GDALDatasetH, int, const GDAL_GCP *, const char *)
Assign GCPs.
Definition: gdaldataset.cpp:1375
CPLErr GDALRasterIO(GDALRasterBandH hRBand, GDALRWFlag eRWFlag, int nDSXOff, int nDSYOff, int nDSXSize, int nDSYSize, void *pBuffer, int nBXSize, int nBYSize, GDALDataType eBDataType, int nPixelSpace, int nLineSpace) CPL_WARN_UNUSED_RESULT
Read/write a region of image data for this band.
Definition: gdalrasterband.cpp:308
GDALRATFieldType
Field type of raster attribute table.
Definition: gdal.h:957
Definition: gdal.h:60
Definition: gdal.h:63
const char * GDALGetDriverHelpTopic(GDALDriverH)
Return the URL to the help that describes the driver.
Definition: gdaldriver.cpp:1343
void GDALDeregisterDriver(GDALDriverH)
Deregister the passed driver.
Definition: gdaldrivermanager.cpp:526
const char * GDALGetProjectionRef(GDALDatasetH)
Fetch the projection definition string for this dataset.
Definition: gdaldataset.cpp:827
CPLErr GDALAddDerivedBandPixelFunc(const char *pszName, GDALDerivedPixelFunc pfnPixelFunc)
This adds a pixel function to the global list of available pixel functions for derived bands...
Definition: vrtderivedrasterband.cpp:97
void GDALDatasetSetStyleTable(GDALDatasetH, OGRStyleTableH)
Set dataset style table.
Definition: gdaldataset.cpp:3848
GDALDatasetH GDALOpenShared(const char *, GDALAccess) CPL_WARN_UNUSED_RESULT
Open a raster file as a GDALDataset.
Definition: gdaldataset.cpp:2955
Definition: gdal.h:968
Definition: gdal.h:981
CPLErr GDALSetRasterScale(GDALRasterBandH hBand, double dfNewOffset)
Set scaling ratio.
Definition: gdalrasterband.cpp:2386
CPLXMLNode * GDALGetJPEG2000Structure(const char *pszFilename, char **papszOptions) CPL_WARN_UNUSED_RESULT
Dump the structure of a JPEG2000 file as a XML tree.
Definition: gdaljp2structure.cpp:1393
OGRLayerH GDALDatasetGetLayerByName(GDALDatasetH, const char *)
Fetch a layer by name.
Definition: gdaldataset.cpp:3488
int GDALCheckVersion(int nVersionMajor, int nVersionMinor, const char *pszCallingComponentName)
Return TRUE if GDAL library version at runtime matches nVersionMajor.nVersionMinor.
Definition: gdal_misc.cpp:1938
int GDALRATGetValueAsInt(GDALRasterAttributeTableH, int, int)
Fetch field value as a integer.
Definition: gdal_rat.cpp:1426
int GDALHasArbitraryOverviews(GDALRasterBandH)
Check for arbitrary overviews.
Definition: gdalrasterband.cpp:1967
GDALRasterAttributeTableH GDALGetDefaultRAT(GDALRasterBandH hBand)
Fetch default Raster Attribute Table.
Definition: gdalrasterband.cpp:4524
void GDALComputeRasterMinMax(GDALRasterBandH hBand, int bApproxOK, double adfMinMax[2])
Compute the min/max values for a band.
Definition: gdalrasterband.cpp:4392
CPLErr GDALSetRasterColorInterpretation(GDALRasterBandH, GDALColorInterp)
Set color interpretation of a band.
Definition: gdalrasterband.cpp:1831
GDALDriverH GDALGetDriverByName(const char *)
Fetch a driver based on the short name.
Definition: gdaldrivermanager.cpp:571
int GDALGetDataTypeSize(GDALDataType)
Get data type size in bits.
Definition: gdal_misc.cpp:271
Definition: gdal.h:979
GDALRIOResampleAlg
RasterIO() resampling method.
Definition: gdal.h:113
const char * GDALGetDriverCreationOptionList(GDALDriverH)
Return the list of creation options of the driver.
Definition: gdaldriver.cpp:1367
GDALRWFlag
Definition: gdal.h:104
int nVersion
Definition: gdal.h:135
int GDALGeneralCmdLineProcessor(int nArgc, char ***ppapszArgv, int nOptions)
General utility option processing.
Definition: gdal_misc.cpp:2392
void * GDALDatasetH
Opaque type used for the C bindings of the C++ GDALDataset class.
Definition: gdal.h:230
Color tuple.
Definition: gdal.h:925
OGRErr GDALDatasetStartTransaction(GDALDatasetH hDS, int bForce)
For datasources which support transactions, StartTransaction creates a transaction.
Definition: gdaldataset.cpp:5962
Definition: gdal.h:187
void GDALDestroyDriverManager(void)
Destroy the driver manager.
Definition: gdaldrivermanager.cpp:842
const char * GDALRATGetValueAsString(GDALRasterAttributeTableH, int, int)
Fetch field value as a string.
Definition: gdal_rat.cpp:1367
Definition: gdal.h:893
void GDALRATSetValueAsString(GDALRasterAttributeTableH, int, int, const char *)
Set field value from string.
Definition: gdal_rat.cpp:1579
int GDALDataTypeIsComplex(GDALDataType)
Is data type complex?
Definition: gdal_misc.cpp:289
const char * GDALGetDriverLongName(GDALDriverH)
Return the long name of a driver.
Definition: gdaldriver.cpp:1313
void * GDALRasterBandH
Opaque type used for the C bindings of the C++ GDALRasterBand class.
Definition: gdal.h:233
OGRLayerH GDALDatasetCopyLayer(GDALDatasetH, OGRLayerH, const char *, char **)
Duplicate an existing layer.
Definition: gdaldataset.cpp:3711
char ** GDALGetRasterCategoryNames(GDALRasterBandH)
Fetch the list of category names for this raster.
Definition: gdalrasterband.cpp:1354
const char * GDALGetPaletteInterpretationName(GDALPaletteInterp)
Get name of palette interpretation.
Definition: gdal_misc.cpp:573
GDALRasterAttributeTableH GDALRATClone(GDALRasterAttributeTableH)
Copy Raster Attribute Table.
Definition: gdal_rat.cpp:1935
Definition: gdal.h:58
Definition: gdal.h:970
Definition: gdal.h:966
CPLErr GDALRATInitializeFromColorTable(GDALRasterAttributeTableH, GDALColorTableH)
Initialize from color table.
Definition: gdal_rat.cpp:849
void GDALFlushCache(GDALDatasetH hDS)
Flush all write cached data to disk.
Definition: gdaldataset.cpp:424
void * GDALGetInternalHandle(GDALDatasetH, const char *)
Fetch a format specific internally meaningful handle.
Definition: gdaldataset.cpp:1025
int GDALGetRasterCount(GDALDatasetH)
Fetch the number of raster bands on this dataset.
Definition: gdaldataset.cpp:781
const char * GDALGetDescription(GDALMajorObjectH)
Fetch object description.
Definition: gdalmajorobject.cpp:91
Virtual memory management.
GDALRasterBandH GDALGetMaskBand(GDALRasterBandH hBand)
Return the mask band associated with the band.
Definition: gdalrasterband.cpp:4799
Definition: gdal.h:179
int GDALRATChangesAreWrittenToFile(GDALRasterAttributeTableH hRAT)
Determine whether changes made to this RAT are reflected directly in the dataset. ...
Definition: gdal_rat.cpp:1750
GDALRATFieldUsage GDALRATGetUsageOfCol(GDALRasterAttributeTableH, int)
Fetch column usage value.
Definition: gdal_rat.cpp:1203
Definition: gdal.h:1106
CPLVirtualMem * GDALRasterBandGetVirtualMem(GDALRasterBandH hBand, GDALRWFlag eRWFlag, int nXOff, int nYOff, int nXSize, int nYSize, int nBufXSize, int nBufYSize, GDALDataType eBufType, int nPixelSpace, GIntBig nLineSpace, size_t nCacheSize, size_t nPageSizeHint, int bSingleThreadUsage, char **papszOptions) CPL_WARN_UNUSED_RESULT
Create a CPLVirtualMem object from a GDAL raster band object.
Definition: gdalvirtualmem.cpp:1004
short c1
Definition: gdal.h:928
Definition: gdal.h:119
CPLErr GDALSetMetadata(GDALMajorObjectH, char **, const char *)
Set metadata.
Definition: gdalmajorobject.cpp:305
GIntBig GDALGetCacheMax64(void)
Get maximum cache memory.
Definition: gdalrasterblock.cpp:223
void GDALSetCacheMax(int nBytes)
Set maximum cache memory.
Definition: gdalrasterblock.cpp:103
short c3
Definition: gdal.h:934
struct CPLVirtualMem CPLVirtualMem
Opaque type that represents a virtual memory mapping.
Definition: cpl_virtualmem.h:60
void GDALApplyGeoTransform(double *, double, double, double *, double *)
Apply GeoTransform to x/y coordinate.
Definition: gdaltransformer.cpp:3067
int GDALRegisterDriver(GDALDriverH)
Register a driver for use.
Definition: gdaldrivermanager.cpp:468
Definition: gdal.h:69
CPLErr GDALSetMetadataItem(GDALMajorObjectH, const char *, const char *, const char *)
Set single metadata item.
Definition: gdalmajorobject.cpp:394
void GDALGetOpenDatasets(GDALDatasetH **hDS, int *pnCount)
Fetch all open GDAL dataset handles.
Definition: gdaldataset.cpp:2137
GDALColorInterp GDALGetRasterColorInterpretation(GDALRasterBandH)
How should this band be interpreted as color?
Definition: gdalrasterband.cpp:1787
const char * GDALGetAsyncStatusTypeName(GDALAsyncStatusType)
Get name of AsyncStatus data type.
Definition: gdal_misc.cpp:536
const char * GDALVersionInfo(const char *)
Get runtime version information.
Definition: gdal_misc.cpp:1826
CPLErr GDALRATValuesIOAsString(GDALRasterAttributeTableH hRAT, GDALRWFlag eRWFlag, int iField, int iStartRow, int iLength, char **papszStrList)
Read or Write a block of strings to/from the Attribute Table.
Definition: gdal_rat.cpp:265
CPLVirtualMem * GDALGetVirtualMemAuto(GDALRasterBandH hBand, 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:5271
double dfGCPY
Y position of GCP in georeferenced space.
Definition: gdal.h:509
Definition: gdal.h:122
int GDALRATGetLinearBinning(GDALRasterAttributeTableH, double *, double *)
Get linear binning information.
Definition: gdal_rat.cpp:499
void GDALCreateColorRamp(GDALColorTableH hTable, int nStartIndex, const GDALColorEntry *psStartColor, int nEndIndex, const GDALColorEntry *psEndColor)
Create color ramp.
Definition: gdalcolortable.cpp:458
GDALRasterBandH GDALGetRasterBand(GDALDatasetH, int)
Fetch a band object for a dataset.
Definition: gdaldataset.cpp:745
const GDAL_GCP * GDALGetGCPs(GDALDatasetH)
Fetch GCPs.
Definition: gdaldataset.cpp:1311
int GDALDatasetGetLayerCount(GDALDatasetH)
Get the number of layers in this dataset.
Definition: gdaldataset.cpp:3432
void GDALSwapWordsEx(void *pData, int nWordSize, size_t nWordCount, int nWordSkip)
Byte swap words in-place.
Definition: rasterio.cpp:1675
short c2
Definition: gdal.h:931
OGRStyleTableH GDALDatasetGetStyleTable(GDALDatasetH)
Returns dataset style table.
Definition: gdaldataset.cpp:3793
double dfXOff
Definition: gdal.h:151
GDALAccess GDALGetRasterAccess(GDALRasterBandH)
Find out if we have update permission for this band.
Definition: gdalrasterband.cpp:1308
GIntBig GSpacing
Type to express pixel, line or band spacing.
Definition: gdal.h:248
CPLErr GDALGetRasterHistogramEx(GDALRasterBandH hBand, double dfMin, double dfMax, int nBuckets, GUIntBig *panHistogram, int bIncludeOutOfRange, int bApproxOK, GDALProgressFunc pfnProgress, void *pProgressData)
Compute raster histogram.
Definition: gdalrasterband.cpp:3156
char ** GDALGetMetadataDomainList(GDALMajorObjectH hObject)
Fetch list of metadata domains.
Definition: gdalmajorobject.cpp:213
int GDALGetAccess(GDALDatasetH hDS)
Return access flag.
Definition: gdaldataset.cpp:2171
const char * GDALGetDataTypeName(GDALDataType)
Get name of data type.
Definition: gdal_misc.cpp:323
GDALDriverH GDALIdentifyDriver(const char *pszFilename, char **papszFileList)
Identify the driver that can open a raster file.
Definition: gdaldriver.cpp:1815
Definition: gdal.h:976
int GDALGetDriverCount(void)
Fetch the number of registered drivers.
Definition: gdaldrivermanager.cpp:318
Definition: gdal.h:185
Definition: gdal.h:191
Definition: gdal.h:62
CPLErr GDALCreateMaskBand(GDALRasterBandH hBand, int nFlags)
Adds a mask band to the current band.
Definition: gdalrasterband.cpp:4958
Definition: gdal.h:123
int GDALRATGetRowCount(GDALRasterAttributeTableH)
Fetch row count.
Definition: gdal_rat.cpp:1300
OGRwkbGeometryType
List of well known binary geometry types.
Definition: ogr_core.h:333
void * pProgressData
Definition: gdal.h:143
Definition: gdal.h:177
int GDALRATGetRowOfValue(GDALRasterAttributeTableH, double)
Get row for pixel value.
Definition: gdal_rat.cpp:347
CPLErr GDALRegenerateOverviews(GDALRasterBandH hSrcBand, int nOverviewCount, GDALRasterBandH *pahOverviewBands, const char *pszResampling, GDALProgressFunc pfnProgress, void *pProgressData)
Generate downsampled overviews.
Definition: overview.cpp:2291
Definition: gdal.h:978
CPLErr GDALFlushRasterCache(GDALRasterBandH hBand)
Flush raster data cache.
Definition: gdalrasterband.cpp:877
Definition: gdal.h:1108
GDALAsyncStatusType
status of the asynchronous stream
Definition: gdal.h:85
double GDALGetRasterNoDataValue(GDALRasterBandH, int *)
Fetch the no data value for this band.
Definition: gdalrasterband.cpp:1451
void GDALRATSetRowCount(GDALRasterAttributeTableH, int)
Set row count.
Definition: gdal_rat.cpp:305
void GDALSetCacheMax64(GIntBig nBytes)
Set maximum cache memory.
Definition: gdalrasterblock.cpp:130
void GDALDestroyRasterAttributeTable(GDALRasterAttributeTableH)
Destroys a RAT.
Definition: gdal_rat.cpp:1090
Definition: gdal.h:115
CPLErr GDALCopyDatasetFiles(GDALDriverH, const char *pszNewName, const char *pszOldName)
Copy the files of a dataset.
Definition: gdaldriver.cpp:1255
CPLErr GDALRATCreateColumn(GDALRasterAttributeTableH, const char *, GDALRATFieldType, GDALRATFieldUsage)
Create new column.
Definition: gdal_rat.cpp:407
Definition: gdal.h:61
int GDALLoadWorldFile(const char *, double *)
Read ESRI world file.
Definition: gdal_misc.cpp:1502
GDALProgressFunc pfnProgress
Definition: gdal.h:141
void * GDALRasterAttributeTableH
Opaque type used for the C bindings of the C++ GDALRasterAttributeTable class.
Definition: gdal.h:242
void GDALSetColorEntry(GDALColorTableH, int, const GDALColorEntry *)
Set entry in color table.
Definition: gdalcolortable.cpp:240
Definition: gdal.h:190
int GDALGetRasterYSize(GDALDatasetH)
Fetch raster height in pixels.
Definition: gdaldataset.cpp:693
GDALDataType GDALGetDataTypeByName(const char *)
Get data type by symbolic name.
Definition: gdal_misc.cpp:384
CPL error handling services.
GDALColorTableH GDALCreateColorTable(GDALPaletteInterp) CPL_WARN_UNUSED_RESULT
Construct a new color table.
Definition: gdalcolortable.cpp:61
double dfYSize
Definition: gdal.h:157
Definition: gdal.h:178
OGRErr GDALDatasetDeleteLayer(GDALDatasetH, int)
Delete the indicated layer from the datasource.
Definition: gdaldataset.cpp:3517
CPLErr GDALDatasetAdviseRead(GDALDatasetH hDS, int nDSXOff, int nDSYOff, int nDSXSize, int nDSYSize, int nBXSize, int nBYSize, GDALDataType eBDataType, int nBandCount, int *panBandCount, char **papszOptions)
Advise driver of upcoming read requests.
Definition: gdaldataset.cpp:2275
CPLErr GDALDatasetRasterIOEx(GDALDatasetH hDS, GDALRWFlag eRWFlag, int nDSXOff, int nDSYOff, int nDSXSize, int nDSYSize, void *pBuffer, int nBXSize, int nBYSize, GDALDataType eBDataType, int nBandCount, int *panBandCount, GSpacing nPixelSpace, GSpacing nLineSpace, GSpacing nBandSpace, GDALRasterIOExtraArg *psExtraArg) CPL_WARN_UNUSED_RESULT
Read/write a region of image data from multiple bands.
Definition: gdaldataset.cpp:2068
int GDALValidateCreationOptions(GDALDriverH, char **papszCreationOptions)
Validate the list of creation options that are handled by a driver.
Definition: gdaldriver.cpp:1407
Definition: gdal.h:68
Definition: gdal.h:204
void GDALComposeGeoTransforms(const double *padfGeoTransform1, const double *padfGeoTransform2, double *padfGeoTransformOut)
Compose two geotransforms.
Definition: gdal_misc.cpp:2302
CPLErr GDALDeleteRasterNoDataValue(GDALRasterBandH)
Remove the no data value for this band.
Definition: gdalrasterband.cpp:1565
Structure to pass extra arguments to RasterIO() method.
Definition: gdal.h:132
GDALDatasetH GDALOpen(const char *pszFilename, GDALAccess eAccess) CPL_WARN_UNUSED_RESULT
Open a raster file as a GDALDataset.
Definition: gdaldataset.cpp:2530
CPLErr GDALSetRasterNoDataValue(GDALRasterBandH, double)
Set the no data value for this band.
Definition: gdalrasterband.cpp:1515
GDALPaletteInterp
Definition: gdal.h:199
double GDALGetRasterMinimum(GDALRasterBandH, int *pbSuccess)
Fetch the minimum value for this band.
Definition: gdalrasterband.cpp:1745
CPLErr GDALSetRasterCategoryNames(GDALRasterBandH, char **)
Set the category names for this band.
Definition: gdalrasterband.cpp:1402
Definition: gdal.h:982
const char * GDALRATGetNameOfCol(GDALRasterAttributeTableH, int)
Fetch name of indicated column.
Definition: gdal_rat.cpp:1169
int GDALGetGCPCount(GDALDatasetH)
Get number of GCPs.
Definition: gdaldataset.cpp:1235
CPLErr GDALDeleteDataset(GDALDriverH, const char *)
Delete named dataset.
Definition: gdaldriver.cpp:1007
const char * GDALGetDriverShortName(GDALDriverH)
Return the short name of a driver.
Definition: gdaldriver.cpp:1291
Definition: gdal.h:974
const char * GDALGetGCPProjection(GDALDatasetH)
Get output projection for GCPs.
Definition: gdaldataset.cpp:1274
int GDALGetMaskFlags(GDALRasterBandH hBand)
Return the status flags of the mask band associated with the band.
Definition: gdalrasterband.cpp:4877
Definition: gdal.h:203
GDALColorTableH GDALGetRasterColorTable(GDALRasterBandH)
Fetch the color table associated with band.
Definition: gdalrasterband.cpp:1873
const char * GDALGetRasterUnitType(GDALRasterBandH)
Return raster unit type.
Definition: gdalrasterband.cpp:2428
CPLErr GDALGetGeoTransform(GDALDatasetH, double *)
Fetch the affine transformation coefficients.
Definition: gdaldataset.cpp:937
GDALDatasetH GDALCreate(GDALDriverH hDriver, const char *, int, int, int, GDALDataType, char **) CPL_WARN_UNUSED_RESULT
Create a new dataset with this driver.
Definition: gdaldriver.cpp:269
CPLErr GDALSetRasterColorTable(GDALRasterBandH, GDALColorTableH)
Set the raster color table.
Definition: gdalrasterband.cpp:1923
void * GDALDriverH
Opaque type used for the C bindings of the C++ GDALDriver class.
Definition: gdal.h:236
int GDALGetRasterXSize(GDALDatasetH)
Fetch raster width in pixels.
Definition: gdaldataset.cpp:654
const char * GDALGetColorInterpretationName(GDALColorInterp)
Get name of color interpretation.
Definition: gdal_misc.cpp:613
int GDALGetCacheMax(void)
Get maximum cache memory.
Definition: gdalrasterblock.cpp:184
void GDALClose(GDALDatasetH)
Close GDAL dataset.
Definition: gdaldataset.cpp:2981
int GDALReferenceDataset(GDALDatasetH)
Add one to dataset reference count.
Definition: gdaldataset.cpp:1100
int GDALDatasetTestCapability(GDALDatasetH, const char *)
Test if capability is available.
Definition: gdaldataset.cpp:3408
CPLErr GDALDatasetCopyWholeRaster(GDALDatasetH hSrcDS, GDALDatasetH hDstDS, char **papszOptions, GDALProgressFunc pfnProgress, void *pProgressData) CPL_WARN_UNUSED_RESULT
Copy all dataset raster data.
Definition: rasterio.cpp:3388
void * GDALMajorObjectH
Opaque type used for the C bindings of the C++ GDALMajorObject class.
Definition: gdal.h:227
CPLErr GDALRasterIOEx(GDALRasterBandH hRBand, GDALRWFlag eRWFlag, int nDSXOff, int nDSYOff, int nDSXSize, int nDSYSize, void *pBuffer, int nBXSize, int nBYSize, GDALDataType eBDataType, GSpacing nPixelSpace, GSpacing nLineSpace, GDALRasterIOExtraArg *psExtraArg) CPL_WARN_UNUSED_RESULT
Read/write a region of image data for this band.
Definition: gdalrasterband.cpp:336
GDALDriverH GDALGetDatasetDriver(GDALDatasetH)
Fetch the driver to which this dataset relates.
Definition: gdaldataset.cpp:1062
void GDALRATSetValueAsDouble(GDALRasterAttributeTableH, int, int, double)
Set field value from double.
Definition: gdal_rat.cpp:1717
Definition: gdal.h:65
OGRLayerH GDALDatasetGetLayer(GDALDatasetH, int)
Fetch a layer by index.
Definition: gdaldataset.cpp:3460
GDALDataType GDALGetRasterDataType(GDALRasterBandH)
Fetch the pixel data type for this band.
Definition: gdalrasterband.cpp:654
CPLErr GDALRasterAdviseRead(GDALRasterBandH hRB, int nDSXOff, int nDSYOff, int nDSXSize, int nDSYSize, int nBXSize, int nBYSize, GDALDataType eBDataType, char **papszOptions)
Advise driver of upcoming read requests.
Definition: gdalrasterband.cpp:3414
Definition: gdal.h:182
CPLErr GDALSetDefaultHistogram(GDALRasterBandH hBand, double dfMin, double dfMax, int nBuckets, int *panHistogram) CPL_WARN_DEPRECATED("Use GDALSetDefaultHistogramEx() instead")
Set default histogram.
Definition: gdalrasterband.cpp:4440
int GDALWriteWorldFile(const char *, const char *, double *)
Write ESRI world file.
Definition: gdal_misc.cpp:1755
char * pszId
Unique identifier, often numeric.
Definition: gdal.h:495
void GDALSwapWords(void *pData, int nWordSize, int nWordCount, int nWordSkip)
Byte swap words in-place.
Definition: rasterio.cpp:1576
CPLErr GDALGetDefaultHistogram(GDALRasterBandH hBand, double *pdfMin, double *pdfMax, int *pnBuckets, int **ppanHistogram, int bForce, GDALProgressFunc pfnProgress, void *pProgressData) CPL_WARN_DEPRECATED("Use GDALGetDefaultHistogramEx() instead")
Fetch default raster histogram.
Definition: gdalrasterband.cpp:3270
CPLErr GDALFillRaster(GDALRasterBandH hBand, double dfRealValue, double dfImaginaryValue)
Fill this band with a constant value.
Definition: gdalrasterband.cpp:1271
void GDALSetDescription(GDALMajorObjectH, const char *)
Set object description.
Definition: gdalmajorobject.cpp:132
Definition: gdal.h:116
Definition: gdal.h:967
Definition: gdal.h:118
CPLVirtualMem * GDALDatasetGetVirtualMem(GDALDatasetH hDS, GDALRWFlag eRWFlag, int nXOff, int nYOff, int nXSize, int nYSize, int nBufXSize, int nBufYSize, GDALDataType eBufType, int nBandCount, int *panBandMap, int nPixelSpace, GIntBig nLineSpace, GIntBig nBandSpace, size_t nCacheSize, size_t nPageSizeHint, int bSingleThreadUsage, char **papszOptions) CPL_WARN_UNUSED_RESULT
Create a CPLVirtualMem object from a GDAL dataset object.
Definition: gdalvirtualmem.cpp:880
CPLErr GDALRATSetLinearBinning(GDALRasterAttributeTableH, double, double)
Set linear binning information.
Definition: gdal_rat.cpp:455
Definition: gdal.h:180
GDALTileOrganization
Definition: gdal.h:1103
CPLErr GDALDatasetRasterIO(GDALDatasetH hDS, GDALRWFlag eRWFlag, int nDSXOff, int nDSYOff, int nDSXSize, int nDSYSize, void *pBuffer, int nBXSize, int nBYSize, GDALDataType eBDataType, int nBandCount, int *panBandCount, int nPixelSpace, int nLineSpace, int nBandSpace) CPL_WARN_UNUSED_RESULT
Read/write a region of image data from multiple bands.
Definition: gdaldataset.cpp:2038
int GDALReadWorldFile(const char *, const char *, double *)
Read ESRI world file.
Definition: gdal_misc.cpp:1596
GDALRasterBandH GDALGetRasterSampleOverviewEx(GDALRasterBandH, GUIntBig)
Fetch best sampling overview.
Definition: gdalrasterband.cpp:2145
GDALAccess
Definition: gdal.h:98
short c4
Definition: gdal.h:937
GDALRasterBandH GDALGetOverview(GDALRasterBandH, int)
Fetch overview raster band object.
Definition: gdalrasterband.cpp:2050
C API and defines for OGRFeature, OGRGeometry, and OGRDataSource related classes. ...
int GDALGetBandNumber(GDALRasterBandH)
Fetch the band number.
Definition: gdalrasterband.cpp:2593
void GDALDestroyColorTable(GDALColorTableH)
Destroys a color table.
Definition: gdalcolortable.cpp:89
double GDALGetRasterMaximum(GDALRasterBandH, int *pbSuccess)
Fetch the maximum value for this band.
Definition: gdalrasterband.cpp:1657
Definition: gdal.h:64
Definition: gdal.h:958
GDALRATFieldUsage
Field usage of raster attribute table.
Definition: gdal.h:964
Definition: gdal.h:186
void GDALRATSetValueAsInt(GDALRasterAttributeTableH, int, int, int)
Set field value from integer.
Definition: gdal_rat.cpp:1648
const char * GDALGetMetadataItem(GDALMajorObjectH, const char *, const char *)
Fetch single metadata item.
Definition: gdalmajorobject.cpp:348
CPLErr GDALRenameDataset(GDALDriverH, const char *pszNewName, const char *pszOldName)
Rename a dataset.
Definition: gdaldriver.cpp:1132
Definition: gdal.h:972
void * GDALColorTableH
Opaque type used for the C bindings of the C++ GDALColorTable class.
Definition: gdal.h:239
double dfGCPX
X position of GCP in georeferenced space.
Definition: gdal.h:506
int GDALGetRasterBandYSize(GDALRasterBandH)
Fetch YSize of raster.
Definition: gdalrasterband.cpp:2551
CPLErr GDALRATValuesIOAsDouble(GDALRasterAttributeTableH hRAT, GDALRWFlag eRWFlag, int iField, int iStartRow, int iLength, double *pdfData)
Read or Write a block of doubles to/from the Attribute Table.
Definition: gdal_rat.cpp:138
Definition: gdal.h:980
Definition: gdal.h:188
OGRErr GDALDatasetCommitTransaction(GDALDatasetH hDS)
For datasources which support transactions, CommitTransaction commits a transaction.
Definition: gdaldataset.cpp:6017
CPLVirtualMem * GDALDatasetGetTiledVirtualMem(GDALDatasetH hDS, GDALRWFlag eRWFlag, int nXOff, int nYOff, int nXSize, int nYSize, int nTileXSize, int nTileYSize, GDALDataType eBufType, int nBandCount, int *panBandMap, GDALTileOrganization eTileOrganization, size_t nCacheSize, int bSingleThreadUsage, char **papszOptions) CPL_WARN_UNUSED_RESULT
Create a CPLVirtualMem object from a GDAL dataset object, with tiling organization.
Definition: gdalvirtualmem.cpp:1429
Definition: gdal.h:120
double dfXSize
Definition: gdal.h:155
int GDALGetDataTypeSizeBits(GDALDataType eDataType)
Get data type size in bits.
Definition: gdal_misc.cpp:249
void GDALDestroyDriver(GDALDriverH)
Destroy a GDALDriver.
Definition: gdaldriver.cpp:86
GDALColorInterp
Definition: gdal.h:173
int GDALGetDataTypeSizeBytes(GDALDataType)
Get data type size in bytes.
Definition: gdal_misc.cpp:204
double GDALGetRasterScale(GDALRasterBandH, int *pbSuccess)
Fetch the raster value scale.
Definition: gdalrasterband.cpp:2339
CPLErr GDALSetGeoTransform(GDALDatasetH, double *)
Set the affine transformation coefficients.
Definition: gdaldataset.cpp:985
double dfYOff
Definition: gdal.h:153
GDALDatasetH GDALCreateCopy(GDALDriverH, const char *, GDALDatasetH, int, char **, GDALProgressFunc, void *) CPL_WARN_UNUSED_RESULT
Create a copy of a dataset.
Definition: gdaldriver.cpp:837
Definition: gdal.h:192
GDALRasterBandH GDALGetRasterSampleOverview(GDALRasterBandH, int)
Fetch best sampling overview.
Definition: gdalrasterband.cpp:2123
double dfGCPLine
Line (y) location of GCP on raster.
Definition: gdal.h:503
CPLErr GDALGetDefaultHistogramEx(GDALRasterBandH hBand, double *pdfMin, double *pdfMax, int *pnBuckets, GUIntBig **ppanHistogram, int bForce, GDALProgressFunc pfnProgress, void *pProgressData)
Fetch default raster histogram.
Definition: gdalrasterband.cpp:3333
int GDALDumpOpenDatasets(FILE *)
List open datasets.
Definition: gdaldataset.cpp:3078
Definition: gdal.h:117
double GDALGetRasterOffset(GDALRasterBandH, int *pbSuccess)
Fetch the raster value offset.
Definition: gdalrasterband.cpp:2240
int GDALInvGeoTransform(double *padfGeoTransformIn, double *padfInvGeoTransformOut) CPL_WARN_UNUSED_RESULT
Invert Geotransform.
Definition: gdaltransformer.cpp:3093
Definition: gdal.h:66
Definition: gdal.h:176
OGRLayerH GDALDatasetExecuteSQL(GDALDatasetH, const char *, OGRGeometryH, const char *)
Execute an SQL statement against the data store.
Definition: gdaldataset.cpp:3763
int GDALFlushCacheBlock(void)
Try to flush one cached raster block.
Definition: gdalrasterblock.cpp:340
void GDALCopyBits(const GByte *pabySrcData, int nSrcOffset, int nSrcStep, GByte *pabyDstData, int nDstOffset, int nDstStep, int nBitCount, int nStepCount)
Bitwise word copying.
Definition: rasterio.cpp:2439
void GDALGetBlockSize(GDALRasterBandH, int *pnXSize, int *pnYSize)
Fetch the "natural" block size of this band.
Definition: gdalrasterband.cpp:721
void GDALDatasetSetStyleTableDirectly(GDALDatasetH, OGRStyleTableH)
Set dataset style table.
Definition: gdaldataset.cpp:3820
CPLErr GDALSetDefaultRAT(GDALRasterBandH, GDALRasterAttributeTableH)
Set default Raster Attribute Table.
Definition: gdalrasterband.cpp:4571
OGRLayerH GDALDatasetCreateLayer(GDALDatasetH, const char *, OGRSpatialReferenceH, OGRwkbGeometryType, char **)
This function attempts to create a new layer on the dataset with the indicated name, coordinate system, geometry type.
Definition: gdaldataset.cpp:3666
char ** GDALGetFileList(GDALDatasetH)
Fetch files forming dataset.
Definition: gdaldataset.cpp:2404
CPLErr GDALRATValuesIOAsInteger(GDALRasterAttributeTableH hRAT, GDALRWFlag eRWFlag, int iField, int iStartRow, int iLength, int *pnData)
Read or Write a block of ints to/from the Attribute Table.
Definition: gdal_rat.cpp:200
Definition: gdal.h:99
void GDALRATDumpReadable(GDALRasterAttributeTableH, FILE *)
Dump RAT in readable form.
Definition: gdal_rat.cpp:1007
double dfGCPZ
Elevation of GCP, or zero if not known.
Definition: gdal.h:512
Definition: gdal.h:960
GDALRIOResampleAlg eResampleAlg
Definition: gdal.h:138
double GDALDecToPackedDMS(double)
Convert decimal degrees into packed DMS value (DDDMMMSSS.SS).
Definition: gdal_misc.cpp:1995
Definition: gdal.h:201
GDALRasterAttributeTableH GDALCreateRasterAttributeTable(void) CPL_WARN_UNUSED_RESULT
Construct empty table.
Definition: gdal_rat.cpp:1051
CPLErr GDALSetRasterStatistics(GDALRasterBandH hBand, double dfMin, double dfMax, double dfMean, double dfStdDev)
Set statistics on band.
Definition: gdalrasterband.cpp:4031
Ground Control Point.
Definition: gdal.h:492
GDALPaletteInterp GDALGetPaletteInterpretation(GDALColorTableH)
Fetch palette interpretation.
Definition: gdalcolortable.cpp:352
GIntBig GDALGetCacheUsed64(void)
Get cache memory used.
Definition: gdalrasterblock.cpp:320
GDALDatasetH GDALGetBandDataset(GDALRasterBandH)
Fetch the owning dataset handle.
Definition: gdalrasterband.cpp:2634
int GDALGetRasterBandXSize(GDALRasterBandH)
Fetch XSize of raster.
Definition: gdalrasterband.cpp:2514
OGRErr GDALDatasetRollbackTransaction(GDALDatasetH hDS)
For datasources which support transactions, RollbackTransaction will roll back a datasource to its st...
Definition: gdaldataset.cpp:6066
int GDALDereferenceDataset(GDALDatasetH)
Subtract one from dataset reference count.
Definition: gdaldataset.cpp:1139
GDALRATFieldType GDALRATGetTypeOfCol(GDALRasterAttributeTableH, int)
Fetch column type.
Definition: gdal_rat.cpp:1235
int GDALGetCacheUsed(void)
Get cache memory used.
Definition: gdalrasterblock.cpp:290
Definition: gdal.h:969
CPLErr GDALRasterBandCopyWholeRaster(GDALRasterBandH hSrcBand, GDALRasterBandH hDstBand, char **papszOptions, GDALProgressFunc pfnProgress, void *pProgressData) CPL_WARN_UNUSED_RESULT
Copy all raster band raster data.
Definition: rasterio.cpp:3675
char ** GDALGetMetadata(GDALMajorObjectH, const char *)
Fetch metadata.
Definition: gdalmajorobject.cpp:260
Definition: gdal.h:105

Generated for GDAL by doxygen 1.8.13.