Main Page   Class Hierarchy   Compound List   File List   Compound Members   File Members   Related Pages  

gdal.h File Reference

Public (C callable) GDAL entry points. More...

#include "cpl_port.h"
#include "cpl_error.h"

Go to the source code of this file.

Compounds

struct  GDAL_GCP
struct  GDALColorEntry

Defines

#define CPLE_WrongFormat   200

Typedefs

typedef void* GDALMajorObjectH
typedef void* GDALDatasetH
typedef void* GDALRasterBandH
typedef void* GDALDriverH
typedef void* GDALProjDefH
typedef void* GDALColorTableH
typedef int (* GDALProgressFunc )(double,const char *, void *)

Enumerations

enum  GDALDataType {
  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,
  GDT_TypeCount = 12
}
enum  GDALAccess {
  GA_ReadOnly = 0,
  GA_Update = 1
}
enum  GDALRWFlag {
  GF_Read = 0,
  GF_Write = 1
}
enum  GDALColorInterp {
  GCI_Undefined = 0,
  GCI_GrayIndex = 1,
  GCI_PaletteIndex = 2,
  GCI_RedBand = 3,
  GCI_GreenBand = 4,
  GCI_BlueBand = 5,
  GCI_AlphaBand = 6,
  GCI_HueBand = 7,
  GCI_SaturationBand = 8,
  GCI_LightnessBand = 9,
  GCI_CyanBand = 10,
  GCI_MagentaBand = 11,
  GCI_YellowBand = 12,
  GCI_BlackBand = 13
}
enum  GDALPaletteInterp {
  GPI_Gray = 0,
  GPI_RGB = 1,
  GPI_CMYK = 2,
  GPI_HLS = 3
}

Functions

int CPL_DLL GDALGetDataTypeSize ( GDALDataType )
int CPL_DLL GDALDataTypeIsComplex ( GDALDataType )
const char CPL_DLL* GDALGetDataTypeName ( GDALDataType )
const char CPL_DLL* GDALGetColorInterpretationName ( GDALColorInterp )
const char CPL_DLL* GDALGetPaletteInterpretationName ( GDALPaletteInterp )
int CPL_DLL GDALDummyProgress ( double, const char *, void *)
 Stub progress function. More...

int CPL_DLL GDALTermProgress ( double, const char *, void *)
int CPL_DLL GDALScaledProgress ( double, const char *, void *)
void CPL_DLL* GDALCreateScaledProgress ( double, double, GDALProgressFunc, void * )
void CPL_DLL GDALDestroyScaledProgress ( void * )
void CPL_DLL GDALAllRegister ( void )
 Register all known configured GDAL drivers. More...

GDALDatasetH CPL_DLL GDALCreate ( GDALDriverH hDriver, const char *, int, int, int, GDALDataType, char ** )
GDALDatasetH CPL_DLL GDALCreateCopy ( GDALDriverH, const char *, GDALDatasetH, int, char **, GDALProgressFunc, void * )
GDALDatasetH CPL_DLL GDALOpen ( const char *, GDALAccess )
 Open a raster file as a GDALDataset. More...

