In [1]:
from owslib.wms import WebMapService
url = 'http://oos.soest.hawaii.edu/thredds/wms/hioos/satellite/dhw_5km'
web_map_services = WebMapService(url)
print('\n'.join(web_map_services.contents.keys()))
In [2]:
layer = 'CRW_SST'
wms = web_map_services.contents[layer]
name = wms.title
lon = (wms.boundingBox[0] + wms.boundingBox[2]) / 2.
lat = (wms.boundingBox[1] + wms.boundingBox[3]) / 2.
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
In [3]:
import folium
from folium import plugins
lon, lat = -50, -40
m = folium.Map(
location=[lat, lon],
zoom_start=5,
control_scale=True
)
w = folium.raster_layers.WmsTileLayer(
url=url,
name=name,
styles=style,
fmt='image/png',
transparent=True,
layers=layer,
overlay=True,
COLORSCALERANGE='1.2,28',
)
w.add_to(m)
time = plugins.TimestampedWmsTileLayers(
w,
period='PT1H',
time_interval=time_interval
)
time.add_to(m)
folium.LayerControl().add_to(m)
m
Out[3]:
In [4]:
m = folium.Map(
location=[lat, lon],
zoom_start=5,
control_scale=True
)
w0 = folium.raster_layers.WmsTileLayer(
url=url,
name='sea_surface_temperature',
styles=style,
fmt='image/png',
transparent=True,
layers='CRW_SST',
overlay=True,
)
w1 = folium.raster_layers.WmsTileLayer(
url=url,
name='analysed sea surface temperature anomaly',
styles=style,
fmt='image/png',
transparent=True,
layers='CRW_SSTANOMALY',
overlay=True,
)
w0.add_to(m)
w1.add_to(m)
time = folium.plugins.TimestampedWmsTileLayers(
[w0, w1],
period='PT1H',
time_interval=time_interval
)
time.add_to(m)
folium.LayerControl().add_to(m)
m
Out[4]: