gdal.h File Reference

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

Go to the source code of this file.

Classes

struct  GDALOptionDefinition
struct  GDAL_GCP
struct  GDALRPCInfo
struct  GDALColorEntry

Defines

#define CPLE_WrongFormat   200
#define GDAL_DMD_LONGNAME   "DMD_LONGNAME"
#define GDAL_DMD_HELPTOPIC   "DMD_HELPTOPIC"
#define GDAL_DMD_MIMETYPE   "DMD_MIMETYPE"
#define GDAL_DMD_EXTENSION   "DMD_EXTENSION"
#define GDAL_DMD_CREATIONOPTIONLIST   "DMD_CREATIONOPTIONLIST"
#define GDAL_DMD_CREATIONDATATYPES   "DMD_CREATIONDATATYPES"
#define GDAL_DCAP_CREATE   "DCAP_CREATE"
#define GDAL_DCAP_CREATECOPY   "DCAP_CREATECOPY"

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, GCI_YCbCr_YBand = 14, GCI_YCbCr_CbBand = 15,
  GCI_YCbCr_CrBand = 16, GCI_Max = 16
}
enum  GDALPaletteInterp { GPI_Gray = 0, GPI_RGB = 1, GPI_CMYK = 2, GPI_HLS = 3 }

Functions

