GDAL

gdal.h

Go to the documentation of this file.
00001 /******************************************************************************
00002  * $Id: gdal.h 14816 2008-07-05 08:54:56Z rouault $
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 #define GDAL_DCAP_VIRTUALIO  "DCAP_VIRTUALIO"
00180 
00181 void CPL_DLL CPL_STDCALL GDALAllRegister( void );
00182 
00183 GDALDatasetH CPL_DLL CPL_STDCALL GDALCreate( GDALDriverH hDriver,
00184                                  const char *, int, int, int, GDALDataType,
00185                                  char ** );
00186 GDALDatasetH CPL_DLL CPL_STDCALL
00187 GDALCreateCopy( GDALDriverH, const char *, GDALDatasetH,
00188                 int, char **, GDALProgressFunc, void * );
00189 
00190 GDALDriverH CPL_DLL CPL_STDCALL GDALIdentifyDriver( const char * pszFilename,
00191                                             char ** papszFileList );
00192 GDALDatasetH CPL_DLL CPL_STDCALL
00193 GDALOpen( const char *pszFilename, GDALAccess eAccess );
00194 GDALDatasetH CPL_DLL CPL_STDCALL GDALOpenShared( const char *, GDALAccess );
00195 int          CPL_DLL CPL_STDCALL GDALDumpOpenDatasets( FILE * );
00196 
00197 GDALDriverH CPL_DLL CPL_STDCALL GDALGetDriverByName( const char * );
00198 int CPL_DLL         CPL_STDCALL GDALGetDriverCount( void );
00199 GDALDriverH CPL_DLL CPL_STDCALL GDALGetDriver( int );
00200 void        CPL_DLL CPL_STDCALL GDALDestroyDriver( GDALDriverH );
00201 int         CPL_DLL CPL_STDCALL GDALRegisterDriver( GDALDriverH );
00202 void        CPL_DLL CPL_STDCALL GDALDeregisterDriver( GDALDriverH );
00203 void        CPL_DLL CPL_STDCALL GDALDestroyDriverManager( void );
00204 CPLErr      CPL_DLL CPL_STDCALL GDALDeleteDataset( GDALDriverH, const char * );
00205 CPLErr      CPL_DLL CPL_STDCALL GDALRenameDataset( GDALDriverH, 
00206                                                    const char * pszNewName,
00207                                                    const char * pszOldName );
00208 CPLErr      CPL_DLL CPL_STDCALL GDALCopyDatasetFiles( GDALDriverH, 
00209                                                       const char * pszNewName,
00210                                                       const char * pszOldName);
00211 int         CPL_DLL CPL_STDCALL GDALValidateCreationOptions( GDALDriverH,
00212                                                              char** papszCreationOptions);
00213 
00214 /* The following are deprecated */
00215 const char CPL_DLL * CPL_STDCALL GDALGetDriverShortName( GDALDriverH );
00216 const char CPL_DLL * CPL_STDCALL GDALGetDriverLongName( GDALDriverH );
00217 const char CPL_DLL * CPL_STDCALL GDALGetDriverHelpTopic( GDALDriverH );
00218 const char CPL_DLL * CPL_STDCALL GDALGetDriverCreationOptionList( GDALDriverH );
00219 
00220 /* ==================================================================== */
00221 /*      GDAL_GCP                                                        */
00222 /* ==================================================================== */
00223 
00225 typedef struct
00226 {
00228     char        *pszId; 
00229 
00231     char        *pszInfo;
00232 
00234     double      dfGCPPixel;
00236     double      dfGCPLine;
00237 
00239     double      dfGCPX;
00240 
00242     double      dfGCPY;
00243 
00245     double      dfGCPZ;
00246 } GDAL_GCP;
00247 
00248 void CPL_DLL CPL_STDCALL GDALInitGCPs( int, GDAL_GCP * );
00249 void CPL_DLL CPL_STDCALL GDALDeinitGCPs( int, GDAL_GCP * );
00250 GDAL_GCP CPL_DLL * CPL_STDCALL GDALDuplicateGCPs( int, const GDAL_GCP * );
00251 
00252 int CPL_DLL CPL_STDCALL
00253 GDALGCPsToGeoTransform( int nGCPCount, const GDAL_GCP *pasGCPs, 
00254                         double *padfGeoTransform, int bApproxOK ); 
00255 int CPL_DLL CPL_STDCALL
00256 GDALInvGeoTransform( double *padfGeoTransformIn, 
00257                      double *padfInvGeoTransformOut );
00258 void CPL_DLL CPL_STDCALL GDALApplyGeoTransform( double *, double, double, 
00259                                                 double *, double * );
00260 
00261 /* ==================================================================== */
00262 /*      major objects (dataset, and, driver, drivermanager).            */
00263 /* ==================================================================== */
00264 
00265 char CPL_DLL  ** CPL_STDCALL GDALGetMetadata( GDALMajorObjectH, const char * );
00266 CPLErr CPL_DLL CPL_STDCALL GDALSetMetadata( GDALMajorObjectH, char **,
00267                                             const char * );
00268 const char CPL_DLL * CPL_STDCALL 
00269 GDALGetMetadataItem( GDALMajorObjectH, const char *, const char * );
00270 CPLErr CPL_DLL CPL_STDCALL
00271 GDALSetMetadataItem( GDALMajorObjectH, const char *, const char *,
00272                      const char * );
00273 const char CPL_DLL * CPL_STDCALL GDALGetDescription( GDALMajorObjectH );
00274 void CPL_DLL CPL_STDCALL GDALSetDescription( GDALMajorObjectH, const char * );
00275 
00276 /* ==================================================================== */
00277 /*      GDALDataset class ... normally this represents one file.        */
00278 /* ==================================================================== */
00279 
00280 GDALDriverH CPL_DLL CPL_STDCALL GDALGetDatasetDriver( GDALDatasetH );
00281 char CPL_DLL ** CPL_STDCALL GDALGetFileList( GDALDatasetH );
00282 void CPL_DLL CPL_STDCALL   GDALClose( GDALDatasetH );
00283 int CPL_DLL CPL_STDCALL     GDALGetRasterXSize( GDALDatasetH );
00284 int CPL_DLL CPL_STDCALL     GDALGetRasterYSize( GDALDatasetH );
00285 int CPL_DLL CPL_STDCALL     GDALGetRasterCount( GDALDatasetH );
00286 GDALRasterBandH CPL_DLL CPL_STDCALL GDALGetRasterBand( GDALDatasetH, int );
00287 
00288 CPLErr CPL_DLL  CPL_STDCALL GDALAddBand( GDALDatasetH hDS, GDALDataType eType, 
00289                              char **papszOptions );
00290 
00291 CPLErr CPL_DLL CPL_STDCALL GDALDatasetRasterIO( 
00292     GDALDatasetH hDS, GDALRWFlag eRWFlag,
00293     int nDSXOff, int nDSYOff, int nDSXSize, int nDSYSize,
00294     void * pBuffer, int nBXSize, int nBYSize, GDALDataType eBDataType,
00295     int nBandCount, int *panBandCount, 
00296     int nPixelSpace, int nLineSpace, int nBandSpace);
00297 
00298 CPLErr CPL_DLL CPL_STDCALL GDALDatasetAdviseRead( GDALDatasetH hDS, 
00299     int nDSXOff, int nDSYOff, int nDSXSize, int nDSYSize,
00300     int nBXSize, int nBYSize, GDALDataType eBDataType,
00301     int nBandCount, int *panBandCount, char **papszOptions );
00302 
00303 const char CPL_DLL * CPL_STDCALL GDALGetProjectionRef( GDALDatasetH );
00304 CPLErr CPL_DLL CPL_STDCALL GDALSetProjection( GDALDatasetH, const char * );
00305 CPLErr CPL_DLL CPL_STDCALL GDALGetGeoTransform( GDALDatasetH, double * );
00306 CPLErr CPL_DLL CPL_STDCALL GDALSetGeoTransform( GDALDatasetH, double * );
00307 
00308 int CPL_DLL CPL_STDCALL  GDALGetGCPCount( GDALDatasetH );
00309 const char CPL_DLL * CPL_STDCALL GDALGetGCPProjection( GDALDatasetH );
00310 const GDAL_GCP CPL_DLL * CPL_STDCALL GDALGetGCPs( GDALDatasetH );
00311 CPLErr CPL_DLL CPL_STDCALL GDALSetGCPs( GDALDatasetH, int, const GDAL_GCP *,
00312                                         const char * );
00313 
00314 void CPL_DLL * CPL_STDCALL GDALGetInternalHandle( GDALDatasetH, const char * );
00315 int CPL_DLL CPL_STDCALL GDALReferenceDataset( GDALDatasetH );
00316 int CPL_DLL CPL_STDCALL GDALDereferenceDataset( GDALDatasetH );
00317 
00318 CPLErr CPL_DLL CPL_STDCALL
00319 GDALBuildOverviews( GDALDatasetH, const char *, int, int *,
00320                     int, int *, GDALProgressFunc, void * );
00321 void CPL_DLL CPL_STDCALL GDALGetOpenDatasets( GDALDatasetH **hDS, int *pnCount );
00322 int CPL_DLL CPL_STDCALL GDALGetAccess( GDALDatasetH hDS );
00323 void CPL_DLL CPL_STDCALL GDALFlushCache( GDALDatasetH hDS );
00324 
00325 CPLErr CPL_DLL CPL_STDCALL 
00326               GDALCreateDatasetMaskBand( GDALDatasetH hDS, int nFlags );
00327 
00328 CPLErr CPL_DLL CPL_STDCALL GDALDatasetCopyWholeRaster(
00329     GDALDatasetH hSrcDS, GDALDatasetH hDstDS, char **papszOptions, 
00330     GDALProgressFunc pfnProgress, void *pProgressData );
00331 
00332 CPLErr CPL_DLL 
00333 GDALRegenerateOverviews( GDALRasterBandH hSrcBand, 
00334                          int nOverviewCount, GDALRasterBandH *pahOverviewBands,
00335                          const char *pszResampling, 
00336                          GDALProgressFunc pfnProgress, void *pProgressData );
00337 
00338 /* ==================================================================== */
00339 /*      GDALRasterBand ... one band/channel in a dataset.               */
00340 /* ==================================================================== */
00341 
00346 #define SRCVAL(papoSource, eSrcType, ii) \
00347       (eSrcType == GDT_Byte ? \
00348           ((GByte *)papoSource)[ii] : \
00349       (eSrcType == GDT_Float32 ? \
00350           ((float *)papoSource)[ii] : \
00351       (eSrcType == GDT_Float64 ? \
00352           ((double *)papoSource)[ii] : \
00353       (eSrcType == GDT_Int32 ? \
00354           ((GInt32 *)papoSource)[ii] : \
00355       (eSrcType == GDT_UInt16 ? \
00356           ((GUInt16 *)papoSource)[ii] : \
00357       (eSrcType == GDT_Int16 ? \
00358           ((GInt16 *)papoSource)[ii] : \
00359       (eSrcType == GDT_UInt32 ? \
00360           ((GUInt32 *)papoSource)[ii] : \
00361       (eSrcType == GDT_CInt16 ? \
00362           ((GInt16 *)papoSource)[ii * 2] : \
00363       (eSrcType == GDT_CInt32 ? \
00364           ((GInt32 *)papoSource)[ii * 2] : \
00365       (eSrcType == GDT_CFloat32 ? \
00366           ((float *)papoSource)[ii * 2] : \
00367       (eSrcType == GDT_CFloat64 ? \
00368           ((double *)papoSource)[ii * 2] : 0)))))))))))
00369 
00370 typedef CPLErr
00371 (*GDALDerivedPixelFunc)(void **papoSources, int nSources, void *pData,
00372                         int nBufXSize, int nBufYSize,
00373                         GDALDataType eSrcType, GDALDataType eBufType,
00374                         int nPixelSpace, int nLineSpace);
00375 
00376 GDALDataType CPL_DLL CPL_STDCALL GDALGetRasterDataType( GDALRasterBandH );
00377 void CPL_DLL CPL_STDCALL 
00378 GDALGetBlockSize( GDALRasterBandH, int * pnXSize, int * pnYSize );
00379 
00380 CPLErr CPL_DLL CPL_STDCALL GDALRasterAdviseRead( GDALRasterBandH hRB, 
00381     int nDSXOff, int nDSYOff, int nDSXSize, int nDSYSize,
00382     int nBXSize, int nBYSize, GDALDataType eBDataType, char **papszOptions );
00383 
00384 CPLErr CPL_DLL CPL_STDCALL 
00385 GDALRasterIO( GDALRasterBandH hRBand, GDALRWFlag eRWFlag,
00386               int nDSXOff, int nDSYOff, int nDSXSize, int nDSYSize,
00387               void * pBuffer, int nBXSize, int nBYSize,GDALDataType eBDataType,
00388               int nPixelSpace, int nLineSpace );
00389 CPLErr CPL_DLL CPL_STDCALL GDALReadBlock( GDALRasterBandH, int, int, void * );
00390 CPLErr CPL_DLL CPL_STDCALL GDALWriteBlock( GDALRasterBandH, int, int, void * );
00391 int CPL_DLL CPL_STDCALL GDALGetRasterBandXSize( GDALRasterBandH );
00392 int CPL_DLL CPL_STDCALL GDALGetRasterBandYSize( GDALRasterBandH );
00393 GDALAccess CPL_DLL CPL_STDCALL GDALGetRasterAccess( GDALRasterBandH );
00394 int CPL_DLL CPL_STDCALL GDALGetBandNumber( GDALRasterBandH );
00395 GDALDatasetH CPL_DLL CPL_STDCALL GDALGetBandDataset( GDALRasterBandH );
00396 
00397 GDALColorInterp CPL_DLL CPL_STDCALL
00398 GDALGetRasterColorInterpretation( GDALRasterBandH );
00399 CPLErr CPL_DLL CPL_STDCALL 
00400 GDALSetRasterColorInterpretation( GDALRasterBandH, GDALColorInterp );
00401 GDALColorTableH CPL_DLL CPL_STDCALL GDALGetRasterColorTable( GDALRasterBandH );
00402 CPLErr CPL_DLL CPL_STDCALL GDALSetRasterColorTable( GDALRasterBandH, GDALColorTableH );
00403 int CPL_DLL CPL_STDCALL GDALHasArbitraryOverviews( GDALRasterBandH );
00404 int CPL_DLL CPL_STDCALL GDALGetOverviewCount( GDALRasterBandH );
00405 GDALRasterBandH CPL_DLL CPL_STDCALL GDALGetOverview( GDALRasterBandH, int );
00406 double CPL_DLL CPL_STDCALL GDALGetRasterNoDataValue( GDALRasterBandH, int * );
00407 CPLErr CPL_DLL CPL_STDCALL GDALSetRasterNoDataValue( GDALRasterBandH, double );
00408 char CPL_DLL ** CPL_STDCALL GDALGetRasterCategoryNames( GDALRasterBandH );
00409 CPLErr CPL_DLL CPL_STDCALL GDALSetRasterCategoryNames( GDALRasterBandH, char ** );
00410 double CPL_DLL CPL_STDCALL GDALGetRasterMinimum( GDALRasterBandH, int *pbSuccess );
00411 double CPL_DLL CPL_STDCALL GDALGetRasterMaximum( GDALRasterBandH, int *pbSuccess );
00412 CPLErr CPL_DLL CPL_STDCALL GDALGetRasterStatistics( 
00413     GDALRasterBandH, int bApproxOK, int bForce, 
00414     double *pdfMin, double *pdfMax, double *pdfMean, double *pdfStdDev );
00415 CPLErr CPL_DLL CPL_STDCALL GDALComputeRasterStatistics( 
00416     GDALRasterBandH, int bApproxOK, 
00417     double *pdfMin, double *pdfMax, double *pdfMean, double *pdfStdDev,
00418     GDALProgressFunc pfnProgress, void *pProgressData );
00419 CPLErr CPL_DLL CPL_STDCALL GDALSetRasterStatistics( 
00420     GDALRasterBandH hBand, 
00421     double dfMin, double dfMax, double dfMean, double dfStdDev );
00422 
00423 const char CPL_DLL * CPL_STDCALL GDALGetRasterUnitType( GDALRasterBandH );
00424 double CPL_DLL CPL_STDCALL GDALGetRasterOffset( GDALRasterBandH, int *pbSuccess );
00425 CPLErr CPL_DLL CPL_STDCALL GDALSetRasterOffset( GDALRasterBandH hBand, double dfNewOffset);
00426 double CPL_DLL CPL_STDCALL GDALGetRasterScale( GDALRasterBandH, int *pbSuccess );
00427 CPLErr CPL_DLL CPL_STDCALL GDALSetRasterScale( GDALRasterBandH hBand, double dfNewOffset );
00428 void CPL_DLL CPL_STDCALL 
00429 GDALComputeRasterMinMax( GDALRasterBandH hBand, int bApproxOK,
00430                          double adfMinMax[2] );
00431 CPLErr CPL_DLL CPL_STDCALL GDALFlushRasterCache( GDALRasterBandH hBand );
00432 CPLErr CPL_DLL CPL_STDCALL GDALGetRasterHistogram( GDALRasterBandH hBand,
00433                                        double dfMin, double dfMax,
00434                                        int nBuckets, int *panHistogram,
00435                                        int bIncludeOutOfRange, int bApproxOK,
00436                                        GDALProgressFunc pfnProgress,
00437                                        void * pProgressData );
00438 CPLErr CPL_DLL CPL_STDCALL GDALGetDefaultHistogram( GDALRasterBandH hBand,
00439                                        double *pdfMin, double *pdfMax,
00440                                        int *pnBuckets, int **ppanHistogram,
00441                                        int bForce,
00442                                        GDALProgressFunc pfnProgress,
00443                                        void * pProgressData );
00444 CPLErr CPL_DLL CPL_STDCALL GDALSetDefaultHistogram( GDALRasterBandH hBand,
00445                                        double dfMin, double dfMax,
00446                                        int nBuckets, int *panHistogram );
00447 int CPL_DLL CPL_STDCALL
00448 GDALGetRandomRasterSample( GDALRasterBandH, int, float * );
00449 GDALRasterBandH CPL_DLL CPL_STDCALL
00450 GDALGetRasterSampleOverview( GDALRasterBandH, int );
00451 CPLErr CPL_DLL CPL_STDCALL GDALFillRaster( GDALRasterBandH hBand,
00452                           double dfRealValue, double dfImaginaryValue );
00453 CPLErr CPL_DLL CPL_STDCALL
00454 GDALComputeBandStats( GDALRasterBandH hBand, int nSampleStep, 
00455                              double *pdfMean, double *pdfStdDev, 
00456                              GDALProgressFunc pfnProgress,
00457                              void *pProgressData );
00458 CPLErr CPL_DLL  GDALOverviewMagnitudeCorrection( GDALRasterBandH hBaseBand, 
00459                                         int nOverviewCount, 
00460                                         GDALRasterBandH *pahOverviews, 
00461                                         GDALProgressFunc pfnProgress, 
00462                                         void *pProgressData );
00463 
00464 GDALRasterAttributeTableH CPL_DLL CPL_STDCALL GDALGetDefaultRAT( 
00465     GDALRasterBandH hBand );
00466 CPLErr CPL_DLL CPL_STDCALL GDALSetDefaultRAT( GDALRasterBandH, 
00467                                               GDALRasterAttributeTableH );
00468 CPLErr CPL_DLL CPL_STDCALL GDALAddDerivedBandPixelFunc( const char *pszName,
00469                                     GDALDerivedPixelFunc pfnPixelFunc );
00470 
00471 GDALRasterBandH CPL_DLL CPL_STDCALL GDALGetMaskBand( GDALRasterBandH hBand );
00472 int CPL_DLL CPL_STDCALL GDALGetMaskFlags( GDALRasterBandH hBand );
00473 CPLErr CPL_DLL CPL_STDCALL 
00474                        GDALCreateMaskBand( GDALRasterBandH hBand, int nFlags );
00475 
00476 #define GMF_ALL_VALID     0x01
00477 #define GMF_PER_DATASET   0x02
00478 #define GMF_ALPHA         0x04
00479 #define GMF_NODATA        0x08
00480 
00481 /* -------------------------------------------------------------------- */
00482 /*      Helper functions.                                               */
00483 /* -------------------------------------------------------------------- */
00484 int CPL_DLL CPL_STDCALL GDALGeneralCmdLineProcessor( int nArgc, char ***ppapszArgv, 
00485                                          int nOptions );
00486 void CPL_DLL CPL_STDCALL GDALSwapWords( void *pData, int nWordSize, int nWordCount,
00487                             int nWordSkip );
00488 void CPL_DLL CPL_STDCALL 
00489     GDALCopyWords( void * pSrcData, GDALDataType eSrcType, int nSrcPixelOffset,
00490                    void * pDstData, GDALDataType eDstType, int nDstPixelOffset,
00491                    int nWordCount );
00492 
00493 void CPL_DLL 
00494 GDALCopyBits( const GByte *pabySrcData, int nSrcOffset, int nSrcStep, 
00495               GByte *pabyDstData, int nDstOffset, int nDstStep,
00496               int nBitCount, int nStepCount );
00497 
00498 int CPL_DLL CPL_STDCALL GDALLoadWorldFile( const char *, double * );
00499 int CPL_DLL CPL_STDCALL GDALReadWorldFile( const char *, const char *,
00500                                            double * );
00501 int CPL_DLL CPL_STDCALL GDALWriteWorldFile( const char *, const char *,
00502                                             double * );
00503 int CPL_DLL CPL_STDCALL GDALLoadTabFile( const char *, double *, char **,
00504                                          int *, GDAL_GCP ** );
00505 int CPL_DLL CPL_STDCALL GDALReadTabFile( const char *, double *, char **,
00506                                          int *, GDAL_GCP ** );
00507 char CPL_DLL ** CPL_STDCALL GDALLoadRPBFile( const char *pszFilename, 
00508                                              char **papszSiblingFiles );
00509 CPLErr CPL_DLL CPL_STDCALL GDALWriteRPBFile( const char *pszFilename, 
00510                                              char **papszMD );
00511 char CPL_DLL ** CPL_STDCALL GDALLoadIMDFile( const char *pszFilename, 
00512                                              char **papszSiblingFiles );
00513 CPLErr CPL_DLL CPL_STDCALL GDALWriteIMDFile( const char *pszFilename, 
00514                                              char **papszMD );
00515 
00516 const char CPL_DLL * CPL_STDCALL GDALDecToDMS( double, const char *, int );
00517 double CPL_DLL CPL_STDCALL GDALPackedDMSToDec( double );
00518 double CPL_DLL CPL_STDCALL GDALDecToPackedDMS( double );
00519 
00520 /* Note to developers : please keep this section in sync with ogr_core.h */
00521 
00522 #ifndef GDAL_VERSION_INFO_DEFINED
00523 #define GDAL_VERSION_INFO_DEFINED
00524 const char CPL_DLL * CPL_STDCALL GDALVersionInfo( const char * );
00525 #endif
00526 
00527 #ifndef GDAL_CHECK_VERSION
00528 
00540 int CPL_DLL CPL_STDCALL GDALCheckVersion( int nVersionMajor, int nVersionMinor,
00541                                           const char* pszCallingComponentName);
00542 
00544 #define GDAL_CHECK_VERSION(pszCallingComponentName) \
00545  GDALCheckVersion(GDAL_VERSION_MAJOR, GDAL_VERSION_MINOR, pszCallingComponentName)
00546 
00547 #endif
00548 
00549 typedef struct { 
00550     double      dfLINE_OFF;
00551     double      dfSAMP_OFF;
00552     double      dfLAT_OFF;
00553     double      dfLONG_OFF;
00554     double      dfHEIGHT_OFF;
00555 
00556     double      dfLINE_SCALE;
00557     double      dfSAMP_SCALE;
00558     double      dfLAT_SCALE;
00559     double      dfLONG_SCALE;
00560     double      dfHEIGHT_SCALE;
00561 
00562     double      adfLINE_NUM_COEFF[20];
00563     double      adfLINE_DEN_COEFF[20];
00564     double      adfSAMP_NUM_COEFF[20];
00565     double      adfSAMP_DEN_COEFF[20];
00566     
00567     double      dfMIN_LONG;
00568     double      dfMIN_LAT;
00569     double      dfMAX_LONG;
00570     double      dfMAX_LAT;
00571 
00572 } GDALRPCInfo;
00573 
00574 int CPL_DLL CPL_STDCALL GDALExtractRPCInfo( char **, GDALRPCInfo * );
00575 
00576 /* ==================================================================== */
00577 /*      Color tables.                                                   */
00578 /* ==================================================================== */
00580 typedef struct
00581 {
00583     short      c1;      
00584 
00586     short      c2;      
00587 
00589     short      c3;      
00590 
00592     short      c4;      
00593 } GDALColorEntry;
00594 
00595 GDALColorTableH CPL_DLL CPL_STDCALL GDALCreateColorTable( GDALPaletteInterp );
00596 void CPL_DLL CPL_STDCALL GDALDestroyColorTable( GDALColorTableH );
00597 GDALColorTableH CPL_DLL CPL_STDCALL GDALCloneColorTable( GDALColorTableH );
00598 GDALPaletteInterp CPL_DLL CPL_STDCALL GDALGetPaletteInterpretation( GDALColorTableH );
00599 int CPL_DLL CPL_STDCALL GDALGetColorEntryCount( GDALColorTableH );
00600 const GDALColorEntry CPL_DLL * CPL_STDCALL GDALGetColorEntry( GDALColorTableH, int );
00601 int CPL_DLL CPL_STDCALL GDALGetColorEntryAsRGB( GDALColorTableH, int, GDALColorEntry *);
00602 void CPL_DLL CPL_STDCALL GDALSetColorEntry( GDALColorTableH, int, const GDALColorEntry * );
00603 void CPL_DLL CPL_STDCALL GDALCreateColorRamp( GDALColorTableH hTable, 
00604             int nStartIndex, const GDALColorEntry *psStartColor,
00605             int nEndIndex, const GDALColorEntry *psEndColor );
00606 
00607 /* ==================================================================== */
00608 /*      Raster Attribute Table                                          */
00609 /* ==================================================================== */
00610 
00611 typedef enum {             GFT_Integer ,    GFT_Real,                    GFT_String
00615 } GDALRATFieldType;
00616 
00617 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
00637 } GDALRATFieldUsage;
00638 
00639 GDALRasterAttributeTableH CPL_DLL CPL_STDCALL 
00640                                            GDALCreateRasterAttributeTable(void);
00641 void CPL_DLL CPL_STDCALL GDALDestroyRasterAttributeTable(
00642     GDALRasterAttributeTableH );
00643 
00644 int CPL_DLL CPL_STDCALL GDALRATGetColumnCount( GDALRasterAttributeTableH );
00645 
00646 const char CPL_DLL * CPL_STDCALL GDALRATGetNameOfCol( 
00647     GDALRasterAttributeTableH, int );
00648 GDALRATFieldUsage CPL_DLL CPL_STDCALL GDALRATGetUsageOfCol( 
00649     GDALRasterAttributeTableH, int );
00650 GDALRATFieldType CPL_DLL CPL_STDCALL GDALRATGetTypeOfCol( 
00651     GDALRasterAttributeTableH, int );
00652 
00653 int CPL_DLL CPL_STDCALL GDALRATGetColOfUsage( GDALRasterAttributeTableH, 
00654                                               GDALRATFieldUsage );
00655 int CPL_DLL CPL_STDCALL GDALRATGetRowCount( GDALRasterAttributeTableH );
00656 
00657 const char CPL_DLL * CPL_STDCALL GDALRATGetValueAsString( 
00658     GDALRasterAttributeTableH, int ,int);
00659 int CPL_DLL CPL_STDCALL GDALRATGetValueAsInt( 
00660     GDALRasterAttributeTableH, int ,int);
00661 double CPL_DLL CPL_STDCALL GDALRATGetValueAsDouble( 
00662     GDALRasterAttributeTableH, int ,int);
00663 
00664 void CPL_DLL CPL_STDCALL GDALRATSetValueAsString( GDALRasterAttributeTableH, int, int,
00665                                                   const char * );
00666 void CPL_DLL CPL_STDCALL GDALRATSetValueAsInt( GDALRasterAttributeTableH, int, int,
00667                                                int );
00668 void CPL_DLL CPL_STDCALL GDALRATSetValueAsDouble( GDALRasterAttributeTableH, int, int,
00669                                                   double );
00670 void CPL_DLL CPL_STDCALL GDALRATSetRowCount( GDALRasterAttributeTableH, 
00671                                              int );
00672 CPLErr CPL_DLL CPL_STDCALL GDALRATCreateColumn( GDALRasterAttributeTableH, 
00673                                                 const char *, 
00674                                                 GDALRATFieldType, 
00675                                                 GDALRATFieldUsage );
00676 CPLErr CPL_DLL CPL_STDCALL GDALRATSetLinearBinning( GDALRasterAttributeTableH, 
00677                                                     double, double );
00678 int CPL_DLL CPL_STDCALL GDALRATGetLinearBinning( GDALRasterAttributeTableH, 
00679                                                  double *, double * );
00680 CPLErr CPL_DLL CPL_STDCALL GDALRATInitializeFromColorTable(
00681     GDALRasterAttributeTableH, GDALColorTableH );
00682 GDALColorTableH CPL_DLL CPL_STDCALL GDALRATTranslateToColorTable( 
00683     int nEntryCount );
00684 void CPL_DLL CPL_STDCALL GDALRATDumpReadable( GDALRasterAttributeTableH, 
00685                                               FILE * );
00686 GDALRasterAttributeTableH CPL_DLL CPL_STDCALL 
00687     GDALRATClone( GDALRasterAttributeTableH );
00688 
00689 int CPL_DLL CPL_STDCALL GDALRATGetRowOfValue( GDALRasterAttributeTableH , double );
00690 
00691 
00692 /* ==================================================================== */
00693 /*      GDAL Cache Management                                           */
00694 /* ==================================================================== */
00695 
00696 void CPL_DLL CPL_STDCALL GDALSetCacheMax( int nBytes );
00697 int CPL_DLL CPL_STDCALL GDALGetCacheMax(void);
00698 int CPL_DLL CPL_STDCALL GDALGetCacheUsed(void);
00699 int CPL_DLL CPL_STDCALL GDALFlushCacheBlock(void);
00700 
00701 CPL_C_END
00702 
00703 #endif /* ndef GDAL_H_INCLUDED */

Generated for GDAL by doxygen 1.7.3.