Reading and saving raster data#
For reading raster data (DEMs) from files (GeoTIFFs) to a numpy array we suggest using the rvt.default
module (which uses gdal
).
You can also use rasterio
, gdal
or any other module for reading and saving geo rasters.
Reading raster data#
Example
To read a raster with rvt.default
:
# import the module
import rvt.default
# change this to the path to your GeoTIFF
dem_path = r"C:/data/dem.tif"
# call the function rvt.default.get_raster_arr() to return a dictionary with keys:
# array (contains numpy array of raster),
# resolution (contains the tuple(x resolution, y resolution)),
# no_data (contains the value of no_data)
dem_dict = rvt.default.get_raster_arr(dem_path)
# numpy array
dem_arr = dem_dict["array"]
# resolution tuple (x-direction resolution, y-direction resolution)
dem_resolution_tuple = dem_dict["resolution"]
# first element of the resolution tuple (the x-direction resolution)
dem_x_resolution = dem_resolution_tuple[0]
# second element of resolution tuple (the y-direction resolution)
dem_y_resolution = dem_resolution_tuple[1]
# the value of no_data stored in DEM
dem_no_data = dem_dict["no_data"]
Saving raster data#
Example
Let’s say we wanted to use a DEM stored in dem_path
to compute a hillshade (using rvt.vis
) stored in hillshade_arr
, and then save this hillshade visualization to hillshade_path
:
# import the required modules
import rvt.default
import numpy as np
# call the function rvt.default.save_raster() and define the function parameters:
# src_raster_path: source raster path (dem_path) to copy metadata,
# out_raster_path: path to new file (visualization tif),
# out_raster_arr: vizualization numpy array,
# no_data: value of no_data (visualizations return no data as np.nan)
rvt.default.save_raster(
src_raster_path=dem_path,
out_raster_path=hillshade_path,
out_raster_arr=hillshade_arr,
no_data=np.nan
)
See also
Find out more about defining default values in rvt.default.