int GDALGetDataTypeSize (GDALDataType)
int GDALDataTypeIsComplex (GDALDataType)
const char * GDALGetDataTypeName (GDALDataType)
GDALDataType GDALGetDataTypeByName (const char *)
GDALDataType GDALDataTypeUnion (GDALDataType, GDALDataType)
const char * GDALGetColorInterpretationName (GDALColorInterp)
const char * GDALGetPaletteInterpretationName (GDALPaletteInterp)
int GDALDummyProgress (double, const char *, void *)
int GDALTermProgress (double, const char *, void *)
int GDALScaledProgress (double, const char *, void *)
void * GDALCreateScaledProgress (double, double, GDALProgressFunc, void *)
void GDALDestroyScaledProgress (void *)
void GDALAllRegister (void)
GDALDatasetH GDALCreate (GDALDriverH hDriver, const char *, int, int, int, GDALDataType, char **)
GDALDatasetH GDALCreateCopy (GDALDriverH, const char *, GDALDatasetH, int, char **, GDALProgressFunc, void *)
GDALDatasetH GDALOpen (const char *pszFilename, GDALAccess eAccess)
GDALDatasetH GDALOpenShared (const char *, GDALAccess)
int GDALDumpOpenDatasets (FILE *)
GDALDriverH GDALGetDriverByName (const char *)
int GDALGetDriverCount ()
GDALDriverH GDALGetDriver (int)
int GDALRegisterDriver (GDALDriverH)
void GDALDeregisterDriver (GDALDriverH)
void GDALDestroyDriverManager (void)
CPLErr GDALDeleteDataset (GDALDriverH, const char *)
const char * GDALGetDriverShortName (GDALDriverH)
const char * GDALGetDriverLongName (GDALDriverH)
const char * GDALGetDriverHelpTopic (GDALDriverH)
void GDALInitGCPs (int, GDAL_GCP *)
void GDALDeinitGCPs (int, GDAL_GCP *)
GDAL_GCPGDALDuplicateGCPs (int, const GDAL_GCP *)
int GDALGCPsToGeoTransform (int nGCPCount, const GDAL_GCP *pasGCPs, double *padfGeoTransform, int bApproxOK)
int GDALInvGeoTransform (double *padfGeoTransformIn, double *padfInvGeoTransformOut)
void GDALApplyGeoTransform (double *, double, double, double *, double *)
char ** GDALGetMetadata (GDALMajorObjectH, const char *)
CPLErr GDALSetMetadata (GDALMajorObjectH, char **, const char *)
const char * GDALGetMetadataItem (GDALMajorObjectH, const char *, const char *)
CPLErr GDALSetMetadataItem (GDALMajorObjectH, const char *, const char *, const char *)
const char * GDALGetDescription (GDALMajorObjectH)
void GDALSetDescription (GDALMajorObjectH, const char *)
GDALDriverH GDALGetDatasetDriver (GDALDatasetH)
void GDALClose (GDALDatasetH)
int GDALGetRasterXSize (GDALDatasetH)
int GDALGetRasterYSize (GDALDatasetH)
int GDALGetRasterCount (GDALDatasetH)
GDALRasterBandH GDALGetRasterBand (GDALDatasetH, int)
CPLErr GDALAddBand (GDALDatasetH hDS, GDALDataType eType, char **papszOptions)
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)
CPLErr GDALDatasetAdviseRead (GDALDatasetH hDS, int nDSXOff, int nDSYOff, int nDSXSize, int nDSYSize, int nBXSize, int nBYSize, GDALDataType eBDataType, int nBandCount, int *panBandCount, char **papszOptions)
const char * GDALGetProjectionRef (GDALDatasetH)
CPLErr GDALSetProjection (GDALDatasetH, const char *)
CPLErr GDALGetGeoTransform (GDALDatasetH, double *)
CPLErr GDALSetGeoTransform (GDALDatasetH, double *)
int GDALGetGCPCount (GDALDatasetH)
const char * GDALGetGCPProjection (GDALDatasetH)
const GDAL_GCPGDALGetGCPs (GDALDatasetH)
CPLErr GDALSetGCPs (GDALDatasetH, int, const GDAL_GCP *, const char *)
void * GDALGetInternalHandle (GDALDatasetH, const char *)
int GDALReferenceDataset (GDALDatasetH)
int GDALDereferenceDataset (GDALDatasetH)
CPLErr GDALBuildOverviews (GDALDatasetH, const char *, int, int *, int, int *, GDALProgressFunc, void *)
void GDALGetOpenDatasets (GDALDatasetH ***hDS, int *pnCount)
int GDALGetAccess (GDALDatasetH hDS)
void GDALFlushCache (GDALDatasetH hDS)
GDALDataType GDALGetRasterDataType (GDALRasterBandH)
void GDALGetBlockSize (GDALRasterBandH, int *pnXSize, int *pnYSize)
CPLErr GDALRasterAdviseRead (GDALRasterBandH hRB, int nDSXOff, int nDSYOff, int nDSXSize, int nDSYSize, int nBXSize, int nBYSize, GDALDataType eBDataType, char **papszOptions)
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)
CPLErr GDALReadBlock (GDALRasterBandH, int, int, void *)
CPLErr GDALWriteBlock (GDALRasterBandH, int, int, void *)
int GDALGetRasterBandXSize (GDALRasterBandH)
int GDALGetRasterBandYSize (GDALRasterBandH)
char ** GDALGetRasterMetadata (GDALRasterBandH)
GDALAccess GDALGetRasterAccess (GDALRasterBandH)
int GDALGetBandNumber (GDALRasterBandH)
GDALDatasetH GDALGetBandDataset (GDALRasterBandH)
GDALColorInterp GDALGetRasterColorInterpretation (GDALRasterBandH)
CPLErr GDALSetRasterColorInterpretation (GDALRasterBandH, GDALColorInterp)
GDALColorTableH GDALGetRasterColorTable (GDALRasterBandH)
CPLErr GDALSetRasterColorTable (GDALRasterBandH, GDALColorTableH)
int GDALHasArbitraryOverviews (GDALRasterBandH)
int GDALGetOverviewCount (GDALRasterBandH)
GDALRasterBandH GDALGetOverview (GDALRasterBandH, int)
double GDALGetRasterNoDataValue (GDALRasterBandH, int *)
CPLErr GDALSetRasterNoDataValue (GDALRasterBandH, double)
char ** GDALGetRasterCategoryNames (GDALRasterBandH)
CPLErr GDALSetRasterCategoryNames (GDALRasterBandH, char **)
double GDALGetRasterMinimum (GDALRasterBandH, int *pbSuccess)
double GDALGetRasterMaximum (GDALRasterBandH, int *pbSuccess)
const char * GDALGetRasterUnitType (GDALRasterBandH)
double GDALGetRasterOffset (GDALRasterBandH, int *pbSuccess)
double GDALGetRasterScale (GDALRasterBandH, int *pbSuccess)
void GDALComputeRasterMinMax (GDALRasterBandH hBand, int bApproxOK, double adfMinMax[2])
CPLErr GDALFlushRasterCache (GDALRasterBandH hBand)
CPLErr GDALGetRasterHistogram (GDALRasterBandH hBand, double dfMin, double dfMax, int nBuckets, int *panHistogram, int bIncludeOutOfRange, int bApproxOK, GDALProgressFunc pfnProgress, void *pProgressData)
int GDALGetRandomRasterSample (GDALRasterBandH, int, float *)
GDALRasterBandH GDALGetRasterSampleOverview (GDALRasterBandH, int)
CPLErr GDALFillRaster (GDALRasterBandH hBand, double dfRealValue, double dfImaginaryValue)
CPLErr GDALComputeBandStats (GDALRasterBandH hBand, int nSampleStep, double *pdfMean, double *pdfStdDev, GDALProgressFunc pfnProgress, void *pProgressData)
CPLErr GDALOverviewMagnitudeCorrection (GDALRasterBandH hBaseBand, int nOverviewCount, GDALRasterBandH *pahOverviews, GDALProgressFunc pfnProgress, void *pProgressData)
int GDALGeneralCmdLineProcessor (int nArgc, char ***ppapszArgv, int nOptions)
void GDALSwapWords (void *pData, int nWordSize, int nWordCount, int nWordSkip)
void GDALCopyWords (void *pSrcData, GDALDataType eSrcType, int nSrcPixelOffset, void *pDstData, GDALDataType eDstType, int nDstPixelOffset, int nWordCount)
int GDALReadWorldFile (const char *pszBaseFilename, const char *pszExtension, double *padfGeoTransform)
int GDALWriteWorldFile (const char *pszBaseFilename, const char *pszExtension, double *padfGeoTransform)
int GDALReadTabFile (const char *pszBaseFilename, double *padfGeoTransform, char **ppszWKT, int *pnGCPCount, GDAL_GCP **ppasGCPs)
const char * GDALDecToDMS (double, const char *, int)
double GDALPackedDMSToDec (double)
double GDALDecToPackedDMS (double)
const char * GDALVersionInfo (const char *)
int GDALExtractRPCInfo (char **, GDALRPCInfo *)
GDALColorTableH GDALCreateColorTable (GDALPaletteInterp)
void GDALDestroyColorTable (GDALColorTableH)
GDALColorTableH GDALCloneColorTable (GDALColorTableH)
GDALPaletteInterp GDALGetPaletteInterpretation (GDALColorTableH)
int GDALGetColorEntryCount (GDALColorTableH)
const GDALColorEntryGDALGetColorEntry (GDALColorTableH, int)
int GDALGetColorEntryAsRGB (GDALColorTableH, int, GDALColorEntry *)
void GDALSetColorEntry (GDALColorTableH, int, const GDALColorEntry *)
void GDALSetCacheMax (int nBytes)
int GDALGetCacheMax ()
int GDALGetCacheUsed ()
int GDALFlushCacheBlock ()


