GDAL
gdal_alg.h
Go to the documentation of this file.
1 /******************************************************************************
2  * $Id: gdal_alg.h 60d13e19f89619ca16040b9a270d3837b8f0df63 2020-03-05 10:02:43 +0200 Ilmari Ayres $
3  *
4  * Project: GDAL Image Processing Algorithms
5  * Purpose: Prototypes, and definitions for various GDAL based algorithms.
6  * Author: Frank Warmerdam, warmerdam@pobox.com
7  *
8  ******************************************************************************
9  * Copyright (c) 2001, Frank Warmerdam
10  * Copyright (c) 2008-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 GDAL_ALG_H_INCLUDED
32 #define GDAL_ALG_H_INCLUDED
33 
40 #ifndef DOXYGEN_SKIP
41 #include "gdal.h"
42 #include "cpl_minixml.h"
43 #include "ogr_api.h"
44 #endif
45 
47 
48 int CPL_DLL CPL_STDCALL GDALComputeMedianCutPCT( GDALRasterBandH hRed,
49  GDALRasterBandH hGreen,
50  GDALRasterBandH hBlue,
51  int (*pfnIncludePixel)(int,int,void*),
52  int nColors,
53  GDALColorTableH hColorTable,
54  GDALProgressFunc pfnProgress,
55  void * pProgressArg );
56 
57 int CPL_DLL CPL_STDCALL GDALDitherRGB2PCT( GDALRasterBandH hRed,
58  GDALRasterBandH hGreen,
59  GDALRasterBandH hBlue,
60  GDALRasterBandH hTarget,
61  GDALColorTableH hColorTable,
62  GDALProgressFunc pfnProgress,
63  void * pProgressArg );
64 
65 int CPL_DLL CPL_STDCALL GDALChecksumImage( GDALRasterBandH hBand,
66  int nXOff, int nYOff, int nXSize, int nYSize );
67 
68 CPLErr CPL_DLL CPL_STDCALL
70  GDALRasterBandH hProximityBand,
71  char **papszOptions,
72  GDALProgressFunc pfnProgress,
73  void * pProgressArg );
74 
75 CPLErr CPL_DLL CPL_STDCALL
76 GDALFillNodata( GDALRasterBandH hTargetBand,
77  GDALRasterBandH hMaskBand,
78  double dfMaxSearchDist,
79  int bDeprecatedOption,
80  int nSmoothingIterations,
81  char **papszOptions,
82  GDALProgressFunc pfnProgress,
83  void * pProgressArg );
84 
85 CPLErr CPL_DLL CPL_STDCALL
87  GDALRasterBandH hMaskBand,
88  OGRLayerH hOutLayer, int iPixValField,
89  char **papszOptions,
90  GDALProgressFunc pfnProgress,
91  void * pProgressArg );
92 
93 CPLErr CPL_DLL CPL_STDCALL
95  GDALRasterBandH hMaskBand,
96  OGRLayerH hOutLayer, int iPixValField,
97  char **papszOptions,
98  GDALProgressFunc pfnProgress,
99  void * pProgressArg );
100 
101 CPLErr CPL_DLL CPL_STDCALL
102 GDALSieveFilter( GDALRasterBandH hSrcBand, GDALRasterBandH hMaskBand,
103  GDALRasterBandH hDstBand,
104  int nSizeThreshold, int nConnectedness,
105  char **papszOptions,
106  GDALProgressFunc pfnProgress,
107  void * pProgressArg );
108 
109 /*
110  * Warp Related.
111  */
112 
113 typedef int
114 (*GDALTransformerFunc)( void *pTransformerArg,
115  int bDstToSrc, int nPointCount,
116  double *x, double *y, double *z, int *panSuccess );
117 
119 #define GDAL_GTI2_SIGNATURE "GTI2"
120 
121 typedef struct {
122  GByte abySignature[4];
123  const char *pszClassName;
124  GDALTransformerFunc pfnTransform;
125  void (*pfnCleanup)( void * pTransformerArg );
126  CPLXMLNode *(*pfnSerialize)( void * pTransformerArg );
127  void* (*pfnCreateSimilar)( void* pTransformerArg, double dfSrcRatioX, double dfSrcRatioY );
128 } GDALTransformerInfo;
132 void CPL_DLL GDALDestroyTransformer( void *pTransformerArg );
133 int CPL_DLL GDALUseTransformer( void *pTransformerArg,
134  int bDstToSrc, int nPointCount,
135  double *x, double *y, double *z,
136  int *panSuccess );
137 void* GDALCreateSimilarTransformer( void* psTransformerArg, double dfSrcRatioX, double dfSrcRatioY );
140 /* High level transformer for going from image coordinates on one file
141  to image coordinates on another, potentially doing reprojection,
142  utilizing GCPs or using the geotransform. */
143 
144 void CPL_DLL *
145 GDALCreateGenImgProjTransformer( GDALDatasetH hSrcDS, const char *pszSrcWKT,
146  GDALDatasetH hDstDS, const char *pszDstWKT,
147  int bGCPUseOK, double dfGCPErrorThreshold,
148  int nOrder );
149 void CPL_DLL *
151  char **papszOptions );
152 void CPL_DLL *
153 GDALCreateGenImgProjTransformer3( const char *pszSrcWKT,
154  const double *padfSrcGeoTransform,
155  const char *pszDstWKT,
156  const double *padfDstGeoTransform );
157 
158 void CPL_DLL *
160  const double *padfSrcGeoTransform,
161  OGRSpatialReferenceH hDstSRS,
162  const double *padfDstGeoTransform,
163  const char* const *papszOptions );
164 
166  const double * );
167 void CPL_DLL GDALDestroyGenImgProjTransformer( void * );
168 int CPL_DLL GDALGenImgProjTransform(
169  void *pTransformArg, int bDstToSrc, int nPointCount,
170  double *x, double *y, double *z, int *panSuccess );
171 
172 void GDALSetTransformerDstGeoTransform( void *, const double * );
173 void GDALGetTransformerDstGeoTransform( void*, double* );
174 
175 /* Geo to geo reprojection transformer. */
176 void CPL_DLL *
177 GDALCreateReprojectionTransformer( const char *pszSrcWKT,
178  const char *pszDstWKT );
179 void CPL_DLL *
181  OGRSpatialReferenceH hSrcSRS,
182  OGRSpatialReferenceH hDstSRS,
183  const char* const *papszOptions);
184 void CPL_DLL GDALDestroyReprojectionTransformer( void * );
185 int CPL_DLL GDALReprojectionTransform(
186  void *pTransformArg, int bDstToSrc, int nPointCount,
187  double *x, double *y, double *z, int *panSuccess );
188 
189 /* GCP based transformer ... forward is to georef coordinates */
190 void CPL_DLL *
191 GDALCreateGCPTransformer( int nGCPCount, const GDAL_GCP *pasGCPList,
192  int nReqOrder, int bReversed );
193 
194 /* GCP based transformer with refinement of the GCPs ... forward is to georef coordinates */
195 void CPL_DLL *
196 GDALCreateGCPRefineTransformer( int nGCPCount, const GDAL_GCP *pasGCPList,
197  int nReqOrder, int bReversed, double tolerance, int minimumGcps);
198 
199 void CPL_DLL GDALDestroyGCPTransformer( void *pTransformArg );
200 int CPL_DLL GDALGCPTransform(
201  void *pTransformArg, int bDstToSrc, int nPointCount,
202  double *x, double *y, double *z, int *panSuccess );
203 
204 /* Thin Plate Spine transformer ... forward is to georef coordinates */
205 
206 void CPL_DLL *
207 GDALCreateTPSTransformer( int nGCPCount, const GDAL_GCP *pasGCPList,
208  int bReversed );
209 void CPL_DLL GDALDestroyTPSTransformer( void *pTransformArg );
210 int CPL_DLL GDALTPSTransform(
211  void *pTransformArg, int bDstToSrc, int nPointCount,
212  double *x, double *y, double *z, int *panSuccess );
213 
215 char CPL_DLL ** RPCInfoToMD( GDALRPCInfo *psRPCInfo );
218 /* RPC based transformer ... src is pixel/line/elev, dst is long/lat/elev */
219 
220 void CPL_DLL *
221 GDALCreateRPCTransformer( GDALRPCInfo *psRPC, int bReversed,
222  double dfPixErrThreshold,
223  char **papszOptions );
224 void CPL_DLL GDALDestroyRPCTransformer( void *pTransformArg );
225 int CPL_DLL GDALRPCTransform(
226  void *pTransformArg, int bDstToSrc, int nPointCount,
227  double *x, double *y, double *z, int *panSuccess );
228 
229 /* Geolocation transformer */
230 
231 void CPL_DLL *
233  char **papszGeolocationInfo,
234  int bReversed );
235 void CPL_DLL GDALDestroyGeoLocTransformer( void *pTransformArg );
236 int CPL_DLL GDALGeoLocTransform(
237  void *pTransformArg, int bDstToSrc, int nPointCount,
238  double *x, double *y, double *z, int *panSuccess );
239 
240 /* Approximate transformer */
241 void CPL_DLL *
243  void *pRawTransformerArg, double dfMaxError );
244 void CPL_DLL GDALApproxTransformerOwnsSubtransformer( void *pCBData,
245  int bOwnFlag );
246 void CPL_DLL GDALDestroyApproxTransformer( void *pApproxArg );
247 int CPL_DLL GDALApproxTransform(
248  void *pTransformArg, int bDstToSrc, int nPointCount,
249  double *x, double *y, double *z, int *panSuccess );
250 
251 int CPL_DLL CPL_STDCALL
253  GDALDatasetH hDstDS,
254  int nBandCount, int *panBandList,
255  GDALTransformerFunc pfnTransform,
256  void *pTransformArg,
257  GDALProgressFunc pfnProgress,
258  void *pProgressArg,
259  char **papszWarpOptions );
260 
261 CPLErr CPL_DLL CPL_STDCALL
263  GDALTransformerFunc pfnTransformer,
264  void *pTransformArg,
265  double *padfGeoTransformOut,
266  int *pnPixels, int *pnLines );
267 CPLErr CPL_DLL CPL_STDCALL
269  GDALTransformerFunc pfnTransformer,
270  void *pTransformArg,
271  double *padfGeoTransformOut,
272  int *pnPixels, int *pnLines,
273  double *padfExtents,
274  int nOptions );
275 
277 CPLXMLNode CPL_DLL *
278 GDALSerializeTransformer( GDALTransformerFunc pfnFunc, void *pTransformArg );
279 CPLErr CPL_DLL GDALDeserializeTransformer( CPLXMLNode *psTree,
280  GDALTransformerFunc *ppfnFunc,
281  void **ppTransformArg );
284 CPLErr CPL_DLL
286  GDALRasterBandH hYBand,
287  GDALRasterBandH hZBand,
288  GDALTransformerFunc pfnTransformer,
289  void *pTransformArg,
290  GDALProgressFunc pfnProgress,
291  void *pProgressArg,
292  char **papszOptions );
293 
294 /* -------------------------------------------------------------------- */
295 /* Contour Line Generation */
296 /* -------------------------------------------------------------------- */
297 
299 typedef CPLErr (*GDALContourWriter)( double dfLevel, int nPoints,
300  double *padfX, double *padfY, void * );
301 
303 typedef void *GDALContourGeneratorH;
304 
305 GDALContourGeneratorH CPL_DLL
306 GDAL_CG_Create( int nWidth, int nHeight,
307  int bNoDataSet, double dfNoDataValue,
308  double dfContourInterval, double dfContourBase,
309  GDALContourWriter pfnWriter, void *pCBData );
311  double *padfScanline );
312 void CPL_DLL GDAL_CG_Destroy( GDALContourGeneratorH hCG );
313 
315 typedef struct
316 {
317  void *hLayer;
318 
319  double adfGeoTransform[6];
320 
321  int nElevField;
322  int nElevFieldMin;
323  int nElevFieldMax;
324  int nIDField;
325  int nNextID;
326 } OGRContourWriterInfo;
327 
328 CPLErr CPL_DLL
329 OGRContourWriter( double, int, double *, double *, void *pInfo );
332 CPLErr CPL_DLL
334  double dfContourInterval, double dfContourBase,
335  int nFixedLevelCount, double *padfFixedLevels,
336  int bUseNoData, double dfNoDataValue,
337  void *hLayer, int iIDField, int iElevField,
338  GDALProgressFunc pfnProgress, void *pProgressArg );
339 
340 CPLErr CPL_DLL
341 GDALContourGenerateEx( GDALRasterBandH hBand, void *hLayer,
342  CSLConstList options,
343  GDALProgressFunc pfnProgress, void *pProgressArg );
344 
345 /* -------------------------------------------------------------------- */
346 /* Viewshed Generation */
347 /* -------------------------------------------------------------------- */
348 
350 typedef enum {
351  GVM_Diagonal = 1,
352  GVM_Edge = 2,
353  GVM_Max = 3,
354  GVM_Min = 4
356 
358 typedef enum {
359  GVOT_NORMAL = 1,
360  GVOT_MIN_TARGET_HEIGHT_FROM_DEM = 2,
361  GVOT_MIN_TARGET_HEIGHT_FROM_GROUND = 3
363 
364 GDALDatasetH CPL_DLL
366  const char* pszDriverName,
367  const char* pszTargetRasterName,
368  CSLConstList papszCreationOptions,
369  double dfObserverX, double dfObserverY, double dfObserverHeight,
370  double dfTargetHeight, double dfVisibleVal, double dfInvisibleVal,
371  double dfOutOfRangeVal, double dfNoDataVal, double dfCurvCoeff,
372  GDALViewshedMode eMode, double dfMaxDistance,
373  GDALProgressFunc pfnProgress, void *pProgressArg,
374  GDALViewshedOutputType heightMode, CSLConstList papszExtraOptions);
375 
376 /************************************************************************/
377 /* Rasterizer API - geometries burned into GDAL raster. */
378 /************************************************************************/
379 
380 CPLErr CPL_DLL
382  int nBandCount, int *panBandList,
383  int nGeomCount, OGRGeometryH *pahGeometries,
384  GDALTransformerFunc pfnTransformer,
385  void *pTransformArg,
386  double *padfGeomBurnValue,
387  char **papszOptions,
388  GDALProgressFunc pfnProgress,
389  void * pProgressArg );
390 CPLErr CPL_DLL
392  int nBandCount, int *panBandList,
393  int nLayerCount, OGRLayerH *pahLayers,
394  GDALTransformerFunc pfnTransformer,
395  void *pTransformArg,
396  double *padfLayerBurnValues,
397  char **papszOptions,
398  GDALProgressFunc pfnProgress,
399  void *pProgressArg );
400 
401 CPLErr CPL_DLL
402 GDALRasterizeLayersBuf( void *pData, int nBufXSize, int nBufYSize,
403  GDALDataType eBufType, int nPixelSpace, int nLineSpace,
404  int nLayerCount, OGRLayerH *pahLayers,
405  const char *pszDstProjection,
406  double *padfDstGeoTransform,
407  GDALTransformerFunc pfnTransformer,
408  void *pTransformArg, double dfBurnValue,
409  char **papszOptions, GDALProgressFunc pfnProgress,
410  void *pProgressArg );
411 
412 /************************************************************************/
413 /* Gridding interface. */
414 /************************************************************************/
415 
433 
435 typedef struct
436 {
438  double dfPower;
440  double dfSmoothing;
446  double dfRadius1;
448  double dfRadius2;
453  double dfAngle;
470 
472 typedef struct
473 {
475  double dfPower;
477  double dfRadius;
479  double dfSmoothing;
480 
497 
499 typedef struct
500 {
502  double dfRadius1;
504  double dfRadius2;
509  double dfAngle;
519 
521 typedef struct
522 {
524  double dfRadius1;
526  double dfRadius2;
531  double dfAngle;
535 
537 typedef struct
538 {
540  double dfRadius1;
542  double dfRadius2;
547  double dfAngle;
557 
559 typedef struct
560 {
566  double dfRadius;
570 
571 CPLErr CPL_DLL
573  const double *, const double *, const double *,
574  double, double, double, double,
575  GUInt32, GUInt32, GDALDataType, void *,
576  GDALProgressFunc, void *);
577 
580 
581 GDALGridContext CPL_DLL*
582 GDALGridContextCreate( GDALGridAlgorithm eAlgorithm, const void *poOptions,
583  GUInt32 nPoints,
584  const double *padfX, const double *padfY, const double *padfZ,
585  int bCallerWillKeepPointArraysAlive );
586 
587 void CPL_DLL GDALGridContextFree(GDALGridContext* psContext);
588 
590  double dfXMin, double dfXMax, double dfYMin, double dfYMax,
591  GUInt32 nXSize, GUInt32 nYSize, GDALDataType eType, void *pData,
592  GDALProgressFunc pfnProgress, void *pProgressArg );
593 
594 GDAL_GCP CPL_DLL *
596  GDALDatasetH hSecondImage,
597  char **papszOptions,
598  int *pnGCPCount );
599 
600 /************************************************************************/
601 /* Delaunay triangulation interface. */
602 /************************************************************************/
603 
605 typedef struct
606 {
607  int anVertexIdx[3];
608  int anNeighborIdx[3];
609  /* anNeighborIdx[k] is the triangle to the opposite side */
610  /* of the opposite segment of anVertexIdx[k] */
611 } GDALTriFacet;
612 
620 typedef struct
621 {
622  double dfMul1X;
623  double dfMul1Y;
624  double dfMul2X;
625  double dfMul2Y;
626  double dfCstX;
627  double dfCstY;
629 
631 typedef struct
632 {
633  int nFacets;
637 
638 int CPL_DLL GDALHasTriangulation(void);
639 
641  const double* padfX,
642  const double* padfY);
644  GDALTriangulation* psDT,
645  const double* padfX,
646  const double* padfY);
648  const GDALTriangulation* psDT,
649  int nFacetIdx,
650  double dfX,
651  double dfY,
652  double* pdfL1,
653  double* pdfL2,
654  double* pdfL3);
656  double dfX,
657  double dfY,
658  int* panOutputFacetIdx );
660  int nFacetIdx,
661  double dfX,
662  double dfY,
663  int* panOutputFacetIdx );
664 void CPL_DLL GDALTriangulationFree(GDALTriangulation* psDT);
665 
667 // GDAL internal use only
668 void GDALTriangulationTerminate(void);
672  const char* pszProj4Geoidgrids,
673  int* pbError );
674 
676  GDALDatasetH hGridDataset,
677  int bInverse,
678  double dfSrcUnitToMeter,
679  double dfDstUnitToMeter,
680  const char* const* papszOptions );
681 
682 CPL_C_END
683 
684 #endif /* ndef GDAL_ALG_H_INCLUDED */
GDALTransformGeolocations
CPLErr GDALTransformGeolocations(GDALRasterBandH hXBand, GDALRasterBandH hYBand, GDALRasterBandH hZBand, GDALTransformerFunc pfnTransformer, void *pTransformArg, GDALProgressFunc pfnProgress, void *pProgressArg, char **papszOptions)
Transform locations held in bands.
Definition: gdaltransformgeolocs.cpp:68
GDALGridDataMetricsOptions
Data metrics method control options.
Definition: gdal_alg.h:537
GDALGridContextCreate
GDALGridContext * GDALGridContextCreate(GDALGridAlgorithm eAlgorithm, const void *poOptions, GUInt32 nPoints, const double *padfX, const double *padfY, const double *padfZ, int bCallerWillKeepPointArraysAlive)
Creates a context to do regular gridding from the scattered data.
Definition: gdalgrid.cpp:1733
GDALDestroyGenImgProjTransformer
void GDALDestroyGenImgProjTransformer(void *)
GenImgProjTransformer deallocator.
Definition: gdaltransformer.cpp:2263
GByte
unsigned char GByte
Unsigned byte type.
Definition: cpl_port.h:215
GGA_Linear
@ GGA_Linear
Definition: gdal_alg.h:429
GDALCreateGenImgProjTransformer4
void * GDALCreateGenImgProjTransformer4(OGRSpatialReferenceH hSrcSRS, const double *padfSrcGeoTransform, OGRSpatialReferenceH hDstSRS, const double *padfDstGeoTransform, const char *const *papszOptions)
Create image to image transformer.
Definition: gdaltransformer.cpp:2123
gdal.h
GDALGCPTransform
int GDALGCPTransform(void *pTransformArg, int bDstToSrc, int nPointCount, double *x, double *y, double *z, int *panSuccess)
Transforms point based on GCP derived polynomial model.
Definition: gdal_crs.cpp:410
GDALDestroyGeoLocTransformer
void GDALDestroyGeoLocTransformer(void *pTransformArg)
Destroy GeoLocation transformer.
Definition: gdalgeoloc.cpp:854
GDALGridDataMetricsOptions::dfRadius2
double dfRadius2
Definition: gdal_alg.h:542
GDALCreateReprojectionTransformerEx
void * GDALCreateReprojectionTransformerEx(OGRSpatialReferenceH hSrcSRS, OGRSpatialReferenceH hDstSRS, const char *const *papszOptions)
Create reprojection transformer.
Definition: gdaltransformer.cpp:2793
GDALComputeMedianCutPCT
int GDALComputeMedianCutPCT(GDALRasterBandH hRed, GDALRasterBandH hGreen, GDALRasterBandH hBlue, int(*pfnIncludePixel)(int, int, void *), int nColors, GDALColorTableH hColorTable, GDALProgressFunc pfnProgress, void *pProgressArg)
Compute optimal PCT for RGB image.
Definition: gdalmediancut.cpp:147
GDAL_CG_Destroy
void GDAL_CG_Destroy(GDALContourGeneratorH hCG)
Destroy contour generator.
Definition: contour.cpp:746
GDALCreateGCPTransformer
void * GDALCreateGCPTransformer(int nGCPCount, const GDAL_GCP *pasGCPList, int nReqOrder, int bReversed)
Create GCP based polynomial transformer.
Definition: gdal_crs.cpp:331
GDALTriangulation::pasFacetCoefficients
GDALTriBarycentricCoefficients * pasFacetCoefficients
arra of nFacets barycentric coefficients
Definition: gdal_alg.h:635
GDALGridDataMetricsOptions::nMinPoints
GUInt32 nMinPoints
Definition: gdal_alg.h:553
GDALCreateGenImgProjTransformer3
void * GDALCreateGenImgProjTransformer3(const char *pszSrcWKT, const double *padfSrcGeoTransform, const char *pszDstWKT, const double *padfDstGeoTransform)
Create image to image transformer.
Definition: gdaltransformer.cpp:2068
cpl_minixml.h
GDALSieveFilter
CPLErr GDALSieveFilter(GDALRasterBandH hSrcBand, GDALRasterBandH hMaskBand, GDALRasterBandH hDstBand, int nSizeThreshold, int nConnectedness, char **papszOptions, GDALProgressFunc pfnProgress, void *pProgressArg)
Removes small raster polygons.
Definition: gdalsievefilter.cpp:200
GDALViewshedOutputType
GDALViewshedOutputType
Viewshed output types.
Definition: gdal_alg.h:358
GDALContourGenerate
CPLErr GDALContourGenerate(GDALRasterBandH hBand, double dfContourInterval, double dfContourBase, int nFixedLevelCount, double *padfFixedLevels, int bUseNoData, double dfNoDataValue, void *hLayer, int iIDField, int iElevField, GDALProgressFunc pfnProgress, void *pProgressArg)
Create vector contours from raster DEM.
Definition: contour.cpp:310
GDALGridInverseDistanceToAPowerOptions::dfAnisotropyAngle
double dfAnisotropyAngle
Definition: gdal_alg.h:444
GDALColorTableH
void * GDALColorTableH
Opaque type used for the C bindings of the C++ GDALColorTable class.
Definition: gdal.h:264
GGA_MovingAverage
@ GGA_MovingAverage
Definition: gdal_alg.h:419
GDALApplyVerticalShiftGrid
GDALDatasetH GDALApplyVerticalShiftGrid(GDALDatasetH hSrcDataset, GDALDatasetH hGridDataset, int bInverse, double dfSrcUnitToMeter, double dfDstUnitToMeter, const char *const *papszOptions)
Apply a vertical shift grid to a source (DEM typically) dataset.
Definition: gdalapplyverticalshiftgrid.cpp:374
GGA_MetricCount
@ GGA_MetricCount
Definition: gdal_alg.h:424
GDALCreateRPCTransformer
void * GDALCreateRPCTransformer(GDALRPCInfo *psRPC, int bReversed, double dfPixErrThreshold, char **papszOptions)
Create an RPC based transformer.
Definition: gdal_rpc.cpp:776
GDALSuggestedWarpOutput2
CPLErr GDALSuggestedWarpOutput2(GDALDatasetH hSrcDS, GDALTransformerFunc pfnTransformer, void *pTransformArg, double *padfGeoTransformOut, int *pnPixels, int *pnLines, double *padfExtents, int nOptions)
Suggest output file size.
Definition: gdaltransformer.cpp:354
GDALSuggestedWarpOutput
CPLErr GDALSuggestedWarpOutput(GDALDatasetH hSrcDS, GDALTransformerFunc pfnTransformer, void *pTransformArg, double *padfGeoTransformOut, int *pnPixels, int *pnLines)
Suggest output file size.
Definition: gdaltransformer.cpp:177
GDALComputeMatchingPoints
GDAL_GCP * GDALComputeMatchingPoints(GDALDatasetH hFirstImage, GDALDatasetH hSecondImage, char **papszOptions, int *pnGCPCount)
GDALComputeMatchingPoints.
Definition: gdalmatching.cpp:188
GGA_InverseDistanceToAPowerNearestNeighbor
@ GGA_InverseDistanceToAPowerNearestNeighbor
Definition: gdal_alg.h:431
GDALGridMovingAverageOptions::nMinPoints
GUInt32 nMinPoints
Definition: gdal_alg.h:515
GDALGridInverseDistanceToAPowerOptions::nMaxPoints
GUInt32 nMaxPoints
Definition: gdal_alg.h:460
GDALTriangulationComputeBarycentricCoordinates
int GDALTriangulationComputeBarycentricCoordinates(const GDALTriangulation *psDT, int nFacetIdx, double dfX, double dfY, double *pdfL1, double *pdfL2, double *pdfL3)
Computes the barycentric coordinates of a point.
Definition: delaunay.c:378
GDALGridInverseDistanceToAPowerNearestNeighborOptions::dfNoDataValue
double dfNoDataValue
Definition: gdal_alg.h:495
GDALRasterizeLayersBuf
CPLErr GDALRasterizeLayersBuf(void *pData, int nBufXSize, int nBufYSize, GDALDataType eBufType, int nPixelSpace, int nLineSpace, int nLayerCount, OGRLayerH *pahLayers, const char *pszDstProjection, double *padfDstGeoTransform, GDALTransformerFunc pfnTransformer, void *pTransformArg, double dfBurnValue, char **papszOptions, GDALProgressFunc pfnProgress, void *pProgressArg)
Burn geometries from the specified list of layer into raster.
Definition: gdalrasterize.cpp:1572
GDALDataType
GDALDataType
Definition: gdal.h:60
CPLXMLNode
Document node structure.
Definition: cpl_minixml.h:69
GDALComputeProximity
CPLErr GDALComputeProximity(GDALRasterBandH hSrcBand, GDALRasterBandH hProximityBand, char **papszOptions, GDALProgressFunc pfnProgress, void *pProgressArg)
Compute the proximity of all pixels in the image to a set of pixels in the source image.
Definition: gdalproximity.cpp:112
GDALViewshedMode
GDALViewshedMode
Viewshed Modes.
Definition: gdal_alg.h:350
GDALGridInverseDistanceToAPowerNearestNeighborOptions::nMinPoints
GUInt32 nMinPoints
Definition: gdal_alg.h:493
GDALGridLinearOptions::dfNoDataValue
double dfNoDataValue
Definition: gdal_alg.h:568
GDALGridInverseDistanceToAPowerNearestNeighborOptions
Inverse distance to a power, with nearest neighbour search, control options.
Definition: gdal_alg.h:472
GDALGridInverseDistanceToAPowerOptions::nMinPoints
GUInt32 nMinPoints
Definition: gdal_alg.h:466
GDALPolygonize
CPLErr GDALPolygonize(GDALRasterBandH hSrcBand, GDALRasterBandH hMaskBand, OGRLayerH hOutLayer, int iPixValField, char **papszOptions, GDALProgressFunc pfnProgress, void *pProgressArg)
Create polygon coverage from raster data.
Definition: polygonize.cpp:826
GDALGridLinearOptions::dfRadius
double dfRadius
Definition: gdal_alg.h:566
GDALGridDataMetricsOptions::dfNoDataValue
double dfNoDataValue
Definition: gdal_alg.h:555
GDALGetTransformerDstGeoTransform
void GDALGetTransformerDstGeoTransform(void *, double *)
Get ApproxTransformer or GenImgProj output geotransform.
Definition: gdaltransformer.cpp:4263
GDALDestroyApproxTransformer
void GDALDestroyApproxTransformer(void *pApproxArg)
Cleanup approximate transformer.
Definition: gdaltransformer.cpp:3298
GDALTriangulationFindFacetDirected
int GDALTriangulationFindFacetDirected(const GDALTriangulation *psDT, int nFacetIdx, double dfX, double dfY, int *panOutputFacetIdx)
Returns the index of the triangle that contains the point by walking in the triangulation.
Definition: delaunay.c:521
GDALGridInverseDistanceToAPowerNearestNeighborOptions::dfRadius
double dfRadius
Definition: gdal_alg.h:477
CPL_C_START
#define CPL_C_START
Macro to start a block of C symbols.
Definition: cpl_port.h:337
GDALTriBarycentricCoefficients::dfCstY
double dfCstY
dfCstY
Definition: gdal_alg.h:627
OGRSpatialReferenceH
void * OGRSpatialReferenceH
Opaque type for a spatial reference system.
Definition: ogr_api.h:75
GDALGridInverseDistanceToAPowerOptions::dfSmoothing
double dfSmoothing
Definition: gdal_alg.h:440
GDALTriangulationFree
void GDALTriangulationFree(GDALTriangulation *psDT)
Free a triangulation.
Definition: delaunay.c:275
GDALGridMovingAverageOptions::dfRadius2
double dfRadius2
Definition: gdal_alg.h:504
GDALContourWriter
CPLErr(* GDALContourWriter)(double dfLevel, int nPoints, double *padfX, double *padfY, void *)
Contour writer callback type.
Definition: gdal_alg.h:299
GDALCreateGeoLocTransformer
void * GDALCreateGeoLocTransformer(GDALDatasetH hBaseDS, char **papszGeolocationInfo, int bReversed)
Create GeoLocation transformer.
Definition: gdalgeoloc.cpp:680
GDALTriangulation::nFacets
int nFacets
number of facets
Definition: gdal_alg.h:633
GDALCreateApproxTransformer
void * GDALCreateApproxTransformer(GDALTransformerFunc pfnRawTransformer, void *pRawTransformerArg, double dfMaxError)
Create an approximating transformer.
Definition: gdaltransformer.cpp:3234
GDALDestroyRPCTransformer
void GDALDestroyRPCTransformer(void *pTransformArg)
Destroy RPC tranformer.
Definition: gdal_rpc.cpp:1054
GDAL_CG_FeedLine
CPLErr GDAL_CG_FeedLine(GDALContourGeneratorH hCG, double *padfScanline)
Feed a line to the contour generator.
Definition: contour.cpp:734
GDALCreateGCPRefineTransformer
void * GDALCreateGCPRefineTransformer(int nGCPCount, const GDAL_GCP *pasGCPList, int nReqOrder, int bReversed, double tolerance, int minimumGcps)
Create GCP based polynomial transformer, with a tolerance threshold to discard GCPs that transform ba...
Definition: gdal_crs.cpp:341
CSLConstList
char ** CSLConstList
Type of a constant null-terminated list of nul terminated strings.
Definition: cpl_port.h:1212
GDALGridInverseDistanceToAPowerOptions::dfPower
double dfPower
Definition: gdal_alg.h:438
GDALRPCTransform
int GDALRPCTransform(void *pTransformArg, int bDstToSrc, int nPointCount, double *x, double *y, double *z, int *panSuccess)
RPC transform.
Definition: gdal_rpc.cpp:2031
GDALGridMovingAverageOptions
Moving average method control options.
Definition: gdal_alg.h:499
GDALGeoLocTransform
int GDALGeoLocTransform(void *pTransformArg, int bDstToSrc, int nPointCount, double *x, double *y, double *z, int *panSuccess)
Use GeoLocation transformer.
Definition: gdalgeoloc.cpp:885
GDAL_GCP
Ground Control Point.
Definition: gdal.h:660
CPL_C_END
#define CPL_C_END
Macro to end a block of C symbols.
Definition: cpl_port.h:339
GDALFillNodata
CPLErr GDALFillNodata(GDALRasterBandH hTargetBand, GDALRasterBandH hMaskBand, double dfMaxSearchDist, int bDeprecatedOption, int nSmoothingIterations, char **papszOptions, GDALProgressFunc pfnProgress, void *pProgressArg)
Fill selected raster regions by interpolation from the edges.
Definition: rasterfill.cpp:412
GDALDestroyGCPTransformer
void GDALDestroyGCPTransformer(void *pTransformArg)
Destroy GCP transformer.
Definition: gdal_crs.cpp:368
GDALGridLinearOptions
Linear method control options.
Definition: gdal_alg.h:559
GDALDestroyTPSTransformer
void GDALDestroyTPSTransformer(void *pTransformArg)
Destroy TPS transformer.
Definition: gdal_tps.cpp:319
GDALViewshedGenerate
GDALDatasetH GDALViewshedGenerate(GDALRasterBandH hBand, const char *pszDriverName, const char *pszTargetRasterName, CSLConstList papszCreationOptions, double dfObserverX, double dfObserverY, double dfObserverHeight, double dfTargetHeight, double dfVisibleVal, double dfInvisibleVal, double dfOutOfRangeVal, double dfNoDataVal, double dfCurvCoeff, GDALViewshedMode eMode, double dfMaxDistance, GDALProgressFunc pfnProgress, void *pProgressArg, GDALViewshedOutputType heightMode, CSLConstList papszExtraOptions)
Create viewshed from raster DEM.
Definition: viewshed.cpp:202
GDAL_CG_Create
GDALContourGeneratorH GDAL_CG_Create(int nWidth, int nHeight, int bNoDataSet, double dfNoDataValue, double dfContourInterval, double dfContourBase, GDALContourWriter pfnWriter, void *pCBData)
Create contour generator.
Definition: contour.cpp:712
GDALCreateGenImgProjTransformer
void * GDALCreateGenImgProjTransformer(GDALDatasetH hSrcDS, const char *pszSrcWKT, GDALDatasetH hDstDS, const char *pszDstWKT, int bGCPUseOK, double dfGCPErrorThreshold, int nOrder)
Create image to image transformer.
Definition: gdaltransformer.cpp:1070
GDALGridInverseDistanceToAPowerNearestNeighborOptions::dfSmoothing
double dfSmoothing
Definition: gdal_alg.h:479
GDALCreateReprojectionTransformer
void * GDALCreateReprojectionTransformer(const char *pszSrcWKT, const char *pszDstWKT)
Create reprojection transformer.
Definition: gdaltransformer.cpp:2726
GDALTriFacet
Triangle fact.
Definition: gdal_alg.h:605
GDALGridInverseDistanceToAPowerOptions::dfRadius2
double dfRadius2
Definition: gdal_alg.h:448
GDALDestroyReprojectionTransformer
void GDALDestroyReprojectionTransformer(void *)
Destroy reprojection transformation.
Definition: gdaltransformer.cpp:2895
GDALFPolygonize
CPLErr GDALFPolygonize(GDALRasterBandH hSrcBand, GDALRasterBandH hMaskBand, OGRLayerH hOutLayer, int iPixValField, char **papszOptions, GDALProgressFunc pfnProgress, void *pProgressArg)
Create polygon coverage from raster data.
Definition: polygonize.cpp:904
GDALGridNearestNeighborOptions
Nearest neighbor method control options.
Definition: gdal_alg.h:521
GDALTPSTransform
int GDALTPSTransform(void *pTransformArg, int bDstToSrc, int nPointCount, double *x, double *y, double *z, int *panSuccess)
Transforms point based on GCP derived polynomial model.
Definition: gdal_tps.cpp:364
GDALGridContextFree
void GDALGridContextFree(GDALGridContext *psContext)
Free a context used created by GDALGridContextCreate()
Definition: gdalgrid.cpp:2129
OGRGeometryH
void * OGRGeometryH
Opaque type for a geometry.
Definition: ogr_api.h:60
GDALGridMovingAverageOptions::dfNoDataValue
double dfNoDataValue
Definition: gdal_alg.h:517
GDALTransformerFunc
int(* GDALTransformerFunc)(void *pTransformerArg, int bDstToSrc, int nPointCount, double *x, double *y, double *z, int *panSuccess)
Definition: gdal_alg.h:114
GDALApproxTransformerOwnsSubtransformer
void GDALApproxTransformerOwnsSubtransformer(void *pCBData, int bOwnFlag)
Set bOwnSubtransformer flag.
Definition: gdaltransformer.cpp:3277
GDALGridNearestNeighborOptions::dfAngle
double dfAngle
Definition: gdal_alg.h:531
GDALTriBarycentricCoefficients::dfMul1Y
double dfMul1Y
dfMul1Y
Definition: gdal_alg.h:623
GDALSetGenImgProjTransformerDstGeoTransform
void GDALSetGenImgProjTransformerDstGeoTransform(void *, const double *)
Set GenImgProj output geotransform.
Definition: gdaltransformer.cpp:2232
GDALSetTransformerDstGeoTransform
void GDALSetTransformerDstGeoTransform(void *, const double *)
Set ApproxTransformer or GenImgProj output geotransform.
Definition: gdaltransformer.cpp:4239
GDALCreateTPSTransformer
void * GDALCreateTPSTransformer(int nGCPCount, const GDAL_GCP *pasGCPList, int bReversed)
Create Thin Plate Spline transformer from GCPs.
Definition: gdal_tps.cpp:144
GGA_MetricAverageDistancePts
@ GGA_MetricAverageDistancePts
Definition: gdal_alg.h:427
GDALGridNearestNeighborOptions::dfRadius2
double dfRadius2
Definition: gdal_alg.h:526
GDALTriBarycentricCoefficients::dfMul1X
double dfMul1X
dfMul1X
Definition: gdal_alg.h:622
GDALGridNearestNeighborOptions::dfNoDataValue
double dfNoDataValue
Definition: gdal_alg.h:533
GGA_MetricRange
@ GGA_MetricRange
Definition: gdal_alg.h:423
GDALGridDataMetricsOptions::dfRadius1
double dfRadius1
Definition: gdal_alg.h:540
GDALApproxTransform
int GDALApproxTransform(void *pTransformArg, int bDstToSrc, int nPointCount, double *x, double *y, double *z, int *panSuccess)
Perform approximate transformation.
Definition: gdaltransformer.cpp:3616
GDALContourGeneratorH
void * GDALContourGeneratorH
Contour generator opaque type.
Definition: gdal_alg.h:303
GDALGenImgProjTransform
int GDALGenImgProjTransform(void *pTransformArg, int bDstToSrc, int nPointCount, double *x, double *y, double *z, int *panSuccess)
Perform general image reprojection transformation.
Definition: gdaltransformer.cpp:2301
GDALTriangulation::pasFacets
GDALTriFacet * pasFacets
array of nFacets facets
Definition: gdal_alg.h:634
GDALContourGenerateEx
CPLErr GDALContourGenerateEx(GDALRasterBandH hBand, void *hLayer, CSLConstList options, GDALProgressFunc pfnProgress, void *pProgressArg)
Create vector contours from raster DEM.
Definition: contour.cpp:523
GDALGridInverseDistanceToAPowerOptions::dfAnisotropyRatio
double dfAnisotropyRatio
Definition: gdal_alg.h:442
GDALGridContext
struct GDALGridContext GDALGridContext
Grid context opaque type.
Definition: gdal_alg.h:579
GDALOpenVerticalShiftGrid
GDALDatasetH GDALOpenVerticalShiftGrid(const char *pszProj4Geoidgrids, int *pbError)
Load proj.4 geoidgrids as GDAL dataset.
Definition: gdalapplyverticalshiftgrid.cpp:615
GDALGridMovingAverageOptions::dfRadius1
double dfRadius1
Definition: gdal_alg.h:502
ogr_api.h
GDALChecksumImage
int GDALChecksumImage(GDALRasterBandH hBand, int nXOff, int nYOff, int nXSize, int nYSize)
Compute checksum for image region.
Definition: gdalchecksum.cpp:66
GDALSimpleImageWarp
int GDALSimpleImageWarp(GDALDatasetH hSrcDS, GDALDatasetH hDstDS, int nBandCount, int *panBandList, GDALTransformerFunc pfnTransform, void *pTransformArg, GDALProgressFunc pfnProgress, void *pProgressArg, char **papszWarpOptions)
Perform simple image warp.
Definition: gdalsimplewarp.cpp:230
GDALGridNearestNeighborOptions::dfRadius1
double dfRadius1
Definition: gdal_alg.h:524
GDALDitherRGB2PCT
int GDALDitherRGB2PCT(GDALRasterBandH hRed, GDALRasterBandH hGreen, GDALRasterBandH hBlue, GDALRasterBandH hTarget, GDALColorTableH hColorTable, GDALProgressFunc pfnProgress, void *pProgressArg)
24bit to 8bit conversion with dithering.
Definition: gdaldither.cpp:141
CPLErr
CPLErr
Error category.
Definition: cpl_error.h:52
GDALCreateGenImgProjTransformer2
void * GDALCreateGenImgProjTransformer2(GDALDatasetH hSrcDS, GDALDatasetH hDstDS, char **papszOptions)
Create image to image transformer.
Definition: gdaltransformer.cpp:1470
GDALTriBarycentricCoefficients::dfMul2Y
double dfMul2Y
dfMul2Y
Definition: gdal_alg.h:625
GDALRPCInfo
Structure to store Rational Polynomial Coefficients / Rigorous Projection Model.
Definition: gdal.h:1126
GDALHasTriangulation
int GDALHasTriangulation(void)
Returns if GDAL is built with Delaunay triangulation support.
Definition: delaunay.c:95
GDALTriBarycentricCoefficients::dfMul2X
double dfMul2X
dfMul2X
Definition: gdal_alg.h:624
GDALReprojectionTransform
int GDALReprojectionTransform(void *pTransformArg, int bDstToSrc, int nPointCount, double *x, double *y, double *z, int *panSuccess)
Perform reprojection transformation.
Definition: gdaltransformer.cpp:2928
GDALGridInverseDistanceToAPowerOptions::dfNoDataValue
double dfNoDataValue
Definition: gdal_alg.h:468
GDALGridDataMetricsOptions::dfAngle
double dfAngle
Definition: gdal_alg.h:547
GDALGridInverseDistanceToAPowerNearestNeighborOptions::dfPower
double dfPower
Definition: gdal_alg.h:475
GDALGridInverseDistanceToAPowerOptions::dfAngle
double dfAngle
Definition: gdal_alg.h:453
GDALTriangulationComputeBarycentricCoefficients
int GDALTriangulationComputeBarycentricCoefficients(GDALTriangulation *psDT, const double *padfX, const double *padfY)
Computes barycentric coefficients for each triangles of the triangulation.
Definition: delaunay.c:301
GDALGridMovingAverageOptions::dfAngle
double dfAngle
Definition: gdal_alg.h:509
GDALGridCreate
CPLErr GDALGridCreate(GDALGridAlgorithm, const void *, GUInt32, const double *, const double *, const double *, double, double, double, double, GUInt32, GUInt32, GDALDataType, void *, GDALProgressFunc, void *)
Create regular grid from the scattered data.
Definition: gdalgrid.cpp:2422
GDALTriangulationCreateDelaunay
GDALTriangulation * GDALTriangulationCreateDelaunay(int nPoints, const double *padfX, const double *padfY)
Computes a Delaunay triangulation of the passed points.
Definition: delaunay.c:118
GGA_NearestNeighbor
@ GGA_NearestNeighbor
Definition: gdal_alg.h:420
GGA_MetricMaximum
@ GGA_MetricMaximum
Definition: gdal_alg.h:422
GDALGridInverseDistanceToAPowerOptions
Inverse distance to a power method control options.
Definition: gdal_alg.h:435
GDALRasterizeLayers
CPLErr GDALRasterizeLayers(GDALDatasetH hDS, int nBandCount, int *panBandList, int nLayerCount, OGRLayerH *pahLayers, GDALTransformerFunc pfnTransformer, void *pTransformArg, double *padfLayerBurnValues, char **papszOptions, GDALProgressFunc pfnProgress, void *pProgressArg)
Burn geometries from the specified list of layers into raster.
Definition: gdalrasterize.cpp:1179
GGA_MetricAverageDistance
@ GGA_MetricAverageDistance
Definition: gdal_alg.h:425
GGA_InverseDistanceToAPower
@ GGA_InverseDistanceToAPower
Definition: gdal_alg.h:418
GDALTriBarycentricCoefficients
Triangle barycentric coefficients.
Definition: gdal_alg.h:620
OGRLayerH
void * OGRLayerH
Opaque type for a layer (OGRLayer)
Definition: ogr_api.h:521
GDALGridAlgorithm
GDALGridAlgorithm
Gridding Algorithms.
Definition: gdal_alg.h:417
GDALRasterBandH
void * GDALRasterBandH
Opaque type used for the C bindings of the C++ GDALRasterBand class.
Definition: gdal.h:258
GDALTriangulation
Triangulation structure.
Definition: gdal_alg.h:631
GDALRasterizeGeometries
CPLErr GDALRasterizeGeometries(GDALDatasetH hDS, int nBandCount, int *panBandList, int nGeomCount, OGRGeometryH *pahGeometries, GDALTransformerFunc pfnTransformer, void *pTransformArg, double *padfGeomBurnValue, char **papszOptions, GDALProgressFunc pfnProgress, void *pProgressArg)
Burn geometries into raster.
Definition: gdalrasterize.cpp:755
GDALGridInverseDistanceToAPowerOptions::dfRadius1
double dfRadius1
Definition: gdal_alg.h:446
GDALDatasetH
void * GDALDatasetH
Opaque type used for the C bindings of the C++ GDALDataset class.
Definition: gdal.h:255
GDALGridContextProcess
CPLErr GDALGridContextProcess(GDALGridContext *psContext, double dfXMin, double dfXMax, double dfYMin, double dfYMax, GUInt32 nXSize, GUInt32 nYSize, GDALDataType eType, void *pData, GDALProgressFunc pfnProgress, void *pProgressArg)
Do the gridding of a window of a raster.
Definition: gdalgrid.cpp:2183
GDALTriBarycentricCoefficients::dfCstX
double dfCstX
dfCstX
Definition: gdal_alg.h:626
GDALTriangulationFindFacetBruteForce
int GDALTriangulationFindFacetBruteForce(const GDALTriangulation *psDT, double dfX, double dfY, int *panOutputFacetIdx)
Returns the index of the triangle that contains the point by iterating over all triangles.
Definition: delaunay.c:426
GDALGridInverseDistanceToAPowerNearestNeighborOptions::nMaxPoints
GUInt32 nMaxPoints
Definition: gdal_alg.h:487
GGA_MetricMinimum
@ GGA_MetricMinimum
Definition: gdal_alg.h:421
GUInt32
unsigned int GUInt32
Unsigned int32 type.
Definition: cpl_port.h:207