Public Attributes | List of all members
GDALWarpOptions Struct Reference

Warp control options for use with GDALWarpOperation::Initialize() More...

#include <gdalwarper.h>

Public Attributes

char ** papszWarpOptions
 A string list of additional options controlling the warp operation in name=value format. More...
double dfWarpMemoryLimit
GDALResampleAlg eResampleAlg
GDALDataType eWorkingDataType
GDALDatasetH hSrcDS
GDALDatasetH hDstDS
int nBandCount
int * panSrcBands
int * panDstBands
int nSrcAlphaBand
int nDstAlphaBand
double * padfSrcNoDataReal
double * padfSrcNoDataImag
double * padfDstNoDataReal
double * padfDstNoDataImag
GDALProgressFunc pfnProgress
void * pProgressArg
GDALTransformerFunc pfnTransformer
void * pTransformerArg
GDALMaskFunc * papfnSrcPerBandValidityMaskFunc
void ** papSrcPerBandValidityMaskFuncArg
GDALMaskFunc pfnSrcValidityMaskFunc
void * pSrcValidityMaskFuncArg
GDALMaskFunc pfnSrcDensityMaskFunc
void * pSrcDensityMaskFuncArg
GDALMaskFunc pfnDstDensityMaskFunc
void * pDstDensityMaskFuncArg
GDALMaskFunc pfnDstValidityMaskFunc
void * pDstValidityMaskFuncArg
CPLErr(* pfnPreWarpChunkProcessor )(void *pKern, void *pArg)
void * pPreWarpProcessorArg
CPLErr(* pfnPostWarpChunkProcessor )(void *pKern, void *pArg)
void * pPostWarpProcessorArg
void * hCutline
double dfCutlineBlendDist

Detailed Description

Warp control options for use with GDALWarpOperation::Initialize()

Member Data Documentation

double GDALWarpOptions::dfCutlineBlendDist

Optional blending distance to apply across cutline in pixels, default is zero.

double GDALWarpOptions::dfWarpMemoryLimit

In bytes, 0.0 for internal default

GDALResampleAlg GDALWarpOptions::eResampleAlg

Resampling algorithm to use

GDALDataType GDALWarpOptions::eWorkingDataType

data type to use during warp operation, GDT_Unknown lets the algorithm select the type

void* GDALWarpOptions::hCutline

Optional OGRPolygonH for a masking cutline.

GDALDatasetH GDALWarpOptions::hDstDS

Destination image dataset - may be NULL if only using GDALWarpOperation::WarpRegionToBuffer().

GDALDatasetH GDALWarpOptions::hSrcDS

Source image dataset.

int GDALWarpOptions::nBandCount

Number of bands to process, may be 0 to select all bands.

int GDALWarpOptions::nDstAlphaBand

The dest. band so use as an alpha (transparency) value, 0=disabled

int GDALWarpOptions::nSrcAlphaBand

The source band so use as an alpha (transparency) value, 0=disabled

double* GDALWarpOptions::padfDstNoDataImag

The "nodata" value imaginary component - may be NULL even if real component is provided.

double* GDALWarpOptions::padfDstNoDataReal

The "nodata" value real component for each output band, if NULL there isn't one

double* GDALWarpOptions::padfSrcNoDataImag

The "nodata" value imaginary component - may be NULL even if real component is provided.

double* GDALWarpOptions::padfSrcNoDataReal

The "nodata" value real component for each input band, if NULL there isn't one

int* GDALWarpOptions::panDstBands

The band numbers for the destination bands to process (1 based)

int* GDALWarpOptions::panSrcBands

The band numbers for the source bands to process (1 based)

char ** GDALWarpOptions::papszWarpOptions

A string list of additional options controlling the warp operation in name=value format.

A suitable string list can be prepared with CSLSetNameValue().

The following values are currently supported:

  • INIT_DEST=[value] or INIT_DEST=NO_DATA: This option forces the destination image to be initialized to the indicated value (for all bands) or indicates that it should be initialized to the NO_DATA value in padfDstNoDataReal/padfDstNoDataImag. If this value isn't set the destination image will be read and overlaid.