Detailed Description

Public (C callable) GDAL entry points.

Typedef Documentation

int GDALProgressFunc
 

GDALProcessFunc is a typedef defining the signature of functions to be used with GDAL as callbacks to report the progress of long running processes. Typically these are functions that would update a GUI progress bar showing how much of a process is done.

A number of GDAL functions and methods accept GDALProcessFunc arguments along with an opaque application supplied data item (pProgressArg) which are then used to implement progress reporting. The GDALDataset::BuildOverviews(), and GDALDriver::CreateCopy() methods are examples of two methods that utilize the progress semantics.

  int (*GDALProgressFunc)(double dfComplete, const char *pszMessage, 
                          void *pProgressArg);

Parameters:
dfComplete The ratio of completness of the process from 0.0 for just started to 1.0 for completed.
pszMessage An optional message string to display. This is usually NULL.
pProgressArg Application supplied opaque data normally used by the callback to display the result.
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\n", (int) (dfComplete*100), pszMessage );
     else if( pData != NULL )
         printf( "%d%% complete:%s\n", (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" );

In addition to reporting progress to the user, the GDALProcessFunc mechanism also provides a mechanism for a user interface to return a request from the user to cancel the operation to the algorithm via the return value. If FALSE is returned, the algorithm should terminate the operation and return as quickly as possible.

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

Application code implementing GDALProgressFunc semantics should remember a few things:

  1. Be wary of NULL progress functions being passed in. The pfnProgress argument can be set to GDALDummyProgress() in this case for simplicity.

  2. Always check the return value to watch for a FALSE indicating the operation should be terminated.

  3. The ratio of completeness should vary from 0.0 to 1.0. Please ensure the exact value 1.0 is always returned at the end of the algorithm as some gui display mechanisms use this as a clue to popdown the progress monitor.


Enumeration Type Documentation

enum GDALAccess
 

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

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

enum GDALColorInterp
 

Types of color interpretation for raster bands.

Enumerator:
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
GCI_YCbCr_YBand  Y Luminance
GCI_YCbCr_CbBand  Cb Chroma
GCI_YCbCr_CrBand  Cr Chroma
GCI_Max  Max current value

enum GDALDataType
 

Pixel data types

Enumerator:
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.

Enumerator:
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

Enumerator:
GF_Read  Read data
GF_Write  Write data


Function Documentation

CPLErr GDALAddBand GDALDatasetH  hDataset,
GDALDataType  eType,
char **  papszOptions
 

See also:
GDALDataset::AddBand().

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 GDALApplyGeoTransform double *  padfGeoTransform,
double  dfPixel,
double  dfLine,
double *  pdfGeoX,
double *  pdfGeoY
 

Apply GeoTransform to x/y coordinate.

Applies the following computation, converting a (pixel,line) coordinate into a georeferenced (geo_x,geo_y) location.

*pdfGeoX = padfGeoTransform[0] + dfPixel * padfGeoTransform[1] + dfLine * padfGeoTransform[2]; *pdfGeoY = padfGeoTransform[3] + dfPixel * padfGeoTransform[4] + dfLine * padfGeoTransform[5];

Parameters:
padfGeoTransform Six coefficient GeoTransform to apply.
dfPixel Input pixel position.
dfLine Input line position.
*pdfGeoX output location where GeoX (easting/longitude) location is placed.
*pdfGeoY output location where GeoX (northing/latitude) location is placed.

CPLErr GDALBuildOverviews GDALDatasetH  hDataset,
const char *  pszResampling,
int  nOverviews,
int *  panOverviewList,
int  nListBands,
int *  panBandList,
GDALProgressFunc  pfnProgress,
void *  pProgressData
 

See also:
GDALDataset::BuildOverviews()

void GDALClose GDALDatasetH  hDS  ) 
 

Close GDAL dataset.

For non-shared datasets (opened with GDALOpen()) the dataset is closed using the C++ "delete" operator, recovering all dataset related resources. For shared datasets (opened with GDALOpenShared()) the dataset is dereferenced, and closed only if the referenced count has dropped below 1.

Parameters:
hDS The dataset to close. May be cast from a "GDALDataset *".

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.

void GDALCopyWords void *  pSrcData,
GDALDataType  eSrcType,
int  nSrcPixelOffset,
void *  pDstData,
GDALDataType  eDstType,
int  nDstPixelOffset,
int  nWordCount
 

Copy pixel words from buffer to buffer.

This function is used to copy pixel word values from one memory buffer to another, with support for conversion between data types, and differing step factors. The data type conversion is done using the normal GDAL rules. Values assigned to a lower range integer type are clipped. For instance assigning GDT_Int16 values to a GDT_Byte buffer will cause values less the 0 to be set to 0, and values larger than 255 to be set to 255. Assignment from floating point to integer uses default C type casting semantics. Assignment from non-complex to complex will result in the imaginary part being set to zero on output. Assigment from complex to non-complex will result in the complex portion being lost and the real component being preserved (not magnitidue!).

No assumptions are made about the source or destination words occuring on word boundaries. It is assumed that all values are in native machine byte order.

Parameters:
pSrcData 

GDALDatasetH GDALCreate GDALDriverH  hDriver,
const char *  pszFilename,
int  nXSize,
int  nYSize,
int  nBands,
GDALDataType  eBandType,
char **  papszOptions
 

See also:
GDALDriver::Create()

GDALDatasetH GDALCreateCopy GDALDriverH  hDriver,
const char *  pszFilename,
GDALDatasetH  hSrcDS,
int  bStrict,
char **  papszOptions,
GDALProgressFunc  pfnProgress,
void *  pProgressData
 

See also:
GDALDriver::CreateCopy()

void* GDALCreateScaledProgress double  dfMin,
double  dfMax,
GDALProgressFunc  pfnProgress,
void *  pData
 

Create scaled progress transformer.

Sometimes when an operations wants to report progress it actually invokes several subprocesses which also take GDALProgressFunc()s, and it is desirable to map the progress of each sub operation into a portion of 0.0 to 1.0 progress of the overall process. The scaled progress function can be used for this.

For each subsection a scaled progress function is created and instead of passing the overall progress func down to the sub functions, the GDALScaledProgress() function is passed instead.

Parameters:
dfMin the value to which 0.0 in the sub operation is mapped.
dfMax the value to which 1.0 is the sub operation is mapped.
pfnProgress the overall progress function.
dData the overall progress function callback data.
Returns:
pointer to pass as pProgressArg to sub functions. Should be freed with GDALDestroyScaledProgress().
Example:

   int MyOperation( ..., GDALProgressFunc pfnProgress, void *pProgressData );

   {
       void *pScaledProgress;

       pScaledProgress = GDALCreateScaledProgress( 0.0, 0.5, pfnProgress, 
                                                   pProgressData );
       GDALDoLongSlowOperation( ..., GDALScaledProgressFunc, pProgressData );
       GDALDestroyScaledProgress( pScaledProgress );

       pScaledProgress = GDALCreateScaledProgress( 0.5, 1.0, pfnProgress, 
                                                   pProgressData );
       GDALDoAnotherOperation( ..., GDALScaledProgressFunc, pProgressData );
       GDALDestroyScaledProgress( pScaledProgress );

       return ...;
   }

CPLErr GDALDatasetRasterIO GDALDatasetH  hDS,
GDALRWFlag  eRWFlag,
int  nXOff,
int  nYOff,
int  nXSize,
int  nYSize,
void *  pData,
int  nBufXSize,
int  nBufYSize,
GDALDataType  eBufType,
int  nBandCount,
int *  panBandMap,
int  nPixelSpace,
int  nLineSpace,
int  nBandSpace
 

See also:
GDALDataset::RasterIO()

int GDALDataTypeIsComplex GDALDataType  eDataType  ) 
 

