# gdal_utils.h: GDAL Algorithms C API

Public (C callable) GDAL Utilities entry points.

Since

  GDAL 2.1

Typedefs

typedef struct GDALInfoOptions GDALInfoOptions

  Options for GDALInfo(). Opaque type

typedef struct GDALInfoOptionsForBinary GDALInfoOptionsForBinary

  Opaque type.

typedef struct GDALTranslateOptions GDALTranslateOptions

  Options for GDALTranslate(). Opaque type

typedef struct GDALTranslateOptionsForBinary GDALTranslateOptionsForBinary

  Opaque type.

typedef struct GDALWarpAppOptions GDALWarpAppOptions

  Options for GDALWarp(). Opaque type

typedef struct GDALWarpAppOptionsForBinary GDALWarpAppOptionsForBinary

  Opaque type.

typedef struct GDALVectorTranslateOptions GDALVectorTranslateOptions

  Options for GDALVectorTranslate(). Opaque type

typedef struct GDALVectorTranslateOptionsForBinary GDALVectorTranslateOptionsForBinary

  Opaque type.

typedef struct GDALDEMProcessingOptions GDALDEMProcessingOptions

  Options for GDALDEMProcessing(). Opaque type

typedef struct GDALDEMProcessingOptionsForBinary GDALDEMProcessingOptionsForBinary

  Opaque type.

typedef struct GDALNearblackOptions GDALNearblackOptions

  Options for GDALNearblack(). Opaque type

typedef struct GDALNearblackOptionsForBinary GDALNearblackOptionsForBinary

  Opaque type.

typedef struct GDALGridOptions GDALGridOptions

  Options for GDALGrid(). Opaque type

typedef struct GDALGridOptionsForBinary GDALGridOptionsForBinary

  Opaque type.

typedef struct GDALRasterizeOptions GDALRasterizeOptions

  Options for GDALRasterize(). Opaque type

typedef struct GDALRasterizeOptionsForBinary GDALRasterizeOptionsForBinary

  Opaque type.

typedef struct GDALBuildVRTOptions GDALBuildVRTOptions

  Options for GDALBuildVRT(). Opaque type

typedef struct GDALBuildVRTOptionsForBinary GDALBuildVRTOptionsForBinary

  Opaque type.

typedef struct GDALMultiDimInfoOptions GDALMultiDimInfoOptions

  Options for GDALMultiDimInfo(). Opaque type

typedef struct GDALMultiDimInfoOptionsForBinary GDALMultiDimInfoOptionsForBinary

  Opaque type.

typedef struct GDALMultiDimTranslateOptions GDALMultiDimTranslateOptions

  Options for GDALMultiDimTranslate(). Opaque type

typedef struct GDALMultiDimTranslateOptionsForBinary GDALMultiDimTranslateOptionsForBinary

  Opaque type.

Functions

GDALInfoOptions *GDALInfoOptionsNew(char **papszArgv, GDALInfoOptionsForBinary *psOptionsForBinary)

  Allocates a GDALInfoOptions struct.

  Since

    GDAL 2.1

  Parameters

    - papszArgv – NULL terminated list of options (potentially including filename and open options too), or NULL. The accepted options are the ones of the gdalinfo utility.

    - psOptionsForBinary – (output) may be NULL (and should generally be NULL), otherwise (gdalinfo_bin.cpp use case) must be allocated with GDALInfoOptionsForBinaryNew() prior to this function. Will be filled with potentially present filename, open options, subdataset number…

  Returns

    pointer to the allocated GDALInfoOptions struct. Must be freed with GDALInfoOptionsFree().

void GDALInfoOptionsFree(GDALInfoOptions *psOptions)

  Frees the GDALInfoOptions struct.

  Since

    GDAL 2.1

  Parameters

    psOptions – the options struct for GDALInfo().