GDALDriverH CPL_DLL GDALGetDriverByName ( const char * )
int CPL_DLL GDALGetDriverCount ()
GDALDriverH CPL_DLL GDALGetDriver ( int )
int CPL_DLL GDALRegisterDriver ( GDALDriverH )
void CPL_DLL GDALDeregisterDriver ( GDALDriverH )
CPLErr CPL_DLL GDALDeleteDataset ( GDALDriverH, const char * )
const char CPL_DLL* GDALGetDriverShortName ( GDALDriverH )
const char CPL_DLL* GDALGetDriverLongName ( GDALDriverH )
const char CPL_DLL* GDALGetDriverHelpTopic ( GDALDriverH )
void CPL_DLL GDALInitGCPs ( int, GDAL_GCP * )
void CPL_DLL GDALDeinitGCPs ( int, GDAL_GCP * )
GDAL_GCP CPL_DLL* GDALDuplicateGCPs ( int, const GDAL_GCP * )
char CPL_DLL** GDALGetMetadata ( GDALMajorObjectH, const char * )
CPLErr CPL_DLL GDALSetMetadata ( GDALMajorObjectH, char **, const char * )
char CPL_DLL** GDALGetMetadataItem ( GDALMajorObjectH, const char * )
CPLErr CPL_DLL GDALSetMetadataItem ( GDALMajorObjectH, const char *, const char *, const char * )
const char CPL_DLL* GDALGetDescription ( GDALMajorObjectH )
GDALDriverH CPL_DLL GDALGetDatasetDriver ( GDALDatasetH )
void CPL_DLL GDALClose ( GDALDatasetH )
int CPL_DLL GDALGetRasterXSize ( GDALDatasetH )
int CPL_DLL GDALGetRasterYSize ( GDALDatasetH )
int CPL_DLL GDALGetRasterCount ( GDALDatasetH )
GDALRasterBandH CPL_DLL GDALGetRasterBand ( GDALDatasetH, int )
const char CPL_DLL* GDALGetProjectionRef ( GDALDatasetH )
CPLErr CPL_DLL GDALSetProjection ( GDALDatasetH, const char * )
CPLErr CPL_DLL GDALGetGeoTransform ( GDALDatasetH, double * )
CPLErr CPL_DLL GDALSetGeoTransform ( GDALDatasetH, double * )
int CPL_DLL GDALGetGCPCount ( GDALDatasetH )
const char CPL_DLL* GDALGetGCPProjection ( GDALDatasetH )
const GDAL_GCP CPL_DLL* GDALGetGCPs ( GDALDatasetH )
void CPL_DLL* GDALGetInternalHandle ( GDALDatasetH, const char * )
int CPL_DLL GDALReferenceDataset ( GDALDatasetH )
int CPL_DLL GDALDereferenceDataset ( GDALDatasetH )
CPLErr CPL_DLL GDALBuildOverviews ( GDALDatasetH, const char *, int, int *, int, int *, GDALProgressFunc, void * )
GDALDataType CPL_DLL GDALGetRasterDataType ( GDALRasterBandH )
void CPL_DLL GDALGetBlockSize ( GDALRasterBandH, int * pnXSize, int * pnYSize )
CPLErr CPL_DLL 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 )
CPLErr CPL_DLL GDALReadBlock ( GDALRasterBandH, int, int, void * )
CPLErr CPL_DLL GDALWriteBlock ( GDALRasterBandH, int, int, void * )
int CPL_DLL GDALGetRasterBandXSize ( GDALRasterBandH )
int CPL_DLL GDALGetRasterBandYSize ( GDALRasterBandH )
char CPL_DLL** GDALGetRasterMetadata ( GDALRasterBandH )
GDALColorInterp CPL_DLL GDALGetRasterColorInterpretation ( GDALRasterBandH )
GDALColorTableH CPL_DLL GDALGetRasterColorTable ( GDALRasterBandH )
int CPL_DLL GDALHasArbitraryOverviews ( GDALRasterBandH )
int CPL_DLL GDALGetOverviewCount ( GDALRasterBandH )
GDALRasterBandH CPL_DLL GDALGetOverview ( GDALRasterBandH, int )
double CPL_DLL GDALGetRasterNoDataValue ( GDALRasterBandH, int *pbSuccess )
double CPL_DLL GDALGetRasterMinimum ( GDALRasterBandH, int *pbSuccess )
double CPL_DLL GDALGetRasterMaximum ( GDALRasterBandH, int *pbSuccess )
void CPL_DLL GDALComputeRasterMinMax ( GDALRasterBandH hBand, int bApproxOK, double adfMinMax[2] )
 Compute the min/max values for a band. More...

CPLErr CPL_DLL GDALFlushRasterCache ( GDALRasterBandH hBand )
CPLErr CPL_DLL GDALGetRasterHistogram ( GDALRasterBandH hBand, double dfMin, double dfMax, int nBuckets, int *panHistogram, int bIncludeOutOfRange, int bApproxOK, GDALProgressFunc pfnProgress, void * pProgressData )
int CPL_DLL GDALGetRandomRasterSample ( GDALRasterBandH, int, float * )
GDALRasterBandH CPL_DLL GDALGetRasterSampleOverview ( GDALRasterBandH, int )
 Fetch best sampling overview. More...

