Note
Go to the end to download the full example code.
Rasterize a vector#
This example demonstrates the rasterizing of a vector using geoutils.Vector.rasterize().
We open a raster and vector.
import geoutils as gu
filename_rast = gu.examples.get_path("everest_landsat_b4")
filename_vect = gu.examples.get_path("everest_rgi_outlines")
rast = gu.Raster(filename_rast)
vect = gu.Vector(filename_vect)
Let’s plot the raster and vector.

First option: using the raster as a reference to match, we rasterize the vector in any projection and georeferenced grid. We simply have to pass the
Raster as single argument to rasterize(). See Match-reference functionality for more details.
vect_rasterized = vect.rasterize(rast)
vect_rasterized.plot(ax="new", cmap="viridis")

By default, rasterize() will burn the index of the Vector’s features in their geometry. We can specify the in_value to burn a
single value, or any iterable with the same length as there are features in the Vector. An out_value can be passed to burn
outside the geometries.
vect_rasterized = vect.rasterize(rast, in_value=1)
vect_rasterized.plot(ax="new")

Note
If the rasterized in_value is fixed to 1 and out_value to 0 (default), then rasterize() is creating a boolean mask.
This is equivalent to using create_mask(), and will return a boolean Raster.
Second option: we can pass any georeferencing parameter to rasterize(). Any unpassed attribute will be deduced from the
Vector itself, except from the shape to rasterize that will default to 1000 x 1000.
# vect_rasterized = vect.rasterize(xres=500)
# vect_rasterized.plot()
Important
The shape or the res are the only unknown arguments to rasterize a Vector,
one or the other can be passed.
Total running time of the script: (0 minutes 1.692 seconds)