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 
161 
168 
171  GDALProgressFunc pfnProgress;
172 
175 
178 
181 
186 
191 
193  GDALMaskFunc pfnSrcDensityMaskFunc;
196 
198  GDALMaskFunc pfnDstDensityMaskFunc;
201 
206 
208  CPLErr (*pfnPreWarpChunkProcessor)( void *pKern, void *pArg );
211 
213  CPLErr (*pfnPostWarpChunkProcessor)( void *pKern, void *pArg);
216 
218  void *hCutline;
219 
222 
224 
225 GDALWarpOptions CPL_DLL * CPL_STDCALL GDALCreateWarpOptions(void);
226 void CPL_DLL CPL_STDCALL GDALDestroyWarpOptions( GDALWarpOptions * );
227 GDALWarpOptions CPL_DLL * CPL_STDCALL
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
247 
248 void CPL_DLL CPL_STDCALL
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
285  const char *pszSrcWKT, const char *pszDstWKT,
286  GDALResampleAlg eResampleAlg,
287  double dfMaxError, const GDALWarpOptions *psOptions );
288 
289 GDALDatasetH CPL_DLL CPL_STDCALL
291  int nPixels, int nLines, double *padfGeoTransform,
292  GDALWarpOptions *psOptions );
293 
294 CPLErr CPL_DLL CPL_STDCALL
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 {
323 
324 public:
327 
333  int nBands;
334 
345 
352 
363 
365  double dfXScale;
367  double dfYScale;
369  double dfXFilter;
371  double dfYFilter;
373  int nXRadius;
375  int nYRadius;
380 
382  int nSrcXOff;
384  int nSrcYOff;
385 
387  int nDstXOff;
389  int nDstYOff;
390 
395 
397  GDALProgressFunc pfnProgress;
399  void *pProgress;
400 
405 
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 
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:
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 
533 
535 typedef void * GDALWarpOperationH;
536 
539 CPLErr CPL_DLL GDALChunkAndWarpImage( GDALWarpOperationH, int, int, int, int );
540 CPLErr CPL_DLL GDALChunkAndWarpMulti( GDALWarpOperationH, int, int, int, int );
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 */
void * pDstValidityMaskFuncArg
Unused.
Definition: gdalwarper.h:205
int nSrcXOff
X offset of the source buffer regarding the top-left corner of the image.
Definition: gdalwarper.h:382
Definition: gdalwarper.h:63
int nFiltInitX
X filtering offset.
Definition: gdalwarper.h:377
GDALDataType
Definition: gdal.h:60
double dfYScale
Y resampling scale, i.e.
Definition: gdalwarper.h:367
Document node structure.
Definition: cpl_minixml.h:66
This class represents the lowest level of abstraction of warping.
Definition: gdalwarper.h:320
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:1331
GByte ** papabySrcImage
Array of nBands source images of size nSrcXSize * nSrcYSize.
Definition: gdalwarper.h:344
#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:365
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:349
int nDstXSize
Width of the destination image.
Definition: gdalwarper.h:354
int * panDstBands
Definition: gdalwarper.h:147
void * pProgressArg
Definition: gdalwarper.h:174
int nDstXOff
X offset of the destination buffer regarding the top-left corner of the image.
Definition: gdalwarper.h:387
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:193
CPLErr GDALWarpRegionToBuffer(GDALWarpOperationH, int, int, int, int, void *, GDALDataType, int, int, int, int)
Definition: gdalwarpoperation.cpp:2273
char ** papszWarpOptions
Warp options.
Definition: gdalwarper.h:326
void ** papSrcPerBandValidityMaskFuncArg
Unused.
Definition: gdalwarper.h:185
void GDALWarpInitSrcNoDataReal(GDALWarpOptions *, double dNoDataReal)
Initialize padfSrcNoDataReal with specified value.
Definition: gdalwarper.cpp:1351
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:1519
void * pSrcDensityMaskFuncArg
Unused.
Definition: gdalwarper.h:195
Definition: gdalwarper.h:56
void * pPostWarpProcessorArg
Unused.
Definition: gdalwarper.h:215
GUInt32 * panDstValid
Validify mask of size (nDstXSize * nDstYSize) / 8.
Definition: gdalwarper.h:360
double * padfDstNoDataReal
Definition: gdalwarper.h:163
GWKAverageOrModeAlg
Definition: gdalwarper.h:67
GDALDataType eWorkingDataType
Working data type.
Definition: gdalwarper.h:331
float * pafUnifiedSrcDensity
Unified source density of size nSrcXSize * nSrcYSize + WARP_EXTRA_ELTS.
Definition: gdalwarper.h:351
double * padfSrcNoDataImag
Definition: gdalwarper.h:160
int nFiltInitY
Y filtering offset.
Definition: gdalwarper.h:379
GDALResampleAlg eResampleAlg
Definition: gdalwarper.h:128
CPLErr GDALChunkAndWarpMulti(GDALWarpOperationH, int, int, int, int)
Definition: gdalwarpoperation.cpp:1211
GDALMaskFunc pfnDstValidityMaskFunc
Unused.
Definition: gdalwarper.h:203
CPLErr GDALWarpRegion(GDALWarpOperationH, int, int, int, int, int, int, int, int)
Definition: gdalwarpoperation.cpp:1656
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:177
double dfProgressScale
Scale value for progress computation.
Definition: gdalwarper.h:404
void GDALDestroyWarpOperation(GDALWarpOperationH)
Definition: gdalwarpoperation.cpp:794
void GDALDestroyWarpOptions(GDALWarpOptions *)
Destroy a warp options structure.
Definition: gdalwarper.cpp:1231
void * pSrcValidityMaskFuncArg
Unused.
Definition: gdalwarper.h:190
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:1389
double * padfDstNoDataImag
Definition: gdalwarper.h:167
GDALMaskFunc pfnSrcValidityMaskFunc
Unused.
Definition: gdalwarper.h:188
Definition: gdalwarper.h:69
Definition: gdalwarper.h:60
Definition: gdalwarper.h:71
GDALMaskFunc pfnDstDensityMaskFunc
Unused.
Definition: gdalwarper.h:198
int nDstYOff
Y offset of the destination buffer regarding the top-left corner of the image.
Definition: gdalwarper.h:389
GDALResampleAlg eResample
Resample algorithm.
Definition: gdalwarper.h:329
void * pPreWarpProcessorArg
Unused.
Definition: gdalwarper.h:210
GDALResampleAlg
Definition: gdalwarper.h:50
double dfSrcYExtraSize
Extra pixels (included in nSrcYSize) reserved for filter window.
Definition: gdalwarper.h:342
void GDALWarpInitSrcNoDataImag(GDALWarpOptions *, double dNoDataImag)
Initialize padfSrcNoDataImag with specified value.
Definition: gdalwarper.cpp:1408
double dfProgressBase
Base/offset value for progress computation.
Definition: gdalwarper.h:402
Warp control options for use with GDALWarpOperation::Initialize()
Definition: gdalwarper.h:120
GDALProgressFunc pfnProgress
Definition: gdalwarper.h:171
void * pDstDensityMaskFuncArg
Unused.
Definition: gdalwarper.h:200
Definition: gdalwarper.h:53
High level image warping class.
Definition: gdalwarper.h:442
int nXRadius
X size of window to filter.
Definition: gdalwarper.h:373
GDALWarpOptions * GDALCloneWarpOptions(const GDALWarpOptions *)
Clone a warp options structure.
Definition: gdalwarper.cpp:1272
void * pTransformerArg
Definition: gdalwarper.h:180
int nSrcYSize
Height of the source image.
Definition: gdalwarper.h:338
GDALProgressFunc pfnProgress
Progress function.
Definition: gdalwarper.h:397
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:407
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:356
GDALWarpOptions * GDALCreateWarpOptions(void)
Create a warp options structure.
Definition: gdalwarper.cpp:1212
Definition: gdalwarper.h:73
double dfXFilter
X size of filter kernel.
Definition: gdalwarper.h:369
int nBands
Number of input and output bands (excluding alpha bands)
Definition: gdalwarper.h:333
CPLErr GDALChunkAndWarpImage(GDALWarpOperationH, int, int, int, int)
Definition: gdalwarpoperation.cpp:976
Definition: gdalwarper.h:51
Public (C callable) GDAL algorithm entry points, and definitions.
void * pTransformerArg
User data provided to pfnTransformer.
Definition: gdalwarper.h:394
GDALMaskFunc * papfnSrcPerBandValidityMaskFunc
Unused.
Definition: gdalwarper.h:183
int nSrcXSize
Width of the source image.
Definition: gdalwarper.h:336
GDALDatasetH hSrcDS
Definition: gdalwarper.h:135
int nBandCount
Definition: gdalwarper.h:141
float * pafDstDensity
Destination density of size nDstXSize * nDstYSize.
Definition: gdalwarper.h:362
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:392
void GDALWarpInitNoDataReal(GDALWarpOptions *, double dNoDataReal)
Initialize padfSrcNoDataReal and padfDstNoDataReal with specified value.
Definition: gdalwarper.cpp:1371
int nYRadius
Y size of window to filter.
Definition: gdalwarper.h:375
GDALDatasetH hDstDS
Definition: gdalwarper.h:138
Definition: gdalwarper.h:57
void * hCutline
Definition: gdalwarper.h:218
double dfYFilter
Y size of filter kernel.
Definition: gdalwarper.h:371
double dfCutlineBlendDist
Definition: gdalwarper.h:221
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:535
double dfSrcXExtraSize
Extra pixels (included in nSrcXSize) reserved for filter window.
Definition: gdalwarper.h:340
void * pProgress
User data provided to pfnProgress.
Definition: gdalwarper.h:399
int nSrcYOff
Y offset of the source buffer regarding the top-left corner of the image.
Definition: gdalwarper.h:384
Definition: gdalwarper.h:70
CPLErr
Error category.
Definition: cpl_error.h:52
GDALWarpOperationH GDALCreateWarpOperation(const GDALWarpOptions *)
Definition: gdalwarpoperation.cpp:773
GByte ** papabyDstImage
Array of nBands destination images of size nDstXSize * nDstYSize.
Definition: gdalwarper.h:358
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:1428
#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:347

Generated for GDAL by doxygen 1.8.8.