- Main Page
- Classes
- Files
- Related Pages

- File List
- File Members

# gdal.h

Go to the documentation of this file.

    00001 /******************************************************************************
    00002  * $Id: gdal.h,v 1.106 2006/12/04 16:43:38 fwarmerdam Exp $
    00003  *
    00004  * Project:  GDAL Core
    00005  * Purpose:  GDAL Core C/Public declarations.
    00006  * Author:   Frank Warmerdam, warmerdam@pobox.com
    00007  *
    00008  ******************************************************************************
    00009  * Copyright (c) 1998, 2002 Frank Warmerdam
    00010  *
    00011  * Permission is hereby granted, free of charge, to any person obtaining a
    00012  * copy of this software and associated documentation files (the "Software"),
    00013  * to deal in the Software without restriction, including without limitation
    00014  * the rights to use, copy, modify, merge, publish, distribute, sublicense,
    00015  * and/or sell copies of the Software, and to permit persons to whom the
    00016  * Software is furnished to do so, subject to the following conditions:
    00017  *
    00018  * The above copyright notice and this permission notice shall be included
    00019  * in all copies or substantial portions of the Software.
    00020  *
    00021  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
    00022  * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
    00023  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
    00024  * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
    00025  * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
    00026  * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
    00027  * DEALINGS IN THE SOFTWARE.
    00028  ******************************************************************************
    00029  *
    00030  * $Log: gdal.h,v $
    00031  * Revision 1.106  2006/12/04 16:43:38  fwarmerdam
    00032  * Removed GDALGetRasterMetadata() - should be using GDALGetMetadata()
    00033  * http://bugzilla.remotesensing.org/show_bug.cgi?id=1375
    00034  *
    00035  * Revision 1.105  2006/10/07 02:00:38  fwarmerdam
    00036  * added RAT translation to ColorTable, and a few other fixes
    00037  *
    00038  * Revision 1.104  2006/09/08 15:27:05  fwarmerdam
    00039  * fixed type of return dataset list in GDALGetOpenDatasets()
    00040  *
    00041  * Revision 1.103  2006/07/13 15:27:14  fwarmerdam
    00042  * Implement ComputeStatistics method
    00043  *
    00044  * Revision 1.102  2005/11/01 22:16:00  fwarmerdam
    00045  * fix up RAT API (bug 985)
    00046  *
    00047  * Revision 1.101  2005/10/28 16:59:24  pnagy
    00048  * Added VRTDerivedBand support
    00049  *
    00050  * Revision 1.100  2005/09/28 21:29:30  fwarmerdam
    00051  * added RAT documentation
    00052  *
    00053  * Revision 1.99  2005/09/24 19:01:52  fwarmerdam
    00054  * added RAT related functions
    00055  *
    00056  * Revision 1.98  2005/09/24 04:18:43  fwarmerdam
    00057  * added void declaration for GDALRasterAttributeTableH
    00058  *
    00059  * Revision 1.97  2005/05/24 18:13:15  dron
    00060  * Added GDALGetDriverCreationOptionList() function.
    00061  *
    00062  * Revision 1.96  2005/05/16 21:34:33  fwarmerdam
    00063  * Added SetDefaultHistogram
    00064  *
    00065  * Revision 1.95  2005/05/11 14:04:08  fwarmerdam
    00066  * added getdefaulthistogram
    00067  *
    00068  * Revision 1.94  2005/04/27 16:28:39  fwarmerdam
    00069  * added GDALGetRasterStatistics
    00070  *
    00071  * Revision 1.93  2005/04/15 18:34:52  fwarmerdam
    00072  * Added area or point metadata constants.
    00073  *
    00074  * Revision 1.92  2005/04/04 15:24:48  fwarmerdam
    00075  * Most C entry points now CPL_STDCALL
    00076  *
    00077  * Revision 1.91  2005/03/16 19:21:35  fwarmerdam
    00078  * added methods for setting offset/scale
    00079  *
    00080  * Revision 1.90  2005/02/23 14:53:43  fwarmerdam
    00081  * moved version info into gdal_version.h
    00082  *
    00083  * Revision 1.89  2005/02/10 04:30:29  fwarmerdam
    00084  * added support for YCbCr color space
    00085  *
    00086  * Revision 1.88  2004/12/02 18:26:07  fwarmerdam
    00087  * added CPL_DLL specifier on two functions.
    00088  *
    00089  * Revision 1.87  2004/11/22 20:06:50  fwarmerdam
    00090  * Updated to 1.2.5.
    00091  *
    00092  * Revision 1.86  2004/11/05 18:00:04  fwarmerdam
    00093  * Updated to 1.2.4.0.
    00094  *
    00095  * Revision 1.85  2004/10/18 17:22:07  fwarmerdam
    00096  * added GCI_Max
    00097  *
    00098  * Revision 1.84  2004/09/25 05:51:03  fwarmerdam
    00099  * updated to version 1.2.3
    00100  *
    00101  * Revision 1.83  2004/09/16 18:30:13  fwarmerdam
    00102  * Updated to 1.2.2.
    00103  *
    00104  * Revision 1.82  2004/06/24 03:10:49  warmerda
    00105  * update to GDAL 1.2.1
    00106  *
    00107  * Revision 1.81  2004/04/29 13:42:58  warmerda
    00108  * added C Offset/Scale entry points
    00109  *
    00110  * Revision 1.80  2004/04/04 20:05:37  warmerda
    00111  * mark as 1.2.0.1
    00112  *
    00113  * Revision 1.79  2004/04/02 17:32:40  warmerda
    00114  * added GDALGeneralCmdLineProcessor()
    00115  *
    00116  * Revision 1.78  2004/03/28 16:01:46  warmerda
    00117  * added GDALApplyGeoTransform()
    00118  *
    00119  * Revision 1.77  2004/03/10 19:18:29  warmerda
    00120  * updated date
    00121  *
    00122  * Revision 1.76  2004/03/01 18:30:44  warmerda
    00123  * Updated release date.
    00124  *
    00125  * Revision 1.75  2004/02/25 09:03:15  dron
    00126  * Added GDALPackedDMSToDec() and GDALDecToPackedDMS() functions.
    00127  *
    00128  * Revision 1.74  2004/02/19 15:55:52  warmerda
    00129  * updated to 1.2.0
    00130  *
    00131  * Revision 1.73  2004/02/04 21:30:12  warmerda
    00132  * ensure GDALGetDataTypeByName is exported
    00133  *
    00134  * Revision 1.72  2004/01/18 16:43:37  dron
    00135  * Added GDALGetDataTypeByName() function.
    00136  */
    00137
    00138 #ifndef GDAL_H_INCLUDED
    00139 #define GDAL_H_INCLUDED
    00140
    00147 #include "gdal_version.h"
    00148 #include "cpl_port.h"
    00149 #include "cpl_error.h"
    00150
    00151 /* -------------------------------------------------------------------- */
    00152 /*      Significant constants.                                          */
    00153 /* -------------------------------------------------------------------- */
    00154
    00155 CPL_C_START
    00156
    00158 typedef enum {
    00159     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,
    00171     GDT_TypeCount = 12          /* maximum type # + 1 */
    00172 } GDALDataType;
    00173
    00174 int CPL_DLL CPL_STDCALL GDALGetDataTypeSize( GDALDataType );
    00175 int CPL_DLL CPL_STDCALL GDALDataTypeIsComplex( GDALDataType );
    00176 const char CPL_DLL * CPL_STDCALL GDALGetDataTypeName( GDALDataType );
    00177 GDALDataType CPL_DLL CPL_STDCALL GDALGetDataTypeByName( const char * );
    00178 GDALDataType CPL_DLL CPL_STDCALL GDALDataTypeUnion( GDALDataType, GDALDataType );
    00179
    00181 typedef enum { GA_ReadOnly = 0,           GA_Update = 1
    00184 } GDALAccess;
    00185
    00187 typedef enum {   GF_Read = 0,  GF_Write = 1
    00190 } GDALRWFlag;
    00191
    00193 typedef enum
    00194 {
    00195     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
    00213 } GDALColorInterp;
    00214
    00216 const char CPL_DLL *GDALGetColorInterpretationName( GDALColorInterp );
    00217
    00219 typedef enum
    00220 {                      GPI_Gray=0,  GPI_RGB=1, GPI_CMYK=2,     GPI_HLS=3
    00225 } GDALPaletteInterp;
    00226
    00228 const char CPL_DLL *GDALGetPaletteInterpretationName( GDALPaletteInterp );
    00229
    00230 /* "well known" metadata items. */
    00231
    00232 #define GDALMD_AREA_OR_POINT   "AREA_OR_POINT"
    00233 #  define GDALMD_AOP_AREA      "Area"
    00234 #  define GDALMD_AOP_POINT     "Point"
    00235
    00236 /* -------------------------------------------------------------------- */
    00237 /*      GDAL Specific error codes.                                      */
    00238 /*                                                                      */
    00239 /*      error codes 100 to 299 reserved for GDAL.                       */
    00240 /* -------------------------------------------------------------------- */
    00241 #define CPLE_WrongFormat        200
    00242
    00243 /* -------------------------------------------------------------------- */
    00244 /*      Define handle types related to various internal classes.        */
    00245 /* -------------------------------------------------------------------- */
    00246 typedef void *GDALMajorObjectH;
    00247 typedef void *GDALDatasetH;
    00248 typedef void *GDALRasterBandH;
    00249 typedef void *GDALDriverH;
    00250 typedef void *GDALProjDefH;
    00251 typedef void *GDALColorTableH;
    00252 typedef void *GDALRasterAttributeTableH;
    00253
    00254 /* -------------------------------------------------------------------- */
    00255 /*      Callback "progress" function.                                   */
    00256 /* -------------------------------------------------------------------- */
    00257
    00258 typedef int (CPL_STDCALL *GDALProgressFunc)(double,const char *, void *);
    00259 int CPL_DLL CPL_STDCALL GDALDummyProgress( double, const char *, void *);
    00260 int CPL_DLL CPL_STDCALL GDALTermProgress( double, const char *, void *);
    00261 int CPL_DLL CPL_STDCALL GDALScaledProgress( double, const char *, void *);
    00262 void CPL_DLL * CPL_STDCALL GDALCreateScaledProgress( double, double,
    00263                                         GDALProgressFunc, void * );
    00264 void CPL_DLL CPL_STDCALL GDALDestroyScaledProgress( void * );
    00265
    00266 /* ==================================================================== */
    00267 /*      Registration/driver related.                                    */
    00268 /* ==================================================================== */
    00269
    00270 typedef struct {
    00271     char      *pszOptionName;
    00272     char      *pszValueType;   /* "boolean", "int", "float", "string",
    00273                                   "string-select" */
    00274     char      *pszDescription;
    00275     char      **papszOptions;
    00276 } GDALOptionDefinition;
    00277
    00278 #define GDAL_DMD_LONGNAME "DMD_LONGNAME"
    00279 #define GDAL_DMD_HELPTOPIC "DMD_HELPTOPIC"
    00280 #define GDAL_DMD_MIMETYPE "DMD_MIMETYPE"
    00281 #define GDAL_DMD_EXTENSION "DMD_EXTENSION"
    00282 #define GDAL_DMD_CREATIONOPTIONLIST "DMD_CREATIONOPTIONLIST"
    00283 #define GDAL_DMD_CREATIONDATATYPES "DMD_CREATIONDATATYPES"
    00284
    00285 #define GDAL_DCAP_CREATE     "DCAP_CREATE"
    00286 #define GDAL_DCAP_CREATECOPY "DCAP_CREATECOPY"
    00287
    00288 void CPL_DLL CPL_STDCALL GDALAllRegister( void );
    00289
    00290 GDALDatasetH CPL_DLL CPL_STDCALL GDALCreate( GDALDriverH hDriver,
    00291                                  const char *, int, int, int, GDALDataType,
    00292                                  char ** );
    00293 GDALDatasetH CPL_DLL CPL_STDCALL
    00294 GDALCreateCopy( GDALDriverH, const char *, GDALDatasetH,
    00295                 int, char **, GDALProgressFunc, void * );
    00296
    00297 GDALDatasetH CPL_DLL CPL_STDCALL
    00298 GDALOpen( const char *pszFilename, GDALAccess eAccess );
    00299 GDALDatasetH CPL_DLL CPL_STDCALL GDALOpenShared( const char *, GDALAccess );
    00300 int          CPL_DLL CPL_STDCALL GDALDumpOpenDatasets( FILE * );
    00301
    00302 GDALDriverH CPL_DLL CPL_STDCALL GDALGetDriverByName( const char * );
    00303 int CPL_DLL         CPL_STDCALL GDALGetDriverCount( void );
    00304 GDALDriverH CPL_DLL CPL_STDCALL GDALGetDriver( int );
    00305 int         CPL_DLL CPL_STDCALL GDALRegisterDriver( GDALDriverH );
    00306 void        CPL_DLL CPL_STDCALL GDALDeregisterDriver( GDALDriverH );
    00307 void        CPL_DLL CPL_STDCALL GDALDestroyDriverManager( void );
    00308 CPLErr      CPL_DLL CPL_STDCALL GDALDeleteDataset( GDALDriverH, const char * );
    00309
    00310 /* The following are deprecated */
    00311 const char CPL_DLL * CPL_STDCALL GDALGetDriverShortName( GDALDriverH );
    00312 const char CPL_DLL * CPL_STDCALL GDALGetDriverLongName( GDALDriverH );
    00313 const char CPL_DLL * CPL_STDCALL GDALGetDriverHelpTopic( GDALDriverH );
    00314 const char CPL_DLL * CPL_STDCALL GDALGetDriverCreationOptionList( GDALDriverH );
    00315
    00316 /* ==================================================================== */
    00317 /*      GDAL_GCP                                                        */
    00318 /* ==================================================================== */
    00319
    00321 typedef struct
    00322 {
    00324     char        *pszId;
    00325
    00327     char        *pszInfo;
    00328
    00330     double      dfGCPPixel;
    00332     double      dfGCPLine;
    00333
    00335     double      dfGCPX;
    00336
    00338     double      dfGCPY;
    00339
    00341     double      dfGCPZ;
    00342 } GDAL_GCP;
    00343
    00344 void CPL_DLL CPL_STDCALL GDALInitGCPs( int, GDAL_GCP * );
    00345 void CPL_DLL CPL_STDCALL GDALDeinitGCPs( int, GDAL_GCP * );
    00346 GDAL_GCP CPL_DLL * CPL_STDCALL GDALDuplicateGCPs( int, const GDAL_GCP * );
    00347
    00348 int CPL_DLL CPL_STDCALL
    00349 GDALGCPsToGeoTransform( int nGCPCount, const GDAL_GCP *pasGCPs,
    00350                         double *padfGeoTransform, int bApproxOK );
    00351 int CPL_DLL CPL_STDCALL
    00352 GDALInvGeoTransform( double *padfGeoTransformIn,
    00353                      double *padfInvGeoTransformOut );
    00354 void CPL_DLL CPL_STDCALL GDALApplyGeoTransform( double *, double, double,
    00355                                                 double *, double * );
    00356
    00357 /* ==================================================================== */
    00358 /*      major objects (dataset, and, driver, drivermanager).            */
    00359 /* ==================================================================== */
    00360
    00361 char CPL_DLL  ** CPL_STDCALL GDALGetMetadata( GDALMajorObjectH, const char * );
    00362 CPLErr CPL_DLL CPL_STDCALL GDALSetMetadata( GDALMajorObjectH, char **,
    00363                                             const char * );
    00364 const char CPL_DLL * CPL_STDCALL
    00365 GDALGetMetadataItem( GDALMajorObjectH, const char *, const char * );
    00366 CPLErr CPL_DLL CPL_STDCALL
    00367 GDALSetMetadataItem( GDALMajorObjectH, const char *, const char *,
    00368                      const char * );
    00369 const char CPL_DLL * CPL_STDCALL GDALGetDescription( GDALMajorObjectH );
    00370 void CPL_DLL CPL_STDCALL GDALSetDescription( GDALMajorObjectH, const char * );
    00371
    00372 /* ==================================================================== */
    00373 /*      GDALDataset class ... normally this represents one file.        */
    00374 /* ==================================================================== */
    00375
    00376 GDALDriverH CPL_DLL CPL_STDCALL GDALGetDatasetDriver( GDALDatasetH );
    00377 void CPL_DLL CPL_STDCALL   GDALClose( GDALDatasetH );
    00378 int CPL_DLL CPL_STDCALL     GDALGetRasterXSize( GDALDatasetH );
    00379 int CPL_DLL CPL_STDCALL     GDALGetRasterYSize( GDALDatasetH );
    00380 int CPL_DLL CPL_STDCALL     GDALGetRasterCount( GDALDatasetH );
    00381 GDALRasterBandH CPL_DLL CPL_STDCALL GDALGetRasterBand( GDALDatasetH, int );
    00382
    00383 CPLErr CPL_DLL  CPL_STDCALL GDALAddBand( GDALDatasetH hDS, GDALDataType eType,
    00384                              char **papszOptions );
    00385
    00386 CPLErr CPL_DLL CPL_STDCALL GDALDatasetRasterIO(
    00387     GDALDatasetH hDS, GDALRWFlag eRWFlag,
    00388     int nDSXOff, int nDSYOff, int nDSXSize, int nDSYSize,
    00389     void * pBuffer, int nBXSize, int nBYSize, GDALDataType eBDataType,
    00390     int nBandCount, int *panBandCount,
    00391     int nPixelSpace, int nLineSpace, int nBandSpace);
    00392
    00393 CPLErr CPL_DLL CPL_STDCALL GDALDatasetAdviseRead( GDALDatasetH hDS,
    00394     int nDSXOff, int nDSYOff, int nDSXSize, int nDSYSize,
    00395     int nBXSize, int nBYSize, GDALDataType eBDataType,
    00396     int nBandCount, int *panBandCount, char **papszOptions );
    00397
    00398 const char CPL_DLL * CPL_STDCALL GDALGetProjectionRef( GDALDatasetH );
    00399 CPLErr CPL_DLL CPL_STDCALL GDALSetProjection( GDALDatasetH, const char * );
    00400 CPLErr CPL_DLL CPL_STDCALL GDALGetGeoTransform( GDALDatasetH, double * );
    00401 CPLErr CPL_DLL CPL_STDCALL GDALSetGeoTransform( GDALDatasetH, double * );
    00402
    00403 int CPL_DLL CPL_STDCALL  GDALGetGCPCount( GDALDatasetH );
    00404 const char CPL_DLL * CPL_STDCALL GDALGetGCPProjection( GDALDatasetH );
    00405 const GDAL_GCP CPL_DLL * CPL_STDCALL GDALGetGCPs( GDALDatasetH );
    00406 CPLErr CPL_DLL CPL_STDCALL GDALSetGCPs( GDALDatasetH, int, const GDAL_GCP *,
    00407                                         const char * );
    00408
    00409 void CPL_DLL * CPL_STDCALL GDALGetInternalHandle( GDALDatasetH, const char * );
    00410 int CPL_DLL CPL_STDCALL GDALReferenceDataset( GDALDatasetH );
    00411 int CPL_DLL CPL_STDCALL GDALDereferenceDataset( GDALDatasetH );
    00412
    00413 CPLErr CPL_DLL CPL_STDCALL
    00414 GDALBuildOverviews( GDALDatasetH, const char *, int, int *,
    00415                     int, int *, GDALProgressFunc, void * );
    00416 void CPL_DLL CPL_STDCALL GDALGetOpenDatasets( GDALDatasetH **hDS, int *pnCount );
    00417 int CPL_DLL CPL_STDCALL GDALGetAccess( GDALDatasetH hDS );
    00418 void CPL_DLL CPL_STDCALL GDALFlushCache( GDALDatasetH hDS );
    00419
    00420 /* ==================================================================== */
    00421 /*      GDALRasterBand ... one band/channel in a dataset.               */
    00422 /* ==================================================================== */
    00423
    00428 #define SRCVAL(papoSource, eSrcType, ii) \
    00429       (eSrcType == GDT_Byte ? \
    00430           ((char *)papoSource)[ii] : \
    00431       (eSrcType == GDT_Float32 ? \
    00432           ((float *)papoSource)[ii] : \
    00433       (eSrcType == GDT_Float64 ? \
    00434           ((double *)papoSource)[ii] : \
    00435       (eSrcType == GDT_Int32 ? \
    00436           ((GInt32 *)papoSource)[ii] : \
    00437       (eSrcType == GDT_UInt16 ? \
    00438           ((GUInt16 *)papoSource)[ii] : \
    00439       (eSrcType == GDT_Int16 ? \
    00440           ((GInt16 *)papoSource)[ii] : \
    00441       (eSrcType == GDT_UInt32 ? \
    00442           ((GUInt32 *)papoSource)[ii] : \
    00443       (eSrcType == GDT_CInt16 ? \
    00444           ((GInt16 *)papoSource)[ii * 2] : \
    00445       (eSrcType == GDT_CInt32 ? \
    00446           ((GInt32 *)papoSource)[ii * 2] : \
    00447       (eSrcType == GDT_CFloat32 ? \
    00448           ((float *)papoSource)[ii * 2] : \
    00449       (eSrcType == GDT_CFloat64 ? \
    00450           ((double *)papoSource)[ii * 2] : 0)))))))))))
    00451
    00452 typedef CPLErr
    00453 (*GDALDerivedPixelFunc)(void **papoSources, int nSources, void *pData,
    00454                         int nBufXSize, int nBufYSize,
    00455                         GDALDataType eSrcType, GDALDataType eBufType,
    00456                         int nPixelSpace, int nLineSpace);
    00457
    00458 GDALDataType CPL_DLL CPL_STDCALL GDALGetRasterDataType( GDALRasterBandH );
    00459 void CPL_DLL CPL_STDCALL
    00460 GDALGetBlockSize( GDALRasterBandH, int * pnXSize, int * pnYSize );
    00461
    00462 CPLErr CPL_DLL CPL_STDCALL GDALRasterAdviseRead( GDALRasterBandH hRB,
    00463     int nDSXOff, int nDSYOff, int nDSXSize, int nDSYSize,
    00464     int nBXSize, int nBYSize, GDALDataType eBDataType, char **papszOptions );
    00465
    00466 CPLErr CPL_DLL CPL_STDCALL
    00467 GDALRasterIO( GDALRasterBandH hRBand, GDALRWFlag eRWFlag,
    00468               int nDSXOff, int nDSYOff, int nDSXSize, int nDSYSize,
    00469               void * pBuffer, int nBXSize, int nBYSize,GDALDataType eBDataType,
    00470               int nPixelSpace, int nLineSpace );
    00471 CPLErr CPL_DLL CPL_STDCALL GDALReadBlock( GDALRasterBandH, int, int, void * );
    00472 CPLErr CPL_DLL CPL_STDCALL GDALWriteBlock( GDALRasterBandH, int, int, void * );
    00473 int CPL_DLL CPL_STDCALL GDALGetRasterBandXSize( GDALRasterBandH );
    00474 int CPL_DLL CPL_STDCALL GDALGetRasterBandYSize( GDALRasterBandH );
    00475 GDALAccess CPL_DLL CPL_STDCALL GDALGetRasterAccess( GDALRasterBandH );
    00476 int CPL_DLL CPL_STDCALL GDALGetBandNumber( GDALRasterBandH );
    00477 GDALDatasetH CPL_DLL CPL_STDCALL GDALGetBandDataset( GDALRasterBandH );
    00478
    00479 GDALColorInterp CPL_DLL CPL_STDCALL
    00480 GDALGetRasterColorInterpretation( GDALRasterBandH );
    00481 CPLErr CPL_DLL CPL_STDCALL
    00482 GDALSetRasterColorInterpretation( GDALRasterBandH, GDALColorInterp );
    00483 GDALColorTableH CPL_DLL CPL_STDCALL GDALGetRasterColorTable( GDALRasterBandH );
    00484 CPLErr CPL_DLL CPL_STDCALL GDALSetRasterColorTable( GDALRasterBandH, GDALColorTableH );
    00485 int CPL_DLL CPL_STDCALL GDALHasArbitraryOverviews( GDALRasterBandH );
    00486 int CPL_DLL CPL_STDCALL GDALGetOverviewCount( GDALRasterBandH );
    00487 GDALRasterBandH CPL_DLL CPL_STDCALL GDALGetOverview( GDALRasterBandH, int );
    00488 double CPL_DLL CPL_STDCALL GDALGetRasterNoDataValue( GDALRasterBandH, int * );
    00489 CPLErr CPL_DLL CPL_STDCALL GDALSetRasterNoDataValue( GDALRasterBandH, double );
    00490 char CPL_DLL ** CPL_STDCALL GDALGetRasterCategoryNames( GDALRasterBandH );
    00491 CPLErr CPL_DLL CPL_STDCALL GDALSetRasterCategoryNames( GDALRasterBandH, char ** );
    00492 double CPL_DLL CPL_STDCALL GDALGetRasterMinimum( GDALRasterBandH, int *pbSuccess );
    00493 double CPL_DLL CPL_STDCALL GDALGetRasterMaximum( GDALRasterBandH, int *pbSuccess );
    00494 CPLErr CPL_DLL CPL_STDCALL GDALGetRasterStatistics(
    00495     GDALRasterBandH, int bApproxOK, int bForce,
    00496     double *pdfMin, double *pdfMax, double *pdfMean, double *pdfStdDev );
    00497 CPLErr CPL_DLL CPL_STDCALL GDALComputeRasterStatistics(
    00498     GDALRasterBandH, int bApproxOK,
    00499     double *pdfMin, double *pdfMax, double *pdfMean, double *pdfStdDev,
    00500     GDALProgressFunc pfnProgress, void *pProgressData );
    00501 CPLErr CPL_DLL CPL_STDCALL GDALSetRasterStatistics(
    00502     GDALRasterBandH hBand,
    00503     double dfMin, double dfMax, double dfMean, double dfStdDev );
    00504
    00505 const char CPL_DLL * CPL_STDCALL GDALGetRasterUnitType( GDALRasterBandH );
    00506 double CPL_DLL CPL_STDCALL GDALGetRasterOffset( GDALRasterBandH, int *pbSuccess );
    00507 CPLErr CPL_DLL CPL_STDCALL GDALSetRasterOffset( GDALRasterBandH hBand, double dfNewOffset);
    00508 double CPL_DLL CPL_STDCALL GDALGetRasterScale( GDALRasterBandH, int *pbSuccess );
    00509 CPLErr CPL_DLL CPL_STDCALL GDALSetRasterScale( GDALRasterBandH hBand, double dfNewOffset );
    00510 void CPL_DLL CPL_STDCALL
    00511 GDALComputeRasterMinMax( GDALRasterBandH hBand, int bApproxOK,
    00512                          double adfMinMax[2] );
    00513 CPLErr CPL_DLL CPL_STDCALL GDALFlushRasterCache( GDALRasterBandH hBand );
    00514 CPLErr CPL_DLL CPL_STDCALL GDALGetRasterHistogram( GDALRasterBandH hBand,
    00515                                        double dfMin, double dfMax,
    00516                                        int nBuckets, int *panHistogram,
    00517                                        int bIncludeOutOfRange, int bApproxOK,
    00518                                        GDALProgressFunc pfnProgress,
    00519                                        void * pProgressData );
    00520 CPLErr CPL_DLL CPL_STDCALL GDALGetDefaultHistogram( GDALRasterBandH hBand,
    00521                                        double *pdfMin, double *pdfMax,
    00522                                        int *pnBuckets, int **ppanHistogram,
    00523                                        int bForce,
    00524                                        GDALProgressFunc pfnProgress,
    00525                                        void * pProgressData );
    00526 CPLErr CPL_DLL CPL_STDCALL GDALSetDefaultHistogram( GDALRasterBandH hBand,
    00527                                        double dfMin, double dfMax,
    00528                                        int nBuckets, int *panHistogram );
    00529 int CPL_DLL CPL_STDCALL
    00530 GDALGetRandomRasterSample( GDALRasterBandH, int, float * );
    00531 GDALRasterBandH CPL_DLL CPL_STDCALL
    00532 GDALGetRasterSampleOverview( GDALRasterBandH, int );
    00533 CPLErr CPL_DLL CPL_STDCALL GDALFillRaster( GDALRasterBandH hBand,
    00534                           double dfRealValue, double dfImaginaryValue );
    00535 CPLErr CPL_DLL CPL_STDCALL
    00536 GDALComputeBandStats( GDALRasterBandH hBand, int nSampleStep,
    00537                              double *pdfMean, double *pdfStdDev,
    00538                              GDALProgressFunc pfnProgress,
    00539                              void *pProgressData );
    00540 CPLErr CPL_DLL  GDALOverviewMagnitudeCorrection( GDALRasterBandH hBaseBand,
    00541                                         int nOverviewCount,
    00542                                         GDALRasterBandH *pahOverviews,
    00543                                         GDALProgressFunc pfnProgress,
    00544                                         void *pProgressData );
    00545
    00546 GDALRasterAttributeTableH CPL_DLL CPL_STDCALL GDALGetDefaultRAT(
    00547     GDALRasterBandH hBand );
    00548 CPLErr CPL_DLL CPL_STDCALL GDALSetDefaultRAT( GDALRasterBandH,
    00549                                               GDALRasterAttributeTableH );
    00550 CPLErr CPL_DLL CPL_STDCALL GDALAddDerivedBandPixelFunc( const char *pszName,
    00551                                     GDALDerivedPixelFunc pfnPixelFunc );
    00552
    00553 /* -------------------------------------------------------------------- */
    00554 /*      Helper functions.                                               */
    00555 /* -------------------------------------------------------------------- */
    00556 int CPL_DLL CPL_STDCALL GDALGeneralCmdLineProcessor( int nArgc, char ***ppapszArgv,
    00557                                          int nOptions );
    00558 void CPL_DLL CPL_STDCALL GDALSwapWords( void *pData, int nWordSize, int nWordCount,
    00559                             int nWordSkip );
    00560 void CPL_DLL CPL_STDCALL
    00561     GDALCopyWords( void * pSrcData, GDALDataType eSrcType, int nSrcPixelOffset,
    00562                    void * pDstData, GDALDataType eDstType, int nDstPixelOffset,
    00563                    int nWordCount );
    00564
    00565 int CPL_DLL CPL_STDCALL GDALReadWorldFile( const char *pszBaseFilename,
    00566                        const char *pszExtension,
    00567                        double * padfGeoTransform );
    00568 int CPL_DLL CPL_STDCALL GDALWriteWorldFile( const char *pszBaseFilename,
    00569                        const char *pszExtension,
    00570                        double * padfGeoTransform );
    00571 int CPL_DLL CPL_STDCALL GDALReadTabFile( const char *pszBaseFilename,
    00572                              double *padfGeoTransform, char **ppszWKT,
    00573                              int *pnGCPCount, GDAL_GCP **ppasGCPs );
    00574
    00575 const char CPL_DLL * CPL_STDCALL GDALDecToDMS( double, const char *, int );
    00576 double CPL_DLL CPL_STDCALL GDALPackedDMSToDec( double );
    00577 double CPL_DLL CPL_STDCALL GDALDecToPackedDMS( double );
    00578
    00579 const char CPL_DLL * CPL_STDCALL GDALVersionInfo( const char * );
    00580
    00581 typedef struct {
    00582     double      dfLINE_OFF;
    00583     double      dfSAMP_OFF;
    00584     double      dfLAT_OFF;
    00585     double      dfLONG_OFF;
    00586     double      dfHEIGHT_OFF;
    00587
    00588     double      dfLINE_SCALE;
    00589     double      dfSAMP_SCALE;
    00590     double      dfLAT_SCALE;
    00591     double      dfLONG_SCALE;
    00592     double      dfHEIGHT_SCALE;
    00593
    00594     double      adfLINE_NUM_COEFF[20];
    00595     double      adfLINE_DEN_COEFF[20];
    00596     double      adfSAMP_NUM_COEFF[20];
    00597     double      adfSAMP_DEN_COEFF[20];
    00598
    00599     double      dfMIN_LONG;
    00600     double      dfMIN_LAT;
    00601     double      dfMAX_LONG;
    00602     double      dfMAX_LAT;
    00603
    00604 } GDALRPCInfo;
    00605
    00606 int CPL_DLL CPL_STDCALL GDALExtractRPCInfo( char **, GDALRPCInfo * );
    00607
    00608 /* ==================================================================== */
    00609 /*      Color tables.                                                   */
    00610 /* ==================================================================== */
    00612 typedef struct
    00613 {
    00615     short      c1;
    00616
    00618     short      c2;
    00619
    00621     short      c3;
    00622
    00624     short      c4;
    00625 } GDALColorEntry;
    00626
    00627 GDALColorTableH CPL_DLL CPL_STDCALL GDALCreateColorTable( GDALPaletteInterp );
    00628 void CPL_DLL CPL_STDCALL GDALDestroyColorTable( GDALColorTableH );
    00629 GDALColorTableH CPL_DLL CPL_STDCALL GDALCloneColorTable( GDALColorTableH );
    00630 GDALPaletteInterp CPL_DLL CPL_STDCALL GDALGetPaletteInterpretation( GDALColorTableH );
    00631 int CPL_DLL CPL_STDCALL GDALGetColorEntryCount( GDALColorTableH );
    00632 const GDALColorEntry CPL_DLL * CPL_STDCALL GDALGetColorEntry( GDALColorTableH, int );
    00633 int CPL_DLL CPL_STDCALL GDALGetColorEntryAsRGB( GDALColorTableH, int, GDALColorEntry *);
    00634 void CPL_DLL CPL_STDCALL GDALSetColorEntry( GDALColorTableH, int, const GDALColorEntry * );
    00635
    00636 /* ==================================================================== */
    00637 /*      Raster Attribute Table                                          */
    00638 /* ==================================================================== */
    00639
    00640 typedef enum {             GFT_Integer ,    GFT_Real,                    GFT_String
    00644 } GDALRATFieldType;
    00645
    00646 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
    00666 } GDALRATFieldUsage;
    00667
    00668 GDALRasterAttributeTableH CPL_DLL CPL_STDCALL
    00669                                            GDALCreateRasterAttributeTable(void);
    00670 void CPL_DLL CPL_STDCALL GDALDestroyRasterAttributeTable(
    00671     GDALRasterAttributeTableH );
    00672
    00673 int CPL_DLL CPL_STDCALL GDALRATGetColumnCount( GDALRasterAttributeTableH );
    00674
    00675 const char CPL_DLL * CPL_STDCALL GDALRATGetNameOfCol(
    00676     GDALRasterAttributeTableH, int );
    00677 GDALRATFieldUsage CPL_DLL CPL_STDCALL GDALRATGetUsageOfCol(
    00678     GDALRasterAttributeTableH, int );
    00679 GDALRATFieldType CPL_DLL CPL_STDCALL GDALRATGetTypeOfCol(
    00680     GDALRasterAttributeTableH, int );
    00681
    00682 int CPL_DLL CPL_STDCALL GDALRATGetColOfUsage( GDALRasterAttributeTableH,
    00683                                               GDALRATFieldUsage );
    00684 int CPL_DLL CPL_STDCALL GDALRATGetRowCount( GDALRasterAttributeTableH );
    00685
    00686 const char CPL_DLL * CPL_STDCALL GDALRATGetValueAsString(
    00687     GDALRasterAttributeTableH, int ,int);
    00688 int CPL_DLL CPL_STDCALL GDALRATGetValueAsInt(
    00689     GDALRasterAttributeTableH, int ,int);
    00690 double CPL_DLL CPL_STDCALL GDALRATGetValueAsDouble(
    00691     GDALRasterAttributeTableH, int ,int);
    00692
    00693 void CPL_DLL CPL_STDCALL GDALRATSetValueAsString( GDALRasterAttributeTableH, int, int,
    00694                                                   const char * );
    00695 void CPL_DLL CPL_STDCALL GDALRATSetValueAsInt( GDALRasterAttributeTableH, int, int,
    00696                                                int );
    00697 void CPL_DLL CPL_STDCALL GDALRATSetValueAsDouble( GDALRasterAttributeTableH, int, int,
    00698                                                   double );
    00699 void CPL_DLL CPL_STDCALL GDALRATSetRowCount( GDALRasterAttributeTableH,
    00700                                              int );
    00701 CPLErr CPL_DLL CPL_STDCALL GDALRATCreateColumn( GDALRasterAttributeTableH,
    00702                                                 const char *,
    00703                                                 GDALRATFieldType,
    00704                                                 GDALRATFieldUsage );
    00705 CPLErr CPL_DLL CPL_STDCALL GDALRATSetLinearBinning( GDALRasterAttributeTableH,
    00706                                                     double, double );
    00707 int CPL_DLL CPL_STDCALL GDALRATGetLinearBinning( GDALRasterAttributeTableH,
    00708                                                  double *, double * );
    00709 CPLErr CPL_DLL CPL_STDCALL GDALRATInitializeFromColorTable(
    00710     GDALRasterAttributeTableH, GDALColorTableH );
    00711 GDALColorTableH CPL_DLL CPL_STDCALL GDALRATTranslateToColorTable(
    00712     int nEntryCount );
    00713 void CPL_DLL CPL_STDCALL GDALRATDumpReadable( GDALRasterAttributeTableH,
    00714                                               FILE * );
    00715 GDALRasterAttributeTableH CPL_DLL CPL_STDCALL
    00716     GDALRATClone( GDALRasterAttributeTableH );
    00717
    00718 int CPL_DLL CPL_STDCALL GDALRATGetRowOfValue( GDALRasterAttributeTableH , double );
    00719
    00720
    00721 /* ==================================================================== */
    00722 /*      GDAL Cache Management                                           */
    00723 /* ==================================================================== */
    00724
    00725 void CPL_DLL CPL_STDCALL GDALSetCacheMax( int nBytes );
    00726 int CPL_DLL CPL_STDCALL GDALGetCacheMax(void);
    00727 int CPL_DLL CPL_STDCALL GDALGetCacheUsed(void);
    00728 int CPL_DLL CPL_STDCALL GDALFlushCacheBlock(void);
    00729
    00730 CPL_C_END
    00731
    00732 #endif /* ndef GDAL_H_INCLUDED */

Generated for GDAL by 1.5.1.