WRITE_FLUSH=YES/NO: This option forces a flush to disk of data after each chunk is processed. In some cases this helps ensure a serial writing of the output data otherwise a block of data may be written to disk each time a block of data is read for the input buffer resulting in a lot of extra seeking around the disk, and reduced IO throughput. The default at this time is NO.

  • SKIP_NOSOURCE=YES/NO: Skip all processing for chunks for which there is no corresponding input data. This will disable initializing the destination (INIT_DEST) and all other processing, and so should be used carefully. Mostly useful to short circuit a lot of extra work in mosaicing situations.
  • UNIFIED_SRC_NODATA=YES/[NO]: By default nodata masking values considered independently for each band. However, sometimes it is desired to treat all bands as nodata if and only if, all bands match the corresponding nodata values. To get this behavior set this option to YES.

Normally when computing the source raster data to load to generate a particular output area, the warper samples transforms 21 points along each edge of the destination region back onto the source file, and uses this to compute a bounding window on the source image that is sufficient. Depending on the transformation in effect, the source window may be a bit too small, or even missing large areas. Problem situations are those where the transformation is very non-linear or "inside out". Examples are transforming from WGS84 to Polar Steregraphic for areas around the pole, or transformations where some of the image is untransformable. The following options provide some additional control to deal with errors in computing the source window:

  • SAMPLE_GRID=YES/NO: Setting this option to YES will force the sampling to include internal points as well as edge points which can be important if the transformation is esoteric inside out, or if large sections of the destination image are not transformable into the source coordinate system.
  • SAMPLE_STEPS: Modifies the density of the sampling grid. The default number of steps is 21. Increasing this can increase the computational cost, but improves the accuracy with which the source region is computed.
  • SOURCE_EXTRA: This is a number of extra pixels added around the source window for a given request, and by default it is 1 to take care of rounding error. Setting this larger will increase the amount of data that needs to be read, but can avoid missing source data.
  • CUTLINE: This may contain the WKT geometry for a cutline. It will be converted into a geometry by GDALWarpOperation::Initialize() and assigned to the GDALWarpOptions hCutline field. The coordinates must be expressed in source pixel/line coordinates. Note: this is different from the assumptions made for the -cutline option of the gdalwarp utility !
  • CUTLINE_BLEND_DIST: This may be set with a distance in pixels which will be assigned to the dfCutlineBlendDist field in the GDALWarpOptions.
  • CUTLINE_ALL_TOUCHED: This defaults to FALSE, but may be set to TRUE to enable ALL_TOUCHEd mode when rasterizing cutline polygons. This is useful to ensure that that all pixels overlapping the cutline polygon will be selected, not just those whose center point falls within the polygon.
  • OPTIMIZE_SIZE: This defaults to FALSE, but may be set to TRUE typically when writing to a compressed dataset (GeoTIFF with COMPRESSED creation option set for example) for achieving a smaller file size. This is achieved by writing at once data aligned on full blocks of the target dataset, which avoids partial writes of compressed blocks and lost space when they are rewritten at the end of the file. However sticking to target block size may cause major processing slowdown for some particular reprojections.
  • NUM_THREADS: (GDAL >= 1.10) Can be set to a numeric value or ALL_CPUS to set the number of threads to use to parallelize the computation part of the warping. If not set, computation will be done in a single thread.
  • STREAMABLE_OUTPUT: (GDAL >= 2.0) This defaults to FALSE, but may be set to TRUE typically when writing to a streamed file. The gdalwarp utility automatically sets this option when writing to /vsistdout/ or a named pipe (on Unix). This option has performance impacts for some reprojections. Note: band interleaved output is not currently supported by the warping algorithm in a streamable compatible way.
  • SRC_COORD_PRECISION: (GDAL >= 2.0). Advanced setting. This defaults to 0, to indicate that no rounding of computing source image coordinates corresponding to the target image must be done. If greater than 0 (and typically below 1), this value, expressed in pixel, will be used to round computed source image coordinates. The purpose of this option is to make the results of warping with the approximated transformer more reproducible and not sensitive to changes in warping memory size. To achieve that, SRC_COORD_PRECISION must be at least 10 times greater than the error threshold. The higher the SRC_COORD_PRECISION/error_threshold ratio, the higher the performance will be, since exact reprojections must statistically be done with a frequency of 4*error_threshold/SRC_COORD_PRECISION.
GDALProgressFunc GDALWarpOptions::pfnProgress

GDALProgressFunc() compatible progress reporting function, or NULL if there isn't one.

GDALTransformerFunc GDALWarpOptions::pfnTransformer

Type of spatial point transformer function

void* GDALWarpOptions::pProgressArg

Callback argument to be passed to pfnProgress.

void* GDALWarpOptions::pTransformerArg

Handle to image transformer setup structure

The documentation for this struct was generated from the following files:

Generated for GDAL by doxygen 1.8.8.