Is data type complex?

Returns:
TRUE if the passed type is complex (one of GDT_CInt16, GDT_CInt32, GDT_CFloat32 or GDT_CFloat64), that is it consists of a real and imaginary component.

GDALDataType GDALDataTypeUnion GDALDataType  eType1,
GDALDataType  eType2
 

Return the smallest data type that can fully express both input data types.

Parameters:
eType1 
eType2 
Returns:
a data type able to express eType1 and eType2.

double GDALDecToPackedDMS double  dfDec  ) 
 

Convert decimal degrees into packed DMS value (DDDMMMSSS.SS).

See CPLDecToPackedDMS().

CPLErr GDALDeleteDataset GDALDriverH  hDriver,
const char *  pszFilename
 

See also:
GDALDriver::Delete()

int GDALDereferenceDataset GDALDatasetH  hDataset  ) 
 

See also:
GDALDataset::Dereference()

void GDALDeregisterDriver GDALDriverH  hDriver  ) 
 

See also:
GDALDriverManager::GetDeregisterDriver()

void GDALDestroyDriverManager void   ) 
 

Destroy the driver manager.

Incidently unloads all managed drivers.

void GDALDestroyScaledProgress void *  pData  ) 
 

Cleanup scaled progress handle.

This function cleans up the data associated with a scaled progress function as returned by GADLCreateScaledProgress().

