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 
634 int CPL_DLL GDALDatasetGetLayerCount( GDALDatasetH );
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
721 GDALGetRasterColorInterpretation( GDALRasterBandH );
722 CPLErr CPL_DLL CPL_STDCALL
724 GDALColorTableH CPL_DLL CPL_STDCALL GDALGetRasterColorTable( GDALRasterBandH );
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
790 GDALGetRasterSampleOverview( GDALRasterBandH, int );
791 GDALRasterBandH CPL_DLL CPL_STDCALL
792 GDALGetRasterSampleOverviewEx( GDALRasterBandH, GUIntBig );
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 );
942 GDALColorTableH CPL_DLL CPL_STDCALL GDALCloneColorTable( GDALColorTableH );
943 GDALPaletteInterp CPL_DLL CPL_STDCALL GDALGetPaletteInterpretation( 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(
989  GDALRasterAttributeTableH );
990 
991 int CPL_DLL CPL_STDCALL GDALRATGetColumnCount( GDALRasterAttributeTableH );
992 
993 const char CPL_DLL * CPL_STDCALL GDALRATGetNameOfCol(
994  GDALRasterAttributeTableH, int );
995 GDALRATFieldUsage CPL_DLL CPL_STDCALL GDALRATGetUsageOfCol(
996  GDALRasterAttributeTableH, int );
997 GDALRATFieldType CPL_DLL CPL_STDCALL GDALRATGetTypeOfCol(
998  GDALRasterAttributeTableH, int );
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 *,
1032  GDALRATFieldUsage );
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(
1038  GDALRasterAttributeTableH, GDALColorTableH );
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
1044  GDALRATClone( GDALRasterAttributeTableH );
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 
1069 CPLVirtualMem CPL_DLL* GDALDatasetGetVirtualMem( GDALDatasetH hDS,
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 
1084 CPLVirtualMem CPL_DLL* GDALRasterBandGetVirtualMem( GDALRasterBandH hBand,
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 
1097 CPLVirtualMem CPL_DLL* GDALGetVirtualMemAuto( GDALRasterBandH hBand,
1098  GDALRWFlag eRWFlag,
1099  int *pnPixelSpace,
1100  GIntBig *pnLineSpace,
1101  char **papszOptions ) CPL_WARN_UNUSED_RESULT;
1102 
1103 typedef enum
1104 {
1112 
1113 CPLVirtualMem CPL_DLL* GDALDatasetGetTiledVirtualMem( GDALDatasetH hDS,
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 
1125 CPLVirtualMem CPL_DLL* GDALRasterBandGetTiledVirtualMem( GDALRasterBandH hBand,
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:3535
Definition: gdal.h:183
CPLErr GDALAddBand(GDALDatasetH hDS, GDALDataType eType, char **papszOptions)
Add a band to a dataset.
Definition: gdaldataset.cpp:546
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:2618
Definition: gdal.h:100
CPLErr GDALSetProjection(GDALDatasetH, const char *)
Set the projection reference string for this dataset.
Definition: gdaldataset.cpp:864
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:3954
Definition: gdal.h:965
int GDALGetOverviewCount(GDALRasterBandH)
Return the number of overview layers available.
Definition: gdalrasterband.cpp:2004
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:3359
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:2468
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:2283
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:4478
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:2474
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:1457
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:3094
CPLErr GDALSetGCPs(GDALDatasetH, int, const GDAL_GCP *, const char *)
Assign GCPs.
Definition: gdaldataset.cpp:1367
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:819
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:3840
GDALDatasetH GDALOpenShared(const char *, GDALAccess) CPL_WARN_UNUSED_RESULT
Open a raster file as a GDALDataset.
Definition: gdaldataset.cpp:2947
Definition: gdal.h:968
Definition: gdal.h:981
CPLErr GDALSetRasterScale(GDALRasterBandH hBand, double dfNewOffset)
Set scaling ratio.
Definition: gdalrasterband.cpp:2383
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:3480
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:1964
GDALRasterAttributeTableH GDALGetDefaultRAT(GDALRasterBandH hBand)
Fetch default Raster Attribute Table.
Definition: gdalrasterband.cpp:4521
void GDALComputeRasterMinMax(GDALRasterBandH hBand, int bApproxOK, double adfMinMax[2])
Compute the min/max values for a band.
Definition: gdalrasterband.cpp:4389
CPLErr GDALSetRasterColorInterpretation(GDALRasterBandH, GDALColorInterp)
Set color interpretation of a band.
Definition: gdalrasterband.cpp:1828
GDALDriverH GDALGetDriverByName(const char *)
Fetch a driver based on the short name.
Definition: gdaldrivermanager.cpp:567
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:5954
Definition: gdal.h:187
void GDALDestroyDriverManager(void)
Destroy the driver manager.
Definition: gdaldrivermanager.cpp:838
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:3703
char ** GDALGetRasterCategoryNames(GDALRasterBandH)
Fetch the list of category names for this raster.
Definition: gdalrasterband.cpp:1351
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:416
void * GDALGetInternalHandle(GDALDatasetH, const char *)
Fetch a format specific internally meaningful handle.
Definition: gdaldataset.cpp:1017
int GDALGetRasterCount(GDALDatasetH)
Fetch the number of raster bands on this dataset.
Definition: gdaldataset.cpp:773
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:4796
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:220
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:3065
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:2129
GDALColorInterp GDALGetRasterColorInterpretation(GDALRasterBandH)
How should this band be interpreted as color?
Definition: gdalrasterband.cpp:1784
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:5268
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:737
const GDAL_GCP * GDALGetGCPs(GDALDatasetH)
Fetch GCPs.
Definition: gdaldataset.cpp:1303
int GDALDatasetGetLayerCount(GDALDatasetH)
Get the number of layers in this dataset.
Definition: gdaldataset.cpp:3424
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:3785
double dfXOff
Definition: gdal.h:151
GDALAccess GDALGetRasterAccess(GDALRasterBandH)
Find out if we have update permission for this band.
Definition: gdalrasterband.cpp:1305
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:3153
char ** GDALGetMetadataDomainList(GDALMajorObjectH hObject)
Fetch list of metadata domains.
Definition: gdalmajorobject.cpp:213
int GDALGetAccess(GDALDatasetH hDS)
Return access flag.
Definition: gdaldataset.cpp:2163
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:4955
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:1448
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:685
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:3509
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:2267
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:2060
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:1562
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:2522
CPLErr GDALSetRasterNoDataValue(GDALRasterBandH, double)
Set the no data value for this band.
Definition: gdalrasterband.cpp:1512
GDALPaletteInterp
Definition: gdal.h:199
double GDALGetRasterMinimum(GDALRasterBandH, int *pbSuccess)
Fetch the minimum value for this band.
Definition: gdalrasterband.cpp:1742
CPLErr GDALSetRasterCategoryNames(GDALRasterBandH, char **)
Set the category names for this band.
Definition: gdalrasterband.cpp:1399
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:1227
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:1266
int GDALGetMaskFlags(GDALRasterBandH hBand)
Return the status flags of the mask band associated with the band.
Definition: gdalrasterband.cpp:4874
Definition: gdal.h:203
GDALColorTableH GDALGetRasterColorTable(GDALRasterBandH)
Fetch the color table associated with band.
Definition: gdalrasterband.cpp:1870
const char * GDALGetRasterUnitType(GDALRasterBandH)
Return raster unit type.
Definition: gdalrasterband.cpp:2425
CPLErr GDALGetGeoTransform(GDALDatasetH, double *)
Fetch the affine transformation coefficients.
Definition: gdaldataset.cpp:929
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:1920
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:646
const char * GDALGetColorInterpretationName(GDALColorInterp)
Get name of color interpretation.
Definition: gdal_misc.cpp:613
int GDALGetCacheMax(void)
Get maximum cache memory.
Definition: gdalrasterblock.cpp:181
void GDALClose(GDALDatasetH)
Close GDAL dataset.
Definition: gdaldataset.cpp:2973
int GDALReferenceDataset(GDALDatasetH)
Add one to dataset reference count.
Definition: gdaldataset.cpp:1092
int GDALDatasetTestCapability(GDALDatasetH, const char *)
Test if capability is available.
Definition: gdaldataset.cpp:3400
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:1054
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:3452
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:3411
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:4437
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:3267
CPLErr GDALFillRaster(GDALRasterBandH hBand, double dfRealValue, double dfImaginaryValue)
Fill this band with a constant value.
Definition: gdalrasterband.cpp:1268
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:2030
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:2142
GDALAccess
Definition: gdal.h:98
short c4
Definition: gdal.h:937
GDALRasterBandH GDALGetOverview(GDALRasterBandH, int)
Fetch overview raster band object.
Definition: gdalrasterband.cpp:2047
C API and defines for OGRFeature, OGRGeometry, and OGRDataSource related classes. ...
int GDALGetBandNumber(GDALRasterBandH)
Fetch the band number.
Definition: gdalrasterband.cpp:2590
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:1654
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:2548
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:6009
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:2336
CPLErr GDALSetGeoTransform(GDALDatasetH, double *)
Set the affine transformation coefficients.
Definition: gdaldataset.cpp:977
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:2120
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:3330
int GDALDumpOpenDatasets(FILE *)
List open datasets.
Definition: gdaldataset.cpp:3070
Definition: gdal.h:117
double GDALGetRasterOffset(GDALRasterBandH, int *pbSuccess)
Fetch the raster value offset.
Definition: gdalrasterband.cpp:2237
int GDALInvGeoTransform(double *padfGeoTransformIn, double *padfInvGeoTransformOut) CPL_WARN_UNUSED_RESULT
Invert Geotransform.
Definition: gdaltransformer.cpp:3091
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:3755
int GDALFlushCacheBlock(void)
Try to flush one cached raster block.
Definition: gdalrasterblock.cpp:337
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:3812
CPLErr GDALSetDefaultRAT(GDALRasterBandH, GDALRasterAttributeTableH)
Set default Raster Attribute Table.
Definition: gdalrasterband.cpp:4568
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:3658
char ** GDALGetFileList(GDALDatasetH)
Fetch files forming dataset.
Definition: gdaldataset.cpp:2396
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:4028
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:317
GDALDatasetH GDALGetBandDataset(GDALRasterBandH)
Fetch the owning dataset handle.
Definition: gdalrasterband.cpp:2631
int GDALGetRasterBandXSize(GDALRasterBandH)
Fetch XSize of raster.
Definition: gdalrasterband.cpp:2511
OGRErr GDALDatasetRollbackTransaction(GDALDatasetH hDS)
For datasources which support transactions, RollbackTransaction will roll back a datasource to its st...
Definition: gdaldataset.cpp:6058
int GDALDereferenceDataset(GDALDatasetH)
Subtract one from dataset reference count.
Definition: gdaldataset.cpp:1131
GDALRATFieldType GDALRATGetTypeOfCol(GDALRasterAttributeTableH, int)
Fetch column type.
Definition: gdal_rat.cpp:1235
int GDALGetCacheUsed(void)
Get cache memory used.
Definition: gdalrasterblock.cpp:287
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.9.1.