GDAL
gdalwarper.h
Go to the documentation of this file.
1 /******************************************************************************
2  * $Id: gdalwarper.h 3faf501a82260b41e85125d14b21ec3c54e319d7 2020-04-01 11:57:08 +0200 Even Rouault $
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 spatialys.com>
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, GRA_Sum=13
66 
77 
79 typedef int
80 (*GDALMaskFunc)( void *pMaskFuncArg,
81  int nBandCount, GDALDataType eType,
82  int nXOff, int nYOff,
83  int nXSize, int nYSize,
84  GByte **papabyImageData,
85  int bMaskIsFloat, void *pMask );
86 
87 CPLErr CPL_DLL
88 GDALWarpNoDataMasker( void *pMaskFuncArg, int nBandCount, GDALDataType eType,
89  int nXOff, int nYOff, int nXSize, int nYSize,
90  GByte **papabyImageData, int bMaskIsFloat,
91  void *pValidityMask, int* pbOutAllValid );
92 
93 CPLErr CPL_DLL
94 GDALWarpDstAlphaMasker( void *pMaskFuncArg, int nBandCount, GDALDataType eType,
95  int nXOff, int nYOff, int nXSize, int nYSize,
96  GByte ** /*ppImageData */,
97  int bMaskIsFloat, void *pValidityMask );
98 CPLErr CPL_DLL
99 GDALWarpSrcAlphaMasker( void *pMaskFuncArg, int nBandCount, GDALDataType eType,
100  int nXOff, int nYOff, int nXSize, int nYSize,
101  GByte ** /*ppImageData */,
102  int bMaskIsFloat, void *pValidityMask, int* pbOutAllOpaque );
103 
104 CPLErr CPL_DLL
105 GDALWarpSrcMaskMasker( void *pMaskFuncArg, int nBandCount, GDALDataType eType,
106  int nXOff, int nYOff, int nXSize, int nYSize,
107  GByte ** /*ppImageData */,
108  int bMaskIsFloat, void *pValidityMask );
109 
110 CPLErr CPL_DLL
111 GDALWarpCutlineMasker( void *pMaskFuncArg, int nBandCount, GDALDataType eType,
112  int nXOff, int nYOff, int nXSize, int nYSize,
113  GByte ** /* ppImageData */,
114  int bMaskIsFloat, void *pValidityMask );
117 /************************************************************************/
118 /* GDALWarpOptions */
119 /************************************************************************/
120 
122 typedef struct {
123 
125 
128 
131 
135 
138 
141 
144 
147 
150 
153 
156 
163 
170 
173  GDALProgressFunc pfnProgress;
174 
177 
180 
183 
188 
193 
195  GDALMaskFunc pfnSrcDensityMaskFunc;
198 
200  GDALMaskFunc pfnDstDensityMaskFunc;
203 
208 
210  CPLErr (*pfnPreWarpChunkProcessor)( void *pKern, void *pArg );
213 
215  CPLErr (*pfnPostWarpChunkProcessor)( void *pKern, void *pArg);
218 
220  void *hCutline;
221 
224 
226 
227 GDALWarpOptions CPL_DLL * CPL_STDCALL GDALCreateWarpOptions(void);
228 void CPL_DLL CPL_STDCALL GDALDestroyWarpOptions( GDALWarpOptions * );
229 GDALWarpOptions CPL_DLL * CPL_STDCALL
231 
232 void CPL_DLL CPL_STDCALL
233 GDALWarpInitDstNoDataReal( GDALWarpOptions *, double dNoDataReal );
234 
235 void CPL_DLL CPL_STDCALL
236 GDALWarpInitSrcNoDataReal( GDALWarpOptions *, double dNoDataReal );
237 
238 void CPL_DLL CPL_STDCALL
239 GDALWarpInitNoDataReal( GDALWarpOptions *, double dNoDataReal );
240 
241 void CPL_DLL CPL_STDCALL
242 GDALWarpInitDstNoDataImag( GDALWarpOptions *, double dNoDataImag );
243 
244 void CPL_DLL CPL_STDCALL
245 GDALWarpInitSrcNoDataImag( GDALWarpOptions *, double dNoDataImag );
246 
247 void CPL_DLL CPL_STDCALL
249 
250 void CPL_DLL CPL_STDCALL
252 
254 CPLXMLNode CPL_DLL * CPL_STDCALL
255  GDALSerializeWarpOptions( const GDALWarpOptions * );
256 GDALWarpOptions CPL_DLL * CPL_STDCALL
257  GDALDeserializeWarpOptions( CPLXMLNode * );
260 /************************************************************************/
261 /* GDALReprojectImage() */
262 /************************************************************************/
263 
264 CPLErr CPL_DLL CPL_STDCALL
265 GDALReprojectImage( GDALDatasetH hSrcDS, const char *pszSrcWKT,
266  GDALDatasetH hDstDS, const char *pszDstWKT,
267  GDALResampleAlg eResampleAlg, double dfWarpMemoryLimit,
268  double dfMaxError,
269  GDALProgressFunc pfnProgress, void *pProgressArg,
270  GDALWarpOptions *psOptions );
271 
272 CPLErr CPL_DLL CPL_STDCALL
273 GDALCreateAndReprojectImage( GDALDatasetH hSrcDS, const char *pszSrcWKT,
274  const char *pszDstFilename, const char *pszDstWKT,
275  GDALDriverH hDstDriver, char **papszCreateOptions,
276  GDALResampleAlg eResampleAlg, double dfWarpMemoryLimit,
277  double dfMaxError,
278  GDALProgressFunc pfnProgress, void *pProgressArg,
279  GDALWarpOptions *psOptions );
280 
281 /************************************************************************/
282 /* VRTWarpedDataset */
283 /************************************************************************/
284 
285 GDALDatasetH CPL_DLL CPL_STDCALL
287  const char *pszSrcWKT, const char *pszDstWKT,
288  GDALResampleAlg eResampleAlg,
289  double dfMaxError, const GDALWarpOptions *psOptions );
290 
291 GDALDatasetH CPL_DLL CPL_STDCALL
293  int nPixels, int nLines, double *padfGeoTransform,
294  GDALWarpOptions *psOptions );
295 
296 CPLErr CPL_DLL CPL_STDCALL
298  GDALWarpOptions *psWO );
299 
300 CPL_C_END
301 
302 #if defined(__cplusplus) && !defined(CPL_SUPRESS_CPLUSPLUS)
303 
304 /************************************************************************/
305 /* GDALWarpKernel */
306 /* */
307 
313 #define WARP_EXTRA_ELTS 1
314 
322 class CPL_DLL GDALWarpKernel
323 {
325 
326 public:
329 
335  int nBands;
336 
347 
354 
365 
367  double dfXScale;
369  double dfYScale;
371  double dfXFilter;
373  double dfYFilter;
375  int nXRadius;
377  int nYRadius;
382 
384  int nSrcXOff;
386  int nSrcYOff;
387 
389  int nDstXOff;
391  int nDstYOff;
392 
397 
399  GDALProgressFunc pfnProgress;
401  void *pProgress;
402 
407 
410 
413  void *psThreadData;
416  GDALWarpKernel();
417  virtual ~GDALWarpKernel();
418 
419  CPLErr Validate();
420  CPLErr PerformWarp();
421 };
422 
424 void* GWKThreadsCreate(char** papszWarpOptions,
425  GDALTransformerFunc pfnTransformer,
426  void* pTransformerArg);
427 void GWKThreadsEnd(void* psThreadDataIn);
430 /************************************************************************/
431 /* GDALWarpOperation() */
432 /* */
433 /* This object is application created, or created by a higher */
434 /* level convenience function. It is responsible for */
435 /* subdividing the operation into chunks, loading and saving */
436 /* imagery, and establishing the varios validity and density */
437 /* masks. Actual resampling is done by the GDALWarpKernel. */
438 /************************************************************************/
439 
441 typedef struct _GDALWarpChunk GDALWarpChunk;
444 class CPL_DLL GDALWarpOperation {
445 
447 
448 private:
449  GDALWarpOptions *psOptions;
450 
451  void WipeOptions();
452  int ValidateOptions();
453 
454  CPLErr ComputeSourceWindow( int nDstXOff, int nDstYOff,
455  int nDstXSize, int nDstYSize,
456  int *pnSrcXOff, int *pnSrcYOff,
457  int *pnSrcXSize, int *pnSrcYSize,
458  double *pdfSrcXExtraSize, double *pdfSrcYExtraSize,
459  double* pdfSrcFillRatio );
460 
461  void ComputeSourceWindowStartingFromSource(
462  int nDstXOff, int nDstYOff,
463  int nDstXSize, int nDstYSize,
464  double* padfSrcMinX, double* padfSrcMinY,
465  double* padfSrcMaxX, double* padfSrcMaxY);
466 
467  static CPLErr CreateKernelMask( GDALWarpKernel *, int iBand,
468  const char *pszType );
469 
470  CPLMutex *hIOMutex;
471  CPLMutex *hWarpMutex;
472 
473  int nChunkListCount;
474  int nChunkListMax;
475  GDALWarpChunk *pasChunkList;
476 
477  int bReportTimings;
478  unsigned long nLastTimeReported;
479 
480  void *psThreadData;
481 
482  void WipeChunkList();
483  CPLErr CollectChunkListInternal( int nDstXOff, int nDstYOff,
484  int nDstXSize, int nDstYSize );
485  void CollectChunkList( int nDstXOff, int nDstYOff,
486  int nDstXSize, int nDstYSize );
487  void ReportTiming( const char * );
488 
489 public:
491  virtual ~GDALWarpOperation();
492 
493  CPLErr Initialize( const GDALWarpOptions *psNewOptions );
494  void* CreateDestinationBuffer( int nDstXSize, int nDstYSize,
495  int *pbWasInitialized = nullptr );
496  static void DestroyDestinationBuffer(void* pDstBuffer);
497 
498  const GDALWarpOptions *GetOptions();
499 
500  CPLErr ChunkAndWarpImage( int nDstXOff, int nDstYOff,
501  int nDstXSize, int nDstYSize );
502  CPLErr ChunkAndWarpMulti( int nDstXOff, int nDstYOff,
503  int nDstXSize, int nDstYSize );
504  CPLErr WarpRegion( int nDstXOff, int nDstYOff,
505  int nDstXSize, int nDstYSize,
506  int nSrcXOff=0, int nSrcYOff=0,
507  int nSrcXSize=0, int nSrcYSize=0,
508  double dfProgressBase=0.0, double dfProgressScale=1.0);
509  CPLErr WarpRegion( int nDstXOff, int nDstYOff,
510  int nDstXSize, int nDstYSize,
511  int nSrcXOff, int nSrcYOff,
512  int nSrcXSize, int nSrcYSize,
513  double dfSrcXExtraSize, double dfSrcYExtraSize,
514  double dfProgressBase, double dfProgressScale);
515  CPLErr WarpRegionToBuffer( int nDstXOff, int nDstYOff,
516  int nDstXSize, int nDstYSize,
517  void *pDataBuf,
518  GDALDataType eBufDataType,
519  int nSrcXOff=0, int nSrcYOff=0,
520  int nSrcXSize=0, int nSrcYSize=0,
521  double dfProgressBase=0.0, double dfProgressScale=1.0);
522  CPLErr WarpRegionToBuffer( int nDstXOff, int nDstYOff,
523  int nDstXSize, int nDstYSize,
524  void *pDataBuf,
525  GDALDataType eBufDataType,
526  int nSrcXOff, int nSrcYOff,
527  int nSrcXSize, int nSrcYSize,
528  double dfSrcXExtraSize, double dfSrcYExtraSize,
529  double dfProgressBase, double dfProgressScale);
530 };
531 
532 #endif /* def __cplusplus */
533 
535 
537 typedef void * GDALWarpOperationH;
538 
541 CPLErr CPL_DLL GDALChunkAndWarpImage( GDALWarpOperationH, int, int, int, int );
542 CPLErr CPL_DLL GDALChunkAndWarpMulti( GDALWarpOperationH, int, int, int, int );
544  int, int, int, int, int, int, int, int );
545 CPLErr CPL_DLL GDALWarpRegionToBuffer( GDALWarpOperationH, int, int, int, int,
546  void *, GDALDataType,
547  int, int, int, int );
548 
549 /************************************************************************/
550 /* Warping kernel functions */
551 /************************************************************************/
552 
554 int GWKGetFilterRadius(GDALResampleAlg eResampleAlg);
555 
556 typedef double (*FilterFuncType)(double dfX);
557 FilterFuncType GWKGetFilterFunc(GDALResampleAlg eResampleAlg);
558 
559 // TODO(schwehr): Can padfVals be a const pointer?
560 typedef double (*FilterFunc4ValuesType)(double* padfVals);
561 FilterFunc4ValuesType GWKGetFilterFunc4Values(GDALResampleAlg eResampleAlg);
564 CPL_C_END
565 
566 #endif /* ndef GDAL_ALG_H_INCLUDED */
This class represents the lowest level of abstraction of warping.
Definition: gdalwarper.h:323
int nXRadius
X size of window to filter.
Definition: gdalwarper.h:375
int nSrcYSize
Height of the source image.
Definition: gdalwarper.h:340
char ** papszWarpOptions
Warp options.
Definition: gdalwarper.h:328
int nFiltInitX
X filtering offset.
Definition: gdalwarper.h:379
double dfXScale
X resampling scale, i.e.
Definition: gdalwarper.h:367
double dfYFilter
Y size of filter kernel.
Definition: gdalwarper.h:373
int nDstXSize
Width of the destination image.
Definition: gdalwarper.h:356
double dfSrcXExtraSize
Extra pixels (included in nSrcXSize) reserved for filter window.
Definition: gdalwarper.h:342
double * padfDstNoDataReal
Array of nBands value for destination nodata.
Definition: gdalwarper.h:409
int nDstXOff
X offset of the destination buffer regarding the top-left corner of the image.
Definition: gdalwarper.h:389
GDALResampleAlg eResample
Resample algorithm.
Definition: gdalwarper.h:331
GDALTransformerFunc pfnTransformer
Pixel transformation function.
Definition: gdalwarper.h:394
GUInt32 * panUnifiedSrcValid
Unified validity mask of size (nSrcXSize * nSrcYSize + WARP_EXTRA_ELTS) / 8.
Definition: gdalwarper.h:351
int nDstYSize
Height of the destination image.
Definition: gdalwarper.h:358
int nBands
Number of input and output bands (excluding alpha bands)
Definition: gdalwarper.h:335
double dfProgressBase
Base/offset value for progress computation.
Definition: gdalwarper.h:404
GDALDataType eWorkingDataType
Working data type.
Definition: gdalwarper.h:333
double dfSrcYExtraSize
Extra pixels (included in nSrcYSize) reserved for filter window.
Definition: gdalwarper.h:344
int nSrcXOff
X offset of the source buffer regarding the top-left corner of the image.
Definition: gdalwarper.h:384
int nSrcYOff
Y offset of the source buffer regarding the top-left corner of the image.
Definition: gdalwarper.h:386
int nDstYOff
Y offset of the destination buffer regarding the top-left corner of the image.
Definition: gdalwarper.h:391
int nFiltInitY
Y filtering offset.
Definition: gdalwarper.h:381
GDALProgressFunc pfnProgress
Progress function.
Definition: gdalwarper.h:399
GUInt32 ** papanBandSrcValid
Array of nBands validity mask of size (nSrcXSize * nSrcYSize + WARP_EXTRA_ELTS) / 8.
Definition: gdalwarper.h:349
void * pProgress
User data provided to pfnProgress.
Definition: gdalwarper.h:401
float * pafUnifiedSrcDensity
Unified source density of size nSrcXSize * nSrcYSize + WARP_EXTRA_ELTS.
Definition: gdalwarper.h:353
int nYRadius
Y size of window to filter.
Definition: gdalwarper.h:377
float * pafDstDensity
Destination density of size nDstXSize * nDstYSize.
Definition: gdalwarper.h:364
double dfXFilter
X size of filter kernel.
Definition: gdalwarper.h:371
double dfYScale
Y resampling scale, i.e.
Definition: gdalwarper.h:369
GByte ** papabyDstImage
Array of nBands destination images of size nDstXSize * nDstYSize.
Definition: gdalwarper.h:360
double dfProgressScale
Scale value for progress computation.
Definition: gdalwarper.h:406
int nSrcXSize
Width of the source image.
Definition: gdalwarper.h:338
void * pTransformerArg
User data provided to pfnTransformer.
Definition: gdalwarper.h:396
GByte ** papabySrcImage
Array of nBands source images of size nSrcXSize * nSrcYSize.
Definition: gdalwarper.h:346
GUInt32 * panDstValid
Validify mask of size (nDstXSize * nDstYSize) / 8.
Definition: gdalwarper.h:362
High level image warping class.
Definition: gdalwarper.h:444
CPLErr
Error category.
Definition: cpl_error.h:53
Definitions for CPL mini XML Parser/Serializer.
#define CPL_C_END
Macro to end a block of C symbols.
Definition: cpl_port.h:339
#define CPL_C_START
Macro to start a block of C symbols.
Definition: cpl_port.h:337
unsigned int GUInt32
Unsigned int32 type.
Definition: cpl_port.h:207
#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:1003
unsigned char GByte
Unsigned byte type.
Definition: cpl_port.h:215
GDALDataType
Definition: gdal.h:60
void * GDALDatasetH
Opaque type used for the C bindings of the C++ GDALDataset class.
Definition: gdal.h:258
void * GDALDriverH
Opaque type used for the C bindings of the C++ GDALDriver class.
Definition: gdal.h:264
Public (C callable) GDAL algorithm entry points, and definitions.
int(* GDALTransformerFunc)(void *pTransformerArg, int bDstToSrc, int nPointCount, double *x, double *y, double *z, int *panSuccess)
Definition: gdal_alg.h:114
CPLErr GDALWarpRegion(GDALWarpOperationH, int, int, int, int, int, int, int, int)
Definition: gdalwarpoperation.cpp:1660
void GDALDestroyWarpOperation(GDALWarpOperationH)
Definition: gdalwarpoperation.cpp:798
GDALWarpOperationH GDALCreateWarpOperation(const GDALWarpOptions *)
Definition: gdalwarpoperation.cpp:777
GWKAverageOrModeAlg
Definition: gdalwarper.h:68
@ GWKAOM_Fmode
Definition: gdalwarper.h:70
@ GWKAOM_Min
Definition: gdalwarper.h:73
@ GWKAOM_Quant
Definition: gdalwarper.h:74
@ GWKAOM_Sum
Definition: gdalwarper.h:75
@ GWKAOM_Imode
Definition: gdalwarper.h:71
@ GWKAOM_Average
Definition: gdalwarper.h:69
@ GWKAOM_Max
Definition: gdalwarper.h:72
void GDALWarpInitDstNoDataImag(GDALWarpOptions *, double dNoDataImag)
Initialize padfDstNoDataImag with specified value.
Definition: gdalwarper.cpp:1399
GDALResampleAlg
Definition: gdalwarper.h:50
@ GRA_CubicSpline
Definition: gdalwarper.h:54
@ GRA_Q1
Definition: gdalwarper.h:62
@ GRA_Sum
Definition: gdalwarper.h:64
@ GRA_Max
Definition: gdalwarper.h:59
@ GRA_Cubic
Definition: gdalwarper.h:53
@ GRA_Min
Definition: gdalwarper.h:60
@ GRA_Lanczos
Definition: gdalwarper.h:55
@ GRA_Mode
Definition: gdalwarper.h:57
@ GRA_NearestNeighbour
Definition: gdalwarper.h:51
@ GRA_Q3
Definition: gdalwarper.h:63
@ GRA_Med
Definition: gdalwarper.h:61
@ GRA_Average
Definition: gdalwarper.h:56
@ GRA_Bilinear
Definition: gdalwarper.h:52
GDALDatasetH GDALCreateWarpedVRT(GDALDatasetH hSrcDS, int nPixels, int nLines, double *padfGeoTransform, GDALWarpOptions *psOptions)
Create virtual warped dataset.
Definition: vrtwarped.cpp:274
void GDALDestroyWarpOptions(GDALWarpOptions *)
Destroy a warp options structure.
Definition: gdalwarper.cpp:1241
void * GDALWarpOperationH
Opaque type representing a GDALWarpOperation object.
Definition: gdalwarper.h:537
CPLErr GDALWarpRegionToBuffer(GDALWarpOperationH, int, int, int, int, void *, GDALDataType, int, int, int, int)
Definition: gdalwarpoperation.cpp:2283
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:240
GDALWarpOptions * GDALCloneWarpOptions(const GDALWarpOptions *)
Clone a warp options structure.
Definition: gdalwarper.cpp:1282
CPLErr GDALChunkAndWarpImage(GDALWarpOperationH, int, int, int, int)
Definition: gdalwarpoperation.cpp:980
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:1529
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
void GDALWarpInitSrcNoDataImag(GDALWarpOptions *, double dNoDataImag)
Initialize padfSrcNoDataImag with specified value.
Definition: gdalwarper.cpp:1418
CPLErr GDALInitializeWarpedVRT(GDALDatasetH hDS, GDALWarpOptions *psWO)
Set warp info on virtual warped dataset.
Definition: vrtwarped.cpp:1178
void GDALWarpInitSrcNoDataReal(GDALWarpOptions *, double dNoDataReal)
Initialize padfSrcNoDataReal with specified value.
Definition: gdalwarper.cpp:1361
void GDALWarpInitDstNoDataReal(GDALWarpOptions *, double dNoDataReal)
Initialize padfDstNoDataReal with specified value.
Definition: gdalwarper.cpp:1341
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
CPLErr GDALChunkAndWarpMulti(GDALWarpOperationH, int, int, int, int)
Definition: gdalwarpoperation.cpp:1215
GDALWarpOptions * GDALCreateWarpOptions(void)
Create a warp options structure.
Definition: gdalwarper.cpp:1222
void GDALWarpInitNoDataReal(GDALWarpOptions *, double dNoDataReal)
Initialize padfSrcNoDataReal and padfDstNoDataReal with specified value.
Definition: gdalwarper.cpp:1381
void GDALWarpResolveWorkingDataType(GDALWarpOptions *)
If the working data type is unknown, this method will determine a valid working data type to support ...
Definition: gdalwarper.cpp:1438
Document node structure.
Definition: cpl_minixml.h:70
Warp control options for use with GDALWarpOperation::Initialize()
Definition: gdalwarper.h:122
int nSrcAlphaBand
Definition: gdalwarper.h:152
GDALDatasetH hDstDS
Definition: gdalwarper.h:140
char ** papszWarpOptions
A string list of additional options controlling the warp operation in name=value format.
Definition: gdalwarper.h:124
double * padfDstNoDataImag
Definition: gdalwarper.h:169
GDALMaskFunc pfnDstValidityMaskFunc
Unused.
Definition: gdalwarper.h:205
double * padfSrcNoDataReal
Definition: gdalwarper.h:158
void * pTransformerArg
Definition: gdalwarper.h:182
GDALDataType eWorkingDataType
Definition: gdalwarper.h:134
void * pSrcValidityMaskFuncArg
Unused.
Definition: gdalwarper.h:192
void * pDstDensityMaskFuncArg
Unused.
Definition: gdalwarper.h:202
int * panDstBands
Definition: gdalwarper.h:149
double dfCutlineBlendDist
Definition: gdalwarper.h:223
GDALProgressFunc pfnProgress
Definition: gdalwarper.h:173
GDALMaskFunc pfnSrcDensityMaskFunc
Unused.
Definition: gdalwarper.h:195
GDALDatasetH hSrcDS
Definition: gdalwarper.h:137
GDALMaskFunc pfnDstDensityMaskFunc
Unused.
Definition: gdalwarper.h:200
void * pPreWarpProcessorArg
Unused.
Definition: gdalwarper.h:212
void * pProgressArg
Definition: gdalwarper.h:176
int nDstAlphaBand
Definition: gdalwarper.h:155
int * panSrcBands
Definition: gdalwarper.h:146
GDALTransformerFunc pfnTransformer
Definition: gdalwarper.h:179
int nBandCount
Definition: gdalwarper.h:143
double dfWarpMemoryLimit
Definition: gdalwarper.h:127
void * pSrcDensityMaskFuncArg
Unused.
Definition: gdalwarper.h:197
GDALMaskFunc * papfnSrcPerBandValidityMaskFunc
Unused.
Definition: gdalwarper.h:185
GDALResampleAlg eResampleAlg
Definition: gdalwarper.h:130
GDALMaskFunc pfnSrcValidityMaskFunc
Unused.
Definition: gdalwarper.h:190
void * hCutline
Definition: gdalwarper.h:220
void * pDstValidityMaskFuncArg
Unused.
Definition: gdalwarper.h:207
void ** papSrcPerBandValidityMaskFuncArg
Unused.
Definition: gdalwarper.h:187
double * padfDstNoDataReal
Definition: gdalwarper.h:165
double * padfSrcNoDataImag
Definition: gdalwarper.h:162
void * pPostWarpProcessorArg
Unused.
Definition: gdalwarper.h:217