import intake
import hvplot.pandas
import hvplot.xarray
import cook_inlet_catalogs as cic
import holoviews as hv
CTD Transects, Moored CTD (CMI KBNERR): Six repeat, one single transect, one moored CTD¶
Seasonality of Boundary Conditions for Cook Inlet, Alaska
During 2004 to 2006 we collected hydrographic measurements along transect lines crossing: 1) Kennedy Entrance and Stevenson Entrance from Port Chatham to Shuyak Island; 2) Shelikof Strait from Shuyak Island to Cape Douglas; 3) Cook Inlet from Red River to Anchor Point; 4) Kachemak Bay from Barbara Point to Bluff Point, and 5) the Forelands from East Foreland to West Foreland. During the third year we added two additional lines; 6) Cape Douglas to Cape Adams, and 7) Magnet Rock to Mount Augustine. The sampling in 2006 focused on the differences in properties during the spring and neap tide periods.
CTD profiles 2004-2005 - CMI UAF seems to be transect 5 of this project.
Part of the project: Seasonality of Boundary Conditions for Cook Inlet, Alaska Steve Okkonen Principal Investigator Co-principal Investigators: Scott Pegau Susan Saupe Final Report OCS Study MMS 2009-041 August 2009 Report: https://researchworkspace.com/files/39885971/2009_041.pdf

cat = intake.open_catalog(cic.utils.cat_path("ctd_transects_cmi_kbnerr"))
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
['Cruise_00-Line_4',
'Cruise_01-Line_1',
'Cruise_01-Line_2',
'Cruise_01-Line_3',
'Cruise_01-Line_4',
'Cruise_02-Line_1',
'Cruise_02-Line_2',
'Cruise_02-Line_3',
'Cruise_02-Line_4',
'Cruise_03-Line_1',
'Cruise_03-Line_2',
'Cruise_03-Line_3',
'Cruise_03-Line_4',
'Cruise_05-Line_1',
'Cruise_05-Line_2',
'Cruise_05-Line_3',
'Cruise_05-Line_4',
'Cruise_06-Line_1',
'Cruise_06-Line_2',
'Cruise_06-Line_3',
'Cruise_06-Line_4',
'Cruise_07-Line_1',
'Cruise_07-Line_2',
'Cruise_07-Line_3',
'Cruise_07-Line_4',
'Cruise_08-Line_1',
'Cruise_08-Line_2',
'Cruise_08-Line_3',
'Cruise_08-Line_4',
'Cruise_09-Line_1',
'Cruise_09-Line_2',
'Cruise_09-Line_3',
'Cruise_09-Line_4',
'Cruise_10-Line_1',
'Cruise_10-Line_2',
'Cruise_10-Line_3',
'Cruise_10-Line_4',
'Cruise_11-Line_1',
'Cruise_11-Line_2',
'Cruise_11-Line_3',
'Cruise_11-Line_4',
'Cruise_12-Line_1',
'Cruise_12-Line_2',
'Cruise_12-Line_3',
'Cruise_12-Line_4',
'Cruise_13-Line_1',
'Cruise_13-Line_3',
'Cruise_13-Line_4',
'Cruise_13-Line_6',
'Cruise_13-Line_7',
'Cruise_14-Line_1',
'Cruise_14-Line_2',
'Cruise_14-Line_3',
'Cruise_14-Line_4',
'Cruise_14-Line_6',
'Cruise_14-Line_7',
'Cruise_15-Line_1',
'Cruise_15-Line_3',
'Cruise_15-Line_4',
'Cruise_15-Line_6',
'Cruise_15-Line_7',
'Cruise_16-Line_1',
'Cruise_16-Line_2',
'Cruise_16-Line_3',
'Cruise_16-Line_4',
'Cruise_16-Line_6',
'Cruise_16-Line_7',
'Kbay_timeseries',
'sue_shelikof']
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
Cruise_01-Line_2
| date_time | Cruise | Station | Type | Longitude [degrees_east] | Latitude [degrees_north] | Bot. Depth [m] | Temperature [C] | Depth [m] | Salinity [psu] | line | distance [km] | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 0 | 2004-04-19 15:21:00 | 1 | 38 | C | -153.240 | 58.8383 | 36 | 2.4944 | 1.981 | 30.6818 | 2 | 0.00000 |
| 1 | 2004-04-19 15:21:00 | 1 | 38 | C | -153.240 | 58.8383 | 36 | 2.4666 | 2.972 | 30.6870 | 2 | 0.00000 |
| 2 | 2004-04-19 15:21:00 | 1 | 38 | C | -153.240 | 58.8383 | 36 | 2.4768 | 3.963 | 30.6865 | 2 | 0.00000 |
| 3 | 2004-04-19 15:21:00 | 1 | 38 | C | -153.240 | 58.8383 | 36 | 2.4138 | 4.953 | 30.6976 | 2 | 0.00000 |
| 4 | 2004-04-19 15:21:00 | 1 | 38 | C | -153.240 | 58.8383 | 36 | 2.3904 | 5.944 | 30.7273 | 2 | 0.00000 |
| ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... |
| 2115 | 2004-04-19 23:10:00 | 1 | 23 | C | -152.633 | 58.6133 | 31 | 4.6239 | 26.746 | 31.8852 | 2 | 43.64199 |
| 2116 | 2004-04-19 23:10:00 | 1 | 23 | C | -152.633 | 58.6133 | 31 | 4.6176 | 27.736 | 31.8870 | 2 | 43.64199 |
| 2117 | 2004-04-19 23:10:00 | 1 | 23 | C | -152.633 | 58.6133 | 31 | 4.6182 | 28.727 | 31.8868 | 2 | 43.64199 |
| 2118 | 2004-04-19 23:10:00 | 1 | 23 | C | -152.633 | 58.6133 | 31 | 4.6087 | 29.717 | 31.8892 | 2 | 43.64199 |
| 2119 | 2004-04-19 23:10:00 | 1 | 23 | C | -152.633 | 58.6133 | 31 | 4.6087 | 30.708 | 31.8894 | 2 | 43.64199 |
2120 rows × 12 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)
['salt', 'temp']