import intake
import hvplot.pandas
import hvplot.xarray
import cook_inlet_catalogs as cic
import holoviews as hv
Moorings (CDIP): Lower and Central Cook Inlet, Kodiak Island¶
Moorings from AOOS/CDIP
cat = intake.open_catalog(cic.utils.cat_path("moorings_aoos_cdip"))
Plot all datasets in catalog¶
dd, ddlabels = cic.utils.combine_datasets_for_map(cat)
dd.hvplot(**cat.metadata["map"]) * ddlabels.hvplot(**cat.metadata["maplabels"])
List available datasets in the catalog¶
dataset_ids = list(cat)
dataset_ids
['aoos_204', 'central-cook-inlet-175', 'edu_ucsd_cdip_236']
Select one dataset to investigate¶
try:
dataset_id = dataset_ids[2]
except:
dataset_id = dataset_ids[0]
print(dataset_id)
dd = cat[dataset_id].read()
dd
edu_ucsd_cdip_236
| time | latitude | longitude | z | sea_water_temperature | |
|---|---|---|---|---|---|
| 1 | 2017-09-28 22:05:00+00:00 | 57.4795 | -151.6953 | 0.0 | 9.080017 |
| 2 | 2017-09-28 22:10:00+00:00 | 57.4795 | -151.6953 | 0.0 | 9.080017 |
| 3 | 2017-09-28 22:15:00+00:00 | 57.4795 | -151.6953 | 0.0 | 9.080017 |
| 4 | 2017-09-28 22:20:00+00:00 | 57.4795 | -151.6953 | 0.0 | 9.080017 |
| 5 | 2017-09-28 22:25:00+00:00 | 57.4795 | -151.6953 | 0.0 | 9.080017 |
| ... | ... | ... | ... | ... | ... |
| 279112 | 2021-09-25 15:28:20+00:00 | 57.4795 | -151.6953 | 0.0 | 9.500000 |
| 279114 | 2021-09-25 15:58:20+00:00 | 57.4795 | -151.6953 | 0.0 | 9.500000 |
| 279116 | 2021-09-25 16:28:20+00:00 | 57.4795 | -151.6953 | 0.0 | 9.500000 |
| 279118 | 2021-09-25 16:58:20+00:00 | 57.4795 | -151.6953 | 0.0 | 9.500000 |
| 279120 | 2021-09-25 17:58:20+00:00 | 57.4795 | -151.6953 | 0.0 | 5.550000 |
245777 rows × 5 columns
Plot one dataset¶
keys = list(cat[dataset_id].metadata["plots"].keys())
print(keys)
plots = []
for key in keys:
plot_kwargs = cat[dataset_id].metadata["plots"][key]
if "clim" in plot_kwargs and isinstance(plot_kwargs["clim"], list):
plot_kwargs["clim"] = tuple(plot_kwargs["clim"])
if "dynamic" in plot_kwargs:
plot_kwargs["dynamic"] = False
plots.append(cat[dataset_id].ToHvPlot(**plot_kwargs).read())
hv.Layout(plots).cols(1)
['data']