void CPL_DLL GDALSwapWords ( void *pData, int nWordSize, int nWordCount, int nWordSkip )
void CPL_DLL GDALCopyWords ( void * pSrcData, GDALDataType eSrcType, int nSrcPixelOffset, void * pDstData, GDALDataType eDstType, int nDstPixelOffset, int nWordCount )
GDALColorTableH CPL_DLL GDALCreateColorTable ( GDALPaletteInterp )
void CPL_DLL GDALDestroyColorTable ( GDALColorTableH )
GDALColorTableH CPL_DLL GDALCloneColorTable ( GDALColorTableH )
GDALPaletteInterp CPL_DLL GDALGetPaletteInterpretation ( GDALColorTableH )
int CPL_DLL GDALGetColorEntryCount ( GDALColorTableH )
const GDALColorEntry CPL_DLL* GDALGetColorEntry ( GDALColorTableH, int )
int CPL_DLL GDALGetColorEntryAsRGB ( GDALColorTableH, int, GDALColorEntry *)
void CPL_DLL GDALSetColorEntry ( GDALColorTableH, int, const GDALColorEntry * )
GDALProjDefH CPL_DLL GDALCreateProjDef ( const char * )
CPLErr CPL_DLL GDALReprojectToLongLat ( GDALProjDefH, double *, double * )
CPLErr CPL_DLL GDALReprojectFromLongLat ( GDALProjDefH, double *, double * )
void CPL_DLL GDALDestroyProjDef ( GDALProjDefH )
const char CPL_DLL* GDALDecToDMS ( double, const char *, int )
void CPL_DLL GDALSetCacheMax ( int nBytes )
int CPL_DLL GDALGetCacheMax ()
int CPL_DLL GDALGetCacheUsed ()
int CPL_DLL GDALFlushCacheBlock ()


Detailed Description

Public (C callable) GDAL entry points.


Typedef Documentation

typedef int (* GDALProgressFunc)(double,const char *, void *)
 

Progresss function signature, see GDALDummyProgress() for details.


Enumeration Type Documentation

enum GDALAccess
 

Flag indicating read/write, or read-only access to data.

Enumeration values:
GA_ReadOnly   Read only (no update) access
GA_Update   Read/write access.

enum GDALColorInterp
 

Types of color interpretation for raster bands.

Enumeration values:
GCI_GrayIndex   Greyscale
GCI_PaletteIndex   Paletted (see associated color table)
GCI_RedBand   Red band of RGBA image
GCI_GreenBand   Green band of RGBA image
GCI_BlueBand   Blue band of RGBA image
GCI_AlphaBand   Alpha (0=transparent, 255=opaque)
GCI_HueBand   Hue band of HLS image
GCI_SaturationBand   Saturation band of HLS image
GCI_LightnessBand   Lightness band of HLS image
GCI_CyanBand   Cyan band of CMYK image
GCI_MagentaBand   Magenta band of CMYK image
GCI_YellowBand   Yellow band of CMYK image
GCI_BlackBand   Black band of CMLY image

enum GDALDataType
 

Pixel data types

Enumeration values:
GDT_Byte   Eight bit unsigned integer
GDT_UInt16   Sixteen bit unsigned integer
GDT_Int16   Sixteen bit signed integer
GDT_UInt32   Thirty two bit unsigned integer
GDT_Int32   Thirty two bit signed integer
GDT_Float32   Thirty two bit floating point
GDT_Float64   Sixty four bit floating point
GDT_CInt16   Complex Int16
GDT_CInt32   Complex Int32
GDT_CFloat32   Complex Float32
GDT_CFloat64   Complex Float64

enum GDALPaletteInterp
 

Types of color interpretations for a GDALColorTable.

Enumeration values:
GPI_Gray   Grayscale (in GDALColorEntry.c1)
GPI_RGB   Red, Green, Blue and Alpha in (in c1, c2, c3 and c4)
GPI_CMYK   Cyan, Magenta, Yellow and Black (in c1, c2, c3 and c4)
GPI_HLS   Hue, Lightness and Saturation (in c1, c2, and c3)

enum GDALRWFlag
 

Read/Write flag for RasterIO() method

Enumeration values:
GF_Read   Read data
GF_Write   Write data


Function Documentation

CPL_C_END void GDALAllRegister ( void )
 

Register all known configured GDAL drivers.