Parameters:
pData scaled progress handle returned by GDALCreateScaledProgress().

int GDALDummyProgress double  ,
const char *  ,
void * 
 

Stub progress function.

This is a stub (does nothing) implementation of the GDALProgressFunc() semantics. It is primarily useful for passing to functions that take a GDALProgressFunc() argument but for which the application does not want to use one of the other progress functions that actually do something.

int GDALDumpOpenDatasets FILE *  fp  ) 
 

List open datasets.

Dumps a list of all open datasets (shared or not) to the indicated text file (may be stdout or stderr). This function is primariliy intended to assist in debugging "dataset leaks" and reference counting issues. The information reported includes the dataset name, referenced count, shared status, driver name, size, and band count.

CPLErr GDALFillRaster GDALRasterBandH  hBand,
double  dfRealValue,
double  dfImaginaryValue
 

Fill this band with a constant value. Set dfImaginaryValue to zero non-complex rasters.

Parameters:
dfRealvalue Real component of fill value
dfImaginaryValue Imaginary component of fill value
See also:
GDALRasterBand::Fill()
Returns:
CE_Failure if the write fails, otherwise CE_None

void GDALFlushCache GDALDatasetH  hDS  ) 
 

See also:
GDALDataset::FlushCache().

CPLErr GDALFlushRasterCache GDALRasterBandH  hBand  ) 
 

See also:
GDALRasterBand::FlushCache()

int GDALGCPsToGeoTransform int  nGCPCount,
const GDAL_GCP pasGCPs,
double *  padfGeoTransform,
int  bApproxOK
 

Generate Geotransform from GCPs.

Given a set of GCPs perform first order fit as a geotransform.

Parameters:
nGCPCount the number of GCPs being passed in.
pasGCPs the list of GCP structures.
padfGeoTransform the six double array in which the affine geotransformation will be returned.
bApproxOK If FALSE the function will fail if the geotransform is not essentially an exact fit (within 0.25 pixel) for all GCPs.
Returns:
TRUE on success or FALSE if there aren't enough points to prepare a geotransform, the pointers are ill-determined or if bApproxOK is FALSE and the fit is poor.

int GDALGeneralCmdLineProcessor int  nArgc,
char ***  ppapszArgv,
int  nOptions
 

General utility option processing.

This function is intended to provide a variety of generic commandline options for all GDAL commandline utilities. It takes care of the following commandline options:

--version: report version of GDAL in use. --formats: report all format drivers configured. --format [format]: report details of one format driver. --optfile filename: expand an option file into the argument list. --config key value: set system configuration option. --debug [on/off/value]: set debug level. --help-general: report detailed help on general options.

The argument array is replaced "in place" and should be freed with CSLDestroy() when no longer needed. The typical usage looks something like the following. Note that the formats should be registered so that the --formats and --format options will work properly.

int main( int argc, char ** argv ) { GDALAllRegister();

argc = GDALGeneralCmdLineProcessor( argc, &argv, 0 ); if( argc < 1 ) exit( -argc );

Parameters:
nArgc number of values in the argument list.
Pointer to the argument list array (will be updated in place).
Returns:
updated nArgc argument count. Return of 0 requests terminate without error, return of -1 requests exit with error code.

int GDALGetAccess GDALDatasetH  hDS  ) 
 

See also:
GDALDataset::GetAccess()

GDALDatasetH GDALGetBandDataset GDALRasterBandH  hBand  ) 
 

See also:
GDALRasterBand::GetDataset()

int GDALGetBandNumber GDALRasterBandH  hBand  ) 
 

See also:
GDALRasterBand::GetBand()

void GDALGetBlockSize GDALRasterBandH  hBand,
int *  pnXSize,
int *  pnYSize
 

