OceanDataCatalog | NOC Near-Present Day¶
About¶
This Notebook demonstrates how to use the OceanDataCatalog API to explore the Near-Present-Day global ocean sea-ice simulations developed by the National Oceanography Centre as part of the Atlantic Climate and Environment Strategic Science (AtlantiS) programme.
from OceanDataStore import OceanDataCatalog
- Create an instance of the OceanDataCatalog class to access the National Oceanography Centre ocean model Spatio-Temporal Access Catalog (
noc-model-stac):
catalog = OceanDataCatalog(catalog_name="noc-stac")
- Let's use the
available_collectionsproperty to return the names (IDs) of all available dataset collections in thenoc-model-stac:
catalog.available_collections
['noc-rapid-evolution', 'noc-npd-jra55', 'noc-npd-era5']
- Let's use the
.search()method to search the Near-Present Day ERA-5 collection for all ocean model outputs including the sea surface temperature (SST) standard variable name:
catalog.search(collection='noc-npd-era5', standard_name='sea_surface_temperature')
| Item ID | Title | Platform | Start Date | End Date | Variables |
|---|---|---|---|---|---|
| noc-npd-era5/npd-eorca1-era5v1/r1i1c1f1/gn/T1y | T1y Icechunk repository | gn | 1976-01-01T00:00:00Z | 2025-07-31T00:00:00Z | 74 variablesempmr e3t hfempds hfds fsitherm hflx_rnf hfns hfrainds hfls ficeberg friver berg_latent_heat_flux mlotst hfss hfto hfsr hfevapds deptht_bounds mlotstmax evs mlotstsq ocontempdiff osaltpmdiff osaltdiff mlotstmin ocontempmint rlntds ocontempadvect osalttend rsdo prsn osaltadvect ocontemptend pbo sbt_con snow_ai_cea sbs_abs rsntds sfdsi so_abs ocontemppmdiff sohfcisf somixhgt sos_abs sosafldo soicecov somint_abs sohflisf rsdoabsorb snowpre strd_atf_li sowaflup sowflisf strd_bbl_li thetao_con somxl010 time_centered_bounds strd_evd_li somxzint1 ttrd_evd_li ttrd_atf_li sowindsp time_counter_bounds tos_con tossq_con tnpeo ttrd_bbl_li sossq_abs ttrd_qns_li zossq vohflisf zos vowflisf vohfcisf |
| noc-npd-era5/npd-eorca1-era5v1/r1i1c1f1/gn/T1m | T1m Icechunk repository | gn | 1976-01-01T00:00:00Z | 2025-07-31T00:00:00Z | 74 variablesberg_latent_heat_flux deptht_bounds ficeberg fsitherm e3t evs empmr friver hfds hfevapds hfrainds hfsr hfempds hflx_rnf hfls hfns mlotst mlotstmin mlotstsq mlotstmax hfto hfss ocontemptend osaltadvect osaltdiff ocontempdiff ocontempmint osaltpmdiff ocontempadvect ocontemppmdiff rlntds rsdo rsdoabsorb osalttend pbo prsn rsntds sbs_abs sbt_con snow_ai_cea sohfcisf soicecov snowpre sohflisf so_abs somxl010 somint_abs sosafldo sos_abs sossq_abs strd_bbl_li strd_atf_li strd_evd_li sowaflup sowindsp sowflisf somixhgt somxzint1 sfdsi thetao_con tossq_con tnpeo tos_con time_centered_bounds zossq time_counter_bounds ttrd_bbl_li vowflisf zos ttrd_evd_li ttrd_atf_li vohfcisf ttrd_qns_li vohflisf |
| noc-npd-era5/npd-eorca025-era5v1/r1i1c1f1/gn/T1y_3d | T1y_3d Icechunk repository | gn | 1976-01-01T00:00:00Z | 2025-07-31T00:00:00Z | 51 variableshfls evs friver empmr hfempds berg_latent_heat_flux ficeberg hfevapds fsitherm hfds hflx_rnf hfns hfss mlotstmax mlotstsq hfto hfsr hfrainds mlotstmin mlotst prsn sbt_con sbs_abs pbo ocontempmint rlntds rsntds snow_ai_cea sohfcisf somint_abs somixhgt soicecov sfdsi sowflisf somxl010 somxzint1 sohflisf sossq_abs sowaflup time_centered_bounds snowpre time_counter_bounds sos_abs tnpeo sosafldo sowindsp tossq_con zos tos_con ttrd_qns_li zossq |
| noc-npd-era5/npd-eorca025-era5v1/r1i1c1f1/gn/T1m_3d | T1m_3d Icechunk repository | gn | 1976-01-01T00:00:00Z | 2025-07-31T00:00:00Z | 51 variablesevs empmr ficeberg fsitherm hfds hfls berg_latent_heat_flux hfevapds hfempds friver hflx_rnf hfsr mlotst hfss hfrainds hfto hfns mlotstsq mlotstmax pbo rlntds ocontempmint prsn rsntds mlotstmin sbs_abs sbt_con snowpre sohfcisf somixhgt soicecov snow_ai_cea sfdsi somint_abs sohflisf somxl010 sosafldo sos_abs sossq_abs sowaflup time_counter_bounds somxzint1 sowindsp time_centered_bounds tos_con ttrd_qns_li tossq_con zos sowflisf zossq tnpeo |
| noc-npd-era5/npd-eorca025-era5v1/r1i1c1f1/gn/T5d_3d | T5d_3d Icechunk repository | gn | 1976-01-01T00:00:00Z | 2025-07-31T00:00:00Z | 50 variableshfls evs empmr fsitherm berg_latent_heat_flux hfds hfevapds hfss friver hfrainds ficeberg hfto hfempds hfns hfsr mlotst hflx_rnf rlntds ocontempmint mlotstmax mlotstmin rsntds sbs_abs snow_ai_cea sbt_con sfdsi snowpre sohfcisf mlotstsq prsn pbo somixhgt sowaflup somint_abs sowindsp sosafldo sohflisf soicecov sowflisf somxl010 time_centered_bounds tossq_con sossq_abs tos_con somxzint1 time_counter_bounds tnpeo sos_abs zos zossq |
| noc-npd-era5/npd-eorca12-era5v1/r1i1c1f1/gn/T1y_3d | T1y_3d Icechunk repository | gn | 1976-01-01T00:00:00Z | 2025-06-30T00:00:00Z | 50 variablesberg_latent_heat_flux ficeberg friver hfds empmr fsitherm hfls evs hfevapds hfempds hfns mlotstmax hfsr mlotstsq hfto hflx_rnf mlotst mlotstmin hfrainds pbo sbt_con rlntds ocontempmint hfss sbs_abs sohflisf prsn rsntds sohfcisf snow_ai_cea sfdsi sos_abs somxzint1 soicecov sossq_abs sosafldo somixhgt time_centered_bounds sowflisf sowaflup somxl010 snowpre somint_abs sowindsp time_counter_bounds tos_con tnpeo zossq zos tossq_con |
| noc-npd-era5/npd-eorca12-era5v1/r1i1c1f1/gn/T1m_3d | T1m_3d Icechunk repository | gn | 1976-01-01T00:00:00Z | 2025-06-30T00:00:00Z | 50 variablesberg_latent_heat_flux hfevapds friver ficeberg evs hfls hfempds empmr fsitherm mlotstmax hfsr hflx_rnf hfss hfto mlotst mlotstmin hfrainds hfns hfds ocontempmint sbt_con mlotstsq rlntds pbo rsntds prsn sfdsi sohflisf somint_abs sbs_abs snowpre sohfcisf somxl010 snow_ai_cea soicecov somixhgt sos_abs sossq_abs sowindsp time_centered_bounds sosafldo tnpeo somxzint1 sowflisf time_counter_bounds tos_con sowaflup tossq_con zos zossq |
| noc-npd-era5/npd-eorca12-era5v1/r1i1c1f1/gn/T5d_3d | T5d_3d Icechunk repository | gn | 1990-01-01T00:00:00Z | 2025-06-30T00:00:00Z | 50 variablesberg_latent_heat_flux hfds hfevapds hflx_rnf fsitherm hfempds friver empmr evs ficeberg hfls hfns mlotstsq hfto mlotst mlotstmin mlotstmax hfsr hfss hfrainds pbo prsn rsntds sbt_con sfdsi sbs_abs ocontempmint rlntds snow_ai_cea sohfcisf somixhgt somint_abs somxl010 soicecov sohflisf snowpre sosafldo sowaflup sowindsp time_centered_bounds somxzint1 sowflisf sossq_abs sos_abs time_counter_bounds tos_con zos tnpeo tossq_con zossq |
- Now that we have performed a
searchoperation on our catalog, we can also use theavailable_itemsproperty to return the names (IDs) of the available STAC Items resulting from our search.
catalog.available_items
['noc-npd-era5/npd-eorca1-era5v1/r1i1c1f1/gn/T1y', 'noc-npd-era5/npd-eorca1-era5v1/r1i1c1f1/gn/T1m', 'noc-npd-era5/npd-eorca025-era5v1/r1i1c1f1/gn/T1y_3d', 'noc-npd-era5/npd-eorca025-era5v1/r1i1c1f1/gn/T1m_3d', 'noc-npd-era5/npd-eorca025-era5v1/r1i1c1f1/gn/T5d_3d', 'noc-npd-era5/npd-eorca12-era5v1/r1i1c1f1/gn/T1y_3d', 'noc-npd-era5/npd-eorca12-era5v1/r1i1c1f1/gn/T1m_3d', 'noc-npd-era5/npd-eorca12-era5v1/r1i1c1f1/gn/T5d_3d']
- To view a STAC Item in detail, we can pass the Item ID to the
.item_summary()method.
catalog.item_summary(id='noc-npd-era5/npd-eorca1-era5v1/r1i1c1f1/gn/T1y')
| Title | Description |
|---|---|
| T1y Icechunk repository | Annual mean global ocean physics outputs defined at NEMO model T-points. |
catalog.open_dataset(id='noc-npd-era5/npd-eorca1-era5v1/r1i1c1f1/gn/T1y') | Property | Value |
|---|---|
| variant | r1i1c1f1 |
| variables | 74 itemsempmr e3t hfempds hfds fsitherm hflx_rnf hfns hfrainds hfls ficeberg friver berg_latent_heat_flux mlotst hfss hfto hfsr hfevapds deptht_bounds mlotstmax evs mlotstsq ocontempdiff osaltpmdiff osaltdiff mlotstmin ocontempmint rlntds ocontempadvect osalttend rsdo prsn osaltadvect ocontemptend pbo sbt_con snow_ai_cea sbs_abs rsntds sfdsi so_abs ocontemppmdiff sohfcisf somixhgt sos_abs sosafldo soicecov somint_abs sohflisf rsdoabsorb snowpre strd_atf_li sowaflup sowflisf strd_bbl_li thetao_con somxl010 time_centered_bounds strd_evd_li somxzint1 ttrd_evd_li ttrd_atf_li sowindsp time_counter_bounds tos_con tossq_con tnpeo ttrd_bbl_li sossq_abs ttrd_qns_li zossq vohflisf zos vowflisf vohfcisf |
| variable_standard_names | 74 itemswater_flux_out_of_sea_ice_and_sea_water cell_thickness ocean_surface_downward_heat_flux_from_E-P ocean_surface_downward_total_heat_flux fsitherm temperature_flux_due_to_runoff_expressed_as_heat_flux_into_sea_water surface_net_downward_non_solar_heat_flux temperature_flux_due_to_rain_expressed_as_heat_flux_into_sea_water ocean_surface_downward_latent_heat_flux water_flux_into_sea_water_from_icebergs water_flux_into_sea_water_from_rivers latent_heat_flux_from_icebergs ocean_mixed_layer_thickness_defined_by_sigma_theta ocean_surface_downward_sensible_heat_flux surface_net_downward_total_heat_flux surface_net_downward_solar_heat_flux temperature_flux_due_to_evaporation_expressed_as_heat_flux_out_of_sea_water deptht_bounds ocean_mixed_layer_thickness_defined_by_sigma_theta water_evaporation_flux square_of_ocean_mixed_layer_thickness_defined_by_sigma_theta ocontempdiff osaltpmdiff osaltdiff ocean_mixed_layer_thickness_defined_by_sigma_theta integral_wrt_depth_of_product_of_density_and_conservative_temperature ocean_surface_net_downward_longwave_heat_flux ocontempadvect osalttend downwelling_shortwave_flux_in_sea_water snowfall_flux osaltadvect ocontemptend sea_water_pressure_at_sea_floor sbt_con snowfall_flux sbs_abs ocean_surface_net_downward_shortwave_heat_flux downward_sea_ice_basal_salt_flux sea_water_absolute_salinity ocontemppmdiff ocean_mixed_layer_thickness_defined_by_vertical_tracer_diffusivity sea_surface_salinity salt_flux_into_sea_water sea_ice_area_fraction integral_wrt_depth_of_product_of_density_and_absolute_salinity rsdoabsorb snowfall_flux strd_atf_li water_flux_out_of_sea_ice_and_sea_water strd_bbl_li sea_water_conservative_temperature ocean_mixed_layer_thickness_defined_by_sigma_theta time_centered_bounds strd_evd_li ocean_mixed_layer_thickness_defined_by_sigma_theta ttrd_evd_li ttrd_atf_li wind_speed time_counter_bounds sea_surface_temperature square_of_sea_surface_temperature tnpeo ttrd_bbl_li square_of_sea_surface_Salinity ttrd_qns_li square_of_sea_surface_height_above_geoid sea_surface_height_above_geoid |
| dimensions | 5 itemstime_counter y x deptht axis_nbounds |
| operation | mean |
| operation_frequency | annual |
| ocean_component | NEMO v4.2.2 |
| sea_ice_component | SI3 v4.0 |
| biogeochemistry_component | — |
| atmosphere_component | — |
| status | ongoing |
| update_frequency | quarterly |
| latest_data_update | 2026-03-22T21:41:49.874907 |
| Key | Media Type | Endpoint | Bucket | Prefix |
|---|---|---|---|---|
| T1y | application/vnd.zarr+icechunk | https://noc-msm-o.s3-ext.jc.rl.ac.uk | npd-eorca1-era5v1 | T1y |
Alternatively, we can explore the first Item in our search results by accessing the
Itemattribute of the catalog. This Item corresponds to the annual-mean T-grid variables output by the 1-degree NPD eORCA1 ERA5v1 simulation.By looking in
properties/variable_standard_names, we can see that 'sea_surface_temperature' is the 59th variable in this dataset and is namedtos_con.
catalog.Items[0]
Next, let's open a subset (1980-1990) of the annual-mean SST data as an
xarray.Datasetby using the.open_dataset()method and specifying start and end date strings.Here, we use the
.idattribute of our first Item, but we could have also copied theidstring from above.
ds = catalog.open_dataset(id=catalog.Items[0].id,
start_datetime='1980-01',
end_datetime='1990-12',
)
ds
<xarray.Dataset> Size: 9GB
Dimensions: (time_counter: 11, y: 331, x: 360, deptht: 75,
axis_nbounds: 2)
Coordinates:
* time_counter (time_counter) datetime64[ns] 88B 1980-07-02 ... 1...
time_centered (time_counter) datetime64[ns] 88B dask.array<chunksize=(1,), meta=np.ndarray>
nav_lat (y, x) float64 953kB dask.array<chunksize=(331, 360), meta=np.ndarray>
nav_lon (y, x) float64 953kB dask.array<chunksize=(331, 360), meta=np.ndarray>
* deptht (deptht) float32 300B 0.5058 1.556 ... 5.902e+03
Dimensions without coordinates: y, x, axis_nbounds
Data variables: (12/74)
berg_latent_heat_flux (time_counter, y, x) float32 5MB dask.array<chunksize=(1, 331, 360), meta=np.ndarray>
hfds (time_counter, y, x) float32 5MB dask.array<chunksize=(1, 331, 360), meta=np.ndarray>
empmr (time_counter, y, x) float32 5MB dask.array<chunksize=(1, 331, 360), meta=np.ndarray>
e3t (time_counter, deptht, y, x) float32 393MB dask.array<chunksize=(1, 25, 331, 360), meta=np.ndarray>
fsitherm (time_counter, y, x) float32 5MB dask.array<chunksize=(1, 331, 360), meta=np.ndarray>
deptht_bounds (deptht, axis_nbounds) float32 600B dask.array<chunksize=(25, 2), meta=np.ndarray>
... ...
ttrd_qns_li (time_counter, y, x) float32 5MB dask.array<chunksize=(1, 331, 360), meta=np.ndarray>
vohflisf (time_counter, deptht, y, x) float32 393MB dask.array<chunksize=(1, 25, 331, 360), meta=np.ndarray>
zos (time_counter, y, x) float32 5MB dask.array<chunksize=(1, 331, 360), meta=np.ndarray>
vohfcisf (time_counter, deptht, y, x) float32 393MB dask.array<chunksize=(1, 25, 331, 360), meta=np.ndarray>
vowflisf (time_counter, deptht, y, x) float32 393MB dask.array<chunksize=(1, 25, 331, 360), meta=np.ndarray>
zossq (time_counter, y, x) float32 5MB dask.array<chunksize=(1, 331, 360), meta=np.ndarray>- Finally, let's create a plot of the time-mean (1980-1990) SST for the globe:
Pre-Calculated Diagnostics¶
So far, we have seen how to access NPD ocean model variables (e.g., temperature, salinity and velocities) defined on their native NEMO model grid.
In addition to these variables, we can also access a range of pre-calculated diagnostics, such as the meridional overturning, heat and freshwater transports across the following trans-basin sections:
- Overturning in the Subpolar North Atlantic Program (OSNAP) array
- Rapid Climate Change-Meridional Overturning Circulation and Heatflux Array (RAPID-MOCHA) at 26.5°N
- Meridional Overturning Variability Experiment (MOVE) array at 16°N
- South Atlantic Meridional overturning circulation Basin-wide Array (SAMBA) array at 34.5°S
These diagnostics are calculated using the Meridional ovErTurning ciRculation diagnostIC (METRIC) package.
Next, let's see how we can access these diagnostics by searching the
OceanDataCatalogfor any Items with identifiers containing the key word "tn", which corresponds to transects which are defined on the native NEMO model grid:
catalog.search(collection='noc-npd-era5', item_name='tn')
| Item ID | Title | Platform | Start Date | End Date | Variables |
|---|---|---|---|---|---|
| noc-npd-era5/npd-eorca1-era5v1/r1i1c1f1/tn/M1m/MOVE_16N | M1m/MOVE_16N Icechunk repository | tn | 1976-01-01T00:00:00Z | 2025-07-31T00:00:00Z | 34 variablesdh dz dx fw_int fw_model fw_int_model q_int q_int_model moc_move q_bdry fw_move q_model fw_bdry moc_model rho q_move s_move t_int t_bdry_fwt t_move s_bdry_fwt s_int temp salt trans_bdry trans_int v v_bdry v_move v_model trans_int_model vgeo v_int_model v_int |
| noc-npd-era5/npd-eorca1-era5v1/r1i1c1f1/tn/M1m/SAMBA_34_5S | M1m/SAMBA_34_5S Icechunk repository | tn | 1976-01-01T00:00:00Z | 2025-07-31T00:00:00Z | 58 variablesdx dh fw_ek fw_geoint fw_eddy fw_gyre_model ekman dz ebw fw_ebw fw_net_model fw_ot_model geoint fw_wbw fw_net_samba fw_mo fw_sum_model fw_sum_samba fw_gyre_samba mocmax_model mocmax_samba fw_ot_samba moc_samba int_mod moc_model q_gyre_model q_eddy q_ebw q_geoint q_net_model q_ot_model q_net_samba q_mo s_basin q_wbw rho q_sum_samba q_sum_model salt q_gyre_samba q_ot_samba sf_ek t_basin sf_wbw sf_int_mod q_ek sf_mo sf_ebw sf_model sf_samba umo sf_geoint v_basin_model v_basin_samba vgeo v wbw temp |
| noc-npd-era5/npd-eorca1-era5v1/r1i1c1f1/tn/M1m/RAPID_26N | M1m/RAPID_26N Icechunk repository | tn | 1976-01-01T00:00:00Z | 2025-07-31T00:00:00Z | 62 variablesfw_fc fc dh dz fw_eddy fw_geoint ekman dx fw_gyre_model fw_ek fw_gyre_rapid fw_ot_rapid fw_net_model fw_wbw geoint fw_ot_model fw_net_rapid moc_rapid fw_mo int_mod fw_sum_rapid fw_sum_model mocmax_model moc_model mass_balance q_fc q_net_model q_gyre_model q_ek q_eddy q_mo q_net_rapid mocmax_rapid q_gyre_rapid q_geoint salt q_sum_model q_wbw rho s_fc_fwt q_ot_rapid sf_ek q_sum_rapid q_ot_model s_basin sf_wbw sf_int_mod umo sf_geoint sf_rapid t_basin temp t_fc_fwt sf_fc sf_mo sf_model v_basin_rapid vgeo wbw v v_fc v_basin_model |
| noc-npd-era5/npd-eorca1-era5v1/r1i1c1f1/tn/M1m/OSNAP | M1m/OSNAP Icechunk repository | tn | 1976-01-01T00:00:00Z | 2025-07-31T00:00:00Z | 14 variablese3b i_bdy flux_dir moc_east moc_west e1b moc_total sigma0 so_abs velocity flux_type volume_transport j_bdy thetao_con |
| noc-npd-era5/npd-eorca025-era5v1/r1i1c1f1/tn/M1m/MOVE_16N | M1m/MOVE_16N Icechunk repository | tn | 1976-01-01T00:00:00Z | 2025-07-31T00:00:00Z | 34 variablesfw_int dz fw_bdry fw_model moc_model moc_move dx fw_move fw_int_model dh q_bdry q_int s_bdry_fwt q_move s_move rho q_model s_int q_int_model salt t_int t_bdry_fwt trans_bdry t_move trans_int v_int v_int_model v temp v_bdry trans_int_model vgeo v_model v_move |
| noc-npd-era5/npd-eorca025-era5v1/r1i1c1f1/tn/M1m/SAMBA_34_5S | M1m/SAMBA_34_5S Icechunk repository | tn | 1976-01-01T00:00:00Z | 2025-07-31T00:00:00Z | 58 variablesdh dz fw_gyre_model fw_gyre_samba ekman fw_ebw fw_geoint dx fw_mo fw_eddy fw_ek fw_ot_samba fw_sum_model fw_sum_samba ebw fw_wbw fw_ot_model fw_net_samba int_mod moc_samba mocmax_samba q_ebw fw_net_model q_eddy moc_model mocmax_model geoint q_gyre_samba q_ek q_mo q_net_samba q_geoint q_ot_samba q_sum_samba q_wbw s_basin q_ot_model salt q_net_model sf_ebw rho q_gyre_model q_sum_model sf_wbw temp sf_geoint sf_mo sf_int_mod sf_ek sf_model t_basin sf_samba v_basin_samba wbw v umo vgeo v_basin_model |
| noc-npd-era5/npd-eorca025-era5v1/r1i1c1f1/tn/M1m/RAPID_26N | M1m/RAPID_26N Icechunk repository | tn | 1976-01-01T00:00:00Z | 2025-07-31T00:00:00Z | 62 variablesfw_gyre_model dz ekman dx fw_ek fw_fc fw_geoint fw_eddy dh fc fw_sum_rapid fw_net_rapid fw_wbw fw_mo fw_gyre_rapid geoint fw_net_model fw_ot_model fw_sum_model fw_ot_rapid int_mod mocmax_rapid q_geoint mocmax_model moc_rapid q_ek mass_balance q_fc q_eddy q_gyre_model moc_model q_net_model q_sum_model q_sum_rapid q_wbw q_mo q_gyre_rapid q_net_rapid q_ot_rapid q_ot_model salt s_basin sf_mo sf_model t_basin rho s_fc_fwt sf_rapid sf_ek sf_wbw sf_fc sf_geoint sf_int_mod t_fc_fwt vgeo v_basin_model v_basin_rapid umo temp v_fc wbw v |
| noc-npd-era5/npd-eorca025-era5v1/r1i1c1f1/tn/M1m/OSNAP | M1m/OSNAP Icechunk repository | tn | 1976-01-01T00:00:00Z | 2025-07-31T00:00:00Z | 14 variablesflux_dir j_bdy flux_type e1b e3b i_bdy moc_east moc_total so_abs moc_west sigma0 velocity thetao_con volume_transport |
| noc-npd-era5/npd-eorca12-era5v1/r1i1c1f1/tn/M1m/MOVE_16N | M1m/MOVE_16N Icechunk repository | tn | 1976-01-01T00:00:00Z | 2024-12-31T00:00:00Z | 34 variablesdh moc_model moc_move fw_bdry dz fw_move q_bdry q_int fw_int_model dx s_move q_model s_bdry_fwt q_move s_int fw_int fw_model salt rho q_int_model trans_int_model t_move trans_bdry trans_int temp v_bdry v t_bdry_fwt t_int v_model v_int v_move vgeo v_int_model |
| noc-npd-era5/npd-eorca12-era5v1/r1i1c1f1/tn/M1m/SAMBA_34_5S | M1m/SAMBA_34_5S Icechunk repository | tn | 1976-01-01T00:00:00Z | 2024-12-31T00:00:00Z | 58 variablesdh ekman fw_gyre_model dz fw_gyre_samba fw_geoint dx fw_ek fw_ebw fw_eddy fw_net_model fw_net_samba fw_mo ebw fw_ot_model fw_sum_samba fw_wbw moc_model moc_samba fw_sum_model geoint mocmax_model int_mod fw_ot_samba q_ek q_eddy q_mo q_ebw mocmax_samba q_net_samba q_net_model q_geoint q_gyre_model q_gyre_samba q_wbw q_sum_model rho sf_geoint salt sf_ebw q_ot_samba q_sum_samba s_basin sf_int_mod sf_ek umo temp q_ot_model v t_basin sf_samba wbw sf_mo v_basin_samba sf_wbw v_basin_model vgeo sf_model |
| noc-npd-era5/npd-eorca12-era5v1/r1i1c1f1/tn/M1m/RAPID_26N | M1m/RAPID_26N Icechunk repository | tn | 1976-01-01T00:00:00Z | 2024-12-31T00:00:00Z | 62 variablesdh dz ekman dx fw_ek fw_gyre_rapid fc fw_net_model fw_geoint fw_mo fw_eddy fw_net_rapid fw_ot_model fw_gyre_model fw_fc fw_wbw geoint fw_ot_rapid moc_rapid fw_sum_rapid moc_model mass_balance q_eddy q_fc q_geoint fw_sum_model int_mod mocmax_model q_gyre_rapid q_net_model q_ot_model q_gyre_model q_ek q_wbw mocmax_rapid q_net_rapid q_sum_model q_ot_rapid s_basin rho q_sum_rapid salt q_mo sf_geoint sf_mo s_fc_fwt sf_int_mod sf_model t_basin sf_ek sf_wbw sf_rapid sf_fc v_basin_model vgeo t_fc_fwt temp v_fc v_basin_rapid umo wbw v |
| noc-npd-era5/npd-eorca12-era5v1/r1i1c1f1/tn/M1m/OSNAP | M1m/OSNAP Icechunk repository | tn | 1976-01-01T00:00:00Z | 2024-12-31T00:00:00Z | 14 variablese3b e1b i_bdy flux_type sigma0 moc_east j_bdy volume_transport velocity moc_total thetao_con moc_west flux_dir so_abs |
We can see from the list of search Items that
OSNAP,RAPID_26N,MOVE_16NandSAMBA_34_5Sdiagnostics are available for all NPD model configurations.Now, let's open the
RAPID_26Nfile for the 1-degree NPD eORCA1 ERA5v1 simulation we explored earlier.
ds_rapid = catalog.open_dataset(id="noc-npd-era5/npd-eorca1-era5v1/r1i1c1f1/tn/M1m/RAPID_26N")
ds_rapid
<xarray.Dataset> Size: 158MB
Dimensions: (time: 595, z: 75, xbounds: 72, x: 71)
Coordinates:
* time (time) datetime64[ns] 5kB 1976-01-16T12:00:00 ... 2025-07-...
* z (z) float64 600B 0.5058 1.556 2.668 ... 5.698e+03 5.902e+03
* xbounds (xbounds) float64 576B -81.0 -80.0 -79.0 ... -11.0 -9.998
* x (x) float64 568B -80.5 -79.5 -78.5 ... -12.5 -11.5 -10.5
Data variables: (12/62)
dh (time, z, xbounds) float64 26MB dask.array<chunksize=(1, 75, 72), meta=np.ndarray>
ekman (time) float64 5kB dask.array<chunksize=(298,), meta=np.ndarray>
dx (x) float64 568B dask.array<chunksize=(71,), meta=np.ndarray>
fc (time) float64 5kB dask.array<chunksize=(298,), meta=np.ndarray>
fw_fc (time) float64 5kB dask.array<chunksize=(298,), meta=np.ndarray>
fw_ek (time) float64 5kB dask.array<chunksize=(298,), meta=np.ndarray>
... ...
v_basin_rapid (time, z) float64 357kB dask.array<chunksize=(1, 75), meta=np.ndarray>
v_basin_model (time, z) float64 357kB dask.array<chunksize=(1, 75), meta=np.ndarray>
vgeo (time, z, x) float64 25MB dask.array<chunksize=(1, 75, 71), meta=np.ndarray>
t_basin (time, z) float64 357kB dask.array<chunksize=(1, 75), meta=np.ndarray>
t_fc_fwt (time) float64 5kB dask.array<chunksize=(298,), meta=np.ndarray>
wbw (time) float64 5kB dask.array<chunksize=(298,), meta=np.ndarray>Ocean Model Domain Variables¶
So far, we have seen how to access NPD ocean model variables (e.g., temperature, salinity and velocities) defined on their native NEMO model grid.
But often when calculating diagnostics derived from these variables, such as volume, heat and freshwater transports, we also need access to the variables describing the model domain.
Let's next search the
OceanDataCatalogfor any Items with identifiers which contain the "domain" key word:
catalog.search(collection='noc-npd-era5', item_name='domain_cfg')
| Item ID | Title | Platform | Start Date | End Date | Variables |
|---|---|---|---|---|---|
| noc-npd-era5/npd-eorca1-era5v1/r1i1c1f1/gn/domain/domain_cfg | domain/domain_cfg Icechunk repository | gn | 1976-01-01T00:00:00Z | 2025-07-31T00:00:00Z | 49 variablesatlmsk bottom_level e1t e1f e2f e2t bathy_metry e2u e1u e1v e3t_0 e3t_1d e3uw_0 e3v_0 e3f_0 e3w_0 e3w_1d e3u_0 e3vw_0 gdept_1d e2v glamt gdepw_0 gdept_0 glamf gdepw_1d fmask ff_t ff_f gphif glamv gphiu gphiv misf glamu mask_opensea mbathy gphit top_level tmask umaskutil pacmsk umask vmaskutil tmaskutil wmask vmask indmsk socmsk |
| noc-npd-era5/npd-eorca025-era5v1/r1i1c1f1/gn/domain/domain_cfg | domain/domain_cfg Icechunk repository | gn | 1976-01-01T00:00:00Z | 2025-07-31T00:00:00Z | 49 variablesbottom_level e2f e1t e1f bathy_metry e2u e1u atlmsk e2t e1v e3t_0 e3w_1d e3w_0 e3f_0 e3u_0 e3uw_0 e3v_0 fmask gdept_0 ff_f ff_t e2v gdepw_0 e3t_1d gdept_1d gdepw_1d e3vw_0 glamu mask_opensea glamt glamf gphiv gphif gphit indmsk glamv gphiu pacmsk umaskutil top_level socmsk tmaskutil misf mbathy vmask tmask umask vmaskutil wmask |
| noc-npd-era5/npd-eorca12-era5v1/r1i1c1f1/gn/domain/domain_cfg | domain/domain_cfg Icechunk repository | gn | 1990-01-01T00:00:00Z | 2025-06-30T00:00:00Z | 57 variablese2v e1t e1v e2u bathy_metry e3f_0 e1u e2f e1f e3u_0 e2t e3t_1d e3t_0 e3uw_0 e3w_0 e3w_1d fmask bottom_level e3v_0 ff_t e3vw_0 glamf fmaskutil ff_f glamu glamv gphiv gphiu gphif glamt gphit isf_draft jperio jpiglo mask_csemp ln_zco ln_sco mask_csrnf jpjglo ln_zps mask_csgrpglo mask_csgrprnf jpkglo ln_isfcav mask_csglo mask_csgrpemp mask_csundef umask vmask vmaskutil wmask tmaskutil top_level umaskutil mask_opensea wmaskutil tmask |
We can see from the list of search Items that
domain_cfg,mesh_maskandsubbasinancillary data are available for each NPD model configuration.Next, let's open the
domain_cfgfile for the 1-degree NPD eORCA1 ERA5v1 simulation we explored earlier.
ds_domain_cfg = catalog.open_dataset(id="noc-npd-era5/npd-eorca1-era5v1/r1i1c1f1/gn/domain/domain_cfg")
ds_domain_cfg
<xarray.Dataset> Size: 710MB
Dimensions: (y: 331, x: 360, nav_lev: 75)
Coordinates:
* y (y) int64 3kB 0 1 2 3 4 5 6 7 ... 324 325 326 327 328 329 330
* x (x) int64 3kB 0 1 2 3 4 5 6 7 ... 353 354 355 356 357 358 359
* nav_lev (nav_lev) int64 600B 0 1 2 3 4 5 6 7 ... 68 69 70 71 72 73 74
Data variables: (12/49)
e1u (y, x) float64 953kB dask.array<chunksize=(331, 360), meta=np.ndarray>
atlmsk (y, x) float32 477kB dask.array<chunksize=(331, 360), meta=np.ndarray>
e1t (y, x) float64 953kB dask.array<chunksize=(331, 360), meta=np.ndarray>
e1v (y, x) float64 953kB dask.array<chunksize=(331, 360), meta=np.ndarray>
e2t (y, x) float64 953kB dask.array<chunksize=(331, 360), meta=np.ndarray>
bottom_level (y, x) int32 477kB dask.array<chunksize=(331, 360), meta=np.ndarray>
... ...
socmsk (y, x) float32 477kB dask.array<chunksize=(331, 360), meta=np.ndarray>
vmaskutil (y, x) int8 119kB dask.array<chunksize=(331, 360), meta=np.ndarray>
gphiv (y, x) float64 953kB dask.array<chunksize=(331, 360), meta=np.ndarray>
pacmsk (y, x) float32 477kB dask.array<chunksize=(331, 360), meta=np.ndarray>
umaskutil (y, x) int8 119kB dask.array<chunksize=(331, 360), meta=np.ndarray>
vmask (nav_lev, y, x) int8 9MB dask.array<chunksize=(75, 331, 360), meta=np.ndarray>
Attributes:
CfgName: UNKNOWN
CfgIndex: -999
Iperio: 1
Jperio: 0
NFold: 1
NFtype: F
VertCoord: zps
IsfCav: 0
file_name: mesh_mask.nc
TimeStamp: 01/03/2025 22:19:49 -0000