GDAL

- Main Page
- Related Pages
- Classes
- Files
- Download
- Issue Tracker

- File List
- File Members

gdalwarper.h
Go to the documentation of this file.
1 /******************************************************************************
2 * $Id$
3 *
4 * Project: GDAL High Performance Warper
5 * Purpose: Prototypes, and definitions for warping related work.
6 * Author: Frank Warmerdam, warmerdam@pobox.com
7 *
8 ******************************************************************************
9 * Copyright (c) 2003, Frank Warmerdam
10 * Copyright (c) 2009-2012, Even Rouault <even dot rouault at mines-paris dot org>
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 #ifndef GDALWARPER_H_INCLUDED
32 #define GDALWARPER_H_INCLUDED
33
42 #include "gdal_alg.h"
43 #include "cpl_minixml.h"
44 #include "cpl_multiproc.h"
45
46 CPL_C_START
47
48 /* Note: values are selected to be consistent with GDALRIOResampleAlg of gcore/gdal.h */
50 typedef enum { GRA_NearestNeighbour=0, GRA_Bilinear=1, GRA_Cubic=2, GRA_CubicSpline=3, GRA_Lanczos=4, GRA_Average=5, GRA_Mode=6,
58 /* GRA_Gauss=7 reserved. */ GRA_Max=8, GRA_Min=9, GRA_Med=10, GRA_Q1=11, GRA_Q3=12
64 } GDALResampleAlg;
65
67 typedef enum { GWKAOM_Average=1, GWKAOM_Fmode=2, GWKAOM_Imode=3, GWKAOM_Max=4, GWKAOM_Min=5, GWKAOM_Quant=6
74 } GWKAverageOrModeAlg;
75
77 typedef int
78 (*GDALMaskFunc)( void *pMaskFuncArg,
79 int nBandCount, GDALDataType eType,
80 int nXOff, int nYOff,
81 int nXSize, int nYSize,
82 GByte **papabyImageData,
83 int bMaskIsFloat, void *pMask );
84
85 CPLErr CPL_DLL
86 GDALWarpNoDataMasker( void *pMaskFuncArg, int nBandCount, GDALDataType eType,
87 int nXOff, int nYOff, int nXSize, int nYSize,
88 GByte **papabyImageData, int bMaskIsFloat,
89 void *pValidityMask, int* pbOutAllValid );
90
91 CPLErr CPL_DLL
92 GDALWarpDstAlphaMasker( void *pMaskFuncArg, int nBandCount, GDALDataType eType,
93 int nXOff, int nYOff, int nXSize, int nYSize,
94 GByte ** /*ppImageData */,
95 int bMaskIsFloat, void *pValidityMask );
96 CPLErr CPL_DLL
97 GDALWarpSrcAlphaMasker( void *pMaskFuncArg, int nBandCount, GDALDataType eType,
98 int nXOff, int nYOff, int nXSize, int nYSize,
99 GByte ** /*ppImageData */,
100 int bMaskIsFloat, void *pValidityMask, int* pbOutAllOpaque );
101
102 CPLErr CPL_DLL
103 GDALWarpSrcMaskMasker( void *pMaskFuncArg, int nBandCount, GDALDataType eType,
104 int nXOff, int nYOff, int nXSize, int nYSize,
105 GByte ** /*ppImageData */,
106 int bMaskIsFloat, void *pValidityMask );
107
108 CPLErr CPL_DLL
109 GDALWarpCutlineMasker( void *pMaskFuncArg, int nBandCount, GDALDataType eType,
110 int nXOff, int nYOff, int nXSize, int nYSize,
111 GByte ** /* ppImageData */,
112 int bMaskIsFloat, void *pValidityMask );
115 /************************************************************************/
116 /* GDALWarpOptions */
117 /************************************************************************/
118
120 typedef struct {
121
122 char **papszWarpOptions;
123
125 double dfWarpMemoryLimit;
126
128 GDALResampleAlg eResampleAlg;
129
132 GDALDataType eWorkingDataType;
133
135 GDALDatasetH hSrcDS;
136
138 GDALDatasetH hDstDS;
139
141 int nBandCount;
142
144 int *panSrcBands;
145
147 int *panDstBands;
148
150 int nSrcAlphaBand;
151
153 int nDstAlphaBand;
154
156 double *padfSrcNoDataReal;
159 double *padfSrcNoDataImag;
160
162 double *padfDstNoDataReal;
165 double *padfDstNoDataImag;
166
169 GDALProgressFunc pfnProgress;
170
172 void *pProgressArg;
173
175 GDALTransformerFunc pfnTransformer;
176
178 void *pTransformerArg;
179
181 GDALMaskFunc *papfnSrcPerBandValidityMaskFunc;
183 void **papSrcPerBandValidityMaskFuncArg;
184
186 GDALMaskFunc pfnSrcValidityMaskFunc;
188 void *pSrcValidityMaskFuncArg;
189
191 GDALMaskFunc pfnSrcDensityMaskFunc;
193 void *pSrcDensityMaskFuncArg;
194
196 GDALMaskFunc pfnDstDensityMaskFunc;
198 void *pDstDensityMaskFuncArg;
199
201 GDALMaskFunc pfnDstValidityMaskFunc;
203 void *pDstValidityMaskFuncArg;
204
206 CPLErr (*pfnPreWarpChunkProcessor)( void *pKern, void *pArg );
208 void *pPreWarpProcessorArg;
209
211 CPLErr (*pfnPostWarpChunkProcessor)( void *pKern, void *pArg);
213 void *pPostWarpProcessorArg;
214
216 void *hCutline;
217
219 double dfCutlineBlendDist;
220
221 } GDALWarpOptions;
222
223 GDALWarpOptions CPL_DLL * CPL_STDCALL GDALCreateWarpOptions(void);
224 void CPL_DLL CPL_STDCALL GDALDestroyWarpOptions( GDALWarpOptions * );
225 GDALWarpOptions CPL_DLL * CPL_STDCALL
226 GDALCloneWarpOptions( const GDALWarpOptions * );
227
228 void CPL_DLL CPL_STDCALL
229 GDALWarpInitDstNoDataReal( GDALWarpOptions *, double dNoDataReal );
230
231 void CPL_DLL CPL_STDCALL
232 GDALWarpInitSrcNoDataReal( GDALWarpOptions *, double dNoDataReal );
233
234 void CPL_DLL CPL_STDCALL
235 GDALWarpInitNoDataReal( GDALWarpOptions *, double dNoDataReal );
236
237 void CPL_DLL CPL_STDCALL
238 GDALWarpInitDstNoDataImag( GDALWarpOptions *, double dNoDataImag );
239
240 void CPL_DLL CPL_STDCALL
241 GDALWarpInitSrcNoDataImag( GDALWarpOptions *, double dNoDataImag );
242
243 void CPL_DLL CPL_STDCALL
244 GDALWarpResolveWorkingDataType( GDALWarpOptions * );
245
246 void CPL_DLL CPL_STDCALL
247 GDALWarpInitDefaultBandMapping( GDALWarpOptions *, int nBandCount );
248
250 CPLXMLNode CPL_DLL * CPL_STDCALL
251 GDALSerializeWarpOptions( const GDALWarpOptions * );
252 GDALWarpOptions CPL_DLL * CPL_STDCALL
253 GDALDeserializeWarpOptions( CPLXMLNode * );
256 /************************************************************************/
257 /* GDALReprojectImage() */
258 /************************************************************************/
259
260 CPLErr CPL_DLL CPL_STDCALL
261 GDALReprojectImage( GDALDatasetH hSrcDS, const char *pszSrcWKT,
262 GDALDatasetH hDstDS, const char *pszDstWKT,
263 GDALResampleAlg eResampleAlg, double dfWarpMemoryLimit,
264 double dfMaxError,
265 GDALProgressFunc pfnProgress, void *pProgressArg,
266 GDALWarpOptions *psOptions );
267
268 CPLErr CPL_DLL CPL_STDCALL
269 GDALCreateAndReprojectImage( GDALDatasetH hSrcDS, const char *pszSrcWKT,
270 const char *pszDstFilename, const char *pszDstWKT,
271 GDALDriverH hDstDriver, char **papszCreateOptions,
272 GDALResampleAlg eResampleAlg, double dfWarpMemoryLimit,
273 double dfMaxError,
274 GDALProgressFunc pfnProgress, void *pProgressArg,
275 GDALWarpOptions *psOptions );
276
277 /************************************************************************/
278 /* VRTWarpedDataset */
279 /************************************************************************/
280
281 GDALDatasetH CPL_DLL CPL_STDCALL
282 GDALAutoCreateWarpedVRT( GDALDatasetH hSrcDS,
283 const char *pszSrcWKT, const char *pszDstWKT,
284 GDALResampleAlg eResampleAlg,
285 double dfMaxError, const GDALWarpOptions *psOptions );
286
287 GDALDatasetH CPL_DLL CPL_STDCALL
288 GDALCreateWarpedVRT( GDALDatasetH hSrcDS,
289 int nPixels, int nLines, double *padfGeoTransform,
290 GDALWarpOptions *psOptions );
291
292 CPLErr CPL_DLL CPL_STDCALL
293 GDALInitializeWarpedVRT( GDALDatasetH hDS,
294 GDALWarpOptions *psWO );
295
296 CPL_C_END
297
298 #if defined(__cplusplus) && !defined(CPL_SUPRESS_CPLUSPLUS)
299
300 /************************************************************************/
301 /* GDALWarpKernel */
302 /* */
303
309 #define WARP_EXTRA_ELTS 1
310
318 class CPL_DLL GDALWarpKernel
319 {
320 public:
322 char **papszWarpOptions;
323
325 GDALResampleAlg eResample;
327 GDALDataType eWorkingDataType;
329 int nBands;
330
332 int nSrcXSize;
334 int nSrcYSize;
336 double dfSrcXExtraSize;
338 double dfSrcYExtraSize;
340 GByte **papabySrcImage;
341
343 GUInt32 **papanBandSrcValid;
345 GUInt32 *panUnifiedSrcValid;
347 float *pafUnifiedSrcDensity;
348
350 int nDstXSize;
352 int nDstYSize;
354 GByte **papabyDstImage;
356 GUInt32 *panDstValid;
358 float *pafDstDensity;
359
361 double dfXScale;
363 double dfYScale;
365 double dfXFilter;
367 double dfYFilter;
369 int nXRadius;
371 int nYRadius;
373 int nFiltInitX;
375 int nFiltInitY;
376
378 int nSrcXOff;
380 int nSrcYOff;
381
383 int nDstXOff;
385 int nDstYOff;
386
388 GDALTransformerFunc pfnTransformer;
390 void *pTransformerArg;
391
393 GDALProgressFunc pfnProgress;
395 void *pProgress;
396
398 double dfProgressBase;
400 double dfProgressScale;
401
403 double *padfDstNoDataReal;
404
407 void *psThreadData;
410 GDALWarpKernel();
411 virtual ~GDALWarpKernel();
412
413 CPLErr Validate();
414 CPLErr PerformWarp();
415 };
416
418 void* GWKThreadsCreate(char** papszWarpOptions,
419 GDALTransformerFunc pfnTransformer,
420 void* pTransformerArg);
421 void GWKThreadsEnd(void* psThreadDataIn);
424 /************************************************************************/
425 /* GDALWarpOperation() */
426 /* */
427 /* This object is application created, or created by a higher */
428 /* level convenience function. It is responsible for */
429 /* subdividing the operation into chunks, loading and saving */
430 /* imagery, and establishing the varios validity and density */
431 /* masks. Actual resampling is done by the GDALWarpKernel. */
432 /************************************************************************/
433
435 typedef struct _GDALWarpChunk GDALWarpChunk;
438 class CPL_DLL GDALWarpOperation {
439 private:
440 GDALWarpOptions *psOptions;
441
442 void WipeOptions();
443 int ValidateOptions();
444
445 CPLErr ComputeSourceWindow( int nDstXOff, int nDstYOff,
446 int nDstXSize, int nDstYSize,
447 int *pnSrcXOff, int *pnSrcYOff,
448 int *pnSrcXSize, int *pnSrcYSize,
449 double *pdfSrcXExtraSize, double *pdfSrcYExtraSize,
450 double* pdfSrcFillRatio );
451
452 static CPLErr CreateKernelMask( GDALWarpKernel *, int iBand,
453 const char *pszType );
454
455 CPLMutex *hIOMutex;
456 CPLMutex *hWarpMutex;
457
458 int nChunkListCount;
459 int nChunkListMax;
460 GDALWarpChunk *pasChunkList;
461
462 int bReportTimings;
463 unsigned long nLastTimeReported;
464
465 void *psThreadData;
466
467 void WipeChunkList();
468 CPLErr CollectChunkListInternal( int nDstXOff, int nDstYOff,
469 int nDstXSize, int nDstYSize );
470 void CollectChunkList( int nDstXOff, int nDstYOff,
471 int nDstXSize, int nDstYSize );
472 void ReportTiming( const char * );
473
474 public:
475 GDALWarpOperation();
476 virtual ~GDALWarpOperation();
477
478 CPLErr Initialize( const GDALWarpOptions *psNewOptions );
479 void* CreateDestinationBuffer( int nDstXSize, int nDstYSize,
480 int *pbWasInitialized = nullptr );
481 static void DestroyDestinationBuffer(void* pDstBuffer);
482
483 const GDALWarpOptions *GetOptions();
484
485 CPLErr ChunkAndWarpImage( int nDstXOff, int nDstYOff,
486 int nDstXSize, int nDstYSize );
487 CPLErr ChunkAndWarpMulti( int nDstXOff, int nDstYOff,
488 int nDstXSize, int nDstYSize );
489 CPLErr WarpRegion( int nDstXOff, int nDstYOff,
490 int nDstXSize, int nDstYSize,
491 int nSrcXOff=0, int nSrcYOff=0,
492 int nSrcXSize=0, int nSrcYSize=0,
493 double dfProgressBase=0.0, double dfProgressScale=1.0);
494 CPLErr WarpRegion( int nDstXOff, int nDstYOff,
495 int nDstXSize, int nDstYSize,
496 int nSrcXOff, int nSrcYOff,
497 int nSrcXSize, int nSrcYSize,
498 double dfSrcXExtraSize, double dfSrcYExtraSize,
499 double dfProgressBase, double dfProgressScale);
500 CPLErr WarpRegionToBuffer( int nDstXOff, int nDstYOff,
501 int nDstXSize, int nDstYSize,
502 void *pDataBuf,
503 GDALDataType eBufDataType,
504 int nSrcXOff=0, int nSrcYOff=0,
505 int nSrcXSize=0, int nSrcYSize=0,
506 double dfProgressBase=0.0, double dfProgressScale=1.0);
507 CPLErr WarpRegionToBuffer( int nDstXOff, int nDstYOff,
508 int nDstXSize, int nDstYSize,
509 void *pDataBuf,
510 GDALDataType eBufDataType,
511 int nSrcXOff, int nSrcYOff,
512 int nSrcXSize, int nSrcYSize,
513 double dfSrcXExtraSize, double dfSrcYExtraSize,
514 double dfProgressBase, double dfProgressScale);
515 };
516
517 #endif /* def __cplusplus */
518
519 CPL_C_START
520
522 typedef void * GDALWarpOperationH;
523
524 GDALWarpOperationH CPL_DLL GDALCreateWarpOperation(const GDALWarpOptions* );
525 void CPL_DLL GDALDestroyWarpOperation( GDALWarpOperationH );
526 CPLErr CPL_DLL GDALChunkAndWarpImage( GDALWarpOperationH, int, int, int, int );
527 CPLErr CPL_DLL GDALChunkAndWarpMulti( GDALWarpOperationH, int, int, int, int );
528 CPLErr CPL_DLL GDALWarpRegion( GDALWarpOperationH,
529 int, int, int, int, int, int, int, int );
530 CPLErr CPL_DLL GDALWarpRegionToBuffer( GDALWarpOperationH, int, int, int, int,
531 void *, GDALDataType,
532 int, int, int, int );
533
534 /************************************************************************/
535 /* Warping kernel functions */
536 /************************************************************************/
537
539 int GWKGetFilterRadius(GDALResampleAlg eResampleAlg);
540
541 typedef double (*FilterFuncType)(double dfX);
542 FilterFuncType GWKGetFilterFunc(GDALResampleAlg eResampleAlg);
543
544 // TODO(schwehr): Can padfVals be a const pointer?
545 typedef double (*FilterFunc4ValuesType)(double* padfVals);
546 FilterFunc4ValuesType GWKGetFilterFunc4Values(GDALResampleAlg eResampleAlg);
549 CPL_C_END
550
551 #endif /* ndef GDAL_ALG_H_INCLUDED */
GDALWarpOptions::pDstValidityMaskFuncArg
void * pDstValidityMaskFuncArg
Unused.
Definition: gdalwarper.h:203
GDALWarpKernel::nSrcXOff
int nSrcXOff
X offset of the source buffer regarding the top-left corner of the image.
Definition: gdalwarper.h:378
GRA_Q3
Definition: gdalwarper.h:63
GDALWarpKernel::nFiltInitX
int nFiltInitX
X filtering offset.
Definition: gdalwarper.h:373
GDALDataType
GDALDataType
Definition: gdal.h:60
GDALWarpKernel::dfYScale
double dfYScale
Y resampling scale, i.e.
Definition: gdalwarper.h:363
CPLXMLNode
Document node structure.
Definition: cpl_minixml.h:66
GDALWarpKernel
This class represents the lowest level of abstraction of warping.
Definition: gdalwarper.h:318
cpl_minixml.h
Definitions for CPL mini XML Parser/Serializer.
GRA_CubicSpline
Definition: gdalwarper.h:54
GRA_Med
Definition: gdalwarper.h:61
GDALWarpInitDstNoDataReal
void GDALWarpInitDstNoDataReal(GDALWarpOptions *, double dNoDataReal)
Initialize padfDstNoDataReal with specified value.
Definition: gdalwarper.cpp:1335
GDALWarpKernel::papabySrcImage
GByte ** papabySrcImage
Array of nBands source images of size nSrcXSize * nSrcYSize.
Definition: gdalwarper.h:340
CPL_C_START
#define CPL_C_START
Macro to start a block of C symbols.
Definition: cpl_port.h:335
GDALWarpKernel::dfXScale
double dfXScale
X resampling scale, i.e.
Definition: gdalwarper.h:361
GWKAOM_Min
Definition: gdalwarper.h:72
GDALInitializeWarpedVRT
CPLErr GDALInitializeWarpedVRT(GDALDatasetH hDS, GDALWarpOptions *psWO)
Set warp info on virtual warped dataset.
Definition: vrtwarped.cpp:1140
GDALWarpKernel::panUnifiedSrcValid
GUInt32 * panUnifiedSrcValid
Unified validity mask of size (nSrcXSize * nSrcYSize + WARP_EXTRA_ELTS) / 8.
Definition: gdalwarper.h:345
GDALWarpKernel::nDstXSize
int nDstXSize
Width of the destination image.
Definition: gdalwarper.h:350
GDALWarpOptions::panDstBands
int * panDstBands
Definition: gdalwarper.h:147
GDALWarpOptions::pProgressArg
void * pProgressArg
Definition: gdalwarper.h:172
GDALWarpKernel::nDstXOff
int nDstXOff
X offset of the destination buffer regarding the top-left corner of the image.
Definition: gdalwarper.h:383
GUInt32
unsigned int GUInt32
Unsigned int32 type.
Definition: cpl_port.h:205
GDALWarpOptions::dfWarpMemoryLimit
double dfWarpMemoryLimit
Definition: gdalwarper.h:125
GDALWarpOptions::nSrcAlphaBand
int nSrcAlphaBand
Definition: gdalwarper.h:150
GRA_Q1
Definition: gdalwarper.h:62
GDALDatasetH
void * GDALDatasetH
Opaque type used for the C bindings of the C++ GDALDataset class.
Definition: gdal.h:255
GByte
unsigned char GByte
Unsigned byte type.
Definition: cpl_port.h:213
GDALWarpOptions::pfnSrcDensityMaskFunc
GDALMaskFunc pfnSrcDensityMaskFunc
Unused.
Definition: gdalwarper.h:191
GDALWarpRegionToBuffer
CPLErr GDALWarpRegionToBuffer(GDALWarpOperationH, int, int, int, int, void *, GDALDataType, int, int, int, int)
Definition: gdalwarpoperation.cpp:2217
GDALWarpKernel::papszWarpOptions
char ** papszWarpOptions
Warp options.
Definition: gdalwarper.h:322
GDALWarpOptions::papSrcPerBandValidityMaskFuncArg
void ** papSrcPerBandValidityMaskFuncArg
Unused.
Definition: gdalwarper.h:183
GDALWarpInitSrcNoDataReal
void GDALWarpInitSrcNoDataReal(GDALWarpOptions *, double dNoDataReal)
Initialize padfSrcNoDataReal with specified value.
Definition: gdalwarper.cpp:1355
GRA_Lanczos
Definition: gdalwarper.h:55
GDALWarpInitDefaultBandMapping
void GDALWarpInitDefaultBandMapping(GDALWarpOptions *, int nBandCount)
Init src and dst band mappings such that Bands[i] = i+1 for nBandCount Does nothing if psOptionsIn->n...
Definition: gdalwarper.cpp:1523
GDALWarpOptions::pSrcDensityMaskFuncArg
void * pSrcDensityMaskFuncArg
Unused.
Definition: gdalwarper.h:193
GRA_Average
Definition: gdalwarper.h:56
GDALWarpOptions::pPostWarpProcessorArg
void * pPostWarpProcessorArg
Unused.
Definition: gdalwarper.h:213
GDALWarpKernel::panDstValid
GUInt32 * panDstValid
Validify mask of size (nDstXSize * nDstYSize) / 8.
Definition: gdalwarper.h:356
GDALWarpOptions::padfDstNoDataReal
double * padfDstNoDataReal
Definition: gdalwarper.h:162
GWKAverageOrModeAlg
GWKAverageOrModeAlg
Definition: gdalwarper.h:67
GDALWarpKernel::eWorkingDataType
GDALDataType eWorkingDataType
Working data type.
Definition: gdalwarper.h:327
GDALWarpKernel::pafUnifiedSrcDensity
float * pafUnifiedSrcDensity
Unified source density of size nSrcXSize * nSrcYSize + WARP_EXTRA_ELTS.
Definition: gdalwarper.h:347
GDALWarpOptions::padfSrcNoDataImag
double * padfSrcNoDataImag
Definition: gdalwarper.h:159
GDALWarpKernel::nFiltInitY
int nFiltInitY
Y filtering offset.
Definition: gdalwarper.h:375
GDALWarpOptions::eResampleAlg
GDALResampleAlg eResampleAlg
Definition: gdalwarper.h:128
GDALChunkAndWarpMulti
CPLErr GDALChunkAndWarpMulti(GDALWarpOperationH, int, int, int, int)
Definition: gdalwarpoperation.cpp:1156
GDALWarpOptions::pfnDstValidityMaskFunc
GDALMaskFunc pfnDstValidityMaskFunc
Unused.
Definition: gdalwarper.h:201
GDALWarpRegion
CPLErr GDALWarpRegion(GDALWarpOperationH, int, int, int, int, int, int, int, int)
Definition: gdalwarpoperation.cpp:1600
GDALCreateWarpedVRT
GDALDatasetH GDALCreateWarpedVRT(GDALDatasetH hSrcDS, int nPixels, int nLines, double *padfGeoTransform, GDALWarpOptions *psOptions)
Create virtual warped dataset.
Definition: vrtwarped.cpp:259
GWKAOM_Average
Definition: gdalwarper.h:68
GDALWarpOptions::pfnTransformer
GDALTransformerFunc pfnTransformer
Definition: gdalwarper.h:175
GDALWarpKernel::dfProgressScale
double dfProgressScale
Scale value for progress computation.
Definition: gdalwarper.h:400
GDALDestroyWarpOperation
void GDALDestroyWarpOperation(GDALWarpOperationH)
Definition: gdalwarpoperation.cpp:739
GDALDestroyWarpOptions
void GDALDestroyWarpOptions(GDALWarpOptions *)
Destroy a warp options structure.
Definition: gdalwarper.cpp:1235
GDALWarpOptions::pSrcValidityMaskFuncArg
void * pSrcValidityMaskFuncArg
Unused.
Definition: gdalwarper.h:188
GDALReprojectImage
CPLErr GDALReprojectImage(GDALDatasetH hSrcDS, const char *pszSrcWKT, GDALDatasetH hDstDS, const char *pszDstWKT, GDALResampleAlg eResampleAlg, double dfWarpMemoryLimit, double dfMaxError, GDALProgressFunc pfnProgress, void *pProgressArg, GDALWarpOptions *psOptions)
Reproject image.
Definition: gdalwarper.cpp:97
GDALWarpInitDstNoDataImag
void GDALWarpInitDstNoDataImag(GDALWarpOptions *, double dNoDataImag)
Initialize padfDstNoDataImag with specified value.
Definition: gdalwarper.cpp:1393
GDALWarpOptions::padfDstNoDataImag
double * padfDstNoDataImag
Definition: gdalwarper.h:165
GDALWarpOptions::pfnSrcValidityMaskFunc
GDALMaskFunc pfnSrcValidityMaskFunc
Unused.
Definition: gdalwarper.h:186
GWKAOM_Fmode
Definition: gdalwarper.h:69
GRA_Min
Definition: gdalwarper.h:60
GWKAOM_Max
Definition: gdalwarper.h:71
GDALWarpOptions::pfnDstDensityMaskFunc
GDALMaskFunc pfnDstDensityMaskFunc
Unused.
Definition: gdalwarper.h:196
GDALWarpKernel::nDstYOff
int nDstYOff
Y offset of the destination buffer regarding the top-left corner of the image.
Definition: gdalwarper.h:385
GDALWarpKernel::eResample
GDALResampleAlg eResample
Resample algorithm.
Definition: gdalwarper.h:325
GDALWarpOptions::pPreWarpProcessorArg
void * pPreWarpProcessorArg
Unused.
Definition: gdalwarper.h:208
GDALResampleAlg
GDALResampleAlg
Definition: gdalwarper.h:50
GDALWarpKernel::dfSrcYExtraSize
double dfSrcYExtraSize
Extra pixels (included in nSrcYSize) reserved for filter window.
Definition: gdalwarper.h:338
GDALWarpInitSrcNoDataImag
void GDALWarpInitSrcNoDataImag(GDALWarpOptions *, double dNoDataImag)
Initialize padfSrcNoDataImag with specified value.
Definition: gdalwarper.cpp:1412
GDALWarpKernel::dfProgressBase
double dfProgressBase
Base/offset value for progress computation.
Definition: gdalwarper.h:398
GDALWarpOptions
Warp control options for use with GDALWarpOperation::Initialize()
Definition: gdalwarper.h:120
GDALWarpOptions::pfnProgress
GDALProgressFunc pfnProgress
Definition: gdalwarper.h:169
GDALWarpOptions::pDstDensityMaskFuncArg
void * pDstDensityMaskFuncArg
Unused.
Definition: gdalwarper.h:198
GRA_Cubic
Definition: gdalwarper.h:53
GDALWarpOperation
High level image warping class.
Definition: gdalwarper.h:438
GDALWarpKernel::nXRadius
int nXRadius
X size of window to filter.
Definition: gdalwarper.h:369
GDALCloneWarpOptions
GDALWarpOptions * GDALCloneWarpOptions(const GDALWarpOptions *)
Clone a warp options structure.
Definition: gdalwarper.cpp:1276
GDALWarpOptions::pTransformerArg
void * pTransformerArg
Definition: gdalwarper.h:178
GDALWarpKernel::nSrcYSize
int nSrcYSize
Height of the source image.
Definition: gdalwarper.h:334
GDALWarpKernel::pfnProgress
GDALProgressFunc pfnProgress
Progress function.
Definition: gdalwarper.h:393
GRA_Max
Definition: gdalwarper.h:59
GRA_Bilinear
Definition: gdalwarper.h:52
GDALWarpOptions::panSrcBands
int * panSrcBands
Definition: gdalwarper.h:144
GDALWarpKernel::padfDstNoDataReal
double * padfDstNoDataReal
Array of nBands value for destination nodata.
Definition: gdalwarper.h:403
GDALTransformerFunc
int(* GDALTransformerFunc)(void *pTransformerArg, int bDstToSrc, int nPointCount, double *x, double *y, double *z, int *panSuccess)
Definition: gdal_alg.h:114
GDALDriverH
void * GDALDriverH
Opaque type used for the C bindings of the C++ GDALDriver class.
Definition: gdal.h:261
GDALWarpOptions::papszWarpOptions
char ** papszWarpOptions
A string list of additional options controlling the warp operation in name=value format.
Definition: gdalwarper.h:122
GDALWarpKernel::nDstYSize
int nDstYSize
Height of the destination image.
Definition: gdalwarper.h:352
GDALCreateWarpOptions
GDALWarpOptions * GDALCreateWarpOptions(void)
Create a warp options structure.
Definition: gdalwarper.cpp:1216
GWKAOM_Quant
Definition: gdalwarper.h:73
GDALWarpKernel::dfXFilter
double dfXFilter
X size of filter kernel.
Definition: gdalwarper.h:365
GDALWarpKernel::nBands
int nBands
Number of input and output bands (excluding alpha bands)
Definition: gdalwarper.h:329
GDALChunkAndWarpImage
CPLErr GDALChunkAndWarpImage(GDALWarpOperationH, int, int, int, int)
Definition: gdalwarpoperation.cpp:921
GRA_NearestNeighbour
Definition: gdalwarper.h:51
gdal_alg.h
Public (C callable) GDAL algorithm entry points, and definitions.
GDALWarpKernel::pTransformerArg
void * pTransformerArg
User data provided to pfnTransformer.
Definition: gdalwarper.h:390
GDALWarpOptions::papfnSrcPerBandValidityMaskFunc
GDALMaskFunc * papfnSrcPerBandValidityMaskFunc
Unused.
Definition: gdalwarper.h:181
GDALWarpKernel::nSrcXSize
int nSrcXSize
Width of the source image.
Definition: gdalwarper.h:332
GDALWarpOptions::hSrcDS
GDALDatasetH hSrcDS
Definition: gdalwarper.h:135
GDALWarpOptions::nBandCount
int nBandCount
Definition: gdalwarper.h:141
GDALWarpKernel::pafDstDensity
float * pafDstDensity
Destination density of size nDstXSize * nDstYSize.
Definition: gdalwarper.h:358
GDALWarpOptions::eWorkingDataType
GDALDataType eWorkingDataType
Definition: gdalwarper.h:132
GDALCreateAndReprojectImage
CPLErr GDALCreateAndReprojectImage(GDALDatasetH hSrcDS, const char *pszSrcWKT, const char *pszDstFilename, const char *pszDstWKT, GDALDriverH hDstDriver, char **papszCreateOptions, GDALResampleAlg eResampleAlg, double dfWarpMemoryLimit, double dfMaxError, GDALProgressFunc pfnProgress, void *pProgressArg, GDALWarpOptions *psOptions)
Reproject an image and create the target reprojected image.
Definition: gdalwarper.cpp:230
CPL_C_END
#define CPL_C_END
Macro to end a block of C symbols.
Definition: cpl_port.h:337
GDALWarpKernel::pfnTransformer
GDALTransformerFunc pfnTransformer
Pixel transformation function.
Definition: gdalwarper.h:388
GDALWarpInitNoDataReal
void GDALWarpInitNoDataReal(GDALWarpOptions *, double dNoDataReal)
Initialize padfSrcNoDataReal and padfDstNoDataReal with specified value.
Definition: gdalwarper.cpp:1375
GDALWarpKernel::nYRadius
int nYRadius
Y size of window to filter.
Definition: gdalwarper.h:371
GDALWarpOptions::hDstDS
GDALDatasetH hDstDS
Definition: gdalwarper.h:138
GRA_Mode
Definition: gdalwarper.h:57
GDALWarpOptions::hCutline
void * hCutline
Definition: gdalwarper.h:216
GDALWarpKernel::dfYFilter
double dfYFilter
Y size of filter kernel.
Definition: gdalwarper.h:367
GDALWarpOptions::dfCutlineBlendDist
double dfCutlineBlendDist
Definition: gdalwarper.h:219
GDALAutoCreateWarpedVRT
GDALDatasetH GDALAutoCreateWarpedVRT(GDALDatasetH hSrcDS, const char *pszSrcWKT, const char *pszDstWKT, GDALResampleAlg eResampleAlg, double dfMaxError, const GDALWarpOptions *psOptions)
Create virtual warped dataset automatically.
Definition: vrtwarped.cpp:101
GDALWarpOptions::padfSrcNoDataReal
double * padfSrcNoDataReal
Definition: gdalwarper.h:156
GDALWarpOperationH
void * GDALWarpOperationH
Opaque type representing a GDALWarpOperation object.
Definition: gdalwarper.h:522
GDALWarpKernel::dfSrcXExtraSize
double dfSrcXExtraSize
Extra pixels (included in nSrcXSize) reserved for filter window.
Definition: gdalwarper.h:336
GDALWarpKernel::pProgress
void * pProgress
User data provided to pfnProgress.
Definition: gdalwarper.h:395
GDALWarpKernel::nSrcYOff
int nSrcYOff
Y offset of the source buffer regarding the top-left corner of the image.
Definition: gdalwarper.h:380
GWKAOM_Imode
Definition: gdalwarper.h:70
CPLErr
CPLErr
Error category.
Definition: cpl_error.h:52
GDALCreateWarpOperation
GDALWarpOperationH GDALCreateWarpOperation(const GDALWarpOptions *)
Definition: gdalwarpoperation.cpp:718
GDALWarpKernel::papabyDstImage
GByte ** papabyDstImage
Array of nBands destination images of size nDstXSize * nDstYSize.
Definition: gdalwarper.h:354
GDALWarpOptions::nDstAlphaBand
int nDstAlphaBand
Definition: gdalwarper.h:153
GDALWarpResolveWorkingDataType
void GDALWarpResolveWorkingDataType(GDALWarpOptions *)
If the working data type is unknown, this method will determine a valid working data type to support ...
Definition: gdalwarper.cpp:1432
GDALWarpKernel::papanBandSrcValid
GUInt32 ** papanBandSrcValid
Array of nBands validity mask of size (nSrcXSize * nSrcYSize + WARP_EXTRA_ELTS) / 8...
Definition: gdalwarper.h:343

Generated for GDAL by 1.8.8.