char *GDALInfo(GDALDatasetH hDataset, const GDALInfoOptions *psOptions)

  Lists various information about a GDAL supported raster dataset.

  This is the equivalent of the gdalinfo utility.

  GDALInfoOptions* must be allocated and freed with GDALInfoOptionsNew() and GDALInfoOptionsFree() respectively.

  Since

    GDAL 2.1

  Parameters

    - hDataset – the dataset handle.

    - psOptions – the options structure returned by GDALInfoOptionsNew() or NULL.

  Returns

    string corresponding to the information about the raster dataset (must be freed with CPLFree()), or NULL in case of error.

GDALTranslateOptions *GDALTranslateOptionsNew(char **papszArgv, GDALTranslateOptionsForBinary *psOptionsForBinary)

  Allocates a GDALTranslateOptions struct.

  Since

    GDAL 2.1

  Parameters

    - papszArgv – NULL terminated list of options (potentially including filename and open options too), or NULL. The accepted options are the ones of the gdal_translate utility.

    - psOptionsForBinary – (output) may be NULL (and should generally be NULL), otherwise (gdal_translate_bin.cpp use case) must be allocated with GDALTranslateOptionsForBinaryNew() prior to this function. Will be filled with potentially present filename, open options,…

  Returns

    pointer to the allocated GDALTranslateOptions struct. Must be freed with GDALTranslateOptionsFree().

void GDALTranslateOptionsFree(GDALTranslateOptions *psOptions)

  Frees the GDALTranslateOptions struct.

  Since

    GDAL 2.1

  Parameters

    psOptions – the options struct for GDALTranslate().

void GDALTranslateOptionsSetProgress(GDALTranslateOptions *psOptions, GDALProgressFunc pfnProgress, void *pProgressData)

  Set a progress function.

  Since

    GDAL 2.1

  Parameters

    - psOptions – the options struct for GDALTranslate().

    - pfnProgress – the progress callback.

    - pProgressData – the user data for the progress callback.

GDALDatasetH GDALTranslate(const char *pszDestFilename, GDALDatasetH hSrcDataset, const GDALTranslateOptions *psOptions, int *pbUsageError)

  Converts raster data between different formats.

  This is the equivalent of the gdal_translate utility.

  GDALTranslateOptions* must be allocated and freed with GDALTranslateOptionsNew() and GDALTranslateOptionsFree() respectively.

  Since

    GDAL 2.1

  Parameters

    - pszDest – the destination dataset path.

    - hSrcDataset – the source dataset handle.

    - psOptionsIn – the options struct returned by GDALTranslateOptionsNew() or NULL.

    - pbUsageError – pointer to a integer output variable to store if any usage error has occurred or NULL.

  Returns

    the output dataset (new dataset that must be closed using GDALClose()) or NULL in case of error.

GDALWarpAppOptions *GDALWarpAppOptionsNew(char **papszArgv, GDALWarpAppOptionsForBinary *psOptionsForBinary)

  Allocates a GDALWarpAppOptions struct.

  Since

    GDAL 2.1

  Parameters

    - papszArgv – NULL terminated list of options (potentially including filename and open options too), or NULL. The accepted options are the ones of the gdalwarp utility.

    - psOptionsForBinary – (output) may be NULL (and should generally be NULL), otherwise (gdal_translate_bin.cpp use case) must be allocated with GDALWarpAppOptionsForBinaryNew() prior to this function. Will be filled with potentially present filename, open options,…

  Returns

    pointer to the allocated GDALWarpAppOptions struct. Must be freed with GDALWarpAppOptionsFree().

void GDALWarpAppOptionsFree(GDALWarpAppOptions *psOptions)

  Frees the GDALWarpAppOptions struct.

  Since

    GDAL 2.1

  Parameters

    psOptions – the options struct for GDALWarp().

void GDALWarpAppOptionsSetProgress(GDALWarpAppOptions *psOptions, GDALProgressFunc pfnProgress, void *pProgressData)

  Set a progress function.

  Since

    GDAL 2.1

  Parameters

    - psOptions – the options struct for GDALWarp().

    - pfnProgress – the progress callback.

    - pProgressData – the user data for the progress callback.

void GDALWarpAppOptionsSetQuiet(GDALWarpAppOptions *psOptions, int bQuiet)

  Set a progress function.

  Since

    GDAL 2.3

  Parameters

    - psOptions – the options struct for GDALWarp().

    - bQuiet – whether GDALWarp() should emit messages on stdout.