See also:
GDALRasterBand::GetBlockSize()

int GDALGetCacheMax  ) 
 

Get maximum cache memory.

Gets the maximum amount of memory available to the GDALRasterBlock caching system for caching GDAL read/write imagery.

Returns:
maximum in bytes.

int GDALGetCacheUsed  ) 
 

Get cache memory used.

Returns:
the number of bytes of memory currently in use by the GDALRasterBlock memory caching.

const char* GDALGetColorInterpretationName GDALColorInterp   ) 
 

Translate a GDALColorInterp into a user displayable string.

GDALDriverH GDALGetDatasetDriver GDALDatasetH  hDataset  ) 
 

See also:
GDALDataset::GetDriver()

GDALDataType GDALGetDataTypeByName const char *  pszName  ) 
 

Get data type by symbolic name.

Returns a data type corresponding to the given symbolic name. This function is opposite to the GDALGetDataTypeName().

Parameters:
pszName string containing the symbolic name of the type.
Returns:
GDAL data type.

const char* GDALGetDataTypeName GDALDataType  eDataType  ) 
 

Get name of data type.

Returns a symbolic name for the data type. This is essentially the the enumerated item name with the GDT_ prefix removed. So GDT_Byte returns "Byte". The returned strings are static strings and should not be modified or freed by the application. These strings are useful for reporting datatypes in debug statements, errors and other user output.

Parameters:
eDataType type to get name of.
Returns:
string corresponding to type.

int GDALGetDataTypeSize GDALDataType  eDataType  ) 
 

Get data type size in bits.

Returns the size of a a GDT_* type in bits, not bytes!

Parameters:
data type, such as GDT_Byte.
Returns:
the number of bits or zero if it is not recognised.

const char* GDALGetDescription GDALMajorObjectH  hObject  ) 
 

See also:
GDALMajorObject::GetDescription()

GDALDriverH GDALGetDriver int  iDriver  ) 
 

See also:
GDALDriverManager::GetDriver()

GDALDriverH GDALGetDriverByName const char *  pszName  ) 
 

See also:
GDALDriverManager::GetDriverByName()

int GDALGetDriverCount  ) 
 

See also:
GDALDriverManager::GetDriverCount()

int GDALGetGCPCount GDALDatasetH  hDS  ) 
 

See also:
GDALDataset::GetGCPCount()

const char* GDALGetGCPProjection GDALDatasetH  hDS  ) 
 

See also:
GDALDataset::GetGCPProjection()

const GDAL_GCP* GDALGetGCPs GDALDatasetH  hDS  ) 
 

See also:
GDALDataset::GetGCPs()

CPLErr GDALGetGeoTransform GDALDatasetH  hDS,
double *  padfTransform
 

See also:
GDALDataset::GetGeoTransform()

void* GDALGetInternalHandle GDALDatasetH  hDS,
const char *  pszRequest
 

See also:
GDALDataset::GetInternalHandle()

char** GDALGetMetadata GDALMajorObjectH  hObject,
const char *  pszDomain
 

See also:
GDALMajorObject::GetMetadata()

const char* GDALGetMetadataItem GDALMajorObjectH  hObject,
const char *  pszName,
const char *  pszDomain
 

See also:
GDALMajorObject::GetMetadataItem()

void GDALGetOpenDatasets GDALDatasetH ***  hDS,
int *  pnCount
 

See also:
GDALDataset::GetOpenDatasets()

GDALRasterBandH GDALGetOverview GDALRasterBandH  hBand,
int  i
 

See also:
GDALRasterBand::GetOverview()

int GDALGetOverviewCount GDALRasterBandH  hBand  ) 
 

See also:
GDALRasterBand::GetOverviewCount()

const char* GDALGetPaletteInterpretationName GDALPaletteInterp   ) 
 

Translate a GDALPaletteInterp into a user displayable string.

const char* GDALGetProjectionRef GDALDatasetH  hDS  ) 
 

See also:
GDALDataset::GetProjectionRef()

GDALAccess GDALGetRasterAccess GDALRasterBandH  hBand  ) 
 

See also:
GDALRasterBand::GetAccess()

GDALRasterBandH GDALGetRasterBand GDALDatasetH  hDS,
int  nBandId
 

See also:
GDALDataset::GetRasterBand().

int GDALGetRasterBandXSize GDALRasterBandH  hBand  ) 
 

See also:
GDALRasterBand::GetXSize()

int GDALGetRasterBandYSize GDALRasterBandH  hBand  ) 
 

See also:
GDALRasterBand::GetYSize()

char** GDALGetRasterCategoryNames GDALRasterBandH  hBand  ) 
 

See also:
GDALRasterBand::GetCategoryNames()

GDALColorInterp GDALGetRasterColorInterpretation GDALRasterBandH  hBand  ) 
 

