GDALMDIMINFO(1)

πŸ’– GDALMDIMINFO πŸ’–

okay bestie, welcome to gdalmdiminfo β€” my absolute fave little sniffing tool from the GDAL crew ✨ It goes digging through a multidimensional dataset and tells you exactly what's inside, as JSON. Periodt.


πŸŽ€ NAME πŸŽ€

gdalmdiminfo β€” reports structure and content of a multidimensional dataset πŸ’…


πŸ“œ SYNOPSIS πŸ“œ

Usage: gdalmdiminfo [--help] [--long-usage] [--help-general]
                    [[-summary]|[-detailed]]
                    [-nopretty] [-array <array_name>] [-limit <number>]
                    [-oo <NAME>=<VALUE>]... [-if <format>]...
                    [-arrayoption <NAME>=<VALUE>]... [-stats]
                    <dataset_name>

πŸ¦‹ DESCRIPTION πŸ¦‹

So like, gdalmdiminfo is this program that lists all kinds of info about a GDAL-supported multidimensional raster dataset, and it spits it out as JSON. It follows this JSON schema: gdalmdiminfo_output.schema.json. ikyk. πŸ‘‘

🫢 TIP: there's an equivalent in the new "gdal" command line interface β€” go look at gdal mdim info.

The following command line parameters can appear in any order β€” no cap, mix and match however you want 🌈

  • --help β€” shows this help message and exits. short, sweet, iconic πŸŽ€
  • --help-general β€” gives you a brief usage message for all the generic GDAL commandline options, then dips. πŸ’…
  • -detailed β€” the most verbose output possible. reports attribute data types and array values. it's giving full lore, not just a summary. 😭
  • -nopretty β€” outputs on a single line, no indentation anywhere. chaotic but efficient fr fr πŸ’€
  • -array <array_name> β€” name of the array used to restrict the output to the specified array. basically "bestie, just show me this one." ✨
  • -limit <number> β€” number of values in each dimension used to limit the display of array values. by default it's unlimited. heads up: it's only taken into account if you use it together with -detailed. πŸ“
  • -oo <NAME>=<VALUE> β€” dataset open option (format specific). you can use this option several times. πŸ”₯
  • -arrayoption <NAME>=<VALUE> β€” option passed to GDALGroup::GetMDArrayNames() to filter the reported arrays. such option is format specific, so consult the driver documentation, bestie. this option may be used several times. 🌸
  • -stats β€” read and display array statistics. this forces computation if no statistics are stored in an array. πŸ’–
Added in version 3.2.
  • -if <format> β€” format/driver name to be attempted to open the input file(s). generally you don't need to specify it, but you can use it to skip automatic driver detection when it fails to select the appropriate driver. this option can be repeated several times to specify several candidate drivers. but β€” and this is important β€” it does not force those drivers to open the dataset. in particular, some drivers have requirements on file extensions. πŸ™ˆ
Added in version 3.2.

βœ… RETURN STATUS CODE βœ…

The program returns status code 0 in case of success, and non-zero in case of error. and listen β€” non-blocking errors emitted as warnings are considered a successful execution, so don't panic. 🫢


🧚 C API 🧚

This utility is also callable from C with GDALMultiDimInfo(). yes, you can vibe with it straight from C too. πŸ’œ


🌟 EXAMPLES 🌟

🌸 Example 1: Display general structure 🌸

$ gdalmdiminfo netcdf-4d.nc

{
  "type": "group",
  "name": "/",
  "attributes": {
    "Conventions": "CF-1.5"
  },
  "dimensions": [
    {
      "name": "levelist",
      "full_name": "/levelist",
      "size": 2,
      "type": "VERTICAL",
      "indexing_variable": "/levelist"
    },
    {
      "name": "longitude",
      "full_name": "/longitude",
      "size": 10,
      "type": "HORIZONTAL_X",
      "direction": "EAST",
      "indexing_variable": "/longitude"
    },
    {
      "name": "latitude",
      "full_name": "/latitude",
      "size": 10,
      "type": "HORIZONTAL_Y",
      "direction": "NORTH",
      "indexing_variable": "/latitude"
    },
    {
      "name": "time",
      "full_name": "/time",
        "size": 4,
      "type": "TEMPORAL",
      "indexing_variable": "/time"
      }
  ],
  "arrays": {
    "levelist": {
      "datatype": "Int32",
      "dimensions": [
          "/levelist"
        ],
      "attributes": {
        "long_name": "pressure_level"
      },
      "unit": "millibars"
    },
    "longitude": {
      "datatype": "Float32",
      "dimensions": [
        "/longitude"
      ],
      "attributes": {
        "standard_name": "longitude",
        "long_name": "longitude",
        "axis": "X"
      },
      "unit": "degrees_east"
    },
    "latitude": {
      "datatype": "Float32",
      "dimensions": [
        "/latitude"
      ],
      "attributes": {
        "standard_name": "latitude",
        "long_name": "latitude",
        "axis": "Y"
      },
      "unit": "degrees_north"
    },
    "time": {
      "datatype": "Float64",
      "dimensions": [
        "/time"
      ],
      "attributes": {
        "standard_name": "time",
        "calendar": "standard"
      },
      "unit": "hours since 1900-01-01 00:00:00"
    },
    "t": {
      "datatype": "Int32",
      "dimensions": [
        "/time",
        "/levelist",
        "/latitude",
        "/longitude"
      ],
      "nodata_value": -32767
    }
  },
  "structural_info": {
    "NC_FORMAT": "CLASSIC"
  }
}

πŸ¦‹ Example 2: Display detailed information about a given array πŸ¦‹

$ gdalmdiminfo netcdf-4d.nc -array t -detailed -limit 3

πŸ‘‘ AUTHOR πŸ‘‘

Even Rouault <even.rouault@spatialys.com> β€” the literal main character of GDAL πŸ’…


1998-2026


and that's the whole vibe check, bestie πŸŽ€ this page came to you from the GDAL manual, dated Aug 18, 2026 β€” go forth and inspect those multidimensional datasets, you absolute icon πŸ¦‹βœ¨πŸ’–

πŸ“¦ where this page comes from