void GDALWarpAppOptionsSetWarpOption(GDALWarpAppOptions *psOptions, const char *pszKey, const char *pszValue)

  Set a warp option.

  Since

    GDAL 2.1

  Parameters

    - psOptions – the options struct for GDALWarp().

    - pszKey – key.

    - pszValue – value.

GDALDatasetH GDALWarp(const char *pszDest, GDALDatasetH hDstDS, int nSrcCount, GDALDatasetH *pahSrcDS, const GDALWarpAppOptions *psOptions, int *pbUsageError)

  Image reprojection and warping function.

  This is the equivalent of the gdalwarp utility.

  GDALWarpAppOptions* must be allocated and freed with GDALWarpAppOptionsNew() and GDALWarpAppOptionsFree() respectively. pszDest and hDstDS cannot be used at the same time.

  Since

    GDAL 2.1

  Parameters

    - pszDest – the destination dataset path or NULL.

    - hDstDS – the destination dataset or NULL.

    - nSrcCount – the number of input datasets.

    - pahSrcDS – the list of input datasets.

    - psOptionsIn – the options struct returned by GDALWarpAppOptionsNew() or NULL.

    - pbUsageError – pointer to a integer output variable to store if any usage error has occurred, or NULL.

  Returns

    the output dataset (new dataset that must be closed using GDALClose(), or hDstDS if not NULL) or NULL in case of error.

GDALVectorTranslateOptions *GDALVectorTranslateOptionsNew(char **papszArgv, GDALVectorTranslateOptionsForBinary *psOptionsForBinary)

  allocates a GDALVectorTranslateOptions struct.

  Since

    GDAL 2.1

  Parameters

    - papszArgv – NULL terminated list of options (potentially including filename and open options too), or NULL. The accepted options are the ones of the ogr2ogr utility.

    - psOptionsForBinary – (output) may be NULL (and should generally be NULL), otherwise (gdal_translate_bin.cpp use case) must be allocated with GDALVectorTranslateOptionsForBinaryNew() prior to this function. Will be filled with potentially present filename, open options,…

  Returns

    pointer to the allocated GDALVectorTranslateOptions struct. Must be freed with GDALVectorTranslateOptionsFree().

void GDALVectorTranslateOptionsFree(GDALVectorTranslateOptions *psOptions)

  Frees the GDALVectorTranslateOptions struct.

  Since

    GDAL 2.1

  Parameters

    psOptions – the options struct for GDALVectorTranslate().

void GDALVectorTranslateOptionsSetProgress(GDALVectorTranslateOptions *psOptions, GDALProgressFunc pfnProgress, void *pProgressData)

  Set a progress function.

  Since

    GDAL 2.1

  Parameters

    - psOptions – the options struct for GDALVectorTranslate().

    - pfnProgress – the progress callback.

    - pProgressData – the user data for the progress callback.

GDALDatasetH GDALVectorTranslate(const char *pszDest, GDALDatasetH hDstDS, int nSrcCount, GDALDatasetH *pahSrcDS, const GDALVectorTranslateOptions *psOptions, int *pbUsageError)

  Converts vector data between file formats.

  This is the equivalent of the ogr2ogr utility.

  GDALVectorTranslateOptions* must be allocated and freed with GDALVectorTranslateOptionsNew() and GDALVectorTranslateOptionsFree() respectively. pszDest and hDstDS cannot be used at the same time.

  Since

    GDAL 2.1

  Parameters

    - pszDest – the destination dataset path or NULL.

    - hDstDS – the destination dataset or NULL.

    - nSrcCount – the number of input datasets (only 1 supported currently)

    - pahSrcDS – the list of input datasets.

    - psOptionsIn – the options struct returned by GDALVectorTranslateOptionsNew() or NULL.

    - pbUsageError – pointer to a integer output variable to store if any usage error has occurred, or NULL.

  Returns

    the output dataset (new dataset that must be closed using GDALClose(), or hDstDS is not NULL) or NULL in case of error.

