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;
160 double *padfSrcNoDataImag;
161
163 double *padfDstNoDataReal;
167 double *padfDstNoDataImag;
168
171 GDALProgressFunc pfnProgress;
172
174 void *pProgressArg;
175
177 GDALTransformerFunc pfnTransformer;
178
180 void *pTransformerArg;
181
183 GDALMaskFunc *papfnSrcPerBandValidityMaskFunc;
185 void **papSrcPerBandValidityMaskFuncArg;
186
188 GDALMaskFunc pfnSrcValidityMaskFunc;
190 void *pSrcValidityMaskFuncArg;
191
193 GDALMaskFunc pfnSrcDensityMaskFunc;
195 void *pSrcDensityMaskFuncArg;
196
198 GDALMaskFunc pfnDstDensityMaskFunc;
200 void *pDstDensityMaskFuncArg;
201
203 GDALMaskFunc pfnDstValidityMaskFunc;
205 void *pDstValidityMaskFuncArg;
206
208 CPLErr (*pfnPreWarpChunkProcessor)( void *pKern, void *pArg );
210 void *pPreWarpProcessorArg;
211
213 CPLErr (*pfnPostWarpChunkProcessor)( void *pKern, void *pArg);
215 void *pPostWarpProcessorArg;
216
218 void *hCutline;
219
221 double dfCutlineBlendDist;
222
223 } GDALWarpOptions;
224
225 GDALWarpOptions CPL_DLL * CPL_STDCALL GDALCreateWarpOptions(void);
226 void CPL_DLL CPL_STDCALL GDALDestroyWarpOptions( GDALWarpOptions * );
227 GDALWarpOptions CPL_DLL * CPL_STDCALL
228 GDALCloneWarpOptions( const GDALWarpOptions * );
229
230 void CPL_DLL CPL_STDCALL
231 GDALWarpInitDstNoDataReal( GDALWarpOptions *, double dNoDataReal );
232
233 void CPL_DLL CPL_STDCALL
234 GDALWarpInitSrcNoDataReal( GDALWarpOptions *, double dNoDataReal );
235
236 void CPL_DLL CPL_STDCALL
237 GDALWarpInitNoDataReal( GDALWarpOptions *, double dNoDataReal );
238
239 void CPL_DLL CPL_STDCALL
240 GDALWarpInitDstNoDataImag( GDALWarpOptions *, double dNoDataImag );
241
242 void CPL_DLL CPL_STDCALL
243 GDALWarpInitSrcNoDataImag( GDALWarpOptions *, double dNoDataImag );
244
245 void CPL_DLL CPL_STDCALL
246 GDALWarpResolveWorkingDataType( GDALWarpOptions * );
247
248 void CPL_DLL CPL_STDCALL
249 GDALWarpInitDefaultBandMapping( GDALWarpOptions *, int nBandCount );
250
252 CPLXMLNode CPL_DLL * CPL_STDCALL
253 GDALSerializeWarpOptions( const GDALWarpOptions * );
254 GDALWarpOptions CPL_DLL * CPL_STDCALL
255 GDALDeserializeWarpOptions( CPLXMLNode * );
258 /************************************************************************/
259 /* GDALReprojectImage() */
260 /************************************************************************/
261
262 CPLErr CPL_DLL CPL_STDCALL
263 GDALReprojectImage( GDALDatasetH hSrcDS, const char *pszSrcWKT,
264 GDALDatasetH hDstDS, const char *pszDstWKT,
265 GDALResampleAlg eResampleAlg, double dfWarpMemoryLimit,
266 double dfMaxError,
267 GDALProgressFunc pfnProgress, void *pProgressArg,
268 GDALWarpOptions *psOptions );
269
270 CPLErr CPL_DLL CPL_STDCALL
271 GDALCreateAndReprojectImage( GDALDatasetH hSrcDS, const char *pszSrcWKT,
272 const char *pszDstFilename, const char *pszDstWKT,
273 GDALDriverH hDstDriver, char **papszCreateOptions,
274 GDALResampleAlg eResampleAlg, double dfWarpMemoryLimit,
275 double dfMaxError,
276 GDALProgressFunc pfnProgress, void *pProgressArg,
277 GDALWarpOptions *psOptions );
278
279 /************************************************************************/
280 /* VRTWarpedDataset */
281 /************************************************************************/
282
283 GDALDatasetH CPL_DLL CPL_STDCALL
284 GDALAutoCreateWarpedVRT( GDALDatasetH hSrcDS,
285 const char *pszSrcWKT, const char *pszDstWKT,
286 GDALResampleAlg eResampleAlg,
287 double dfMaxError, const GDALWarpOptions *psOptions );
288
289 GDALDatasetH CPL_DLL CPL_STDCALL
290 GDALCreateWarpedVRT( GDALDatasetH hSrcDS,
291 int nPixels, int nLines, double *padfGeoTransform,
292 GDALWarpOptions *psOptions );
293
294 CPLErr CPL_DLL CPL_STDCALL
295 GDALInitializeWarpedVRT( GDALDatasetH hDS,
296 GDALWarpOptions *psWO );
297
298 CPL_C_END
299
300 #if defined(__cplusplus) && !defined(CPL_SUPRESS_CPLUSPLUS)
301
302 /************************************************************************/
303 /* GDALWarpKernel */
304 /* */
305
311 #define WARP_EXTRA_ELTS 1
312
320 class CPL_DLL GDALWarpKernel
321 {
322 CPL_DISALLOW_COPY_ASSIGN(GDALWarpKernel)
323
324 public:
326 char **papszWarpOptions;
327
329 GDALResampleAlg eResample;
331 GDALDataType eWorkingDataType;
333 int nBands;
334
336 int nSrcXSize;
338 int nSrcYSize;
340 double dfSrcXExtraSize;
342 double dfSrcYExtraSize;
344 GByte **papabySrcImage;
345
347 GUInt32 **papanBandSrcValid;
349 GUInt32 *panUnifiedSrcValid;
351 float *pafUnifiedSrcDensity;
352
354 int nDstXSize;
356 int nDstYSize;
358 GByte **papabyDstImage;
360 GUInt32 *panDstValid;
362 float *pafDstDensity;
363
365 double dfXScale;
367 double dfYScale;
369 double dfXFilter;
371 double dfYFilter;
373 int nXRadius;
375 int nYRadius;
377 int nFiltInitX;
379 int nFiltInitY;
380
382 int nSrcXOff;
384 int nSrcYOff;
385
387 int nDstXOff;
389 int nDstYOff;
390
392 GDALTransformerFunc pfnTransformer;
394 void *pTransformerArg;
395
397 GDALProgressFunc pfnProgress;
399 void *pProgress;
400
402 double dfProgressBase;
404 double dfProgressScale;
405
407 double *padfDstNoDataReal;
408
411 void *psThreadData;
414 GDALWarpKernel();
415 virtual ~GDALWarpKernel();
416
417 CPLErr Validate();
418 CPLErr PerformWarp();
419 };
420
422 void* GWKThreadsCreate(char** papszWarpOptions,
423 GDALTransformerFunc pfnTransformer,
424 void* pTransformerArg);
425 void GWKThreadsEnd(void* psThreadDataIn);
428 /************************************************************************/
429 /* GDALWarpOperation() */
430 /* */
431 /* This object is application created, or created by a higher */
432 /* level convenience function. It is responsible for */
433 /* subdividing the operation into chunks, loading and saving */
434 /* imagery, and establishing the varios validity and density */
435 /* masks. Actual resampling is done by the GDALWarpKernel. */
436 /************************************************************************/
437
439 typedef struct _GDALWarpChunk GDALWarpChunk;
442 class CPL_DLL GDALWarpOperation {
443
444 CPL_DISALLOW_COPY_ASSIGN(GDALWarpOperation)
445
446 private:
447 GDALWarpOptions *psOptions;
448
449 void WipeOptions();
450 int ValidateOptions();
451
452 CPLErr ComputeSourceWindow( int nDstXOff, int nDstYOff,
453 int nDstXSize, int nDstYSize,
454 int *pnSrcXOff, int *pnSrcYOff,
455 int *pnSrcXSize, int *pnSrcYSize,
456 double *pdfSrcXExtraSize, double *pdfSrcYExtraSize,
457 double* pdfSrcFillRatio );
458
459 void ComputeSourceWindowStartingFromSource(
460 int nDstXOff, int nDstYOff,
461 int nDstXSize, int nDstYSize,
462 double* padfSrcMinX, double* padfSrcMinY,
463 double* padfSrcMaxX, double* padfSrcMaxY);
464
465 static CPLErr CreateKernelMask( GDALWarpKernel *, int iBand,
466 const char *pszType );
467
468 CPLMutex *hIOMutex;
469 CPLMutex *hWarpMutex;
470
471 int nChunkListCount;
472 int nChunkListMax;
473 GDALWarpChunk *pasChunkList;
474
475 int bReportTimings;
476 unsigned long nLastTimeReported;
477
478 void *psThreadData;
479
480 void WipeChunkList();
481 CPLErr CollectChunkListInternal( int nDstXOff, int nDstYOff,
482 int nDstXSize, int nDstYSize );
483 void CollectChunkList( int nDstXOff, int nDstYOff,
484 int nDstXSize, int nDstYSize );
485 void ReportTiming( const char * );
486
487 public:
488 GDALWarpOperation();
489 virtual ~GDALWarpOperation();
490
491 CPLErr Initialize( const GDALWarpOptions *psNewOptions );
492 void* CreateDestinationBuffer( int nDstXSize, int nDstYSize,
493 int *pbWasInitialized = nullptr );
494 static void DestroyDestinationBuffer(void* pDstBuffer);
495
496 const GDALWarpOptions *GetOptions();
497
498 CPLErr ChunkAndWarpImage( int nDstXOff, int nDstYOff,
499 int nDstXSize, int nDstYSize );
500 CPLErr ChunkAndWarpMulti( int nDstXOff, int nDstYOff,
501 int nDstXSize, int nDstYSize );
502 CPLErr WarpRegion( int nDstXOff, int nDstYOff,
503 int nDstXSize, int nDstYSize,
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 WarpRegion( int nDstXOff, int nDstYOff,
508 int nDstXSize, int nDstYSize,
509 int nSrcXOff, int nSrcYOff,
510 int nSrcXSize, int nSrcYSize,
511 double dfSrcXExtraSize, double dfSrcYExtraSize,
512 double dfProgressBase, double dfProgressScale);
513 CPLErr WarpRegionToBuffer( int nDstXOff, int nDstYOff,
514 int nDstXSize, int nDstYSize,
515 void *pDataBuf,
516 GDALDataType eBufDataType,
517 int nSrcXOff=0, int nSrcYOff=0,
518 int nSrcXSize=0, int nSrcYSize=0,
519 double dfProgressBase=0.0, double dfProgressScale=1.0);
520 CPLErr WarpRegionToBuffer( int nDstXOff, int nDstYOff,
521 int nDstXSize, int nDstYSize,
522 void *pDataBuf,
523 GDALDataType eBufDataType,
524 int nSrcXOff, int nSrcYOff,
525 int nSrcXSize, int nSrcYSize,
526 double dfSrcXExtraSize, double dfSrcYExtraSize,
527 double dfProgressBase, double dfProgressScale);
528 };
529
530 #endif /* def __cplusplus */
531
532 CPL_C_START
533
535 typedef void * GDALWarpOperationH;
536
537 GDALWarpOperationH CPL_DLL GDALCreateWarpOperation(const GDALWarpOptions* );
538 void CPL_DLL GDALDestroyWarpOperation( GDALWarpOperationH );
539 CPLErr CPL_DLL GDALChunkAndWarpImage( GDALWarpOperationH, int, int, int, int );
540 CPLErr CPL_DLL GDALChunkAndWarpMulti( GDALWarpOperationH, int, int, int, int );
541 CPLErr CPL_DLL GDALWarpRegion( GDALWarpOperationH,
542 int, int, int, int, int, int, int, int );
543 CPLErr CPL_DLL GDALWarpRegionToBuffer( GDALWarpOperationH, int, int, int, int,
544 void *, GDALDataType,
545 int, int, int, int );
546
547 /************************************************************************/
548 /* Warping kernel functions */
549 /************************************************************************/
550
552 int GWKGetFilterRadius(GDALResampleAlg eResampleAlg);
553
554 typedef double (*FilterFuncType)(double dfX);
555 FilterFuncType GWKGetFilterFunc(GDALResampleAlg eResampleAlg);
556
557 // TODO(schwehr): Can padfVals be a const pointer?
558 typedef double (*FilterFunc4ValuesType)(double* padfVals);
559 FilterFunc4ValuesType GWKGetFilterFunc4Values(GDALResampleAlg eResampleAlg);
562 CPL_C_END
563
564 #endif /* ndef GDAL_ALG_H_INCLUDED */
GDALWarpOptions::pDstValidityMaskFuncArg
void * pDstValidityMaskFuncArg
Unused.
Definition: gdalwarper.h:205
GDALWarpKernel::nSrcXOff
int nSrcXOff
X offset of the source buffer regarding the top-left corner of the image.
Definition: gdalwarper.h:382
GRA_Q3
Definition: gdalwarper.h:63
GDALWarpKernel::nFiltInitX
int nFiltInitX
X filtering offset.
Definition: gdalwarper.h:377
GDALDataType
GDALDataType
Definition: gdal.h:60
GDALWarpKernel::dfYScale
double dfYScale
Y resampling scale, i.e.
Definition: gdalwarper.h:367
CPLXMLNode
Document node structure.
Definition: cpl_minixml.h:66
GDALWarpKernel
This class represents the lowest level of abstraction of warping.
Definition: gdalwarper.h:320
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:1331
GDALWarpKernel::papabySrcImage
GByte ** papabySrcImage
Array of nBands source images of size nSrcXSize * nSrcYSize.
Definition: gdalwarper.h:344
CPL_C_START
#define CPL_C_START
Macro to start a block of C symbols.
Definition: cpl_port.h:337
GDALWarpKernel::dfXScale
double dfXScale
X resampling scale, i.e.
Definition: gdalwarper.h:365
GWKAOM_Min
Definition: gdalwarper.h:72
GDALInitializeWarpedVRT
CPLErr GDALInitializeWarpedVRT(GDALDatasetH hDS, GDALWarpOptions *psWO)
Set warp info on virtual warped dataset.
Definition: vrtwarped.cpp:1159
GDALWarpKernel::panUnifiedSrcValid
GUInt32 * panUnifiedSrcValid
Unified validity mask of size (nSrcXSize * nSrcYSize + WARP_EXTRA_ELTS) / 8.
Definition: gdalwarper.h:349
GDALWarpKernel::nDstXSize
int nDstXSize
Width of the destination image.
Definition: gdalwarper.h:354
GDALWarpOptions::panDstBands
int * panDstBands
Definition: gdalwarper.h:147
GDALWarpOptions::pProgressArg
void * pProgressArg
Definition: gdalwarper.h:174
GDALWarpKernel::nDstXOff
int nDstXOff
X offset of the destination buffer regarding the top-left corner of the image.
Definition: gdalwarper.h:387
GUInt32
unsigned int GUInt32
Unsigned int32 type.
Definition: cpl_port.h:207
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:215
GDALWarpOptions::pfnSrcDensityMaskFunc
GDALMaskFunc pfnSrcDensityMaskFunc
Unused.
Definition: gdalwarper.h:193
GDALWarpRegionToBuffer
CPLErr GDALWarpRegionToBuffer(GDALWarpOperationH, int, int, int, int, void *, GDALDataType, int, int, int, int)
Definition: gdalwarpoperation.cpp:2273
GDALWarpKernel::papszWarpOptions
char ** papszWarpOptions
Warp options.
Definition: gdalwarper.h:326
GDALWarpOptions::papSrcPerBandValidityMaskFuncArg
void ** papSrcPerBandValidityMaskFuncArg
Unused.
Definition: gdalwarper.h:185
GDALWarpInitSrcNoDataReal
void GDALWarpInitSrcNoDataReal(GDALWarpOptions *, double dNoDataReal)
Initialize padfSrcNoDataReal with specified value.
Definition: gdalwarper.cpp:1351
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:1519
GDALWarpOptions::pSrcDensityMaskFuncArg
void * pSrcDensityMaskFuncArg
Unused.
Definition: gdalwarper.h:195
GRA_Average
Definition: gdalwarper.h:56
GDALWarpOptions::pPostWarpProcessorArg
void * pPostWarpProcessorArg
Unused.
Definition: gdalwarper.h:215
GDALWarpKernel::panDstValid
GUInt32 * panDstValid
Validify mask of size (nDstXSize * nDstYSize) / 8.
Definition: gdalwarper.h:360
GDALWarpOptions::padfDstNoDataReal
double * padfDstNoDataReal
Definition: gdalwarper.h:163
GWKAverageOrModeAlg
GWKAverageOrModeAlg
Definition: gdalwarper.h:67
GDALWarpKernel::eWorkingDataType
GDALDataType eWorkingDataType
Working data type.
Definition: gdalwarper.h:331
GDALWarpKernel::pafUnifiedSrcDensity
float * pafUnifiedSrcDensity
Unified source density of size nSrcXSize * nSrcYSize + WARP_EXTRA_ELTS.
Definition: gdalwarper.h:351
GDALWarpOptions::padfSrcNoDataImag
double * padfSrcNoDataImag
Definition: gdalwarper.h:160
GDALWarpKernel::nFiltInitY
int nFiltInitY
Y filtering offset.
Definition: gdalwarper.h:379
GDALWarpOptions::eResampleAlg
GDALResampleAlg eResampleAlg
Definition: gdalwarper.h:128
GDALChunkAndWarpMulti
CPLErr GDALChunkAndWarpMulti(GDALWarpOperationH, int, int, int, int)
Definition: gdalwarpoperation.cpp:1211
GDALWarpOptions::pfnDstValidityMaskFunc
GDALMaskFunc pfnDstValidityMaskFunc
Unused.
Definition: gdalwarper.h:203
GDALWarpRegion
CPLErr GDALWarpRegion(GDALWarpOperationH, int, int, int, int, int, int, int, int)
Definition: gdalwarpoperation.cpp:1656
GDALCreateWarpedVRT
GDALDatasetH GDALCreateWarpedVRT(GDALDatasetH hSrcDS, int nPixels, int nLines, double *padfGeoTransform, GDALWarpOptions *psOptions)
Create virtual warped dataset.
Definition: vrtwarped.cpp:274
GWKAOM_Average
Definition: gdalwarper.h:68
GDALWarpOptions::pfnTransformer
GDALTransformerFunc pfnTransformer
Definition: gdalwarper.h:177
GDALWarpKernel::dfProgressScale
double dfProgressScale
Scale value for progress computation.
Definition: gdalwarper.h:404
GDALDestroyWarpOperation
void GDALDestroyWarpOperation(GDALWarpOperationH)
Definition: gdalwarpoperation.cpp:794
GDALDestroyWarpOptions
void GDALDestroyWarpOptions(GDALWarpOptions *)
Destroy a warp options structure.
Definition: gdalwarper.cpp:1231
GDALWarpOptions::pSrcValidityMaskFuncArg
void * pSrcValidityMaskFuncArg
Unused.
Definition: gdalwarper.h:190
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:1389
GDALWarpOptions::padfDstNoDataImag
double * padfDstNoDataImag
Definition: gdalwarper.h:167
GDALWarpOptions::pfnSrcValidityMaskFunc
GDALMaskFunc pfnSrcValidityMaskFunc
Unused.
Definition: gdalwarper.h:188
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:198
GDALWarpKernel::nDstYOff
int nDstYOff
Y offset of the destination buffer regarding the top-left corner of the image.
Definition: gdalwarper.h:389
GDALWarpKernel::eResample
GDALResampleAlg eResample
Resample algorithm.
Definition: gdalwarper.h:329
GDALWarpOptions::pPreWarpProcessorArg
void * pPreWarpProcessorArg
Unused.
Definition: gdalwarper.h:210
GDALResampleAlg
GDALResampleAlg
Definition: gdalwarper.h:50
GDALWarpKernel::dfSrcYExtraSize
double dfSrcYExtraSize
Extra pixels (included in nSrcYSize) reserved for filter window.
Definition: gdalwarper.h:342
GDALWarpInitSrcNoDataImag
void GDALWarpInitSrcNoDataImag(GDALWarpOptions *, double dNoDataImag)
Initialize padfSrcNoDataImag with specified value.
Definition: gdalwarper.cpp:1408
GDALWarpKernel::dfProgressBase
double dfProgressBase
Base/offset value for progress computation.
Definition: gdalwarper.h:402
GDALWarpOptions
Warp control options for use with GDALWarpOperation::Initialize()
Definition: gdalwarper.h:120
GDALWarpOptions::pfnProgress
GDALProgressFunc pfnProgress
Definition: gdalwarper.h:171
GDALWarpOptions::pDstDensityMaskFuncArg
void * pDstDensityMaskFuncArg
Unused.
Definition: gdalwarper.h:200
GRA_Cubic
Definition: gdalwarper.h:53
GDALWarpOperation
High level image warping class.
Definition: gdalwarper.h:442
GDALWarpKernel::nXRadius
int nXRadius
X size of window to filter.
Definition: gdalwarper.h:373
GDALCloneWarpOptions
GDALWarpOptions * GDALCloneWarpOptions(const GDALWarpOptions *)
Clone a warp options structure.
Definition: gdalwarper.cpp:1272
GDALWarpOptions::pTransformerArg
void * pTransformerArg
Definition: gdalwarper.h:180
GDALWarpKernel::nSrcYSize
int nSrcYSize
Height of the source image.
Definition: gdalwarper.h:338
GDALWarpKernel::pfnProgress
GDALProgressFunc pfnProgress
Progress function.
Definition: gdalwarper.h:397
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:407
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:356
GDALCreateWarpOptions
GDALWarpOptions * GDALCreateWarpOptions(void)
Create a warp options structure.
Definition: gdalwarper.cpp:1212
GWKAOM_Quant
Definition: gdalwarper.h:73
GDALWarpKernel::dfXFilter
double dfXFilter
X size of filter kernel.
Definition: gdalwarper.h:369
GDALWarpKernel::nBands
int nBands
Number of input and output bands (excluding alpha bands)
Definition: gdalwarper.h:333
GDALChunkAndWarpImage
CPLErr GDALChunkAndWarpImage(GDALWarpOperationH, int, int, int, int)
Definition: gdalwarpoperation.cpp:976
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:394
GDALWarpOptions::papfnSrcPerBandValidityMaskFunc
GDALMaskFunc * papfnSrcPerBandValidityMaskFunc
Unused.
Definition: gdalwarper.h:183
GDALWarpKernel::nSrcXSize
int nSrcXSize
Width of the source image.
Definition: gdalwarper.h:336
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:362
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:339
GDALWarpKernel::pfnTransformer
GDALTransformerFunc pfnTransformer
Pixel transformation function.
Definition: gdalwarper.h:392
GDALWarpInitNoDataReal
void GDALWarpInitNoDataReal(GDALWarpOptions *, double dNoDataReal)
Initialize padfSrcNoDataReal and padfDstNoDataReal with specified value.
Definition: gdalwarper.cpp:1371
GDALWarpKernel::nYRadius
int nYRadius
Y size of window to filter.
Definition: gdalwarper.h:375
GDALWarpOptions::hDstDS
GDALDatasetH hDstDS
Definition: gdalwarper.h:138
GRA_Mode
Definition: gdalwarper.h:57
GDALWarpOptions::hCutline
void * hCutline
Definition: gdalwarper.h:218
GDALWarpKernel::dfYFilter
double dfYFilter
Y size of filter kernel.
Definition: gdalwarper.h:371
GDALWarpOptions::dfCutlineBlendDist
double dfCutlineBlendDist
Definition: gdalwarper.h:221
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:104
GDALWarpOptions::padfSrcNoDataReal
double * padfSrcNoDataReal
Definition: gdalwarper.h:156
GDALWarpOperationH
void * GDALWarpOperationH
Opaque type representing a GDALWarpOperation object.
Definition: gdalwarper.h:535
GDALWarpKernel::dfSrcXExtraSize
double dfSrcXExtraSize
Extra pixels (included in nSrcXSize) reserved for filter window.
Definition: gdalwarper.h:340
GDALWarpKernel::pProgress
void * pProgress
User data provided to pfnProgress.
Definition: gdalwarper.h:399
GDALWarpKernel::nSrcYOff
int nSrcYOff
Y offset of the source buffer regarding the top-left corner of the image.
Definition: gdalwarper.h:384
GWKAOM_Imode
Definition: gdalwarper.h:70
CPLErr
CPLErr
Error category.
Definition: cpl_error.h:52
GDALCreateWarpOperation
GDALWarpOperationH GDALCreateWarpOperation(const GDALWarpOptions *)
Definition: gdalwarpoperation.cpp:773
GDALWarpKernel::papabyDstImage
GByte ** papabyDstImage
Array of nBands destination images of size nDstXSize * nDstYSize.
Definition: gdalwarper.h:358
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:1428
CPL_DISALLOW_COPY_ASSIGN
#define CPL_DISALLOW_COPY_ASSIGN(ClassName)
Helper to remove the copy and assignment constructors so that the compiler will not generate the defa...
Definition: cpl_port.h:989
GDALWarpKernel::papanBandSrcValid
GUInt32 ** papanBandSrcValid
Array of nBands validity mask of size (nSrcXSize * nSrcYSize + WARP_EXTRA_ELTS) / 8...
Definition: gdalwarper.h:347

Generated for GDAL by 1.8.8.