This function will drive any of the following that are configured into GDAL. Possible others as well that haven't been updated in this documentation:

  • GeoTIFF (GTiff)
  • Geosoft GXF (GXF)
  • Erdas Imagine (HFA)
  • CEOS (CEOS)
  • ELAS (ELAS)
  • Arc/Info Binary Grid (AIGrid)
  • SDTS Raster DEM (SDTS)
  • OGDI (OGDI)
  • ESRI Labelled BIL (EHdr)
  • PCI .aux Labelled Raw Raster (PAux)

void GDALComputeRasterMinMax ( GDALRasterBandH hBand,
int bApproxOK,
double adfMinMax[2] )
 

Compute the min/max values for a band.

If approximate is OK, then the band's GetMinimum()/GetMaximum() will be trusted. If it doesn't work, a subsample of blocks will be read to get an approximate min/max. If the band has a nodata value it will be excluded from the minimum and maximum.

If bApprox is FALSE, then all pixels will be read and used to compute an exact range.

Parameters:
hBand   the band to copmute the range for.
bApproxOK   TRUE if an approximate (faster) answer is OK, otherwise FALSE.
adfMinMax   the array in which the minimum (adfMinMax[0]) and the maximum (adfMinMax[1]) are returned.

int GDALDummyProgress ( double,
const char *,
void * )
 

Stub progress function.

Many long running operations within GDAL the option of passing a progress function. The progress function is intended to provide a way of displaying a progress indicator to the user, and for the user to terminate the process prematurely. Applications not desiring to utilize this support should normally pass GDALDummyProgress as the pfnProgress argument and NULL as the pData argument.

Applications wishing to take advantage of the progress semantics should pass a function implementing GDALProgressFunc semantics.

 typedef int (*GDALProgressFunc)(double dfComplete,
                                 const char *pszMessage, 
                                 void *pData);
 
Parameters:
dfComplete   Passed in the with ratio of the operation that is complete, and is a value between 0.0 and 1.0.
pszMessage   This is normally passed in as NULL, but will occasionally be passed in with a message about what is happening that may be displayed to the user.
pData   Application data (as passed via pData into GDAL operation).

Returns:
TRUE if the operation should continue, or FALSE if the user has requested a cancel.

For example, an application might implement the following simple text progress reporting mechanism, using pData to pass a default message:

 int MyTextProgress( double dfComplete, const char *pszMessage, void *pData)
 {
     if( pszMessage != NULL )
         printf( "d%% complete: s
", (int) (dfComplete*100), pszMessage ); else if( pData != NULL ) printf( "d%% complete:s
", (int) (dfComplete*100), (char *) pData ); else printf( "d%% complete.\n", (int) (dfComplete*100) ); return TRUE; }

This could be utilized with the GDALDataset::BuildOverviews() method like this:

      int       anOverviewList[3] = {2, 4, 8};

      poDataset->BuildOverviews( "NEAREST", 3, anOverviewList, 0, NULL, 
                                 MyTextProgress, "building overviews" );
 

More often that implementing custom progress functions, applications will just use existing progress functions like GDALDummyProgress(), and GDALScaledProgress(). Python scripts also can pass progress functions.

const char * GDALGetColorInterpretationName ( GDALColorInterp eInterp )
 

Translate a GDALColorInterp into a user displayable string.

const char * GDALGetPaletteInterpretationName ( GDALPaletteInterp eInterp )
 

Translate a GDALPaletteInterp into a user displayable string.

GDALRasterBandH GDALGetRasterSampleOverview ( GDALRasterBandH hBand,
int nDesiredSamples )
 

Fetch best sampling overview.

Returns the most reduced overview of the given band that still satisfies the desired number of samples. This function can be used with zero as the number of desired samples to fetch the most reduced overview. The same band as was passed in will be returned if it has not overviews, or if none of the overviews have enough samples.

Parameters:
hBand   the band to search for overviews on.
nDesiredSamples   the returned band will have at least this many pixels.
Returns:
optimal overview or hBand itself.

GDALDatasetH GDALOpen ( const char * pszFilename,
GDALAccess eAccess )
 

Open a raster file as a GDALDataset.

Parameters:
pszFilename   the name of the file to access. In the case of exotic drivers this may not refer to a physical file, but instead contain information for the driver on how to access a dataset.
eAccess   the desired access, either GA_Update or GA_ReadOnly. Many drivers support only read only access.

Returns:
A GDALDatasetH handle or NULL on failure. For C++ applications this handle can be cast to a GDALDataset *.


doxygen1.2.2 Dimitri van Heesch, © 1997-2000