See also:
GDALRasterBand::GetColorInterpretation()

GDALColorTableH GDALGetRasterColorTable GDALRasterBandH  hBand  ) 
 

See also:
GDALRasterBand::GetColorTable()

int GDALGetRasterCount GDALDatasetH  hDS  ) 
 

See also:
GDALDataset::GetRasterCount().

GDALDataType GDALGetRasterDataType GDALRasterBandH  hBand  ) 
 

See also:
GDALRasterBand::GetRasterDataType()

CPLErr GDALGetRasterHistogram GDALRasterBandH  hBand,
double  dfMin,
double  dfMax,
int  nBuckets,
int *  panHistogram,
int  bIncludeOutOfRange,
int  bApproxOK,
GDALProgressFunc  pfnProgress,
void *  pProgressData
 

See also:
GDALRasterBand::GetHistogram()

double GDALGetRasterMaximum GDALRasterBandH  hBand,
int *  pbSuccess
 

See also:
GDALRasterBand::GetMaximum()

double GDALGetRasterMinimum GDALRasterBandH  hBand,
int *  pbSuccess
 

See also:
GDALRasterBand::GetMinimum()

double GDALGetRasterNoDataValue GDALRasterBandH  hBand,
int *  pbSuccess
 

See also:
GDALRasterBand::GetNoDataValue()

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.

const char* GDALGetRasterUnitType GDALRasterBandH  hBand  ) 
 

See also:
GDALRasterBand::GetUnitType()

int GDALGetRasterXSize GDALDatasetH  hDataset  ) 
 

See also:
GDALDataset::GetRasterXSize().

int GDALGetRasterYSize GDALDatasetH  hDataset  ) 
 

See also:
GDALDataset::GetRasterYSize().

int GDALHasArbitraryOverviews GDALRasterBandH  hBand  ) 
 

See also:
GDALRasterBand::HasArbitraryOverviews()

int GDALInvGeoTransform double *  gt_in,
double *  gt_out
 

Invert Geotransform.

This function will invert a standard 3x2 set of GeoTransform coefficients. This converts the equation from being pixel to geo to being geo to pixel.

Parameters:
gt_in Input geotransform (six doubles - unaltered).
gt_out Output geotransform (six doubles - updated).
Returns:
TRUE on success or FALSE if the equation is uninvertable.

GDALDatasetH GDALOpen const char *  pszFilename,
GDALAccess  eAccess
 

Open a raster file as a GDALDataset.

See Also: GDALOpenShared()

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 *.

GDALDatasetH GDALOpenShared const char *  pszFilename,
GDALAccess  eAccess
 

Open a raster file as a GDALDataset.

This function works the same as GDALOpen(), but allows the sharing of GDALDataset handles for a dataset with other callers to GDALOpenShared().

In particular, GDALOpenShared() will first consult it's list of currently open and shared GDALDataset's, and if the GetDescription() name for one exactly matches the pszFilename passed to GDALOpenShared() it

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 *.

double GDALPackedDMSToDec double  dfPacked  ) 
 

Convert a packed DMS value (DDDMMMSSS.SS) into decimal degrees.

See CPLPackedDMSToDec().

CPLErr GDALRasterIO GDALRasterBandH  hBand,
GDALRWFlag  eRWFlag,
int  nXOff,
int  nYOff,
int  nXSize,
int  nYSize,
void *  pData,
int  nBufXSize,
int  nBufYSize,
GDALDataType  eBufType,
int  nPixelSpace,
int  nLineSpace
 

See also:
GDALRasterBand::Rasterio()

CPLErr GDALReadBlock GDALRasterBandH  hBand,
int  nXOff,
int  nYOff,
void *  pData
 

See also:
GDALRasterBand::ReadBlock()

int GDALReadWorldFile const char *  pszBaseFilename,
const char *  pszExtension,
double *  padfGeoTransform
 

Read ESRI world file.

This function reads an ESRI style world file, and formats a geotransform from it's contents. It will form the filename for the worldfile from the filename of the raster file referred and the suggested extension. If no extension is provided, the code will internally try the unix style and windows style world file extensions (eg. for .tif these would be .tfw and .tifw).

The world file contains an affine transformation with the parameters in a different order than in a geotransform array.

geotransform[1] - width of pixel geotransform[4] - rotational coefficient, zero for north up images. geotransform[2] - rotational coefficient, zero for north up images. geotransform[5] - height of pixel (but negative) geotransform[0] - x offset to center of top left pixel. geotrasnform[3] - y offset to center of top left pixel.

Parameters:
pszBaseFilename the target raster file.
pszExtension the extension to use (ie. ".wld") or NULL to derive it from the pszBaseFilename
padfGeoTransform the six double array into which the geotransformation should be placed.
Returns:
TRUE on success or FALSE on failure.

int GDALReferenceDataset GDALDatasetH  hDataset  ) 
 

