30 #ifndef GDALWARPER_H_INCLUDED
31 #define GDALWARPER_H_INCLUDED
58 (*GDALMaskFunc)(
void *pMaskFuncArg,
61 int nXSize,
int nYSize,
62 GByte **papabyImageData,
63 int bMaskIsFloat,
void *pMask );
66 GDALWarpNoDataMasker(
void *pMaskFuncArg,
int nBandCount,
GDALDataType eType,
67 int nXOff,
int nYOff,
int nXSize,
int nYSize,
68 GByte **papabyImageData,
int bMaskIsFloat,
69 void *pValidityMask );
72 GDALWarpDstAlphaMasker(
void *pMaskFuncArg,
int nBandCount,
GDALDataType eType,
73 int nXOff,
int nYOff,
int nXSize,
int nYSize,
75 int bMaskIsFloat,
void *pValidityMask );
77 GDALWarpSrcAlphaMasker(
void *pMaskFuncArg,
int nBandCount,
GDALDataType eType,
78 int nXOff,
int nYOff,
int nXSize,
int nYSize,
80 int bMaskIsFloat,
void *pValidityMask );
83 GDALWarpSrcMaskMasker(
void *pMaskFuncArg,
int nBandCount,
GDALDataType eType,
84 int nXOff,
int nYOff,
int nXSize,
int nYSize,
86 int bMaskIsFloat,
void *pValidityMask );
89 GDALWarpCutlineMasker(
void *pMaskFuncArg,
int nBandCount,
GDALDataType eType,
90 int nXOff,
int nYOff,
int nXSize,
int nYSize,
92 int bMaskIsFloat,
void *pValidityMask );
159 GDALMaskFunc *papfnSrcPerBandValidityMaskFunc;
160 void **papSrcPerBandValidityMaskFuncArg;
162 GDALMaskFunc pfnSrcValidityMaskFunc;
163 void *pSrcValidityMaskFuncArg;
165 GDALMaskFunc pfnSrcDensityMaskFunc;
166 void *pSrcDensityMaskFuncArg;
168 GDALMaskFunc pfnDstDensityMaskFunc;
169 void *pDstDensityMaskFuncArg;
171 GDALMaskFunc pfnDstValidityMaskFunc;
172 void *pDstValidityMaskFuncArg;
174 CPLErr (*pfnPreWarpChunkProcessor)(
void *pKern,
void *pArg );
175 void *pPreWarpProcessorArg;
177 CPLErr (*pfnPostWarpChunkProcessor)(
void *pKern,
void *pArg);
178 void *pPostWarpProcessorArg;
202 CPLErr CPL_DLL CPL_STDCALL
207 GDALProgressFunc pfnProgress,
void *pProgressArg,
210 CPLErr CPL_DLL CPL_STDCALL
211 GDALCreateAndReprojectImage(
GDALDatasetH hSrcDS,
const char *pszSrcWKT,
212 const char *pszDstFilename,
const char *pszDstWKT,
216 GDALProgressFunc pfnProgress,
void *pProgressArg,
225 const char *pszSrcWKT,
const char *pszDstWKT,
231 int nPixels,
int nLines,
double *padfGeoTransform,
234 CPLErr CPL_DLL CPL_STDCALL
257 #define WARP_EXTRA_ELTS 1
262 char **papszWarpOptions;
303 double dfProgressBase;
304 double dfProgressScale;
306 double *padfDstNoDataReal;
312 CPLErr PerformWarp();
330 int ValidateOptions();
332 CPLErr ComputeSourceWindow(
int nDstXOff,
int nDstYOff,
333 int nDstXSize,
int nDstYSize,
334 int *pnSrcXOff,
int *pnSrcYOff,
335 int *pnSrcXSize,
int *pnSrcYSize );
338 const char *pszType );
350 unsigned long nLastTimeReported;
352 void WipeChunkList();
353 CPLErr CollectChunkList(
int nDstXOff,
int nDstYOff,
354 int nDstXSize,
int nDstYSize );
355 void ReportTiming(
const char * );
365 CPLErr ChunkAndWarpImage(
int nDstXOff,
int nDstYOff,
366 int nDstXSize,
int nDstYSize );
367 CPLErr ChunkAndWarpMulti(
int nDstXOff,
int nDstYOff,
368 int nDstXSize,
int nDstYSize );
369 CPLErr WarpRegion(
int nDstXOff,
int nDstYOff,
370 int nDstXSize,
int nDstYSize,
371 int nSrcXOff=0,
int nSrcYOff=0,
372 int nSrcXSize=0,
int nSrcYSize=0,
373 double dfProgressBase=0.0,
double dfProgressScale=1.0);
375 CPLErr WarpRegionToBuffer(
int nDstXOff,
int nDstYOff,
376 int nDstXSize,
int nDstYSize,
379 int nSrcXOff=0,
int nSrcYOff=0,
380 int nSrcXSize=0,
int nSrcYSize=0,
381 double dfProgressBase=0.0,
double dfProgressScale=1.0);
388 typedef void * GDALWarpOperationH;
395 int,
int,
int,
int,
int,
int,
int,
int );
398 int,
int,
int,
int );
int nSrcXOff
X offset to source pixel coordinates for transformation.
Definition: gdalwarper.h:291
GDALDataType
Definition: gdal.h:53
Document node structure.
Definition: cpl_minixml.h:65
Low level image warping class.
Definition: gdalwarper.h:259
Definitions for CPL mini XML Parser/Serializer.
Definition: gdalwarper.h:51
GByte ** papabySrcImage
Array of source image band data.
Definition: gdalwarper.h:270
CPLErr GDALInitializeWarpedVRT(GDALDatasetH hDS, GDALWarpOptions *psWO)
Set warp info on virtual warped dataset.
Definition: vrtwarped.cpp:795
GUInt32 * panUnifiedSrcValid
Per pixel validity mask for source pixels.
Definition: gdalwarper.h:273
int nDstXSize
Width of destination image in pixels.
Definition: gdalwarper.h:276
int * panDstBands
Definition: gdalwarper.h:126
void * pProgressArg
Definition: gdalwarper.h:151
int nDstXOff
X offset to destination pixel coordinates for transformation.
Definition: gdalwarper.h:294
double dfWarpMemoryLimit
Definition: gdalwarper.h:104
int nSrcAlphaBand
Definition: gdalwarper.h:129
void * GDALDatasetH
Opaque type used for the C bindings of the C++ GDALDataset class.
Definition: gdal.h:160
CPLErr GDALWarpRegionToBuffer(GDALWarpOperationH, int, int, int, int, void *, GDALDataType, int, int, int, int)
Definition: gdalwarpoperation.cpp:1862
Definition: gdalwarper.h:52
Definition: gdalwarper.h:53
GUInt32 * panDstValid
Per pixel validity mask for destination pixels.
Definition: gdalwarper.h:279
double * padfDstNoDataReal
Definition: gdalwarper.h:141
GDALDataType eWorkingDataType
Working pixel data type.
Definition: gdalwarper.h:265
float * pafUnifiedSrcDensity
Per pixel density mask for source pixels.
Definition: gdalwarper.h:274
double * padfSrcNoDataImag
Definition: gdalwarper.h:138
GDALResampleAlg eResampleAlg
Definition: gdalwarper.h:107
CPLErr GDALChunkAndWarpMulti(GDALWarpOperationH, int, int, int, int)
Definition: gdalwarpoperation.cpp:960
CPLErr GDALWarpRegion(GDALWarpOperationH, int, int, int, int, int, int, int, int)
Definition: gdalwarpoperation.cpp:1377
GDALDatasetH GDALCreateWarpedVRT(GDALDatasetH hSrcDS, int nPixels, int nLines, double *padfGeoTransform, GDALWarpOptions *psOptions)
Create virtual warped dataset.
Definition: vrtwarped.cpp:223
GDALTransformerFunc pfnTransformer
Definition: gdalwarper.h:154
void GDALDestroyWarpOperation(GDALWarpOperationH)
Definition: gdalwarpoperation.cpp:605
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:76
double * padfDstNoDataImag
Definition: gdalwarper.h:144
int nDstYOff
Y offset to destination pixel coordinates for transformation.
Definition: gdalwarper.h:295
GDALResampleAlg eResample
Resampling algorithm.
Definition: gdalwarper.h:264
GDALResampleAlg
Definition: gdalwarper.h:47
Warp control options for use with GDALWarpOperation::Initialize()
Definition: gdalwarper.h:99
GDALProgressFunc pfnProgress
Definition: gdalwarper.h:148
Definition: gdalwarper.h:50
High level image warping class.
Definition: gdalwarper.h:325
void * pTransformerArg
Definition: gdalwarper.h:157
int nSrcYSize
Source image height in pixels.
Definition: gdalwarper.h:269
GDALProgressFunc pfnProgress
The function to call to report progress of the algorithm, and to check for a requested termination of...
Definition: gdalwarper.h:300
Definition: gdalwarper.h:49
int * panSrcBands
Definition: gdalwarper.h:123
int(* GDALTransformerFunc)(void *pTransformerArg, int bDstToSrc, int nPointCount, double *x, double *y, double *z, int *panSuccess)
Definition: gdal_alg.h:113
void * GDALDriverH
Opaque type used for the C bindings of the C++ GDALDriver class.
Definition: gdal.h:166
char ** papszWarpOptions
A string list of additional options controlling the warp operation in name=value format.
Definition: gdalwarper.h:101
int nDstYSize
Height of destination image in pixels.
Definition: gdalwarper.h:277
int nBands
Number of bands.
Definition: gdalwarper.h:266
CPLErr GDALChunkAndWarpImage(GDALWarpOperationH, int, int, int, int)
Definition: gdalwarpoperation.cpp:728
Definition: gdalwarper.h:48
Public (C callable) GDAL algorithm entry points, and definitions.
void * pTransformerArg
Callback data for pfnTransformer.
Definition: gdalwarper.h:298
int nSrcXSize
Source image width in pixels.
Definition: gdalwarper.h:268
GDALDatasetH hSrcDS
Definition: gdalwarper.h:114
int nBandCount
Definition: gdalwarper.h:120
float * pafDstDensity
Per pixel density mask for destination pixels.
Definition: gdalwarper.h:280
GDALDataType eWorkingDataType
Definition: gdalwarper.h:111
GDALTransformerFunc pfnTransformer
Source/destination location transformer.
Definition: gdalwarper.h:297
GDALDatasetH hDstDS
Definition: gdalwarper.h:117
Definition: gdalwarper.h:54
void * hCutline
Definition: gdalwarper.h:181
double dfCutlineBlendDist
Definition: gdalwarper.h:184
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:86
double * padfSrcNoDataReal
Definition: gdalwarper.h:135
void * pProgress
Callback data for pfnProgress.
Definition: gdalwarper.h:301
int nSrcYOff
Y offset to source pixel coordinates for transformation.
Definition: gdalwarper.h:292
GDALWarpOperationH GDALCreateWarpOperation(const GDALWarpOptions *)
Definition: gdalwarpoperation.cpp:582
GByte ** papabyDstImage
Array of destination image band data.
Definition: gdalwarper.h:278
int nDstAlphaBand
Definition: gdalwarper.h:132
GUInt32 ** papanBandSrcValid
Per band validity mask for source pixels.
Definition: gdalwarper.h:272