GDALDEMProcessingOptions *GDALDEMProcessingOptionsNew(char **papszArgv, GDALDEMProcessingOptionsForBinary *psOptionsForBinary)

  Allocates a GDALDEMProcessingOptions struct.

  Since

    GDAL 2.1

  Parameters

    - papszArgv – NULL terminated list of options (potentially including filename and open options too), or NULL. The accepted options are the ones of the gdaldem utility.

    - psOptionsForBinary – (output) may be NULL (and should generally be NULL), otherwise (gdal_translate_bin.cpp use case) must be allocated with GDALDEMProcessingOptionsForBinaryNew() prior to this function. Will be filled with potentially present filename, open options,…

  Returns

    pointer to the allocated GDALDEMProcessingOptions struct. Must be freed with GDALDEMProcessingOptionsFree().

void GDALDEMProcessingOptionsFree(GDALDEMProcessingOptions *psOptions)

  Frees the GDALDEMProcessingOptions struct.

  Since

    GDAL 2.1

  Parameters

    psOptions – the options struct for GDALDEMProcessing().

void GDALDEMProcessingOptionsSetProgress(GDALDEMProcessingOptions *psOptions, GDALProgressFunc pfnProgress, void *pProgressData)

  Set a progress function.

  Since

    GDAL 2.1

  Parameters

    - psOptions – the options struct for GDALDEMProcessing().

    - pfnProgress – the progress callback.

    - pProgressData – the user data for the progress callback.

GDALDatasetH GDALDEMProcessing(const char *pszDestFilename, GDALDatasetH hSrcDataset, const char *pszProcessing, const char *pszColorFilename, const GDALDEMProcessingOptions *psOptions, int *pbUsageError)

  Apply a DEM processing.

  This is the equivalent of the gdaldem utility.

  GDALDEMProcessingOptions* must be allocated and freed with GDALDEMProcessingOptionsNew() and GDALDEMProcessingOptionsFree() respectively.

  Since

    GDAL 2.1

  Parameters

    - pszDest – the destination dataset path.

    - hSrcDataset – the source dataset handle.

    - pszProcessing – the processing to apply (one of “hillshade”, “slope”, “aspect”, “color-relief”, “TRI”, “TPI”, “Roughness”)

    - pszColorFilename – color file (mandatory for “color-relief” processing, should be NULL otherwise)

    - psOptionsIn – the options struct returned by GDALDEMProcessingOptionsNew() or NULL.

    - pbUsageError – pointer to a integer output variable to store if any usage error has occurred or NULL.

  Returns

    the output dataset (new dataset that must be closed using GDALClose()) or NULL in case of error.

GDALNearblackOptions *GDALNearblackOptionsNew(char **papszArgv, GDALNearblackOptionsForBinary *psOptionsForBinary)

  Allocates a GDALNearblackOptions struct.

  Since

    GDAL 2.1

  Parameters

    - papszArgv – NULL terminated list of options (potentially including filename and open options too), or NULL. The accepted options are the ones of the nearblack utility.

    - psOptionsForBinary – (output) may be NULL (and should generally be NULL), otherwise (gdal_translate_bin.cpp use case) must be allocated with GDALNearblackOptionsForBinaryNew() prior to this function. Will be filled with potentially present filename, open options,…

  Returns

    pointer to the allocated GDALNearblackOptions struct. Must be freed with GDALNearblackOptionsFree().

void GDALNearblackOptionsFree(GDALNearblackOptions *psOptions)

  Frees the GDALNearblackOptions struct.

  Since

    GDAL 2.1

  Parameters

    psOptions – the options struct for GDALNearblack().

void GDALNearblackOptionsSetProgress(GDALNearblackOptions *psOptions, GDALProgressFunc pfnProgress, void *pProgressData)

  Set a progress function.

  Since

    GDAL 2.1

  Parameters

    - psOptions – the options struct for GDALNearblack().

    - pfnProgress – the progress callback.

    - pProgressData – the user data for the progress callback.

