Getting Started

Packages

[1]:
# Resilient Plotter Class
from resilientplotterclass import rpclass

# Supporting packages
import geopandas as gpd
import os
import rioxarray as rxr
import xugrid as xu

Guidelines

[2]:
# Settings guidelines
rpc = rpclass("basic_guide", cartopy=True)

# Show guidelines
rpc.show_guidelines()

# Get coordinate reference system (CRS) and vertical reference level (VRL) from guidelines
crs = rpc.get_guidelines()["general"]["crs"]
vrl = rpc.get_guidelines()["general"]["vrl"]
Guidelines
metadata
title: Basic guide guidelines
date: 2025-05-01
author(s): Ruben White
general
crs: EPSG:28992
vrl: MSL
xy_unit: None
cartopy_bounds: [135000, 585000, 170000, 610000]
cartopy_features: ['land', 'ocean', 'lakes', 'rivers', 'coastline', 'borders', 'states']
data
geom
data_style
default
pcolormesh
cmap: bathymetry
center: False
zorder: 1
append_axes_kwargs
position: right
size: 0.2
pad: 0.2
imshow
cmap: bathymetry
center: False
zorder: 1
append_axes_kwargs
position: right
size: 0.2
pad: 0.2
scatter
edgecolor: none
cmap: bathymetry
zorder: 1
append_axes_kwargs
position: right
size: 0.2
pad: 0.2
contourf
cmap: bathymetry
center: False
zorder: 1
append_axes_kwargs
position: right
size: 0.2
pad: 0.2
contour
cmap: bathymetry_contour
center: False
zorder: 1
append_axes_kwargs
position: right
size: 0.2
pad: 0.2
quiver
add_guide: False
color: black
scale_units: xy
angles: xy
pivot: tail
zorder: 1.5
append_axes_kwargs
position: right
size: 0.2
pad: 0.2
streamplot
add_guide: False
color: black
zorder: 1.5
append_axes_kwargs
position: right
size: 0.2
pad: 0.2
image
imshow
zorder: 1
rgb: band
bathymetry
pcolormesh
cmap: bathymetry
center: False
zorder: 1
cbar_kwargs
label: Bathymetry [mMSL]
append_axes_kwargs
position: right
size: 0.2
pad: 0.2
imshow
cmap: bathymetry
center: False
zorder: 1
cbar_kwargs
label: Bathymetry [mMSL]
append_axes_kwargs
position: right
size: 0.2
pad: 0.2
scatter
edgecolor: none
cmap: bathymetry
zorder: 1
cbar_kwargs
label: Bathymetry [mMSL|]
append_axes_kwargs
position: right
size: 0.2
pad: 0.2
contourf
cmap: bathymetry
center: False
zorder: 1
cbar_kwargs
label: Bathymetry [mMSL]
append_axes_kwargs
position: right
size: 0.2
pad: 0.2
contour
cmap: bathymetry_contour
center: False
zorder: 1
append_axes_kwargs
position: right
size: 0.2
pad: 0.2
bedforms
pcolormesh
cmap: bedforms
center: False
zorder: 1
cbar_kwargs
label: Bedform elevation [m]
append_axes_kwargs
position: right
size: 0.2
pad: 0.2
imshow
cmap: bedforms
center: False
zorder: 1
cbar_kwargs
label: Bedform elevation [m]
append_axes_kwargs
position: right
size: 0.2
pad: 0.2
scatter
edgecolor: none
cmap: bedforms
zorder: 1
cbar_kwargs
label: Bedform elevation [m]
append_axes_kwargs
position: right
size: 0.2
pad: 0.2
contourf
cmap: bedforms
center: False
zorder: 1
cbar_kwargs
label: Bedform elevation [m]
append_axes_kwargs
position: right
size: 0.2
pad: 0.2
contour
cmap: bedforms_contour
center: False
zorder: 1
append_axes_kwargs
position: right
size: 0.2
pad: 0.2
morphology
pcolormesh
cmap: morphology
center: False
zorder: 1
cbar_kwargs
label: Erosion/Sedimentation [m]
append_axes_kwargs
position: right
size: 0.2
pad: 0.2
imshow
cmap: morphology
center: False
zorder: 1
cbar_kwargs
label: Erosion/Sedimentation [m]
append_axes_kwargs
position: right
size: 0.2
pad: 0.2
scatter
edgecolor: none
cmap: morphology
zorder: 1
cbar_kwargs
label: Erosion/Sedimentation [m]
append_axes_kwargs
position: right
size: 0.2
pad: 0.2
contourf
cmap: morphology
center: False
zorder: 1
cbar_kwargs
label: Erosion/Sedimentation [m]
append_axes_kwargs
position: right
size: 0.2
pad: 0.2
contour
cmap: morphology_contour
center: False
zorder: 1
append_axes_kwargs
position: right
size: 0.2
pad: 0.2
flow_velocity
pcolormesh
cmap: other
center: False
zorder: 1
cbar_kwargs
label: Flow velocity [m/s]
append_axes_kwargs
position: right
size: 0.2
pad: 0.2
imshow
cmap: other
center: False
zorder: 1
cbar_kwargs
label: Flow velocity [m/s]
append_axes_kwargs
position: right
size: 0.2
pad: 0.2
scatter
edgecolor: none
cmap: other
zorder: 1
cbar_kwargs
label: Flow velocity [m/s]
append_axes_kwargs
position: right
size: 0.2
pad: 0.2
contourf
cmap: other
center: False
zorder: 1
cbar_kwargs
label: Flow velocity [m/s]
append_axes_kwargs
position: right
size: 0.2
pad: 0.2
contour
cmap: other_contour
center: False
zorder: 1
append_axes_kwargs
position: right
size: 0.2
pad: 0.2
flow_direction
pcolormesh
cmap: cet_CET_C8s
center: False
zorder: 1
cbar_kwargs
label: Flow direction [Degrees North]
append_axes_kwargs
position: right
size: 0.2
pad: 0.2
imshow
cmap: cet_CET_C8s
center: False
zorder: 1
cbar_kwargs
label: Flow direction [Degrees North]
append_axes_kwargs
position: right
size: 0.2
pad: 0.2
contourf
cmap: cet_CET_C8s
center: False
zorder: 1
cbar_kwargs
label: Flow direction [Degrees North]
append_axes_kwargs
position: right
size: 0.2
pad: 0.2
scatter
edgecolor: none
cmap: cet_CET_C8s
zorder: 1
cbar_kwargs
label: Flow direction [Degrees North]
append_axes_kwargs
position: right
size: 0.2
pad: 0.2
contour
cmap: cet_CET_C8s
center: False
zorder: 1
append_axes_kwargs
position: right
size: 0.2
pad: 0.2
quiver
add_guide: False
color: black
scale_units: xy
angles: xy
pivot: tail
zorder: 1.5
append_axes_kwargs
position: right
size: 0.2
pad: 0.2
streamplot
add_guide: False
color: black
zorder: 1.5
append_axes_kwargs
position: right
size: 0.2
pad: 0.2
wave_height
pcolormesh
cmap: other
center: False
zorder: 1
cbar_kwargs
label: Wave height [m]
append_axes_kwargs
position: right
size: 0.2
pad: 0.2
imshow
cmap: other
center: False
zorder: 1
cbar_kwargs
label: Wave height [m]
append_axes_kwargs
position: right
size: 0.2
pad: 0.2
scatter
edgecolor: none
cmap: other
zorder: 1
cbar_kwargs
label: Wave height [m]
append_axes_kwargs
position: right
size: 0.2
pad: 0.2
contourf
cmap: other
center: False
zorder: 1
cbar_kwargs
label: Wave height [m]
append_axes_kwargs
position: right
size: 0.2
pad: 0.2
contour
cmap: other_contour
center: False
zorder: 1
append_axes_kwargs
position: right
size: 0.2
pad: 0.2
wave_period
pcolormesh
cmap: other
center: False
zorder: 1
cbar_kwargs
label: Wave period [s]
append_axes_kwargs
position: right
size: 0.2
pad: 0.2
imshow
cmap: other
center: False
zorder: 1
cbar_kwargs
label: Wave period [s]
append_axes_kwargs
position: right
size: 0.2
pad: 0.2
scatter
edgecolor: none
cmap: other
zorder: 1
cbar_kwargs
label: Wave period [s]
append_axes_kwargs
position: right
size: 0.2
pad: 0.2
contourf
cmap: other
center: False
zorder: 1
cbar_kwargs
label: Wave period [s]
append_axes_kwargs
position: right
size: 0.2
pad: 0.2
contour
cmap: other_contour
center: False
zorder: 1
append_axes_kwargs
position: right
size: 0.2
pad: 0.2
wave_direction
pcolormesh
cmap: cet_CET_C8s
center: False
zorder: 1
cbar_kwargs
label: Wave direction [Degrees North]
append_axes_kwargs
position: right
size: 0.2
pad: 0.2
imshow
cmap: cet_CET_C8s
center: False
zorder: 1
cbar_kwargs
label: Wave direction [Degrees North]
append_axes_kwargs
position: right
size: 0.2
pad: 0.2
scatter
edgecolor: none
cmap: cet_CET_C8s
zorder: 1
cbar_kwargs
label: Wave direction [Degrees North]
append_axes_kwargs
position: right
size: 0.2
pad: 0.2
contourf
cmap: cet_CET_C8s
center: False
zorder: 1
cbar_kwargs
label: Wave direction [Degrees North]
append_axes_kwargs
position: right
size: 0.2
pad: 0.2
contour
cmap: cet_CET_C8s
center: False
zorder: 1
append_axes_kwargs
position: right
size: 0.2
pad: 0.2
quiver
add_guide: False
color: black
scale_units: xy
angles: xy
pivot: tail
zorder: 1.5
append_axes_kwargs
position: right
size: 0.2
pad: 0.2
streamplot
add_guide: False
color: black
zorder: 1.5
append_axes_kwargs
position: right
size: 0.2
pad: 0.2
sediment_transport
pcolormesh
cmap: sediment_transport
center: False
zorder: 1
cbar_kwargs
label: Sediment transport [m3 s-1 m-1]
append_axes_kwargs
position: right
size: 0.2
pad: 0.2
imshow
cmap: sediment_transport
center: False
zorder: 1
cbar_kwargs
label: Sediment transport [m3 s-1 m-1]
append_axes_kwargs
position: right
size: 0.2
pad: 0.2
scatter
edgecolor: none
cmap: sediment_transport
zorder: 1
cbar_kwargs
label: Sediment transport [m3 s-1 m-1]
append_axes_kwargs
position: right
size: 0.2
pad: 0.2
contourf
cmap: sediment_transport
center: False
zorder: 1
cbar_kwargs
label: Sediment transport [m3 s-1 m-1]
append_axes_kwargs
position: right
size: 0.2
pad: 0.2
contour
cmap: sediment_transport
center: False
zorder: 1
append_axes_kwargs
position: right
size: 0.2
pad: 0.2
quiver
add_guide: False
color: black
scale_units: xy
angles: xy
pivot: tail
zorder: 1.5
append_axes_kwargs
position: right
size: 0.2
pad: 0.2
streamplot
add_guide: False
color: black
zorder: 1.5
append_axes_kwargs
position: right
size: 0.2
pad: 0.2
sediment_concentration
pcolormesh
cmap: sediment_transport
center: False
zorder: 1
cbar_kwargs
label: Sediment concentration [?]
append_axes_kwargs
position: right
size: 0.2
pad: 0.2
imshow
cmap: sediment_transport
center: False
zorder: 1
cbar_kwargs
label: Sediment concentration [?]
append_axes_kwargs
position: right
size: 0.2
pad: 0.2
scatter
edgecolor: none
cmap: sediment_transport
zorder: 1
cbar_kwargs
label: Sediment concentration [?]
append_axes_kwargs
position: right
size: 0.2
pad: 0.2
contourf
cmap: sediment_transport
center: False
zorder: 1
cbar_kwargs
label: Sediment concentration [?]
append_axes_kwargs
position: right
size: 0.2
pad: 0.2
contour
cmap: sediment_transport
center: False
zorder: 1
append_axes_kwargs
position: right
size: 0.2
pad: 0.2
quiver
add_guide: False
color: black
scale_units: xy
angles: xy
pivot: tail
zorder: 1.5
append_axes_kwargs
position: right
size: 0.2
pad: 0.2
streamplot
add_guide: False
color: black
zorder: 1.5
append_axes_kwargs
position: right
size: 0.2
pad: 0.2
sediment_particle_size
pcolormesh
cmap: sediment_particle_size
center: False
zorder: 1
cbar_kwargs
label: Sediment particle size [m]
append_axes_kwargs
position: right
size: 0.2
pad: 0.2
imshow
cmap: sediment_particle_size
center: False
zorder: 1
cbar_kwargs
label: Sediment particle size [m]
append_axes_kwargs
position: right
size: 0.2
pad: 0.2
scatter
edgecolor: none
cmap: sediment_particle_size
zorder: 1
cbar_kwargs
label: Sediment particle size [m]
append_axes_kwargs
position: right
size: 0.2
pad: 0.2
contourf
cmap: sediment_particle_size
center: False
zorder: 1
cbar_kwargs
label: Sediment particle size [m]
append_axes_kwargs
position: right
size: 0.2
pad: 0.2
contour
cmap: sediment_particle_size
center: False
zorder: 1
append_axes_kwargs
position: right
size: 0.2
pad: 0.2
quiver
add_guide: False
color: black
scale_units: xy
angles: xy
pivot: tail
zorder: 1.5
append_axes_kwargs
position: right
size: 0.2
pad: 0.2
streamplot
add_guide: False
color: black
zorder: 1.5
append_axes_kwargs
position: right
size: 0.2
pad: 0.2
nsurveys
pcolormesh
cmap: bathymetry
center: False
zorder: 1
cbar_kwargs
label: Number of Surveys [-]
append_axes_kwargs
position: right
size: 0.2
pad: 0.2
imshow
cmap: bathymetry
center: False
zorder: 1
cbar_kwargs
label: Number of Surveys [-]
append_axes_kwargs
position: right
size: 0.2
pad: 0.2
scatter
edgecolor: none
cmap: bathymetry
zorder: 1
cbar_kwargs
label: Number of Surveys [-]
append_axes_kwargs
position: right
size: 0.2
pad: 0.2
contourf
cmap: bathymetry
center: False
zorder: 1
cbar_kwargs
label: Number of Surveys [-]
append_axes_kwargs
position: right
size: 0.2
pad: 0.2
contour
cmap: bathymetry_contour
center: False
zorder: 1
append_axes_kwargs
position: right
size: 0.2
pad: 0.2
diverging
pcolormesh
cmap: diverging
zorder: 1
append_axes_kwargs
position: right
size: 0.2
pad: 0.2
imshow
cmap: diverging
zorder: 1
append_axes_kwargs
position: right
size: 0.2
pad: 0.2
scatter
edgecolor: none
cmap: diverging
zorder: 1
append_axes_kwargs
position: right
size: 0.2
pad: 0.2
contourf
cmap: diverging
zorder: 1
append_axes_kwargs
position: right
size: 0.2
pad: 0.2
contour
cmap: diverging_contour
zorder: 1
append_axes_kwargs
position: right
size: 0.2
pad: 0.2
other
pcolormesh
cmap: other
zorder: 1
append_axes_kwargs
position: right
size: 0.2
pad: 0.2
imshow
cmap: other
zorder: 1
append_axes_kwargs
position: right
size: 0.2
pad: 0.2
scatter
edgecolor: none
cmap: other
zorder: 1
append_axes_kwargs
position: right
size: 0.2
pad: 0.2
contourf
cmap: other
zorder: 1
append_axes_kwargs
position: right
size: 0.2
pad: 0.2
contour
zorder: 1
append_axes_kwargs
position: right
size: 0.2
pad: 0.2
quiver
add_guide: False
color: black
scale_units: xy
angles: xy
pivot: tail
zorder: 1.5
append_axes_kwargs
position: right
size: 0.2
pad: 0.2
streamplot
add_guide: False
color: black
zorder: 1.5
append_axes_kwargs
position: right
size: 0.2
pad: 0.2
geom_style
default
zorder: 2
append_axes_kwargs
position: right
size: 0.2
pad: 0.2
aoi
facecolor: none
edgecolor: blue
linewidth: 1.5
label: Area of interest
zorder: 2
append_axes_kwargs
position: right
size: 0.2
pad: 0.2
grid
color: cyan
linewidth: 0.5
label: Grid
zorder: 2
append_axes_kwargs
position: right
size: 0.2
pad: 0.2
map_style
default
source: OpenStreetMap.Mapnik
attribution: False
zorder: 0
osm
source: OpenStreetMap.Mapnik
attribution: False
zorder: 0
satellite
source: Esri.WorldImagery
attribution: False
zorder: 0
grey
source: CartoDB.Positron
attribution: False
zorder: 0
extent_style
default
xlim: [135000, 170000]
ylim: [585000, 610000]
interactive_data_style
default
pcolormesh
cmap: bathymetry
imshow
cmap: bathymetry
image
imshow
cmap: bathymetry
bathymetry
pcolormesh
cmap: bathymetry
legend_kwds
caption: Bathymetry [mMSL]
imshow
cmap: bathymetry
legend_kwds
caption: Bathymetry [mMSL]
interactive_geom_style
default
tooltip: False
aoi
style_kwds
color: blue
fill: False
name: Area of interest
tooltip: False
grid
style_kwds
color: cyan
fill: False
name: Grid
tooltip: False
interactive_map_style
default
tiles: OpenStreetMap
osm
tiles: OpenStreetMap
satellite
tiles: Esri.WorldImagery
grey
tiles: CartoDB.Positron
interactive_extent_style