See also:
GDALDataset::Reference()

int GDALRegisterDriver GDALDriverH  hDriver  ) 
 

See also:
GDALDriverManager::GetRegisterDriver()

int GDALScaledProgress double  dfComplete,
const char *  pszMessage,
void *  pData
 

Scaled progress transformer.

This is the progress function that should be passed along with the callback data returned by GDALCreateScaledProgress().

void GDALSetCacheMax int  nNewSize  ) 
 

Set maximum cache memory.

This function sets the maximum amount of memory that GDAL is permitted to use for GDALRasterBlock caching.

Parameters:
nNewSize the maximum number of bytes for caching. Maximum is 2GB.

void GDALSetDescription GDALMajorObjectH  hObject,
const char *  pszNewDesc
 

See also:
GDALMajorObject::SetDescription()

CPLErr GDALSetGCPs GDALDatasetH  hDS,
int  nGCPCount,
const GDAL_GCP pasGCPList,
const char *  pszGCPProjection
 

See also:
GDALDataset::SetGCPs()

CPLErr GDALSetGeoTransform GDALDatasetH  hDS,
double *  padfTransform
 

See also:
GDALDataset::SetGeoTransform()

CPLErr GDALSetMetadata GDALMajorObjectH  hObject,
char **  papszMD,
const char *  pszDomain
 

See also:
GDALMajorObject::SetMetadata()

CPLErr GDALSetMetadataItem GDALMajorObjectH  hObject,
const char *  pszName,
const char *  pszValue,
const char *  pszDomain
 

See also:
GDALMajorObject::SetMetadataItem()

CPLErr GDALSetProjection GDALDatasetH  hDS,
const char *  pszProjection
 

See also:
GDALDataset::SetProjection()

CPLErr GDALSetRasterCategoryNames GDALRasterBandH  hBand,
char **  papszNames
 

See also:
GDALRasterBand::SetCategoryNames()

CPLErr GDALSetRasterColorInterpretation GDALRasterBandH  hBand,
GDALColorInterp  eColorInterp
 

See also:
GDALRasterBand::SetColorInterpretation()

CPLErr GDALSetRasterColorTable GDALRasterBandH  hBand,
GDALColorTableH  hCT
 

See also:
GDALRasterBand::SetColorTable()

CPLErr GDALSetRasterNoDataValue GDALRasterBandH  hBand,
double  dfValue
 

See also:
GDALRasterBand::SetNoDataValue()

void GDALSwapWords void *  pData,
int  nWordSize,
int  nWordCount,
int  nWordSkip
 

Byte swap words in-place.

This function will byte swap a set of 2, 4 or 8 byte words "in place" in a memory array. No assumption is made that the words being swapped are word aligned in memory. Use the CPL_LSB and CPL_MSB macros from cpl_port.h to determine if the current platform is big endian or little endian. Use The macros like CPL_SWAP32() to byte swap single values without the overhead of a function call.

Parameters:
pData pointer to start of data buffer.
nWordSize size of words being swapped in bytes. Normally 2, 4 or 8.
nWordCount the number of words to be swapped in this call.
nWordSkip the byte offset from the start of one word to the start of the next. For packed buffers this is the same as nWordSize.

int GDALTermProgress double  dfComplete,
const char *  pszMessage,
void *  pProgressArg
 

Simple progress report to terminal.

This progress reporter prints simple progress report to the terminal window. The progress report generally looks something like this:

0...10...20...30...40...50...60...70...80...90...100 - done.

Every 2.5% of progress another number or period is emitted. Note that GDALTermProgress() uses internal static data to keep track of the last percentage reported and will get confused if two terminal based progress reportings are active at the same time.

Parameters:
dfComplete completion ratio from 0.0 to 1.0.
pszMessage optional message.
pProgressArg ignored callback data argument.
Returns:
Always returns TRUE indicating the process should continue.

const char* GDALVersionInfo const char *  pszRequest  ) 
 

Get runtime version information.

Available pszRequest values:

  • "VERSION_NUM": Returns GDAL_VERSION_NUM formatted as a string. ie. "1170"
  • "RELEASE_DATE": Returns GDAL_RELEASE_DATE formatted as a string. ie. "20020416".
  • "RELEASE_NAME": Returns the GDAL_RELEASE_NAME. ie. "1.1.7"
  • "--version": Returns one line version message suitable for use in response to --version requests. ie. "GDAL 1.1.7, released 2002/04/16"

Parameters:
pszRequest the type of version info desired, as listed above.
Returns:
an internal string containing the requested information.

CPLErr GDALWriteBlock GDALRasterBandH  hBand,
int  nXOff,
int  nYOff,
void *  pData
 

See also:
GDALRasterBand::WriteBlock()


Generated on Mon Jan 9 18:03:35 2006 for GDAL by  doxygen 1.4.6