GDALDatasetH GDALNearblack(const char *pszDest, GDALDatasetH hDstDS, GDALDatasetH hSrcDS, const GDALNearblackOptions *psOptions, int *pbUsageError)

  Convert nearly black/white borders to exact value.

  This is the equivalent of the nearblack utility.

  GDALNearblackOptions* must be allocated and freed with GDALNearblackOptionsNew() and GDALNearblackOptionsFree() respectively. pszDest and hDstDS cannot be used at the same time.

  In-place update (i.e. hDstDS == hSrcDataset) is possible for formats that support it, and if the dataset is opened in update mode.

  Since

    GDAL 2.1

  Parameters

    - pszDest – the destination dataset path or NULL.

    - hDstDS – the destination dataset or NULL. Might be equal to hSrcDataset.

    - hSrcDataset – the source dataset handle.

    - psOptionsIn – the options struct returned by GDALNearblackOptionsNew() or NULL.

    - pbUsageError – pointer to a integer output variable to store if any usage error has occurred or NULL.

  Returns

    the output dataset (new dataset that must be closed using GDALClose(), or hDstDS when it is not NULL) or NULL in case of error.

GDALGridOptions *GDALGridOptionsNew(char **papszArgv, GDALGridOptionsForBinary *psOptionsForBinary)

  Allocates a GDALGridOptions struct.

  Since

    GDAL 2.1

  Parameters

    - papszArgv – NULL terminated list of options (potentially including filename and open options too), or NULL. The accepted options are the ones of the gdal_translate utility.

    - psOptionsForBinary – (output) may be NULL (and should generally be NULL), otherwise (gdal_translate_bin.cpp use case) must be allocated with GDALGridOptionsForBinaryNew() prior to this function. Will be filled with potentially present filename, open options,…

  Returns

    pointer to the allocated GDALGridOptions struct. Must be freed with GDALGridOptionsFree().

void GDALGridOptionsFree(GDALGridOptions *psOptions)

  Frees the GDALGridOptions struct.

  Since

    GDAL 2.1

  Parameters

    psOptions – the options struct for GDALGrid().

void GDALGridOptionsSetProgress(GDALGridOptions *psOptions, GDALProgressFunc pfnProgress, void *pProgressData)

  Set a progress function.

  Since

    GDAL 2.1

  Parameters

    - psOptions – the options struct for GDALGrid().

    - pfnProgress – the progress callback.

    - pProgressData – the user data for the progress callback.

GDALDatasetH GDALGrid(const char *pszDest, GDALDatasetH hSrcDS, const GDALGridOptions *psOptions, int *pbUsageError)

  Create raster from the scattered data.

  This is the equivalent of the gdal_grid utility.

  GDALGridOptions* must be allocated and freed with GDALGridOptionsNew() and GDALGridOptionsFree() respectively.

  Since

    GDAL 2.1

  Parameters

    - pszDest – the destination dataset path.

    - hSrcDataset – the source dataset handle.

    - psOptionsIn – the options struct returned by GDALGridOptionsNew() or NULL.

    - pbUsageError – pointer to a integer output variable to store if any usage error has occurred or NULL.

  Returns

    the output dataset (new dataset that must be closed using GDALClose()) or NULL in case of error.

GDALRasterizeOptions *GDALRasterizeOptionsNew(char **papszArgv, GDALRasterizeOptionsForBinary *psOptionsForBinary)

  Allocates a GDALRasterizeOptions struct.

  Since

    GDAL 2.1

  Parameters

    - papszArgv – NULL terminated list of options (potentially including filename and open options too), or NULL. The accepted options are the ones of the gdal_rasterize utility.

    - psOptionsForBinary – (output) may be NULL (and should generally be NULL), otherwise (gdal_translate_bin.cpp use case) must be allocated with GDALRasterizeOptionsForBinaryNew() prior to this function. Will be filled with potentially present filename, open options,…

  Returns

    pointer to the allocated GDALRasterizeOptions struct. Must be freed with GDALRasterizeOptionsFree().

void GDALRasterizeOptionsFree(GDALRasterizeOptions *psOptions)

  Frees the GDALRasterizeOptions struct.

  Since

    GDAL 2.1

  Parameters

    psOptions – the options struct for GDALRasterize().

