# 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.

  Return

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

  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…

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.

  Return

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

  Since

    GDAL 2.1

  Parameters

    - `hDataset`: the dataset handle.

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

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

  Allocates a GDALTranslateOptions struct.

  Return

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

  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,…

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.

  Return

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

  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.

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

  Allocates a GDALWarpAppOptions struct.

  Return

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

  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,…

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.

  Return

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

  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.

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

  allocates a GDALVectorTranslateOptions struct.

  Return

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

  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,…

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.

  Return

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

  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.

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

  Allocates a GDALDEMProcessingOptions struct.

  Return

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

  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,…

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.

  Return

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

  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.

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

  Allocates a GDALNearblackOptions struct.

  Return

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

  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,…

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.

  Return

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

  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.

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

  Allocates a GDALGridOptions struct.

  Return

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

  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,…

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.

  Return

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

  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.

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

  Allocates a GDALRasterizeOptions struct.

  Return

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

  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,…

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.

  Return

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

  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.

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

  Allocates a GDALBuildVRTOptions struct.

  Return

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

  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,…

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.

  Return

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

  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.

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

  Allocates a GDALMultiDimInfo struct.

  Return

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

  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`: (output) may be NULL (and should generally be NULL), otherwise (gdalmultidiminfo_bin.cpp use case) must be allocated with GDALMultiDimInfoOptionsForBinaryNew() prior to this function. Will be filled with potentially present filename, open options, subdataset number…

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.

  Return

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

  Since

    GDAL 3.1

  Parameters

    - `hDataset`: the dataset handle.

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

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

  Allocates a GDALMultiDimTranslateOptions struct.

  Return

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

  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`: (output) may be NULL (and should generally be NULL), otherwise (gdalmultidimtranslate_bin.cpp use case) must be allocated with GDALTranslateOptionsForBinaryNew() prior to this function. Will be filled with potentially present filename, open options,…

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.

  Return

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

  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.