From b61ef47e4d37b65a075576c4c16e4281a4579204 Mon Sep 17 00:00:00 2001 From: kbonney Date: Thu, 10 Oct 2024 15:24:47 -0400 Subject: [PATCH] update gis to include tanks, add elevations to model, and mention hazard datasets. Figure filename changed. --- documentation/figures/assign_elevations.png | Bin 42723 -> 0 bytes documentation/figures/sample_elevations.png | Bin 0 -> 43458 bytes documentation/gis.rst | 62 ++++++++++++++------ 3 files changed, 44 insertions(+), 18 deletions(-) delete mode 100644 documentation/figures/assign_elevations.png create mode 100644 documentation/figures/sample_elevations.png diff --git a/documentation/figures/assign_elevations.png b/documentation/figures/assign_elevations.png deleted file mode 100644 index 847da7f1aca476bba6c018f552c6f0747177a046..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 42723 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 diff --git a/documentation/figures/sample_elevations.png b/documentation/figures/sample_elevations.png new file mode 100644 index 0000000000000000000000000000000000000000..bc67cd6fd384d08170c7a309c5090e7264062b09 GIT binary patch literal 43458 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 NfU>$$@()J8{U5L$6X*Z{ literal 0 HcmV?d00001 diff --git a/documentation/gis.rst b/documentation/gis.rst index afb0e4d1..78a1de94 100644 --- a/documentation/gis.rst +++ b/documentation/gis.rst @@ -35,7 +35,7 @@ :hide: :skipif: gpd is None or rasterio is None - >>> elevation_data_path = examples_dir+'/data/elevation.tif' + >>> elevation_data_path = examples_dir+'/data/Net1_elevation_data.tif' .. _geospatial: @@ -833,10 +833,10 @@ the census tracts (polygons) is different than the junction and pipe attributes. Sample raster at points geometries -------------------------------------- -The :class:`~wntr.gis.sample_raster` function can be used to query a raster file at point geometries, +The :class:`~wntr.gis.sample_raster` function can be used to sample a raster file at point geometries, such as the nodes of a water network. A common use case for this function is to assign elevation to the -nodes of a water network, however other geospatial data such as climate projections could be sampled -using this function. +nodes of a water network, however other geospatial information such as climate or hazard data could be sampled +using this function. The network file, Net1.inp, in EPSG:4326 CRS is used in the example below. The raster data in the GeoTIFF format is also in EPSG:4326 CRS. @@ -852,16 +852,16 @@ Sample elevations at junctions ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Elevation is an essential attribute for accurate simulation of pressure in a water network and is -commonly provided in GeoTIFF (.tif) files. The following example shows how such files can be sampled at -the junctions of a network. +commonly provided in GeoTIFF (.tif) files. The following example shows how such files can be sampled +and assigned to the junctions and tanks of a network. .. doctest:: :skipif: gpd is None or rasterio is None + >>> elevation_data_path = 'data/Net1_elevation_data.tif' # doctest: +SKIP >>> junctions = wn_gis.junctions - >>> elevation_data_path = 'data/elevation.tif' # doctest: +SKIP - >>> junctions["elevation"] = wntr.gis.sample_raster(junctions, elevation_data_path) - >>> print(junctions["elevation"]) + >>> junction_elevations = wntr.gis.sample_raster(junctions, elevation_data_path) + >>> print(junction_elevations) name 10 1400.0 11 2100.0 @@ -872,17 +872,43 @@ the junctions of a network. 23 2800.0 31 300.0 32 500.0 - Name: elevation, dtype: float64 + dtype: float64 + +.. doctest:: + :skipif: gpd is None or rasterio is None + + >>> tanks = wn_gis.tanks + >>> tank_elevations = wntr.gis.sample_raster(tanks, elevation_data_path) + >>> print(tank_elevations) + name + 2 4500.0 + dtype: float64 + +To use these elevations for hydraulic simulations, +they need to be added to the water network object. + +.. doctest:: + :skipif: gpd is None or rasterio is None + + >>> for junction_name in wn.junction_name_list: + ... junction = wn.get_node(junction_name) + ... junction.elevation = junction_elevations[junction_name] + +.. doctest:: + :skipif: gpd is None or rasterio is None + + >>> for tank_name in wn.tank_name_list: + ... tank = wn.get_node(tank_name) + ... tank.elevation = tank_elevations[tank_name] The sampled elevations can be plotted as follows. The -resulting :numref:`fig-sample-elevations` illustrates Net1 with the elevations queried from the raster file. -Note that to use these elevations in a simulation, they would need to be added to the water network object directly. -Tanks, in addition to junctions, would need their elevations updated. +resulting :numref:`fig-sample-elevations` illustrates Net1 with the elevations +sampled from the raster file. .. doctest:: :skipif: gpd is None or rasterio is None - >>> ax = wntr.graphics.plot_network(wn, node_attribute=junctions["elevation"], link_width=1.5, + >>> ax = wntr.graphics.plot_network(wn, node_attribute="elevation", link_width=1.5, ... node_size=40, node_colorbar_label='Raster Elevation') .. doctest:: @@ -891,12 +917,12 @@ Tanks, in addition to junctions, would need their elevations updated. >>> bounds = ax.axis('equal') >>> plt.tight_layout() - >>> plt.savefig('assign_elevations.png', dpi=300) + >>> plt.savefig('sample_elevations.png', dpi=300) >>> plt.close() .. _fig-sample-elevations: -.. figure:: figures/assign_elevations.png +.. figure:: figures/sample_elevations.png :width: 640 - :alt: Net1 junctions with elevations from raster. + :alt: Net1 with elevations sampled from raster. - Net1 junctions with elevations assigned from raster. + Net1 with elevations sampled from raster.