Reading data

Note: Reading data requires access to the Deltares n-drive.

[3]:
# Directory path
dir_path_data = r"n:\Deltabox\Bulletin\white_rn\rpc-data"
file_path_tif = os.path.join(dir_path_data, "structured_data.tif")
file_path_nc = os.path.join(dir_path_data, "unstructured_data.nc")
file_path_geojson = os.path.join(dir_path_data, "geometry.geojson")

# Read structured data
da = rxr.open_rasterio(file_path_tif, masked=True).squeeze().drop_vars("band")
da.attrs = {"long_name": "Bathymetry", "units": "m" + vrl}
ds = da.to_dataset(name="mor_bl")

# Read unstructured data
uds = xu.open_dataset(file_path_nc)
uds.grid.set_crs("EPSG:28992")
uda = uds["mesh2d_mor_bl"]

# Read geometry
gdf = gpd.read_file(file_path_geojson)

Structured data

[4]:
# Plot structured data
fig, axs = rpc.subplots(3, 3, figsize=(16, 12))
axs = axs.flatten()
rpc.pcolormesh(da, ax=axs[0], data_style="default")
rpc.imshow(da, ax=axs[1], data_style="default")
rpc.scatter(ds, ax=axs[2], data_style="default", x="x", y="y", hue="mor_bl", s=10, add_colorbar=True, skip=30)
rpc.contour(da, ax=axs[3], data_style="default", add_colorbar=True)
rpc.contourf(da, ax=axs[4], data_style="default")
rpc.quiver(ds, ax=axs[5], data_style="default", x="x", y="y", u="mor_bl", v="mor_bl", skip=30)
rpc.streamplot(ds, ax=axs[6], data_style="default", x="x", y="y", u="mor_bl", v="mor_bl", skip=30)
rpc.grid(da, ax=axs[7], geom_style="grid", skip=30)
for ax in axs:
    rpc.basemap(crs=crs, ax=ax, map_style="default", extent_style="default")
