- Main Page
- Classes
- Files
- Related Pages

- File List
- File Members

# gdal.h

Go to the documentation of this file.

    00001 /******************************************************************************
    00002  * $Id: gdal.h 10646 2007-01-18 02:38:10Z warmerdam $
    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 #ifndef GDAL_H_INCLUDED
    00031 #define GDAL_H_INCLUDED
    00032
    00039 #include "gdal_version.h"
    00040 #include "cpl_port.h"
    00041 #include "cpl_error.h"
    00042
    00043 /* -------------------------------------------------------------------- */
    00044 /*      Significant constants.                                          */
    00045 /* -------------------------------------------------------------------- */
    00046
    00047 CPL_C_START
    00048
    00050 typedef enum {
    00051     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,
    00063     GDT_TypeCount = 12          /* maximum type # + 1 */
    00064 } GDALDataType;
    00065
    00066 int CPL_DLL CPL_STDCALL GDALGetDataTypeSize( GDALDataType );
    00067 int CPL_DLL CPL_STDCALL GDALDataTypeIsComplex( GDALDataType );
    00068 const char CPL_DLL * CPL_STDCALL GDALGetDataTypeName( GDALDataType );
    00069 GDALDataType CPL_DLL CPL_STDCALL GDALGetDataTypeByName( const char * );
    00070 GDALDataType CPL_DLL CPL_STDCALL GDALDataTypeUnion( GDALDataType, GDALDataType );
    00071
    00073 typedef enum { GA_ReadOnly = 0,           GA_Update = 1
    00076 } GDALAccess;
    00077
    00079 typedef enum {   GF_Read = 0,  GF_Write = 1
    00082 } GDALRWFlag;
    00083
    00085 typedef enum
    00086 {
    00087     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
    00105 } GDALColorInterp;
    00106
    00108 const char CPL_DLL *GDALGetColorInterpretationName( GDALColorInterp );
    00109
    00111 typedef enum
    00112 {                      GPI_Gray=0,  GPI_RGB=1, GPI_CMYK=2,     GPI_HLS=3
    00117 } GDALPaletteInterp;
    00118
    00120 const char CPL_DLL *GDALGetPaletteInterpretationName( GDALPaletteInterp );
    00121
    00122 /* "well known" metadata items. */
    00123
    00124 #define GDALMD_AREA_OR_POINT   "AREA_OR_POINT"
    00125 #  define GDALMD_AOP_AREA      "Area"
    00126 #  define GDALMD_AOP_POINT     "Point"
    00127
    00128 /* -------------------------------------------------------------------- */
    00129 /*      GDAL Specific error codes.                                      */
    00130 /*                                                                      */
    00131 /*      error codes 100 to 299 reserved for GDAL.                       */
    00132 /* -------------------------------------------------------------------- */
    00133 #define CPLE_WrongFormat        200
    00134
    00135 /* -------------------------------------------------------------------- */
    00136 /*      Define handle types related to various internal classes.        */
    00137 /* -------------------------------------------------------------------- */
    00138 typedef void *GDALMajorObjectH;
    00139 typedef void *GDALDatasetH;
    00140 typedef void *GDALRasterBandH;
    00141 typedef void *GDALDriverH;
    00142 typedef void *GDALProjDefH;
    00143 typedef void *GDALColorTableH;
    00144 typedef void *GDALRasterAttributeTableH;
    00145
    00146 /* -------------------------------------------------------------------- */
    00147 /*      Callback "progress" function.                                   */
    00148 /* -------------------------------------------------------------------- */
    00149
    00150 typedef int (CPL_STDCALL *GDALProgressFunc)(double,const char *, void *);
    00151 int CPL_DLL CPL_STDCALL GDALDummyProgress( double, const char *, void *);
    00152 int CPL_DLL CPL_STDCALL GDALTermProgress( double, const char *, void *);
    00153 int CPL_DLL CPL_STDCALL GDALScaledProgress( double, const char *, void *);
    00154 void CPL_DLL * CPL_STDCALL GDALCreateScaledProgress( double, double,
    00155                                         GDALProgressFunc, void * );
    00156 void CPL_DLL CPL_STDCALL GDALDestroyScaledProgress( void * );
    00157
    00158 /* ==================================================================== */
    00159 /*      Registration/driver related.                                    */
    00160 /* ==================================================================== */
    00161
    00162 typedef struct {
    00163     char      *pszOptionName;
    00164     char      *pszValueType;   /* "boolean", "int", "float", "string",
    00165                                   "string-select" */
    00166     char      *pszDescription;
    00167     char      **papszOptions;
    00168 } GDALOptionDefinition;
    00169
    00170 #define GDAL_DMD_LONGNAME "DMD_LONGNAME"
    00171 #define GDAL_DMD_HELPTOPIC "DMD_HELPTOPIC"
    00172 #define GDAL_DMD_MIMETYPE "DMD_MIMETYPE"
    00173 #define GDAL_DMD_EXTENSION "DMD_EXTENSION"
    00174 #define GDAL_DMD_CREATIONOPTIONLIST "DMD_CREATIONOPTIONLIST"
    00175 #define GDAL_DMD_CREATIONDATATYPES "DMD_CREATIONDATATYPES"
    00176
    00177 #define GDAL_DCAP_CREATE     "DCAP_CREATE"
    00178 #define GDAL_DCAP_CREATECOPY "DCAP_CREATECOPY"
    00179
    00180 void CPL_DLL CPL_STDCALL GDALAllRegister( void );
    00181
    00182 GDALDatasetH CPL_DLL CPL_STDCALL GDALCreate( GDALDriverH hDriver,
    00183                                  const char *, int, int, int, GDALDataType,
    00184                                  char ** );
    00185 GDALDatasetH CPL_DLL CPL_STDCALL
    00186 GDALCreateCopy( GDALDriverH, const char *, GDALDatasetH,
    00187                 int, char **, GDALProgressFunc, void * );
    00188
    00189 GDALDatasetH CPL_DLL CPL_STDCALL
    00190 GDALOpen( const char *pszFilename, GDALAccess eAccess );
    00191 GDALDatasetH CPL_DLL CPL_STDCALL GDALOpenShared( const char *, GDALAccess );
    00192 int          CPL_DLL CPL_STDCALL GDALDumpOpenDatasets( FILE * );
    00193
    00194 GDALDriverH CPL_DLL CPL_STDCALL GDALGetDriverByName( const char * );
    00195 int CPL_DLL         CPL_STDCALL GDALGetDriverCount( void );
    00196 GDALDriverH CPL_DLL CPL_STDCALL GDALGetDriver( int );
    00197 int         CPL_DLL CPL_STDCALL GDALRegisterDriver( GDALDriverH );
    00198 void        CPL_DLL CPL_STDCALL GDALDeregisterDriver( GDALDriverH );
    00199 void        CPL_DLL CPL_STDCALL GDALDestroyDriverManager( void );
    00200 CPLErr      CPL_DLL CPL_STDCALL GDALDeleteDataset( GDALDriverH, const char * );
    00201
    00202 /* The following are deprecated */
    00203 const char CPL_DLL * CPL_STDCALL GDALGetDriverShortName( GDALDriverH );
    00204 const char CPL_DLL * CPL_STDCALL GDALGetDriverLongName( GDALDriverH );
    00205 const char CPL_DLL * CPL_STDCALL GDALGetDriverHelpTopic( GDALDriverH );
    00206 const char CPL_DLL * CPL_STDCALL GDALGetDriverCreationOptionList( GDALDriverH );
    00207
    00208 /* ==================================================================== */
    00209 /*      GDAL_GCP                                                        */
    00210 /* ==================================================================== */
    00211
    00213 typedef struct
    00214 {
    00216     char        *pszId;
    00217
    00219     char        *pszInfo;
    00220
    00222     double      dfGCPPixel;
    00224     double      dfGCPLine;
    00225
    00227     double      dfGCPX;
    00228
    00230     double      dfGCPY;
    00231
    00233     double      dfGCPZ;
    00234 } GDAL_GCP;
    00235
    00236 void CPL_DLL CPL_STDCALL GDALInitGCPs( int, GDAL_GCP * );
    00237 void CPL_DLL CPL_STDCALL GDALDeinitGCPs( int, GDAL_GCP * );
    00238 GDAL_GCP CPL_DLL * CPL_STDCALL GDALDuplicateGCPs( int, const GDAL_GCP * );
    00239
    00240 int CPL_DLL CPL_STDCALL
    00241 GDALGCPsToGeoTransform( int nGCPCount, const GDAL_GCP *pasGCPs,
    00242                         double *padfGeoTransform, int bApproxOK );
    00243 int CPL_DLL CPL_STDCALL
    00244 GDALInvGeoTransform( double *padfGeoTransformIn,
    00245                      double *padfInvGeoTransformOut );
    00246 void CPL_DLL CPL_STDCALL GDALApplyGeoTransform( double *, double, double,
    00247                                                 double *, double * );
    00248
    00249 /* ==================================================================== */
    00250 /*      major objects (dataset, and, driver, drivermanager).            */
    00251 /* ==================================================================== */
    00252
    00253 char CPL_DLL  ** CPL_STDCALL GDALGetMetadata( GDALMajorObjectH, const char * );
    00254 CPLErr CPL_DLL CPL_STDCALL GDALSetMetadata( GDALMajorObjectH, char **,
    00255                                             const char * );
    00256 const char CPL_DLL * CPL_STDCALL
    00257 GDALGetMetadataItem( GDALMajorObjectH, const char *, const char * );
    00258 CPLErr CPL_DLL CPL_STDCALL
    00259 GDALSetMetadataItem( GDALMajorObjectH, const char *, const char *,
    00260                      const char * );
    00261 const char CPL_DLL * CPL_STDCALL GDALGetDescription( GDALMajorObjectH );
    00262 void CPL_DLL CPL_STDCALL GDALSetDescription( GDALMajorObjectH, const char * );
    00263
    00264 /* ==================================================================== */
    00265 /*      GDALDataset class ... normally this represents one file.        */
    00266 /* ==================================================================== */
    00267
    00268 GDALDriverH CPL_DLL CPL_STDCALL GDALGetDatasetDriver( GDALDatasetH );
    00269 void CPL_DLL CPL_STDCALL   GDALClose( GDALDatasetH );
    00270 int CPL_DLL CPL_STDCALL     GDALGetRasterXSize( GDALDatasetH );
    00271 int CPL_DLL CPL_STDCALL     GDALGetRasterYSize( GDALDatasetH );
    00272 int CPL_DLL CPL_STDCALL     GDALGetRasterCount( GDALDatasetH );
    00273 GDALRasterBandH CPL_DLL CPL_STDCALL GDALGetRasterBand( GDALDatasetH, int );
    00274
    00275 CPLErr CPL_DLL  CPL_STDCALL GDALAddBand( GDALDatasetH hDS, GDALDataType eType,
    00276                              char **papszOptions );
    00277
    00278 CPLErr CPL_DLL CPL_STDCALL GDALDatasetRasterIO(
    00279     GDALDatasetH hDS, GDALRWFlag eRWFlag,
    00280     int nDSXOff, int nDSYOff, int nDSXSize, int nDSYSize,
    00281     void * pBuffer, int nBXSize, int nBYSize, GDALDataType eBDataType,
    00282     int nBandCount, int *panBandCount,
    00283     int nPixelSpace, int nLineSpace, int nBandSpace);
    00284
    00285 CPLErr CPL_DLL CPL_STDCALL GDALDatasetAdviseRead( GDALDatasetH hDS,
    00286     int nDSXOff, int nDSYOff, int nDSXSize, int nDSYSize,
    00287     int nBXSize, int nBYSize, GDALDataType eBDataType,
    00288     int nBandCount, int *panBandCount, char **papszOptions );
    00289
    00290 const char CPL_DLL * CPL_STDCALL GDALGetProjectionRef( GDALDatasetH );
    00291 CPLErr CPL_DLL CPL_STDCALL GDALSetProjection( GDALDatasetH, const char * );
    00292 CPLErr CPL_DLL CPL_STDCALL GDALGetGeoTransform( GDALDatasetH, double * );
    00293 CPLErr CPL_DLL CPL_STDCALL GDALSetGeoTransform( GDALDatasetH, double * );
    00294
    00295 int CPL_DLL CPL_STDCALL  GDALGetGCPCount( GDALDatasetH );
    00296 const char CPL_DLL * CPL_STDCALL GDALGetGCPProjection( GDALDatasetH );
    00297 const GDAL_GCP CPL_DLL * CPL_STDCALL GDALGetGCPs( GDALDatasetH );
    00298 CPLErr CPL_DLL CPL_STDCALL GDALSetGCPs( GDALDatasetH, int, const GDAL_GCP *,
    00299                                         const char * );
    00300
    00301 void CPL_DLL * CPL_STDCALL GDALGetInternalHandle( GDALDatasetH, const char * );
    00302 int CPL_DLL CPL_STDCALL GDALReferenceDataset( GDALDatasetH );
    00303 int CPL_DLL CPL_STDCALL GDALDereferenceDataset( GDALDatasetH );
    00304
    00305 CPLErr CPL_DLL CPL_STDCALL
    00306 GDALBuildOverviews( GDALDatasetH, const char *, int, int *,
    00307                     int, int *, GDALProgressFunc, void * );
    00308 void CPL_DLL CPL_STDCALL GDALGetOpenDatasets( GDALDatasetH **hDS, int *pnCount );
    00309 int CPL_DLL CPL_STDCALL GDALGetAccess( GDALDatasetH hDS );
    00310 void CPL_DLL CPL_STDCALL GDALFlushCache( GDALDatasetH hDS );
    00311
    00312 /* ==================================================================== */
    00313 /*      GDALRasterBand ... one band/channel in a dataset.               */
    00314 /* ==================================================================== */
    00315
    00320 #define SRCVAL(papoSource, eSrcType, ii) \
    00321       (eSrcType == GDT_Byte ? \
    00322           ((char *)papoSource)[ii] : \
    00323       (eSrcType == GDT_Float32 ? \
    00324           ((float *)papoSource)[ii] : \
    00325       (eSrcType == GDT_Float64 ? \
    00326           ((double *)papoSource)[ii] : \
    00327       (eSrcType == GDT_Int32 ? \
    00328           ((GInt32 *)papoSource)[ii] : \
    00329       (eSrcType == GDT_UInt16 ? \
    00330           ((GUInt16 *)papoSource)[ii] : \
    00331       (eSrcType == GDT_Int16 ? \
    00332           ((GInt16 *)papoSource)[ii] : \
    00333       (eSrcType == GDT_UInt32 ? \
    00334           ((GUInt32 *)papoSource)[ii] : \
    00335       (eSrcType == GDT_CInt16 ? \
    00336           ((GInt16 *)papoSource)[ii * 2] : \
    00337       (eSrcType == GDT_CInt32 ? \
    00338           ((GInt32 *)papoSource)[ii * 2] : \
    00339       (eSrcType == GDT_CFloat32 ? \
    00340           ((float *)papoSource)[ii * 2] : \
    00341       (eSrcType == GDT_CFloat64 ? \
    00342           ((double *)papoSource)[ii * 2] : 0)))))))))))
    00343
    00344 typedef CPLErr
    00345 (*GDALDerivedPixelFunc)(void **papoSources, int nSources, void *pData,
    00346                         int nBufXSize, int nBufYSize,
    00347                         GDALDataType eSrcType, GDALDataType eBufType,
    00348                         int nPixelSpace, int nLineSpace);
    00349
    00350 GDALDataType CPL_DLL CPL_STDCALL GDALGetRasterDataType( GDALRasterBandH );
    00351 void CPL_DLL CPL_STDCALL
    00352 GDALGetBlockSize( GDALRasterBandH, int * pnXSize, int * pnYSize );
    00353
    00354 CPLErr CPL_DLL CPL_STDCALL GDALRasterAdviseRead( GDALRasterBandH hRB,
    00355     int nDSXOff, int nDSYOff, int nDSXSize, int nDSYSize,
    00356     int nBXSize, int nBYSize, GDALDataType eBDataType, char **papszOptions );
    00357
    00358 CPLErr CPL_DLL CPL_STDCALL
    00359 GDALRasterIO( GDALRasterBandH hRBand, GDALRWFlag eRWFlag,
    00360               int nDSXOff, int nDSYOff, int nDSXSize, int nDSYSize,
    00361               void * pBuffer, int nBXSize, int nBYSize,GDALDataType eBDataType,
    00362               int nPixelSpace, int nLineSpace );
    00363 CPLErr CPL_DLL CPL_STDCALL GDALReadBlock( GDALRasterBandH, int, int, void * );
    00364 CPLErr CPL_DLL CPL_STDCALL GDALWriteBlock( GDALRasterBandH, int, int, void * );
    00365 int CPL_DLL CPL_STDCALL GDALGetRasterBandXSize( GDALRasterBandH );
    00366 int CPL_DLL CPL_STDCALL GDALGetRasterBandYSize( GDALRasterBandH );
    00367 GDALAccess CPL_DLL CPL_STDCALL GDALGetRasterAccess( GDALRasterBandH );
    00368 int CPL_DLL CPL_STDCALL GDALGetBandNumber( GDALRasterBandH );
    00369 GDALDatasetH CPL_DLL CPL_STDCALL GDALGetBandDataset( GDALRasterBandH );
    00370
    00371 GDALColorInterp CPL_DLL CPL_STDCALL
    00372 GDALGetRasterColorInterpretation( GDALRasterBandH );
    00373 CPLErr CPL_DLL CPL_STDCALL
    00374 GDALSetRasterColorInterpretation( GDALRasterBandH, GDALColorInterp );
    00375 GDALColorTableH CPL_DLL CPL_STDCALL GDALGetRasterColorTable( GDALRasterBandH );
    00376 CPLErr CPL_DLL CPL_STDCALL GDALSetRasterColorTable( GDALRasterBandH, GDALColorTableH );
    00377 int CPL_DLL CPL_STDCALL GDALHasArbitraryOverviews( GDALRasterBandH );
    00378 int CPL_DLL CPL_STDCALL GDALGetOverviewCount( GDALRasterBandH );
    00379 GDALRasterBandH CPL_DLL CPL_STDCALL GDALGetOverview( GDALRasterBandH, int );
    00380 double CPL_DLL CPL_STDCALL GDALGetRasterNoDataValue( GDALRasterBandH, int * );
    00381 CPLErr CPL_DLL CPL_STDCALL GDALSetRasterNoDataValue( GDALRasterBandH, double );
    00382 char CPL_DLL ** CPL_STDCALL GDALGetRasterCategoryNames( GDALRasterBandH );
    00383 CPLErr CPL_DLL CPL_STDCALL GDALSetRasterCategoryNames( GDALRasterBandH, char ** );
    00384 double CPL_DLL CPL_STDCALL GDALGetRasterMinimum( GDALRasterBandH, int *pbSuccess );
    00385 double CPL_DLL CPL_STDCALL GDALGetRasterMaximum( GDALRasterBandH, int *pbSuccess );
    00386 CPLErr CPL_DLL CPL_STDCALL GDALGetRasterStatistics(
    00387     GDALRasterBandH, int bApproxOK, int bForce,
    00388     double *pdfMin, double *pdfMax, double *pdfMean, double *pdfStdDev );
    00389 CPLErr CPL_DLL CPL_STDCALL GDALComputeRasterStatistics(
    00390     GDALRasterBandH, int bApproxOK,
    00391     double *pdfMin, double *pdfMax, double *pdfMean, double *pdfStdDev,
    00392     GDALProgressFunc pfnProgress, void *pProgressData );
    00393 CPLErr CPL_DLL CPL_STDCALL GDALSetRasterStatistics(
    00394     GDALRasterBandH hBand,
    00395     double dfMin, double dfMax, double dfMean, double dfStdDev );
    00396
    00397 const char CPL_DLL * CPL_STDCALL GDALGetRasterUnitType( GDALRasterBandH );
    00398 double CPL_DLL CPL_STDCALL GDALGetRasterOffset( GDALRasterBandH, int *pbSuccess );
    00399 CPLErr CPL_DLL CPL_STDCALL GDALSetRasterOffset( GDALRasterBandH hBand, double dfNewOffset);
    00400 double CPL_DLL CPL_STDCALL GDALGetRasterScale( GDALRasterBandH, int *pbSuccess );
    00401 CPLErr CPL_DLL CPL_STDCALL GDALSetRasterScale( GDALRasterBandH hBand, double dfNewOffset );
    00402 void CPL_DLL CPL_STDCALL
    00403 GDALComputeRasterMinMax( GDALRasterBandH hBand, int bApproxOK,
    00404                          double adfMinMax[2] );
    00405 CPLErr CPL_DLL CPL_STDCALL GDALFlushRasterCache( GDALRasterBandH hBand );
    00406 CPLErr CPL_DLL CPL_STDCALL GDALGetRasterHistogram( GDALRasterBandH hBand,
    00407                                        double dfMin, double dfMax,
    00408                                        int nBuckets, int *panHistogram,
    00409                                        int bIncludeOutOfRange, int bApproxOK,
    00410                                        GDALProgressFunc pfnProgress,
    00411                                        void * pProgressData );
    00412 CPLErr CPL_DLL CPL_STDCALL GDALGetDefaultHistogram( GDALRasterBandH hBand,
    00413                                        double *pdfMin, double *pdfMax,
    00414                                        int *pnBuckets, int **ppanHistogram,
    00415                                        int bForce,
    00416                                        GDALProgressFunc pfnProgress,
    00417                                        void * pProgressData );
    00418 CPLErr CPL_DLL CPL_STDCALL GDALSetDefaultHistogram( GDALRasterBandH hBand,
    00419                                        double dfMin, double dfMax,
    00420                                        int nBuckets, int *panHistogram );
    00421 int CPL_DLL CPL_STDCALL
    00422 GDALGetRandomRasterSample( GDALRasterBandH, int, float * );
    00423 GDALRasterBandH CPL_DLL CPL_STDCALL
    00424 GDALGetRasterSampleOverview( GDALRasterBandH, int );
    00425 CPLErr CPL_DLL CPL_STDCALL GDALFillRaster( GDALRasterBandH hBand,
    00426                           double dfRealValue, double dfImaginaryValue );
    00427 CPLErr CPL_DLL CPL_STDCALL
    00428 GDALComputeBandStats( GDALRasterBandH hBand, int nSampleStep,
    00429                              double *pdfMean, double *pdfStdDev,
    00430                              GDALProgressFunc pfnProgress,
    00431                              void *pProgressData );
    00432 CPLErr CPL_DLL  GDALOverviewMagnitudeCorrection( GDALRasterBandH hBaseBand,
    00433                                         int nOverviewCount,
    00434                                         GDALRasterBandH *pahOverviews,
    00435                                         GDALProgressFunc pfnProgress,
    00436                                         void *pProgressData );
    00437
    00438 GDALRasterAttributeTableH CPL_DLL CPL_STDCALL GDALGetDefaultRAT(
    00439     GDALRasterBandH hBand );
    00440 CPLErr CPL_DLL CPL_STDCALL GDALSetDefaultRAT( GDALRasterBandH,
    00441                                               GDALRasterAttributeTableH );
    00442 CPLErr CPL_DLL CPL_STDCALL GDALAddDerivedBandPixelFunc( const char *pszName,
    00443                                     GDALDerivedPixelFunc pfnPixelFunc );
    00444
    00445 /* -------------------------------------------------------------------- */
    00446 /*      Helper functions.                                               */
    00447 /* -------------------------------------------------------------------- */
    00448 int CPL_DLL CPL_STDCALL GDALGeneralCmdLineProcessor( int nArgc, char ***ppapszArgv,
    00449                                          int nOptions );
    00450 void CPL_DLL CPL_STDCALL GDALSwapWords( void *pData, int nWordSize, int nWordCount,
    00451                             int nWordSkip );
    00452 void CPL_DLL CPL_STDCALL
    00453     GDALCopyWords( void * pSrcData, GDALDataType eSrcType, int nSrcPixelOffset,
    00454                    void * pDstData, GDALDataType eDstType, int nDstPixelOffset,
    00455                    int nWordCount );
    00456
    00457 int CPL_DLL CPL_STDCALL GDALReadWorldFile( const char *pszBaseFilename,
    00458                        const char *pszExtension,
    00459                        double * padfGeoTransform );
    00460 int CPL_DLL CPL_STDCALL GDALWriteWorldFile( const char *pszBaseFilename,
    00461                        const char *pszExtension,
    00462                        double * padfGeoTransform );
    00463 int CPL_DLL CPL_STDCALL GDALReadTabFile( const char *pszBaseFilename,
    00464                              double *padfGeoTransform, char **ppszWKT,
    00465                              int *pnGCPCount, GDAL_GCP **ppasGCPs );
    00466
    00467 const char CPL_DLL * CPL_STDCALL GDALDecToDMS( double, const char *, int );
    00468 double CPL_DLL CPL_STDCALL GDALPackedDMSToDec( double );
    00469 double CPL_DLL CPL_STDCALL GDALDecToPackedDMS( double );
    00470
    00471 const char CPL_DLL * CPL_STDCALL GDALVersionInfo( const char * );
    00472
    00473 typedef struct {
    00474     double      dfLINE_OFF;
    00475     double      dfSAMP_OFF;
    00476     double      dfLAT_OFF;
    00477     double      dfLONG_OFF;
    00478     double      dfHEIGHT_OFF;
    00479
    00480     double      dfLINE_SCALE;
    00481     double      dfSAMP_SCALE;
    00482     double      dfLAT_SCALE;
    00483     double      dfLONG_SCALE;
    00484     double      dfHEIGHT_SCALE;
    00485
    00486     double      adfLINE_NUM_COEFF[20];
    00487     double      adfLINE_DEN_COEFF[20];
    00488     double      adfSAMP_NUM_COEFF[20];
    00489     double      adfSAMP_DEN_COEFF[20];
    00490
    00491     double      dfMIN_LONG;
    00492     double      dfMIN_LAT;
    00493     double      dfMAX_LONG;
    00494     double      dfMAX_LAT;
    00495
    00496 } GDALRPCInfo;
    00497
    00498 int CPL_DLL CPL_STDCALL GDALExtractRPCInfo( char **, GDALRPCInfo * );
    00499
    00500 /* ==================================================================== */
    00501 /*      Color tables.                                                   */
    00502 /* ==================================================================== */
    00504 typedef struct
    00505 {
    00507     short      c1;
    00508
    00510     short      c2;
    00511
    00513     short      c3;
    00514
    00516     short      c4;
    00517 } GDALColorEntry;
    00518
    00519 GDALColorTableH CPL_DLL CPL_STDCALL GDALCreateColorTable( GDALPaletteInterp );
    00520 void CPL_DLL CPL_STDCALL GDALDestroyColorTable( GDALColorTableH );
    00521 GDALColorTableH CPL_DLL CPL_STDCALL GDALCloneColorTable( GDALColorTableH );
    00522 GDALPaletteInterp CPL_DLL CPL_STDCALL GDALGetPaletteInterpretation( GDALColorTableH );
    00523 int CPL_DLL CPL_STDCALL GDALGetColorEntryCount( GDALColorTableH );
    00524 const GDALColorEntry CPL_DLL * CPL_STDCALL GDALGetColorEntry( GDALColorTableH, int );
    00525 int CPL_DLL CPL_STDCALL GDALGetColorEntryAsRGB( GDALColorTableH, int, GDALColorEntry *);
    00526 void CPL_DLL CPL_STDCALL GDALSetColorEntry( GDALColorTableH, int, const GDALColorEntry * );
    00527
    00528 /* ==================================================================== */
    00529 /*      Raster Attribute Table                                          */
    00530 /* ==================================================================== */
    00531
    00532 typedef enum {             GFT_Integer ,    GFT_Real,                    GFT_String
    00536 } GDALRATFieldType;
    00537
    00538 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
    00558 } GDALRATFieldUsage;
    00559
    00560 GDALRasterAttributeTableH CPL_DLL CPL_STDCALL
    00561                                            GDALCreateRasterAttributeTable(void);
    00562 void CPL_DLL CPL_STDCALL GDALDestroyRasterAttributeTable(
    00563     GDALRasterAttributeTableH );
    00564
    00565 int CPL_DLL CPL_STDCALL GDALRATGetColumnCount( GDALRasterAttributeTableH );
    00566
    00567 const char CPL_DLL * CPL_STDCALL GDALRATGetNameOfCol(
    00568     GDALRasterAttributeTableH, int );
    00569 GDALRATFieldUsage CPL_DLL CPL_STDCALL GDALRATGetUsageOfCol(
    00570     GDALRasterAttributeTableH, int );
    00571 GDALRATFieldType CPL_DLL CPL_STDCALL GDALRATGetTypeOfCol(
    00572     GDALRasterAttributeTableH, int );
    00573
    00574 int CPL_DLL CPL_STDCALL GDALRATGetColOfUsage( GDALRasterAttributeTableH,
    00575                                               GDALRATFieldUsage );
    00576 int CPL_DLL CPL_STDCALL GDALRATGetRowCount( GDALRasterAttributeTableH );
    00577
    00578 const char CPL_DLL * CPL_STDCALL GDALRATGetValueAsString(
    00579     GDALRasterAttributeTableH, int ,int);
    00580 int CPL_DLL CPL_STDCALL GDALRATGetValueAsInt(
    00581     GDALRasterAttributeTableH, int ,int);
    00582 double CPL_DLL CPL_STDCALL GDALRATGetValueAsDouble(
    00583     GDALRasterAttributeTableH, int ,int);
    00584
    00585 void CPL_DLL CPL_STDCALL GDALRATSetValueAsString( GDALRasterAttributeTableH, int, int,
    00586                                                   const char * );
    00587 void CPL_DLL CPL_STDCALL GDALRATSetValueAsInt( GDALRasterAttributeTableH, int, int,
    00588                                                int );
    00589 void CPL_DLL CPL_STDCALL GDALRATSetValueAsDouble( GDALRasterAttributeTableH, int, int,
    00590                                                   double );
    00591 void CPL_DLL CPL_STDCALL GDALRATSetRowCount( GDALRasterAttributeTableH,
    00592                                              int );
    00593 CPLErr CPL_DLL CPL_STDCALL GDALRATCreateColumn( GDALRasterAttributeTableH,
    00594                                                 const char *,
    00595                                                 GDALRATFieldType,
    00596                                                 GDALRATFieldUsage );
    00597 CPLErr CPL_DLL CPL_STDCALL GDALRATSetLinearBinning( GDALRasterAttributeTableH,
    00598                                                     double, double );
    00599 int CPL_DLL CPL_STDCALL GDALRATGetLinearBinning( GDALRasterAttributeTableH,
    00600                                                  double *, double * );
    00601 CPLErr CPL_DLL CPL_STDCALL GDALRATInitializeFromColorTable(
    00602     GDALRasterAttributeTableH, GDALColorTableH );
    00603 GDALColorTableH CPL_DLL CPL_STDCALL GDALRATTranslateToColorTable(
    00604     int nEntryCount );
    00605 void CPL_DLL CPL_STDCALL GDALRATDumpReadable( GDALRasterAttributeTableH,
    00606                                               FILE * );
    00607 GDALRasterAttributeTableH CPL_DLL CPL_STDCALL
    00608     GDALRATClone( GDALRasterAttributeTableH );
    00609
    00610 int CPL_DLL CPL_STDCALL GDALRATGetRowOfValue( GDALRasterAttributeTableH , double );
    00611
    00612
    00613 /* ==================================================================== */
    00614 /*      GDAL Cache Management                                           */
    00615 /* ==================================================================== */
    00616
    00617 void CPL_DLL CPL_STDCALL GDALSetCacheMax( int nBytes );
    00618 int CPL_DLL CPL_STDCALL GDALGetCacheMax(void);
    00619 int CPL_DLL CPL_STDCALL GDALGetCacheUsed(void);
    00620 int CPL_DLL CPL_STDCALL GDALFlushCacheBlock(void);
    00621
    00622 CPL_C_END
    00623
    00624 #endif /* ndef GDAL_H_INCLUDED */

Generated for GDAL by 1.5.1.