Polygonize a raster

Polygonize a raster#

This example demonstrates the polygonizing of a raster using geoutils.Raster.polygonize() and geoutils.Mask.polygonize().

We open a raster.

import geoutils as gu

filename_rast = gu.examples.get_path("exploradores_aster_dem")
rast = gu.Raster(filename_rast)
rast = rast.crop([rast.bounds.left, rast.bounds.bottom, rast.bounds.left + 5000, rast.bounds.bottom + 5000])

Let’s plot the raster.

rast.plot(cmap="terrain")
polygonize

We polygonize the raster.

polygonize

By default, polygonize() will try to polygonize target all valid values. Instead, one can specify discrete values to target by passing a number or list, or a range of values by passing a tuple.

# A range of values to polygonize
rast_polygonized = rast.polygonize((2500, 3000))
rast_polygonized.plot(ax="new")
polygonize

An even simpler way to do this is to compute a Mask() to polygonize using logical comparisons on the Raster().

rast_polygonized = ((2500 < rast) & (rast < 3000)).polygonize()
rast_polygonized.plot(ax="new")
polygonize

Note

See Support of pythonic operators for more details on casting to Mask().

Total running time of the script: (0 minutes 6.332 seconds)

Gallery generated by Sphinx-Gallery