axs[-1].remove()
rpc.show(fig=fig)
../_images/usage_examples_01_getting_started_8_0.png

Unstructured data

[5]:
# Plot unstructured data
fig, axs = rpc.subplots(3, 3, figsize=(16, 12))
axs = axs.flatten()
rpc.pcolormesh(uda, ax=axs[0], data_style="default")
rpc.imshow(uda, ax=axs[1], data_style="default")
rpc.scatter(uda, ax=axs[2], data_style="default", s=1, add_colorbar=True)
rpc.contour(uda, ax=axs[3], data_style="default", add_colorbar=True)
rpc.contourf(uda, ax=axs[4], data_style="default")
rpc.quiver(uds, ax=axs[5], data_style="default", x="mesh2d_face_x", y="mesh2d_face_y", u="mesh2d_ucx", v="mesh2d_ucy")
rpc.grid(uda, ax=axs[6], geom_style="grid")
for ax in axs:
    rpc.basemap(crs=crs, ax=ax, map_style="default", extent_style="default")
axs[-2].remove()
axs[-1].remove()
rpc.show(fig=fig)
../_images/usage_examples_01_getting_started_10_0.png

Geometries and Basemaps

[6]:
# Plot geometry and basemaps
fig, axs = rpc.subplots(2, 3, figsize=(16, 8))
axs = axs.flatten()
rpc.geometries(gdf, ax=axs[0], geom_style="aoi")
rpc.basemap(crs=crs, ax=axs[0], map_style="osm", extent_style="default")
rpc.geometries(gdf, ax=axs[1], geom_style="aoi")
rpc.basemap(crs=crs, ax=axs[1], map_style="satellite", extent_style="default")
rpc.geometries(gdf, ax=axs[2], geom_style="aoi")
rpc.basemap(crs=crs, ax=axs[2], map_style="grey", extent_style="default")
rpc.geometries(gdf, ax=axs[3], geom_style="aoi")
rpc.cartopy(ax=axs[3], extent_style="default")
axs[-2].remove()
axs[-1].remove()
rpc.show(fig=fig)
../_images/usage_examples_01_getting_started_12_0.png

Interactive maps

[8]:
m = rpc.map()
rpc.imshow(da, m=m, data_style="default", name="mor_bl")
rpc.geometries(gdf, m=m, geom_style="aoi", name="aoi")
rpc.basemap(crs=crs, m=m, map_style="default")
rpc.show(m=m)
Reprojecting DataArray to EPSG:4326.
Reprojecting GeoDataFrame to EPSG:4326.
Make this Notebook Trusted to load map: File -> Trust Notebook