void GDALRasterizeOptionsSetProgress(GDALRasterizeOptions *psOptions, GDALProgressFunc pfnProgress, void *pProgressData)

  Set a progress function.

  Since

    GDAL 2.1

  Parameters

    - psOptions – the options struct for GDALRasterize().

    - pfnProgress – the progress callback.

    - pProgressData – the user data for the progress callback.

GDALDatasetH GDALRasterize(const char *pszDest, GDALDatasetH hDstDS, GDALDatasetH hSrcDS, const GDALRasterizeOptions *psOptions, int *pbUsageError)

  Burns vector geometries into a raster.

  This is the equivalent of the gdal_rasterize utility.

  GDALRasterizeOptions* must be allocated and freed with GDALRasterizeOptionsNew() and GDALRasterizeOptionsFree() respectively. pszDest and hDstDS cannot be used at the same time.

  Since

    GDAL 2.1

  Parameters

    - pszDest – the destination dataset path or NULL.

    - hDstDS – the destination dataset or NULL.

    - hSrcDataset – the source dataset handle.

    - psOptionsIn – the options struct returned by GDALRasterizeOptionsNew() or NULL.

    - pbUsageError – pointer to a integer output variable to store if any usage error has occurred or NULL.

  Returns

    the output dataset (new dataset that must be closed using GDALClose(), or hDstDS is not NULL) or NULL in case of error.

GDALBuildVRTOptions *GDALBuildVRTOptionsNew(char **papszArgv, GDALBuildVRTOptionsForBinary *psOptionsForBinary)

  Allocates a GDALBuildVRTOptions struct.

  Since

    GDAL 2.1

  Parameters

    - papszArgv – NULL terminated list of options (potentially including filename and open options too), or NULL. The accepted options are the ones of the gdalbuildvrt utility.

    - psOptionsForBinary – (output) may be NULL (and should generally be NULL), otherwise (gdal_translate_bin.cpp use case) must be allocated with GDALBuildVRTOptionsForBinaryNew() prior to this function. Will be filled with potentially present filename, open options,…

  Returns

    pointer to the allocated GDALBuildVRTOptions struct. Must be freed with GDALBuildVRTOptionsFree().

void GDALBuildVRTOptionsFree(GDALBuildVRTOptions *psOptions)

  Frees the GDALBuildVRTOptions struct.

  Since

    GDAL 2.1

  Parameters

    psOptions – the options struct for GDALBuildVRT().

void GDALBuildVRTOptionsSetProgress(GDALBuildVRTOptions *psOptions, GDALProgressFunc pfnProgress, void *pProgressData)

  Set a progress function.

  Since

    GDAL 2.1

  Parameters

    - psOptions – the options struct for GDALBuildVRT().

    - pfnProgress – the progress callback.

    - pProgressData – the user data for the progress callback.

GDALDatasetH GDALBuildVRT(const char *pszDest, int nSrcCount, GDALDatasetH *pahSrcDS, const char *const *papszSrcDSNames, const GDALBuildVRTOptions *psOptions, int *pbUsageError)

  Build a VRT from a list of datasets.

  This is the equivalent of the gdalbuildvrt utility.

  GDALBuildVRTOptions* must be allocated and freed with GDALBuildVRTOptionsNew() and GDALBuildVRTOptionsFree() respectively. pahSrcDS and papszSrcDSNames cannot be used at the same time.

  Since

    GDAL 2.1

  Parameters

    - pszDest – the destination dataset path.

    - nSrcCount – the number of input datasets.

    - pahSrcDS – the list of input datasets (or NULL, exclusive with papszSrcDSNames)

    - papszSrcDSNames – the list of input dataset names (or NULL, exclusive with pahSrcDS)

    - psOptionsIn – the options struct returned by GDALBuildVRTOptionsNew() or NULL.

    - pbUsageError – pointer to a integer output variable to store if any usage error has occurred.

  Returns

    the output dataset (new dataset that must be closed using GDALClose()) or NULL in case of error.

