svn-gvsig-desktop / tags / v10_RC2c / libraries / libjni-gdal / include / gdal.h @ 8745
History | View | Annotate | Download (24.3 KB)
1 |
/******************************************************************************
|
---|---|
2 |
* $Id: gdal.h 8745 2006-11-14 13:14:23Z $
|
3 |
*
|
4 |
* Name: gdal.h
|
5 |
* Project: GDAL Core
|
6 |
* Purpose: GDAL Core C/Public declarations.
|
7 |
* Author: Frank Warmerdam, warmerdam@pobox.com
|
8 |
*
|
9 |
******************************************************************************
|
10 |
* Copyright (c) 1998, 2002 Frank Warmerdam
|
11 |
*
|
12 |
* Permission is hereby granted, free of charge, to any person obtaining a
|
13 |
* copy of this software and associated documentation files (the "Software"),
|
14 |
* to deal in the Software without restriction, including without limitation
|
15 |
* the rights to use, copy, modify, merge, publish, distribute, sublicense,
|
16 |
* and/or sell copies of the Software, and to permit persons to whom the
|
17 |
* Software is furnished to do so, subject to the following conditions:
|
18 |
*
|
19 |
* The above copyright notice and this permission notice shall be included
|
20 |
* in all copies or substantial portions of the Software.
|
21 |
*
|
22 |
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
|
23 |
* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
24 |
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
|
25 |
* THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
26 |
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
27 |
* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
|
28 |
* DEALINGS IN THE SOFTWARE.
|
29 |
******************************************************************************
|
30 |
*
|
31 |
* $Log$
|
32 |
* Revision 1.2.10.1 2006-10-04 06:55:46 nacho
|
33 |
* *** empty log message ***
|
34 |
*
|
35 |
* Revision 1.3 2006/10/03 07:05:18 nacho
|
36 |
* *** empty log message ***
|
37 |
*
|
38 |
* Revision 1.1 2006/07/18 16:21:00 nacho
|
39 |
* *** empty log message ***
|
40 |
*
|
41 |
* Revision 1.1 2006/06/29 16:23:27 nacho
|
42 |
* *** empty log message ***
|
43 |
*
|
44 |
* Revision 1.2 2006/01/09 12:50:13 nacho
|
45 |
* *** empty log message ***
|
46 |
*
|
47 |
* Revision 1.1 2005/07/27 08:22:55 igbrotru
|
48 |
* *** empty log message ***
|
49 |
*
|
50 |
* Revision 1.1 2004/12/28 14:06:59 igbrotru
|
51 |
* *** empty log message ***
|
52 |
*
|
53 |
* Revision 1.1 2004/10/28 12:08:47 igbrotru
|
54 |
* *** empty log message ***
|
55 |
*
|
56 |
* Revision 1.1 2004/10/05 11:56:56 igbrotru
|
57 |
* *** empty log message ***
|
58 |
*
|
59 |
* Revision 1.82 2004/06/24 03:10:49 warmerda
|
60 |
* update to GDAL 1.2.1
|
61 |
*
|
62 |
* Revision 1.81 2004/04/29 13:42:58 warmerda
|
63 |
* added C Offset/Scale entry points
|
64 |
*
|
65 |
* Revision 1.80 2004/04/04 20:05:37 warmerda
|
66 |
* mark as 1.2.0.1
|
67 |
*
|
68 |
* Revision 1.79 2004/04/02 17:32:40 warmerda
|
69 |
* added GDALGeneralCmdLineProcessor()
|
70 |
*
|
71 |
* Revision 1.78 2004/03/28 16:01:46 warmerda
|
72 |
* added GDALApplyGeoTransform()
|
73 |
*
|
74 |
* Revision 1.77 2004/03/10 19:18:29 warmerda
|
75 |
* updated date
|
76 |
*
|
77 |
* Revision 1.76 2004/03/01 18:30:44 warmerda
|
78 |
* Updated release date.
|
79 |
*
|
80 |
* Revision 1.75 2004/02/25 09:03:15 dron
|
81 |
* Added GDALPackedDMSToDec() and GDALDecToPackedDMS() functions.
|
82 |
*
|
83 |
* Revision 1.74 2004/02/19 15:55:52 warmerda
|
84 |
* updated to 1.2.0
|
85 |
*
|
86 |
* Revision 1.73 2004/02/04 21:30:12 warmerda
|
87 |
* ensure GDALGetDataTypeByName is exported
|
88 |
*
|
89 |
* Revision 1.72 2004/01/18 16:43:37 dron
|
90 |
* Added GDALGetDataTypeByName() function.
|
91 |
*
|
92 |
* Revision 1.71 2003/07/18 04:46:48 sperkins
|
93 |
* added CPL_DLL to GDALFillRaster
|
94 |
*
|
95 |
* Revision 1.70 2003/06/27 20:03:11 warmerda
|
96 |
* updated version to 1.1.9
|
97 |
*
|
98 |
* Revision 1.69 2003/06/03 19:44:00 warmerda
|
99 |
* added GDALRPCInfo support
|
100 |
*
|
101 |
* Revision 1.68 2003/05/06 05:20:38 sperkins
|
102 |
* cleaned up comments
|
103 |
*
|
104 |
* Revision 1.67 2003/05/06 05:13:36 sperkins
|
105 |
* added Fill() and GDALFillRaster()
|
106 |
*
|
107 |
* Revision 1.66 2003/05/02 19:47:57 warmerda
|
108 |
* added C GetBandNumber and GetBandDataset entry points
|
109 |
*
|
110 |
* Revision 1.65 2003/04/30 17:13:48 warmerda
|
111 |
* added docs for many C functions
|
112 |
*
|
113 |
* Revision 1.64 2003/04/30 15:48:31 warmerda
|
114 |
* Fixed email address, trimmed log messages.
|
115 |
*
|
116 |
* Revision 1.63 2003/04/25 19:46:13 warmerda
|
117 |
* added GDALDatasetRasterIO
|
118 |
*
|
119 |
* Revision 1.62 2003/03/18 06:01:03 warmerda
|
120 |
* Added GDALFlushCache()
|
121 |
*
|
122 |
* Revision 1.61 2003/02/20 18:34:12 warmerda
|
123 |
* added GDALGetRasterAccess()
|
124 |
*
|
125 |
* Revision 1.60 2003/01/27 21:55:52 warmerda
|
126 |
* various documentation improvements
|
127 |
*
|
128 |
* Revision 1.59 2002/12/21 17:28:35 warmerda
|
129 |
* actually, lets use 1.1.8.0
|
130 |
*
|
131 |
* Revision 1.58 2002/12/21 17:26:43 warmerda
|
132 |
* updated version to 1.1.7.5
|
133 |
*
|
134 |
* Revision 1.57 2002/12/05 15:46:38 warmerda
|
135 |
* added GDALReadTabFile()
|
136 |
*
|
137 |
* Revision 1.56 2002/11/23 18:07:41 warmerda
|
138 |
* added DMD_CREATIONDATATYPES
|
139 |
*
|
140 |
* Revision 1.55 2002/10/24 14:18:29 warmerda
|
141 |
* intermediate version update
|
142 |
*
|
143 |
* Revision 1.54 2002/09/11 14:17:38 warmerda
|
144 |
* added C GDALSetDescription()
|
145 |
*
|
146 |
* Revision 1.53 2002/09/06 01:29:55 warmerda
|
147 |
* added C entry points for GetAccess() and GetOpenDatasets()
|
148 |
*
|
149 |
* Revision 1.52 2002/09/04 06:52:35 warmerda
|
150 |
* added GDALDestroyDriverManager
|
151 |
*
|
152 |
* Revision 1.51 2002/07/09 20:33:12 warmerda
|
153 |
* expand tabs
|
154 |
*
|
155 |
* Revision 1.50 2002/06/12 21:13:27 warmerda
|
156 |
* use metadata based driver info
|
157 |
*
|
158 |
* Revision 1.49 2002/05/28 18:55:46 warmerda
|
159 |
* added GDALOpenShared() and GDALDumpOpenDatasets
|
160 |
*
|
161 |
* Revision 1.48 2002/05/14 21:38:32 warmerda
|
162 |
* make INST_DATA overidable with binary patch
|
163 |
*
|
164 |
* Revision 1.47 2002/05/06 21:37:29 warmerda
|
165 |
* added GDALGCPsToGeoTransform
|
166 |
*
|
167 |
* Revision 1.46 2002/04/24 16:25:04 warmerda
|
168 |
* Ensure that GDAL{Read,Write}WorldFile() are exported on Windows.
|
169 |
*
|
170 |
* Revision 1.45 2002/04/19 12:22:05 dron
|
171 |
* added GDALWriteWorldFile()
|
172 |
*
|
173 |
* Revision 1.44 2002/04/16 13:59:33 warmerda
|
174 |
* added GDALVersionInfo
|
175 |
*
|
176 |
* Revision 1.43 2002/04/16 13:26:08 warmerda
|
177 |
* upgrade to version 1.1.7
|
178 |
*/
|
179 |
|
180 |
#ifndef GDAL_H_INCLUDED
|
181 |
#define GDAL_H_INCLUDED
|
182 |
|
183 |
/**
|
184 |
* \file gdal.h
|
185 |
*
|
186 |
* Public (C callable) GDAL entry points.
|
187 |
*/
|
188 |
|
189 |
#include "cpl_port.h" |
190 |
#include "cpl_error.h" |
191 |
|
192 |
/* -------------------------------------------------------------------- */
|
193 |
/* GDAL Version Information. */
|
194 |
/* -------------------------------------------------------------------- */
|
195 |
#ifndef GDAL_VERSION_NUM
|
196 |
# define GDAL_VERSION_NUM 1210 |
197 |
#endif
|
198 |
#ifndef GDAL_RELEASE_DATE
|
199 |
# define GDAL_RELEASE_DATE 20040623 |
200 |
#endif
|
201 |
#ifndef GDAL_RELEASE_NAME
|
202 |
# define GDAL_RELEASE_NAME "1.2.1.0" |
203 |
#endif
|
204 |
|
205 |
/* -------------------------------------------------------------------- */
|
206 |
/* Significant constants. */
|
207 |
/* -------------------------------------------------------------------- */
|
208 |
|
209 |
CPL_C_START |
210 |
|
211 |
/*! Pixel data types */
|
212 |
typedef enum { |
213 |
GDT_Unknown = 0,
|
214 |
/*! Eight bit unsigned integer */ GDT_Byte = 1, |
215 |
/*! Sixteen bit unsigned integer */ GDT_UInt16 = 2, |
216 |
/*! Sixteen bit signed integer */ GDT_Int16 = 3, |
217 |
/*! Thirty two bit unsigned integer */ GDT_UInt32 = 4, |
218 |
/*! Thirty two bit signed integer */ GDT_Int32 = 5, |
219 |
/*! Thirty two bit floating point */ GDT_Float32 = 6, |
220 |
/*! Sixty four bit floating point */ GDT_Float64 = 7, |
221 |
/*! Complex Int16 */ GDT_CInt16 = 8, |
222 |
/*! Complex Int32 */ GDT_CInt32 = 9, |
223 |
/*! Complex Float32 */ GDT_CFloat32 = 10, |
224 |
/*! Complex Float64 */ GDT_CFloat64 = 11, |
225 |
GDT_TypeCount = 12 /* maximum type # + 1 */ |
226 |
} GDALDataType; |
227 |
|
228 |
int CPL_DLL GDALGetDataTypeSize( GDALDataType );
|
229 |
int CPL_DLL GDALDataTypeIsComplex( GDALDataType );
|
230 |
const char CPL_DLL *GDALGetDataTypeName( GDALDataType ); |
231 |
GDALDataType CPL_DLL GDALGetDataTypeByName( const char * ); |
232 |
GDALDataType CPL_DLL GDALDataTypeUnion( GDALDataType, GDALDataType ); |
233 |
|
234 |
/*! Flag indicating read/write, or read-only access to data. */
|
235 |
typedef enum { |
236 |
/*! Read only (no update) access */ GA_ReadOnly = 0, |
237 |
/*! Read/write access. */ GA_Update = 1 |
238 |
} GDALAccess; |
239 |
|
240 |
/*! Read/Write flag for RasterIO() method */
|
241 |
typedef enum { |
242 |
/*! Read data */ GF_Read = 0, |
243 |
/*! Write data */ GF_Write = 1 |
244 |
} GDALRWFlag; |
245 |
|
246 |
/*! Types of color interpretation for raster bands. */
|
247 |
typedef enum |
248 |
{ |
249 |
GCI_Undefined=0,
|
250 |
/*! Greyscale */ GCI_GrayIndex=1, |
251 |
/*! Paletted (see associated color table) */ GCI_PaletteIndex=2, |
252 |
/*! Red band of RGBA image */ GCI_RedBand=3, |
253 |
/*! Green band of RGBA image */ GCI_GreenBand=4, |
254 |
/*! Blue band of RGBA image */ GCI_BlueBand=5, |
255 |
/*! Alpha (0=transparent, 255=opaque) */ GCI_AlphaBand=6, |
256 |
/*! Hue band of HLS image */ GCI_HueBand=7, |
257 |
/*! Saturation band of HLS image */ GCI_SaturationBand=8, |
258 |
/*! Lightness band of HLS image */ GCI_LightnessBand=9, |
259 |
/*! Cyan band of CMYK image */ GCI_CyanBand=10, |
260 |
/*! Magenta band of CMYK image */ GCI_MagentaBand=11, |
261 |
/*! Yellow band of CMYK image */ GCI_YellowBand=12, |
262 |
/*! Black band of CMLY image */ GCI_BlackBand=13 |
263 |
} GDALColorInterp; |
264 |
|
265 |
/*! Translate a GDALColorInterp into a user displayable string. */
|
266 |
const char CPL_DLL *GDALGetColorInterpretationName( GDALColorInterp ); |
267 |
|
268 |
/*! Types of color interpretations for a GDALColorTable. */
|
269 |
typedef enum |
270 |
{ |
271 |
/*! Grayscale (in GDALColorEntry.c1) */ GPI_Gray=0, |
272 |
/*! Red, Green, Blue and Alpha in (in c1, c2, c3 and c4) */ GPI_RGB=1, |
273 |
/*! Cyan, Magenta, Yellow and Black (in c1, c2, c3 and c4)*/ GPI_CMYK=2, |
274 |
/*! Hue, Lightness and Saturation (in c1, c2, and c3) */ GPI_HLS=3 |
275 |
} GDALPaletteInterp; |
276 |
|
277 |
/*! Translate a GDALPaletteInterp into a user displayable string. */
|
278 |
const char CPL_DLL *GDALGetPaletteInterpretationName( GDALPaletteInterp ); |
279 |
|
280 |
/* -------------------------------------------------------------------- */
|
281 |
/* GDAL Specific error codes. */
|
282 |
/* */
|
283 |
/* error codes 100 to 299 reserved for GDAL. */
|
284 |
/* -------------------------------------------------------------------- */
|
285 |
#define CPLE_WrongFormat 200 |
286 |
|
287 |
/* -------------------------------------------------------------------- */
|
288 |
/* Define handle types related to various internal classes. */
|
289 |
/* -------------------------------------------------------------------- */
|
290 |
typedef void *GDALMajorObjectH; |
291 |
typedef void *GDALDatasetH; |
292 |
typedef void *GDALRasterBandH; |
293 |
typedef void *GDALDriverH; |
294 |
typedef void *GDALProjDefH; |
295 |
typedef void *GDALColorTableH; |
296 |
|
297 |
/* -------------------------------------------------------------------- */
|
298 |
/* Callback "progress" function. */
|
299 |
/* -------------------------------------------------------------------- */
|
300 |
|
301 |
typedef int (*GDALProgressFunc)(double,const char *, void *); |
302 |
int CPL_DLL GDALDummyProgress( double, const char *, void *); |
303 |
int CPL_DLL GDALTermProgress( double, const char *, void *); |
304 |
int CPL_DLL GDALScaledProgress( double, const char *, void *); |
305 |
void CPL_DLL *GDALCreateScaledProgress( double, double, |
306 |
GDALProgressFunc, void * );
|
307 |
void CPL_DLL GDALDestroyScaledProgress( void * ); |
308 |
|
309 |
/* ==================================================================== */
|
310 |
/* Registration/driver related. */
|
311 |
/* ==================================================================== */
|
312 |
|
313 |
typedef struct { |
314 |
char *pszOptionName;
|
315 |
char *pszValueType; /* "boolean", "int", "float", "string", |
316 |
"string-select" */
|
317 |
char *pszDescription;
|
318 |
char **papszOptions;
|
319 |
} GDALOptionDefinition; |
320 |
|
321 |
#define GDAL_DMD_LONGNAME "DMD_LONGNAME" |
322 |
#define GDAL_DMD_HELPTOPIC "DMD_HELPTOPIC" |
323 |
#define GDAL_DMD_MIMETYPE "DMD_MIMETYPE" |
324 |
#define GDAL_DMD_EXTENSION "DMD_EXTENSION" |
325 |
#define GDAL_DMD_CREATIONOPTIONLIST "DMD_CREATIONOPTIONLIST" |
326 |
#define GDAL_DMD_CREATIONDATATYPES "DMD_CREATIONDATATYPES" |
327 |
|
328 |
#define GDAL_DCAP_CREATE "DCAP_CREATE" |
329 |
#define GDAL_DCAP_CREATECOPY "DCAP_CREATECOPY" |
330 |
|
331 |
void CPL_DLL GDALAllRegister( void ); |
332 |
|
333 |
GDALDatasetH CPL_DLL GDALCreate( GDALDriverH hDriver, |
334 |
const char *, int, int, int, GDALDataType, |
335 |
char ** );
|
336 |
GDALDatasetH CPL_DLL GDALCreateCopy( GDALDriverH, const char *, GDALDatasetH, |
337 |
int, char **, GDALProgressFunc, void * ); |
338 |
|
339 |
GDALDatasetH CPL_DLL GDALOpen( const char *pszFilename, GDALAccess eAccess ); |
340 |
GDALDatasetH CPL_DLL GDALOpenShared( const char *, GDALAccess ); |
341 |
int CPL_DLL GDALDumpOpenDatasets( FILE * );
|
342 |
|
343 |
GDALDriverH CPL_DLL GDALGetDriverByName( const char * ); |
344 |
int CPL_DLL GDALGetDriverCount();
|
345 |
GDALDriverH CPL_DLL GDALGetDriver( int );
|
346 |
int CPL_DLL GDALRegisterDriver( GDALDriverH );
|
347 |
void CPL_DLL GDALDeregisterDriver( GDALDriverH );
|
348 |
void CPL_DLL GDALDestroyDriverManager( void ); |
349 |
CPLErr CPL_DLL GDALDeleteDataset( GDALDriverH, const char * ); |
350 |
|
351 |
/* The following are deprecated */
|
352 |
const char CPL_DLL *GDALGetDriverShortName( GDALDriverH ); |
353 |
const char CPL_DLL *GDALGetDriverLongName( GDALDriverH ); |
354 |
const char CPL_DLL *GDALGetDriverHelpTopic( GDALDriverH ); |
355 |
|
356 |
/* ==================================================================== */
|
357 |
/* GDAL_GCP */
|
358 |
/* ==================================================================== */
|
359 |
|
360 |
/** Ground Control Point */
|
361 |
typedef struct |
362 |
{ |
363 |
/** Unique identifier, often numeric */
|
364 |
char *pszId;
|
365 |
|
366 |
/** Informational message or "" */
|
367 |
char *pszInfo;
|
368 |
|
369 |
/** Pixel (x) location of GCP on raster */
|
370 |
double dfGCPPixel;
|
371 |
/** Line (y) location of GCP on raster */
|
372 |
double dfGCPLine;
|
373 |
|
374 |
/** X position of GCP in georeferenced space */
|
375 |
double dfGCPX;
|
376 |
|
377 |
/** Y position of GCP in georeferenced space */
|
378 |
double dfGCPY;
|
379 |
|
380 |
/** Elevation of GCP, or zero if not known */
|
381 |
double dfGCPZ;
|
382 |
} GDAL_GCP; |
383 |
|
384 |
void CPL_DLL GDALInitGCPs( int, GDAL_GCP * ); |
385 |
void CPL_DLL GDALDeinitGCPs( int, GDAL_GCP * ); |
386 |
GDAL_GCP CPL_DLL *GDALDuplicateGCPs( int, const GDAL_GCP * ); |
387 |
|
388 |
int CPL_DLL GDALGCPsToGeoTransform( int nGCPCount, const GDAL_GCP *pasGCPs, |
389 |
double *padfGeoTransform, int bApproxOK ); |
390 |
int CPL_DLL GDALInvGeoTransform( double *padfGeoTransformIn, |
391 |
double *padfInvGeoTransformOut );
|
392 |
void CPL_DLL GDALApplyGeoTransform( double *, double, double, |
393 |
double *, double * ); |
394 |
|
395 |
/* ==================================================================== */
|
396 |
/* major objects (dataset, and, driver, drivermanager). */
|
397 |
/* ==================================================================== */
|
398 |
|
399 |
char CPL_DLL **GDALGetMetadata( GDALMajorObjectH, const char * ); |
400 |
CPLErr CPL_DLL GDALSetMetadata( GDALMajorObjectH, char **,
|
401 |
const char * ); |
402 |
const char CPL_DLL *GDALGetMetadataItem( GDALMajorObjectH, const char *, |
403 |
const char * ); |
404 |
CPLErr CPL_DLL GDALSetMetadataItem( GDALMajorObjectH, |
405 |
const char *, const char *, |
406 |
const char * ); |
407 |
const char CPL_DLL *GDALGetDescription( GDALMajorObjectH ); |
408 |
void CPL_DLL GDALSetDescription( GDALMajorObjectH, const char * ); |
409 |
|
410 |
/* ==================================================================== */
|
411 |
/* GDALDataset class ... normally this represents one file. */
|
412 |
/* ==================================================================== */
|
413 |
|
414 |
GDALDriverH CPL_DLL GDALGetDatasetDriver( GDALDatasetH ); |
415 |
void CPL_DLL GDALClose( GDALDatasetH );
|
416 |
int CPL_DLL GDALGetRasterXSize( GDALDatasetH );
|
417 |
int CPL_DLL GDALGetRasterYSize( GDALDatasetH );
|
418 |
int CPL_DLL GDALGetRasterCount( GDALDatasetH );
|
419 |
GDALRasterBandH CPL_DLL GDALGetRasterBand( GDALDatasetH, int );
|
420 |
|
421 |
CPLErr CPL_DLL GDALAddBand( GDALDatasetH hDS, GDALDataType eType, |
422 |
char **papszOptions );
|
423 |
|
424 |
CPLErr CPL_DLL GDALDatasetRasterIO( |
425 |
GDALDatasetH hDS, GDALRWFlag eRWFlag, |
426 |
int nDSXOff, int nDSYOff, int nDSXSize, int nDSYSize, |
427 |
void * pBuffer, int nBXSize, int nBYSize, GDALDataType eBDataType, |
428 |
int nBandCount, int *panBandCount, |
429 |
int nPixelSpace, int nLineSpace, int nBandSpace); |
430 |
|
431 |
const char CPL_DLL *GDALGetProjectionRef( GDALDatasetH ); |
432 |
CPLErr CPL_DLL GDALSetProjection( GDALDatasetH, const char * ); |
433 |
CPLErr CPL_DLL GDALGetGeoTransform( GDALDatasetH, double * );
|
434 |
CPLErr CPL_DLL GDALSetGeoTransform( GDALDatasetH, double * );
|
435 |
|
436 |
int CPL_DLL GDALGetGCPCount( GDALDatasetH );
|
437 |
const char CPL_DLL *GDALGetGCPProjection( GDALDatasetH ); |
438 |
const GDAL_GCP CPL_DLL *GDALGetGCPs( GDALDatasetH );
|
439 |
CPLErr CPL_DLL GDALSetGCPs( GDALDatasetH, int, const GDAL_GCP *, |
440 |
const char * ); |
441 |
|
442 |
void CPL_DLL *GDALGetInternalHandle( GDALDatasetH, const char * ); |
443 |
int CPL_DLL GDALReferenceDataset( GDALDatasetH );
|
444 |
int CPL_DLL GDALDereferenceDataset( GDALDatasetH );
|
445 |
|
446 |
CPLErr CPL_DLL GDALBuildOverviews( GDALDatasetH, const char *, int, int *, |
447 |
int, int *, GDALProgressFunc, void * ); |
448 |
void CPL_DLL GDALGetOpenDatasets( GDALDatasetH ***hDS, int *pnCount ); |
449 |
int CPL_DLL GDALGetAccess( GDALDatasetH hDS );
|
450 |
void CPL_DLL GDALFlushCache( GDALDatasetH hDS );
|
451 |
|
452 |
/* ==================================================================== */
|
453 |
/* GDALRasterBand ... one band/channel in a dataset. */
|
454 |
/* ==================================================================== */
|
455 |
|
456 |
GDALDataType CPL_DLL GDALGetRasterDataType( GDALRasterBandH ); |
457 |
void CPL_DLL GDALGetBlockSize( GDALRasterBandH,
|
458 |
int * pnXSize, int * pnYSize ); |
459 |
|
460 |
CPLErr CPL_DLL GDALRasterIO( GDALRasterBandH hRBand, GDALRWFlag eRWFlag, |
461 |
int nDSXOff, int nDSYOff, |
462 |
int nDSXSize, int nDSYSize, |
463 |
void * pBuffer, int nBXSize, int nBYSize, |
464 |
GDALDataType eBDataType, |
465 |
int nPixelSpace, int nLineSpace ); |
466 |
CPLErr CPL_DLL GDALReadBlock( GDALRasterBandH, int, int, void * ); |
467 |
CPLErr CPL_DLL GDALWriteBlock( GDALRasterBandH, int, int, void * ); |
468 |
int CPL_DLL GDALGetRasterBandXSize( GDALRasterBandH );
|
469 |
int CPL_DLL GDALGetRasterBandYSize( GDALRasterBandH );
|
470 |
char CPL_DLL **GDALGetRasterMetadata( GDALRasterBandH );
|
471 |
GDALAccess CPL_DLL GDALGetRasterAccess( GDALRasterBandH ); |
472 |
int CPL_DLL GDALGetBandNumber( GDALRasterBandH );
|
473 |
GDALDatasetH CPL_DLL GDALGetBandDataset( GDALRasterBandH ); |
474 |
|
475 |
GDALColorInterp CPL_DLL GDALGetRasterColorInterpretation( GDALRasterBandH ); |
476 |
CPLErr CPL_DLL GDALSetRasterColorInterpretation( GDALRasterBandH, |
477 |
GDALColorInterp ); |
478 |
GDALColorTableH CPL_DLL GDALGetRasterColorTable( GDALRasterBandH ); |
479 |
CPLErr CPL_DLL GDALSetRasterColorTable( GDALRasterBandH, GDALColorTableH ); |
480 |
int CPL_DLL GDALHasArbitraryOverviews( GDALRasterBandH );
|
481 |
int CPL_DLL GDALGetOverviewCount( GDALRasterBandH );
|
482 |
GDALRasterBandH CPL_DLL GDALGetOverview( GDALRasterBandH, int );
|
483 |
double CPL_DLL GDALGetRasterNoDataValue( GDALRasterBandH, int * ); |
484 |
CPLErr CPL_DLL GDALSetRasterNoDataValue( GDALRasterBandH, double );
|
485 |
char CPL_DLL ** GDALGetRasterCategoryNames( GDALRasterBandH );
|
486 |
CPLErr CPL_DLL GDALSetRasterCategoryNames( GDALRasterBandH, char ** );
|
487 |
double CPL_DLL GDALGetRasterMinimum( GDALRasterBandH, int *pbSuccess ); |
488 |
double CPL_DLL GDALGetRasterMaximum( GDALRasterBandH, int *pbSuccess ); |
489 |
const char CPL_DLL *GDALGetRasterUnitType( GDALRasterBandH ); |
490 |
double CPL_DLL GDALGetRasterOffset( GDALRasterBandH, int *pbSuccess ); |
491 |
double CPL_DLL GDALGetRasterScale( GDALRasterBandH, int *pbSuccess ); |
492 |
void CPL_DLL GDALComputeRasterMinMax( GDALRasterBandH hBand, int bApproxOK, |
493 |
double adfMinMax[2] ); |
494 |
CPLErr CPL_DLL GDALFlushRasterCache( GDALRasterBandH hBand ); |
495 |
CPLErr CPL_DLL GDALGetRasterHistogram( GDALRasterBandH hBand, |
496 |
double dfMin, double dfMax, |
497 |
int nBuckets, int *panHistogram, |
498 |
int bIncludeOutOfRange, int bApproxOK, |
499 |
GDALProgressFunc pfnProgress, |
500 |
void * pProgressData );
|
501 |
int CPL_DLL GDALGetRandomRasterSample( GDALRasterBandH, int, float * ); |
502 |
GDALRasterBandH CPL_DLL GDALGetRasterSampleOverview( GDALRasterBandH, int );
|
503 |
CPLErr CPL_DLL GDALFillRaster( GDALRasterBandH hBand, double dfRealValue,
|
504 |
double dfImaginaryValue );
|
505 |
CPLErr GDALComputeBandStats( GDALRasterBandH hBand, int nSampleStep,
|
506 |
double *pdfMean, double *pdfStdDev, |
507 |
GDALProgressFunc pfnProgress, |
508 |
void *pProgressData );
|
509 |
CPLErr GDALOverviewMagnitudeCorrection( GDALRasterBandH hBaseBand, |
510 |
int nOverviewCount,
|
511 |
GDALRasterBandH *pahOverviews, |
512 |
GDALProgressFunc pfnProgress, |
513 |
void *pProgressData );
|
514 |
|
515 |
/* -------------------------------------------------------------------- */
|
516 |
/* Helper functions. */
|
517 |
/* -------------------------------------------------------------------- */
|
518 |
int CPL_DLL GDALGeneralCmdLineProcessor( int nArgc, char ***ppapszArgv, |
519 |
int nOptions );
|
520 |
void CPL_DLL GDALSwapWords( void *pData, int nWordSize, int nWordCount, |
521 |
int nWordSkip );
|
522 |
void CPL_DLL
|
523 |
GDALCopyWords( void * pSrcData, GDALDataType eSrcType, int nSrcPixelOffset, |
524 |
void * pDstData, GDALDataType eDstType, int nDstPixelOffset, |
525 |
int nWordCount );
|
526 |
|
527 |
int CPL_DLL GDALReadWorldFile( const char *pszBaseFilename, |
528 |
const char *pszExtension, |
529 |
double * padfGeoTransform );
|
530 |
int CPL_DLL GDALWriteWorldFile( const char *pszBaseFilename, |
531 |
const char *pszExtension, |
532 |
double * padfGeoTransform );
|
533 |
int CPL_DLL GDALReadTabFile( const char *pszBaseFilename, |
534 |
double *padfGeoTransform, char **ppszWKT, |
535 |
int *pnGCPCount, GDAL_GCP **ppasGCPs );
|
536 |
|
537 |
const char CPL_DLL *GDALDecToDMS( double, const char *, int ); |
538 |
double CPL_DLL GDALPackedDMSToDec( double ); |
539 |
double CPL_DLL GDALDecToPackedDMS( double ); |
540 |
|
541 |
const char CPL_DLL *GDALVersionInfo( const char * ); |
542 |
|
543 |
typedef struct { |
544 |
double dfLINE_OFF;
|
545 |
double dfSAMP_OFF;
|
546 |
double dfLAT_OFF;
|
547 |
double dfLONG_OFF;
|
548 |
double dfHEIGHT_OFF;
|
549 |
|
550 |
double dfLINE_SCALE;
|
551 |
double dfSAMP_SCALE;
|
552 |
double dfLAT_SCALE;
|
553 |
double dfLONG_SCALE;
|
554 |
double dfHEIGHT_SCALE;
|
555 |
|
556 |
double adfLINE_NUM_COEFF[20]; |
557 |
double adfLINE_DEN_COEFF[20]; |
558 |
double adfSAMP_NUM_COEFF[20]; |
559 |
double adfSAMP_DEN_COEFF[20]; |
560 |
|
561 |
double dfMIN_LONG;
|
562 |
double dfMIN_LAT;
|
563 |
double dfMAX_LONG;
|
564 |
double dfMAX_LAT;
|
565 |
|
566 |
} GDALRPCInfo; |
567 |
|
568 |
int CPL_DLL GDALExtractRPCInfo( char **, GDALRPCInfo * ); |
569 |
|
570 |
/* ==================================================================== */
|
571 |
/* Color tables. */
|
572 |
/* ==================================================================== */
|
573 |
/** Color tuple */
|
574 |
typedef struct |
575 |
{ |
576 |
/*! gray, red, cyan or hue */
|
577 |
short c1;
|
578 |
|
579 |
/*! green, magenta, or lightness */
|
580 |
short c2;
|
581 |
|
582 |
/*! blue, yellow, or saturation */
|
583 |
short c3;
|
584 |
|
585 |
/*! alpha or blackband */
|
586 |
short c4;
|
587 |
} GDALColorEntry; |
588 |
|
589 |
GDALColorTableH CPL_DLL GDALCreateColorTable( GDALPaletteInterp ); |
590 |
void CPL_DLL GDALDestroyColorTable( GDALColorTableH );
|
591 |
GDALColorTableH CPL_DLL GDALCloneColorTable( GDALColorTableH ); |
592 |
GDALPaletteInterp CPL_DLL GDALGetPaletteInterpretation( GDALColorTableH ); |
593 |
int CPL_DLL GDALGetColorEntryCount( GDALColorTableH );
|
594 |
const GDALColorEntry CPL_DLL *GDALGetColorEntry( GDALColorTableH, int ); |
595 |
int CPL_DLL GDALGetColorEntryAsRGB( GDALColorTableH, int, GDALColorEntry *); |
596 |
void CPL_DLL GDALSetColorEntry( GDALColorTableH, int, const GDALColorEntry * ); |
597 |
|
598 |
/* ==================================================================== */
|
599 |
/* GDAL Cache Management */
|
600 |
/* ==================================================================== */
|
601 |
|
602 |
void CPL_DLL GDALSetCacheMax( int nBytes ); |
603 |
int CPL_DLL GDALGetCacheMax();
|
604 |
int CPL_DLL GDALGetCacheUsed();
|
605 |
int CPL_DLL GDALFlushCacheBlock();
|
606 |
|
607 |
CPL_C_END |
608 |
|
609 |
#endif /* ndef GDAL_H_INCLUDED */ |