Here’s an example of how to interactively explore data from an unstructured grid (triangular mesh) ocean model from AWS Open Data using Holoviz.
It’s a bit clunky – is this still the best approach?
import xarray as xr
import intake
import numpy as np
import geoviews as gv
import holoviews.operation.datashader as dshade
import pandas as pd
import holoviews as hv
hv.extension('bokeh')
cat = intake.open_catalog('https://noaa-nos-cora-pds.s3.amazonaws.com/CORA_V1.1_intake.yml')
ds = cat['CORA-V1.1-swan_HS.63'].read()
v = np.vstack((ds['x'], ds['y'], ds['depth'])).T
verts = pd.DataFrame(v, columns=['x','y','depth'])
points = gv.operation.project_points(gv.Points(verts, vdims=['depth']))
tris = pd.DataFrame(ds['element'].values.astype('int')-1, columns=['v0','v1','v2'])
basemap = gv.tile_sources.OSM
trimesh = gv.TriMesh((tris, points), label='Triangular mesh water depth (m)')
mesh = dshade.rasterize(trimesh).opts(data_aspect=1, frame_width=400, colorbar=True)
display(basemap * mesh)
producing: