GDAL
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 
47 
48 /* Note: values are selected to be consistent with GDALRIOResampleAlg of gcore/gdal.h */
58  /* GRA_Gauss=7 reserved. */ GRA_Max=8, GRA_Min=9, GRA_Med=10, GRA_Q1=11, GRA_Q3=12
65 
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 
123 
126 
129 
133 
136 
139 
142 
145 
148 
151 
154 
160 
166 
169  GDALProgressFunc pfnProgress;
170 
173 
176 
179 
184 
189 
191  GDALMaskFunc pfnSrcDensityMaskFunc;
194 
196  GDALMaskFunc pfnDstDensityMaskFunc;
199 
204 
206  CPLErr (*pfnPreWarpChunkProcessor)( void *pKern, void *pArg );
209 
211  CPLErr (*pfnPostWarpChunkProcessor)( void *pKern, void *pArg);
214 
216  void *hCutline;
217 
220 
222 
223 GDALWarpOptions CPL_DLL * CPL_STDCALL GDALCreateWarpOptions(void);
224 void CPL_DLL CPL_STDCALL GDALDestroyWarpOptions( GDALWarpOptions * );
225 GDALWarpOptions CPL_DLL * CPL_STDCALL
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
245 
246 void CPL_DLL CPL_STDCALL
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
283  const char *pszSrcWKT, const char *pszDstWKT,
284  GDALResampleAlg eResampleAlg,
285  double dfMaxError, const GDALWarpOptions *psOptions );
286 
287 GDALDatasetH CPL_DLL CPL_STDCALL
289  int nPixels, int nLines, double *padfGeoTransform,
290  GDALWarpOptions *psOptions );
291 
292 CPLErr CPL_DLL CPL_STDCALL
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 {
321 
322 public:
325 
331  int nBands;
332 
343 
350 
361 
363  double dfXScale;
365  double dfYScale;
367  double dfXFilter;
369  double dfYFilter;
371  int nXRadius;
373  int nYRadius;
378 
380  int nSrcXOff;
382  int nSrcYOff;
383 
385  int nDstXOff;
387  int nDstYOff;
388 
393 
395  GDALProgressFunc pfnProgress;
397  void *pProgress;
398 
403 
406 
409  void *psThreadData;
412  GDALWarpKernel();
413  virtual ~GDALWarpKernel();
414 
415  CPLErr Validate();
416  CPLErr PerformWarp();
417 };
418 
420 void* GWKThreadsCreate(char** papszWarpOptions,
421  GDALTransformerFunc pfnTransformer,
422  void* pTransformerArg);
423 void GWKThreadsEnd(void* psThreadDataIn);
426 /************************************************************************/
427 /* GDALWarpOperation() */
428 /* */
429 /* This object is application created, or created by a higher */
430 /* level convenience function. It is responsible for */
431 /* subdividing the operation into chunks, loading and saving */
432 /* imagery, and establishing the varios validity and density */
433 /* masks. Actual resampling is done by the GDALWarpKernel. */
434 /************************************************************************/
435 
437 typedef struct _GDALWarpChunk GDALWarpChunk;
440 class CPL_DLL GDALWarpOperation {
441 
443 
444 private:
445  GDALWarpOptions *psOptions;
446 
447  void WipeOptions();
448  int ValidateOptions();
449 
450  CPLErr ComputeSourceWindow( int nDstXOff, int nDstYOff,
451  int nDstXSize, int nDstYSize,
452  int *pnSrcXOff, int *pnSrcYOff,
453  int *pnSrcXSize, int *pnSrcYSize,
454  double *pdfSrcXExtraSize, double *pdfSrcYExtraSize,
455  double* pdfSrcFillRatio );
456 
457  static CPLErr CreateKernelMask( GDALWarpKernel *, int iBand,
458  const char *pszType );
459 
460  CPLMutex *hIOMutex;
461  CPLMutex *hWarpMutex;
462 
463  int nChunkListCount;
464  int nChunkListMax;
465  GDALWarpChunk *pasChunkList;
466 
467  int bReportTimings;
468  unsigned long nLastTimeReported;
469 
470  void *psThreadData;
471 
472  void WipeChunkList();
473  CPLErr CollectChunkListInternal( int nDstXOff, int nDstYOff,
474  int nDstXSize, int nDstYSize );
475  void CollectChunkList( int nDstXOff, int nDstYOff,
476  int nDstXSize, int nDstYSize );
477  void ReportTiming( const char * );
478 
479 public:
481  virtual ~GDALWarpOperation();
482 
483  CPLErr Initialize( const GDALWarpOptions *psNewOptions );
484  void* CreateDestinationBuffer( int nDstXSize, int nDstYSize,
485  int *pbWasInitialized = nullptr );
486  static void DestroyDestinationBuffer(void* pDstBuffer);
487 
488  const GDALWarpOptions *GetOptions();
489 
490  CPLErr ChunkAndWarpImage( int nDstXOff, int nDstYOff,
491  int nDstXSize, int nDstYSize );
492  CPLErr ChunkAndWarpMulti( int nDstXOff, int nDstYOff,
493  int nDstXSize, int nDstYSize );
494  CPLErr WarpRegion( int nDstXOff, int nDstYOff,
495  int nDstXSize, int nDstYSize,
496  int nSrcXOff=0, int nSrcYOff=0,
497  int nSrcXSize=0, int nSrcYSize=0,
498  double dfProgressBase=0.0, double dfProgressScale=1.0);
499  CPLErr WarpRegion( int nDstXOff, int nDstYOff,
500  int nDstXSize, int nDstYSize,
501  int nSrcXOff, int nSrcYOff,
502  int nSrcXSize, int nSrcYSize,
503  double dfSrcXExtraSize, double dfSrcYExtraSize,
504  double dfProgressBase, double dfProgressScale);
505  CPLErr WarpRegionToBuffer( int nDstXOff, int nDstYOff,
506  int nDstXSize, int nDstYSize,
507  void *pDataBuf,
508  GDALDataType eBufDataType,
509  int nSrcXOff=0, int nSrcYOff=0,
510  int nSrcXSize=0, int nSrcYSize=0,
511  double dfProgressBase=0.0, double dfProgressScale=1.0);
512  CPLErr WarpRegionToBuffer( int nDstXOff, int nDstYOff,
513  int nDstXSize, int nDstYSize,
514  void *pDataBuf,
515  GDALDataType eBufDataType,
516  int nSrcXOff, int nSrcYOff,
517  int nSrcXSize, int nSrcYSize,
518  double dfSrcXExtraSize, double dfSrcYExtraSize,
519  double dfProgressBase, double dfProgressScale);
520 };
521 
522 #endif /* def __cplusplus */
523 
525 
527 typedef void * GDALWarpOperationH;
528 
531 CPLErr CPL_DLL GDALChunkAndWarpImage( GDALWarpOperationH, int, int, int, int );
532 CPLErr CPL_DLL GDALChunkAndWarpMulti( GDALWarpOperationH, int, int, int, int );
534  int, int, int, int, int, int, int, int );
535 CPLErr CPL_DLL GDALWarpRegionToBuffer( GDALWarpOperationH, int, int, int, int,
536  void *, GDALDataType,
537  int, int, int, int );
538 
539 /************************************************************************/
540 /* Warping kernel functions */
541 /************************************************************************/
542 
544 int GWKGetFilterRadius(GDALResampleAlg eResampleAlg);
545 
546 typedef double (*FilterFuncType)(double dfX);
547 FilterFuncType GWKGetFilterFunc(GDALResampleAlg eResampleAlg);
548 
549 // TODO(schwehr): Can padfVals be a const pointer?
550 typedef double (*FilterFunc4ValuesType)(double* padfVals);
551 FilterFunc4ValuesType GWKGetFilterFunc4Values(GDALResampleAlg eResampleAlg);
554 CPL_C_END
555 
556 #endif /* ndef GDAL_ALG_H_INCLUDED */
void * pDstValidityMaskFuncArg
Unused.
Definition: gdalwarper.h:203
int nSrcXOff
X offset of the source buffer regarding the top-left corner of the image.
Definition: gdalwarper.h:380
Definition: gdalwarper.h:63
int nFiltInitX
X filtering offset.
Definition: gdalwarper.h:375
GDALDataType
Definition: gdal.h:60
double dfYScale
Y resampling scale, i.e.
Definition: gdalwarper.h:365
Document node structure.
Definition: cpl_minixml.h:66
This class represents the lowest level of abstraction of warping.
Definition: gdalwarper.h:318
Definitions for CPL mini XML Parser/Serializer.
Definition: gdalwarper.h:54
Definition: gdalwarper.h:61
void GDALWarpInitDstNoDataReal(GDALWarpOptions *, double dNoDataReal)
Initialize padfDstNoDataReal with specified value.
Definition: gdalwarper.cpp:1336
GByte ** papabySrcImage
Array of nBands source images of size nSrcXSize * nSrcYSize.
Definition: gdalwarper.h:342
#define CPL_C_START
Macro to start a block of C symbols.
Definition: cpl_port.h:337
double dfXScale
X resampling scale, i.e.
Definition: gdalwarper.h:363
Definition: gdalwarper.h:72
CPLErr GDALInitializeWarpedVRT(GDALDatasetH hDS, GDALWarpOptions *psWO)
Set warp info on virtual warped dataset.
Definition: vrtwarped.cpp:1159
GUInt32 * panUnifiedSrcValid
Unified validity mask of size (nSrcXSize * nSrcYSize + WARP_EXTRA_ELTS) / 8.
Definition: gdalwarper.h:347
int nDstXSize
Width of the destination image.
Definition: gdalwarper.h:352
int * panDstBands
Definition: gdalwarper.h:147
void * pProgressArg
Definition: gdalwarper.h:172
int nDstXOff
X offset of the destination buffer regarding the top-left corner of the image.
Definition: gdalwarper.h:385
unsigned int GUInt32
Unsigned int32 type.
Definition: cpl_port.h:207
double dfWarpMemoryLimit
Definition: gdalwarper.h:125
int nSrcAlphaBand
Definition: gdalwarper.h:150
Definition: gdalwarper.h:62
void * GDALDatasetH
Opaque type used for the C bindings of the C++ GDALDataset class.
Definition: gdal.h:255
unsigned char GByte
Unsigned byte type.
Definition: cpl_port.h:215
GDALMaskFunc pfnSrcDensityMaskFunc
Unused.
Definition: gdalwarper.h:191
CPLErr GDALWarpRegionToBuffer(GDALWarpOperationH, int, int, int, int, void *, GDALDataType, int, int, int, int)
Definition: gdalwarpoperation.cpp:2218
char ** papszWarpOptions
Warp options.
Definition: gdalwarper.h:324
void ** papSrcPerBandValidityMaskFuncArg
Unused.
Definition: gdalwarper.h:183
void GDALWarpInitSrcNoDataReal(GDALWarpOptions *, double dNoDataReal)
Initialize padfSrcNoDataReal with specified value.
Definition: gdalwarper.cpp:1356
Definition: gdalwarper.h:55
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:1524
void * pSrcDensityMaskFuncArg
Unused.
Definition: gdalwarper.h:193
Definition: gdalwarper.h:56
void * pPostWarpProcessorArg
Unused.
Definition: gdalwarper.h:213
GUInt32 * panDstValid
Validify mask of size (nDstXSize * nDstYSize) / 8.
Definition: gdalwarper.h:358
double * padfDstNoDataReal
Definition: gdalwarper.h:162
GWKAverageOrModeAlg
Definition: gdalwarper.h:67
GDALDataType eWorkingDataType
Working data type.
Definition: gdalwarper.h:329
float * pafUnifiedSrcDensity
Unified source density of size nSrcXSize * nSrcYSize + WARP_EXTRA_ELTS.
Definition: gdalwarper.h:349
double * padfSrcNoDataImag
Definition: gdalwarper.h:159
int nFiltInitY
Y filtering offset.
Definition: gdalwarper.h:377
GDALResampleAlg eResampleAlg
Definition: gdalwarper.h:128
CPLErr GDALChunkAndWarpMulti(GDALWarpOperationH, int, int, int, int)
Definition: gdalwarpoperation.cpp:1156
GDALMaskFunc pfnDstValidityMaskFunc
Unused.
Definition: gdalwarper.h:201
CPLErr GDALWarpRegion(GDALWarpOperationH, int, int, int, int, int, int, int, int)
Definition: gdalwarpoperation.cpp:1601
GDALDatasetH GDALCreateWarpedVRT(GDALDatasetH hSrcDS, int nPixels, int nLines, double *padfGeoTransform, GDALWarpOptions *psOptions)
Create virtual warped dataset.
Definition: vrtwarped.cpp:274
Definition: gdalwarper.h:68
GDALTransformerFunc pfnTransformer
Definition: gdalwarper.h:175
double dfProgressScale
Scale value for progress computation.
Definition: gdalwarper.h:402
void GDALDestroyWarpOperation(GDALWarpOperationH)
Definition: gdalwarpoperation.cpp:739
void GDALDestroyWarpOptions(GDALWarpOptions *)
Destroy a warp options structure.
Definition: gdalwarper.cpp:1236
void * pSrcValidityMaskFuncArg
Unused.
Definition: gdalwarper.h:188
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
void GDALWarpInitDstNoDataImag(GDALWarpOptions *, double dNoDataImag)
Initialize padfDstNoDataImag with specified value.
Definition: gdalwarper.cpp:1394
double * padfDstNoDataImag
Definition: gdalwarper.h:165
GDALMaskFunc pfnSrcValidityMaskFunc
Unused.
Definition: gdalwarper.h:186
Definition: gdalwarper.h:69
Definition: gdalwarper.h:60
Definition: gdalwarper.h:71
GDALMaskFunc pfnDstDensityMaskFunc
Unused.
Definition: gdalwarper.h:196
int nDstYOff
Y offset of the destination buffer regarding the top-left corner of the image.
Definition: gdalwarper.h:387
GDALResampleAlg eResample
Resample algorithm.
Definition: gdalwarper.h:327
void * pPreWarpProcessorArg
Unused.
Definition: gdalwarper.h:208
GDALResampleAlg
Definition: gdalwarper.h:50
double dfSrcYExtraSize
Extra pixels (included in nSrcYSize) reserved for filter window.
Definition: gdalwarper.h:340
void GDALWarpInitSrcNoDataImag(GDALWarpOptions *, double dNoDataImag)
Initialize padfSrcNoDataImag with specified value.
Definition: gdalwarper.cpp:1413
double dfProgressBase
Base/offset value for progress computation.
Definition: gdalwarper.h:400
Warp control options for use with GDALWarpOperation::Initialize()
Definition: gdalwarper.h:120
GDALProgressFunc pfnProgress
Definition: gdalwarper.h:169
void * pDstDensityMaskFuncArg
Unused.
Definition: gdalwarper.h:198
Definition: gdalwarper.h:53
High level image warping class.
Definition: gdalwarper.h:440
int nXRadius
X size of window to filter.
Definition: gdalwarper.h:371
GDALWarpOptions * GDALCloneWarpOptions(const GDALWarpOptions *)
Clone a warp options structure.
Definition: gdalwarper.cpp:1277
void * pTransformerArg
Definition: gdalwarper.h:178
int nSrcYSize
Height of the source image.
Definition: gdalwarper.h:336
GDALProgressFunc pfnProgress
Progress function.
Definition: gdalwarper.h:395
Definition: gdalwarper.h:59
Definition: gdalwarper.h:52
int * panSrcBands
Definition: gdalwarper.h:144
double * padfDstNoDataReal
Array of nBands value for destination nodata.
Definition: gdalwarper.h:405
int(* GDALTransformerFunc)(void *pTransformerArg, int bDstToSrc, int nPointCount, double *x, double *y, double *z, int *panSuccess)
Definition: gdal_alg.h:114
void * GDALDriverH
Opaque type used for the C bindings of the C++ GDALDriver class.
Definition: gdal.h:261
char ** papszWarpOptions
A string list of additional options controlling the warp operation in name=value format.
Definition: gdalwarper.h:122
int nDstYSize
Height of the destination image.
Definition: gdalwarper.h:354
GDALWarpOptions * GDALCreateWarpOptions(void)
Create a warp options structure.
Definition: gdalwarper.cpp:1217
Definition: gdalwarper.h:73
double dfXFilter
X size of filter kernel.
Definition: gdalwarper.h:367
int nBands
Number of input and output bands (excluding alpha bands)
Definition: gdalwarper.h:331
CPLErr GDALChunkAndWarpImage(GDALWarpOperationH, int, int, int, int)
Definition: gdalwarpoperation.cpp:921
Definition: gdalwarper.h:51
Public (C callable) GDAL algorithm entry points, and definitions.
void * pTransformerArg
User data provided to pfnTransformer.
Definition: gdalwarper.h:392
GDALMaskFunc * papfnSrcPerBandValidityMaskFunc
Unused.
Definition: gdalwarper.h:181
int nSrcXSize
Width of the source image.
Definition: gdalwarper.h:334
GDALDatasetH hSrcDS
Definition: gdalwarper.h:135
int nBandCount
Definition: gdalwarper.h:141
float * pafDstDensity
Destination density of size nDstXSize * nDstYSize.
Definition: gdalwarper.h:360
GDALDataType eWorkingDataType
Definition: gdalwarper.h:132
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
#define CPL_C_END
Macro to end a block of C symbols.
Definition: cpl_port.h:339
GDALTransformerFunc pfnTransformer
Pixel transformation function.
Definition: gdalwarper.h:390
void GDALWarpInitNoDataReal(GDALWarpOptions *, double dNoDataReal)
Initialize padfSrcNoDataReal and padfDstNoDataReal with specified value.
Definition: gdalwarper.cpp:1376
int nYRadius
Y size of window to filter.
Definition: gdalwarper.h:373
GDALDatasetH hDstDS
Definition: gdalwarper.h:138
Definition: gdalwarper.h:57
void * hCutline
Definition: gdalwarper.h:216
double dfYFilter
Y size of filter kernel.
Definition: gdalwarper.h:369
double dfCutlineBlendDist
Definition: gdalwarper.h:219
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
double * padfSrcNoDataReal
Definition: gdalwarper.h:156
void * GDALWarpOperationH
Opaque type representing a GDALWarpOperation object.
Definition: gdalwarper.h:527
double dfSrcXExtraSize
Extra pixels (included in nSrcXSize) reserved for filter window.
Definition: gdalwarper.h:338
void * pProgress
User data provided to pfnProgress.
Definition: gdalwarper.h:397
int nSrcYOff
Y offset of the source buffer regarding the top-left corner of the image.
Definition: gdalwarper.h:382
Definition: gdalwarper.h:70
CPLErr
Error category.
Definition: cpl_error.h:52
GDALWarpOperationH GDALCreateWarpOperation(const GDALWarpOptions *)
Definition: gdalwarpoperation.cpp:718
GByte ** papabyDstImage
Array of nBands destination images of size nDstXSize * nDstYSize.
Definition: gdalwarper.h:356
int nDstAlphaBand
Definition: gdalwarper.h:153
void GDALWarpResolveWorkingDataType(GDALWarpOptions *)
If the working data type is unknown, this method will determine a valid working data type to support ...
Definition: gdalwarper.cpp:1433
#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
GUInt32 ** papanBandSrcValid
Array of nBands validity mask of size (nSrcXSize * nSrcYSize + WARP_EXTRA_ELTS) / 8...
Definition: gdalwarper.h:345

Generated for GDAL by doxygen 1.8.8.