GDALMultiDimInfoOptions *GDALMultiDimInfoOptionsNew(char **papszArgv, GDALMultiDimInfoOptionsForBinary *psOptionsForBinary)

  Allocates a GDALMultiDimInfo struct.

  Since

    GDAL 3.1

  Parameters

    - papszArgv – NULL terminated list of options (potentially including filename and open options too), or NULL. The accepted options are the ones of the gdalmdiminfo utility.

    - psOptionsForBinary – should be nullptr, unless called from gdalmultidiminfo_bin.cpp

  Returns

    pointer to the allocated GDALMultiDimInfoOptions struct. Must be freed with GDALMultiDimInfoOptionsFree().

void GDALMultiDimInfoOptionsFree(GDALMultiDimInfoOptions *psOptions)

  Frees the GDALMultiDimInfoOptions struct.

  Since

    GDAL 3.1

  Parameters

    psOptions – the options struct for GDALMultiDimInfo().

char *GDALMultiDimInfo(GDALDatasetH hDataset, const GDALMultiDimInfoOptions *psOptions)

  Lists various information about a GDAL multidimensional dataset.

  This is the equivalent of the gdalmdiminfoutility.

  GDALMultiDimInfoOptions* must be allocated and freed with GDALMultiDimInfoOptionsNew() and GDALMultiDimInfoOptionsFree() respectively.

  Since

    GDAL 3.1

  Parameters

    - hDataset – the dataset handle.

    - psOptionsIn – the options structure returned by GDALMultiDimInfoOptionsNew() or NULL.

  Returns

    string corresponding to the information about the raster dataset (must be freed with CPLFree()), or NULL in case of error.

GDALMultiDimTranslateOptions *GDALMultiDimTranslateOptionsNew(char **papszArgv, GDALMultiDimTranslateOptionsForBinary *psOptionsForBinary)

  Allocates a GDALMultiDimTranslateOptions struct.

  Since

    GDAL 3.1

  Parameters

    - papszArgv – NULL terminated list of options (potentially including filename and open options too), or NULL. The accepted options are the ones of the gdalmdimtranslate utility.

    - psOptionsForBinary – should be nullptr, unless called from gdalmultidimtranslate_bin.cpp

  Returns

    pointer to the allocated GDALMultiDimTranslateOptions struct. Must be freed with GDALMultiDimTranslateOptionsFree().

void GDALMultiDimTranslateOptionsFree(GDALMultiDimTranslateOptions *psOptions)

  Frees the GDALMultiDimTranslateOptions struct.

  Since

    GDAL 3.1

  Parameters

    psOptions – the options struct for GDALMultiDimTranslate().

void GDALMultiDimTranslateOptionsSetProgress(GDALMultiDimTranslateOptions *psOptions, GDALProgressFunc pfnProgress, void *pProgressData)

  Set a progress function.

  Since

    GDAL 3.1

  Parameters

    - psOptions – the options struct for GDALMultiDimTranslate().

    - pfnProgress – the progress callback.

    - pProgressData – the user data for the progress callback.

GDALDatasetH GDALMultiDimTranslate(const char *pszDest, GDALDatasetH hDstDataset, int nSrcCount, GDALDatasetH *pahSrcDS, const GDALMultiDimTranslateOptions *psOptions, int *pbUsageError)

  Converts raster data between different formats.

  This is the equivalent of the gdalmdimtranslate utility.

  GDALMultiDimTranslateOptions* must be allocated and freed with GDALMultiDimTranslateOptionsNew() and GDALMultiDimTranslateOptionsFree() respectively. pszDest and hDstDS cannot be used at the same time.

  Since

    GDAL 3.1

  Parameters

    - pszDest – the destination dataset path or NULL.

    - hDstDS – the destination dataset or NULL.

    - nSrcCount – the number of input datasets.

    - pahSrcDS – the list of input datasets.

    - psOptions – the options struct returned by GDALMultiDimTranslateOptionsNew() or NULL.

    - pbUsageError – pointer to a integer output variable to store if any usage error has occurred or NULL.

  Returns

    the output dataset (new dataset that must be closed using GDALClose(), or hDstDS is not NULL) or NULL in case of error.