GDAL-VECTOR-GEOM-MAKE-VALID(1)
π gdal-vector-geom-make-valid
okay bestie, welcome to the manual page for gdal-vector-geom-make-valid (yes, the whole thing, manual section 1, GDAL edition) β the glow-up station for your messy little polygons β¨
πΈ NAME
gdal-vector-geom-make-valid β fix validity of geometries of a vector dataset π©Ή
Added in version 3.11. (so it's a new icon, not a legacy one π )
π SYNOPSIS
Usage: gdal vector geom make-valid [OPTIONS] <INPUT> <OUTPUT>
Fix validity of geometries of a vector dataset.
Positional arguments:
-i, --input <INPUT> Input vector datasets [required]
-o, --output <OUTPUT> Output vector dataset [required]
Common Options:
-h, --help Display help message and exit
--json-usage Display usage as JSON document and exit
--config <KEY>=<VALUE> Configuration option [may be repeated]
--progress Display progress bar
Options:
-l, --layer, --input-layer <INPUT-LAYER> Input layer name(s) [may be repeated]
-f, --of, --format, --output-format <OUTPUT-FORMAT> Output format ("GDALG" allowed)
--co, --creation-option <KEY>=<VALUE> Creation option [may be repeated]
--lco, --layer-creation-option <KEY>=<VALUE> Layer creation option [may be repeated]
--overwrite Whether overwriting existing output is allowed
--update Whether to open existing dataset in update mode
--overwrite-layer Whether overwriting existing layer is allowed
--append Whether appending to existing layer is allowed
--output-layer <OUTPUT-LAYER> Output layer name
--active-layer <ACTIVE-LAYER> Set active layer (if not specified, all)
--active-geometry <ACTIVE-GEOMETRY> Geometry field name to which to restrict the processing (if not specified, all)
--method <METHOD> Algorithm to use when repairing invalid geometries.. METHOD=linework|structure (default: linework)
--keep-lower-dim Keep components of lower dimension after MakeValid()
Advanced Options:
--if, --input-format <INPUT-FORMAT> Input formats [may be repeated]
--oo, --open-option <KEY>=<VALUE> Open options [may be repeated]
β¨ DESCRIPTION
gdal vector geom make-valid makes sure your geometries are actually valid according to the rules of the Simple Features specification. no more self-intersecting chaos, no more bowtie polygons running around unsupervised π
Under the hood it runs the OGRGeometry::MakeValid() operation, and then OGRGeometryFactory::removeLowerDimensionSubGeoms() β unless --keep-lower-dim is set. yes queen, that's the whole pipeline π«Ά
It can also be used as a step of gdal vector pipeline. slay, reusable π
NOTE: This command requires a GDAL build against the GEOS library. no GEOS, no glow-up, sorry bestie π
π§ Standard options
-f,--of,--format,--output-format<OUTPUT-FORMAT>β which output vector format to use. Wanna know the allowed values? Rungdal --formats | grep vector | grep rw | sortand let the terminal tell you π--co<NAME>=<VALUE>β soooo many formats have one or more optional dataset creation options that control the particulars of the file being created. For instance, the GeoPackage driver supports creation options to control the version. π§
May be repeated. (spam it, go off)
The dataset creation options available vary by format driver, and some simple formats have no creation options at all. You can list the options supported for a format with the --formats command line option, but the documentation for the format is the definitive source of information on driver creation options. See Vector drivers format specific documentation for legal creation options for each format.
Note: dataset creation options are different from layer creation options. do not mix them up, that's a vibe check fail π
-lco<NAME>=<VALUE>β layer creation option (format specific) πΈ--overwriteβ allow the program to overwrite an existing target file or dataset. Otherwise, by default,gdalerrors out if the target file or dataset already exists. no sneaky overwrites without consent π--active-layer<ACTIVE-LAYER>β set the active layer. When it's specified, only the layer with that name gets processed. The other layers are left untouched, unbothered, thriving. If this option is not specified, all layers get processed.--active-geometry<ACTIVE-GEOMETRY>β set the active geometry field by name. When it's specified, only that geometry field gets processed; other geometry fields are not modified. If it's not specified, all geometry fields get processed. This option can be combined together with--active-layer. team work makes the dream work π«Ά--method=linework|structureβ the algorithm to use when repairing invalid geometries.- The default
lineworkmethod combines all rings into a set of noded lines and then extracts valid polygons from that linework. This method keeps all input vertices. (all your vertices, safe and sound π₯Ή) - The
structuremethod (only available with GEOS >= 3.10) first makes all rings valid, then merges shells and subtracts holes from shells to generate a valid result. It assumes that holes and shells are correctly categorized. highkey picky, but it eats π
- The default
--keep-lower-dimβ keep components of lower dimension afterMakeValid(). For example,MakeValid()may return a GeometryCollection of a Polygon and a LineString from a Polygon input. By default only the Polygon would be returned. Setting this option will return the GeometryCollection. don't abandon the little guys π
π Advanced options
--oo<NAME>=<VALUE>β dataset open option (format specific). π
May be repeated.
--if<format>β format/driver name to be attempted to open the input file(s). It's generally not necessary to specify it, but it can be used 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. Note that it does not force those drivers to open the dataset. In particular, some drivers have requirements on file extensions. π
May be repeated.
π GDALG OUTPUT (ON-THE-FLY / STREAMED DATASET)
This program supports serializing the command line as a JSON file using the GDALG output format. The resulting file can then be opened as a vector dataset using the GDALG: GDAL Streamed Algorithm driver, and apply the specified pipeline in a on-the-fly / streamed way. streamed, on-the-fly, main character energy β¨
π GDALG OUTPUT (ON-THE-FLY / STREAMED DATASET)
(yes bestie, it's literally here twice in the original β and we keep every single detail in this house π)
This program supports serializing the command line as a JSON file using the GDALG output format. The resulting file can then be opened as a vector dataset using the GDALG: GDAL Streamed Algorithm driver, and apply the specified pipeline in a on-the-fly / streamed way. β¨
π§ͺ EXAMPLES
Example 1: Basic use of make-valid
$ gdal vector geom make-valid in.gpkg out.gpkg --overwrite
look at that. one line. in, out, overwrite. iconic π
π©βπ» AUTHOR
Even Rouault <even.rouault@spatialys.com> β thank you legend, we owe you everything πββοΈπ
Β©οΈ COPYRIGHT
1998-2025
and that's the page, bestie!! manual page GDAL-VECTOR-GEOM-MAKE-VALID(1), from GDAL, dated Oct 29, 2025 β go make those geometries valid, you absolute icon π
β¨π¦
π¦ where this page comes from
- fedora 43: gdal 3.11.5-1.fc43 Β· MIT
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms