TimestampedWmsTileLayers#

Add a time dimension to a WMS tile layer.

Note that we don’t render the output in this example, because the web service used here is not always available.

Exploring the WMS with OWSLib#

from owslib.wms import WebMapService


url = "https://pae-paha.pacioos.hawaii.edu/thredds/wms/dhw_5km?service=WMS"

web_map_services = WebMapService(url)

print("\n".join(web_map_services.contents.keys()))

Layer metadata#

layer = "CRW_SST"
wms = web_map_services.contents[layer]

name = wms.title

lon = (wms.boundingBox[0] + wms.boundingBox[2]) / 2.0
lat = (wms.boundingBox[1] + wms.boundingBox[3]) / 2.0
center = lat, lon

time_interval = "{0}/{1}".format(
    wms.timepositions[0].strip(), wms.timepositions[-1].strip()
)
style = "boxfill/sst_36"

if style not in wms.styles:
    style = None

Map with WmsTileLayer and TimestampedWmsTileLayers#

m = folium.Map(location=[-40, -50], zoom_start=5)

wms_tile_layer = folium.WmsTileLayer(
    url=url,
    name=name,
    styles=style,
    fmt="image/png",
    transparent=True,
    layers=layer,
    overlay=True,
    COLORSCALERANGE="1.2,28",
).add_to(m)

folium.plugins.TimestampedWmsTileLayers(
    wms_tile_layer,
    period="PT1H",
    time_interval=time_interval,
).add_to(m)

folium.LayerControl().add_to(m)

m