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-model-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: noc-npd-era5/npd-eorca1-era5v1/gn/T1y
Title: eORCA1 ERA5v1 NPD T1y Icechunk repository
Description: Icechunk repository containing eORCA1 ERA5v1 NPD global ocean physics annual mean outputs defined at T-points.
Platform: gn
Start Date: 1976-01-01T00:00:00Z
End Date: 2024-12-31T00:00:00Z
* Item ID: noc-npd-era5/npd-eorca1-era5v1/gn/T1m
Title: eORCA1 ERA5v1 NPD T1m Icechunk repository
Description: Icechunk repository containing eORCA1 ERA5v1 NPD global ocean physics monthly mean outputs defined at T-points.
Platform: gn
Start Date: 1976-01-01T00:00:00Z
End Date: 2024-12-31T00:00:00Z
* Item ID: noc-npd-era5/npd-eorca025-era5v1/gn/T1y_3d
Title: eORCA025 ERA5v1 NPD T1y_3d Icechunk repository
Description: Icechunk repository containing eORCA025 ERA5v1 NPD global ocean physics annual mean outputs defined at T-points.
Platform: gn
Start Date: 1976-01-01T00:00:00Z
End Date: 2024-12-31T00:00:00Z
* Item ID: noc-npd-era5/npd-eorca025-era5v1/gn/T1m_3d
Title: eORCA025 ERA5v1 NPD T1m_3d Icechunk repository
Description: Icechunk repository containing eORCA025 ERA5v1 NPD global ocean physics monthly mean outputs defined at T-points.
Platform: gn
Start Date: 1976-01-01T00:00:00Z
End Date: 2024-12-31T00:00:00Z
* Item ID: noc-npd-era5/npd-eorca025-era5v1/gn/T5d_3d
Title: eORCA025 ERA5v1 NPD T5d_3d Icechunk repository
Description: Icechunk repository containing eORCA025 ERA5v1 NPD global ocean physics 5-day mean outputs defined at T-points.
Platform: gn
Start Date: 1976-01-01T00:00:00Z
End Date: 2024-12-31T00:00:00Z
* Item ID: noc-npd-era5/npd-eorca12-era5v1/gn/T1y_3d
Title: eORCA12 ERA5v1 NPD T1y_3d Icechunk repository
Description: Icechunk repository containing eORCA12 ERA5v1 NPD global ocean physics annual mean outputs defined at T-points.
Platform: gn
Start Date: 1976-01-01T00:00:00Z
End Date: 2024-12-31T00:00:00Z
* Item ID: noc-npd-era5/npd-eorca12-era5v1/gn/T1m_3d
Title: eORCA12 ERA5v1 NPD T1m_3d Icechunk repository
Description: Icechunk repository containing eORCA12 ERA5v1 NPD global ocean physics monthly mean outputs defined at T-points.
Platform: gn
Start Date: 1976-01-01T00:00:00Z
End Date: 2024-12-31T00:00:00Z
- 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/gn/T1y', 'noc-npd-era5/npd-eorca1-era5v1/gn/T1m', 'noc-npd-era5/npd-eorca025-era5v1/gn/T1y_3d', 'noc-npd-era5/npd-eorca025-era5v1/gn/T1m_3d', 'noc-npd-era5/npd-eorca025-era5v1/gn/T5d_3d', 'noc-npd-era5/npd-eorca12-era5v1/gn/T1y_3d', 'noc-npd-era5/npd-eorca12-era5v1/gn/T1m_3d']
Now, let's take a closer look at the first Item in our search results. This 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]
- type "Feature"
- stac_version "1.1.0"
stac_extensions[] 0 items
- id "noc-npd-era5/npd-eorca1-era5v1/gn/T1y"
geometry
- type "Polygon"
coordinates[] 1 items
0[] 5 items
0[] 2 items
- 0 -180.0
- 1 -90.0
1[] 2 items
- 0 180.0
- 1 -90.0
2[] 2 items
- 0 180.0
- 1 90.0
3[] 2 items
- 0 -180.0
- 1 90.0
4[] 2 items
- 0 -180.0
- 1 -90.0
bbox[] 4 items
- 0 -180.0
- 1 -90.0
- 2 180.0
- 3 90.0
properties
- title "eORCA1 ERA5v1 NPD T1y Icechunk repository"
- description "Icechunk repository containing eORCA1 ERA5v1 NPD global ocean physics annual mean outputs defined at T-points."
- platform "gn"
variables[] 73 items
- 0 "fsitherm"
- 1 "hfempds"
- 2 "e3t"
- 3 "evs"
- 4 "friver"
- 5 "hfds"
- 6 "berg_latent_heat_flux"
- 7 "ficeberg"
- 8 "empmr"
- 9 "hfls"
- 10 "hfevapds"
- 11 "hfsr"
- 12 "hfto"
- 13 "hfrainds"
- 14 "hflx_rnf"
- 15 "hfns"
- 16 "mlotstsq"
- 17 "mlotstmin"
- 18 "hfss"
- 19 "ocontemppmdiff"
- 20 "ocontempadvect"
- 21 "mlotstmax"
- 22 "ocontempdiff"
- 23 "ocontemptend"
- 24 "osaltpmdiff"
- 25 "mlotst"
- 26 "ocontempmint"
- 27 "osaltadvect"
- 28 "osalttend"
- 29 "pbo"
- 30 "rsntds"
- 31 "rsdoabsorb"
- 32 "osaltdiff"
- 33 "sfdsi"
- 34 "rlntds"
- 35 "so_abs"
- 36 "rsdo"
- 37 "sohfcisf"
- 38 "sbs_abs"
- 39 "snowpre"
- 40 "prsn"
- 41 "sbt_con"
- 42 "snow_ai_cea"
- 43 "somxzint1"
- 44 "sosafldo"
- 45 "soicecov"
- 46 "sos_abs"
- 47 "sohflisf"
- 48 "somint_abs"
- 49 "somixhgt"
- 50 "somxl010"
- 51 "sossq_abs"
- 52 "thetao_con"
- 53 "strd_atf_li"
- 54 "sowaflup"
- 55 "sowindsp"
- 56 "tos_con"
- 57 "tossq_con"
- 58 "sowflisf"
- 59 "time_centered_bounds"
- 60 "tnpeo"
- 61 "time_counter_bounds"
- 62 "strd_evd_li"
- 63 "strd_bbl_li"
- 64 "ttrd_evd_li"
- 65 "ttrd_atf_li"
- 66 "zossq"
- 67 "vohfcisf"
- 68 "ttrd_qns_li"
- 69 "vowflisf"
- 70 "vohflisf"
- 71 "ttrd_bbl_li"
- 72 "zos"
variable_standard_names[] 73 items
- 0 "fsitherm"
- 1 "ocean_surface_downward_heat_flux_from_E-P"
- 2 "cell_thickness"
- 3 "water_evaporation_flux"
- 4 "water_flux_into_sea_water_from_rivers"
- 5 "ocean_surface_downward_total_heat_flux"
- 6 "latent_heat_flux_from_icebergs"
- 7 "water_flux_into_sea_water_from_icebergs"
- 8 "water_flux_out_of_sea_ice_and_sea_water"
- 9 "ocean_surface_downward_latent_heat_flux"
- 10 "temperature_flux_due_to_evaporation_expressed_as_heat_flux_out_of_sea_water"
- 11 "surface_net_downward_solar_heat_flux"
- 12 "surface_net_downward_total_heat_flux"
- 13 "temperature_flux_due_to_rain_expressed_as_heat_flux_into_sea_water"
- 14 "temperature_flux_due_to_runoff_expressed_as_heat_flux_into_sea_water"
- 15 "surface_net_downward_non_solar_heat_flux"
- 16 "square_of_ocean_mixed_layer_thickness_defined_by_sigma_theta"
- 17 "ocean_mixed_layer_thickness_defined_by_sigma_theta"
- 18 "ocean_surface_downward_sensible_heat_flux"
- 19 "ocontemppmdiff"
- 20 "ocontempadvect"
- 21 "ocean_mixed_layer_thickness_defined_by_sigma_theta"
- 22 "ocontempdiff"
- 23 "ocontemptend"
- 24 "osaltpmdiff"
- 25 "ocean_mixed_layer_thickness_defined_by_sigma_theta"
- 26 "integral_wrt_depth_of_product_of_density_and_conservative_temperature"
- 27 "osaltadvect"
- 28 "osalttend"
- 29 "sea_water_pressure_at_sea_floor"
- 30 "ocean_surface_net_downward_shortwave_heat_flux"
- 31 "rsdoabsorb"
- 32 "osaltdiff"
- 33 "downward_sea_ice_basal_salt_flux"
- 34 "ocean_surface_net_downward_longwave_heat_flux"
- 35 "sea_water_absolute_salinity"
- 36 "downwelling_shortwave_flux_in_sea_water"
- 37 ""
- 38 "sbs_abs"
- 39 "snowfall_flux"
- 40 "snowfall_flux"
- 41 "sbt_con"
- 42 "snowfall_flux"
- 43 "ocean_mixed_layer_thickness_defined_by_sigma_theta"
- 44 "salt_flux_into_sea_water"
- 45 "sea_ice_area_fraction"
- 46 "sea_surface_salinity"
- 47 ""
- 48 "integral_wrt_depth_of_product_of_density_and_absolute_salinity"
- 49 "ocean_mixed_layer_thickness_defined_by_vertical_tracer_diffusivity"
- 50 "ocean_mixed_layer_thickness_defined_by_sigma_theta"
- 51 "square_of_sea_surface_Salinity"
- 52 "sea_water_conservative_temperature"
- 53 "strd_atf_li"
- 54 "water_flux_out_of_sea_ice_and_sea_water"
- 55 "wind_speed"
- 56 "sea_surface_temperature"
- 57 "square_of_sea_surface_temperature"
- 58 ""
- 59 "time_centered_bounds"
- 60 "tnpeo"
- 61 "time_counter_bounds"
- 62 "strd_evd_li"
- 63 "strd_bbl_li"
- 64 "ttrd_evd_li"
- 65 "ttrd_atf_li"
- 66 "square_of_sea_surface_height_above_geoid"
- 67 ""
- 68 "ttrd_qns_li"
- 69 ""
- 70 ""
- 71 "ttrd_bbl_li"
- 72 "sea_surface_height_above_geoid"
dimensions[] 5 items
- 0 "time_counter"
- 1 "y"
- 2 "x"
- 3 "deptht"
- 4 "axis_nbounds"
- operation "mean"
- operation_frequency "annual"
- ocean_component "NEMO v4.2.2"
- si_component "SI3 v4.0"
- status "ongoing"
- update_frequency "quarterly"
- latest_data_update "2025-10-13T16:42:16.418842"
- start_datetime "1976-01-01T00:00:00Z"
- end_datetime "2024-12-31T00:00:00Z"
- datetime None
links[] 3 items
0
- rel "root"
- href "https://noc-msm-o.s3-ext.jc.rl.ac.uk/oceandatastore/noc-model-stac/catalog.json"
- type "application/json"
- title "NOC Model STAC Catalog"
1
- rel "self"
- href "https://noc-msm-o.s3-ext.jc.rl.ac.uk/oceandatastore/noc-model-stac/noc-npd-era5/npd-eorca1-era5v1/gn/noc-npd-era5/npd-eorca1-era5v1/gn/T1y/noc-npd-era5/npd-eorca1-era5v1/gn/T1y.json"
- type "application/json"
2
- rel "parent"
- href "https://noc-msm-o.s3-ext.jc.rl.ac.uk/oceandatastore/noc-model-stac/noc-npd-era5/npd-eorca1-era5v1/gn/catalog.json"
- type "application/json"
- title "eORCA1 ERA5v1 NPD global native model grid Catalog"
assets
T1y
- href "https://noc-msm-o.s3-ext.jc.rl.ac.uk/npd-eorca1-era5v1/T1y"
- type "application/icechunk"
- title "eORCA1 ERA5v1 NPD T1y Icechunk repository"
- description "Icechunk repository containing eORCA1 ERA5v1 NPD global ocean physics annual mean outputs defined at T-points."
- bucket "npd-eorca1-era5v1"
- prefix "T1y"
- endpoint_url "https://noc-msm-o.s3-ext.jc.rl.ac.uk"
- anonymous True
- collection "noc-npd-era5"
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:
* deptht (deptht) float32 300B 0.5058 1.556 ... 5.902e+03
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>
time_centered (time_counter) datetime64[ns] 88B dask.array<chunksize=(1,), meta=np.ndarray>
* time_counter (time_counter) datetime64[ns] 88B 1980-07-02 ... 1...
Dimensions without coordinates: y, x, axis_nbounds
Data variables: (12/73)
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>
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>
evs (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>
zos (time_counter, y, x) float32 5MB dask.array<chunksize=(1, 331, 360), meta=np.ndarray>
ttrd_bbl_li (time_counter, deptht, y, x) float32 393MB dask.array<chunksize=(1, 25, 331, 360), meta=np.ndarray>
vohflisf (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>
ttrd_qns_li (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: noc-npd-era5/npd-eorca1-era5v1/tn/M1m/MOVE_16N
Title: eORCA1 ERA5v1 NPD M1m/MOVE_16N Icechunk repository
Description: Icechunk repository containing eORCA1 ERA5v1 NPD ocean physics transect monthly mean outputs defined at MOVE_16N.
Platform: tn
Start Date: 1976-01-01T00:00:00Z
End Date: 2024-12-31T00:00:00Z
* Item ID: noc-npd-era5/npd-eorca1-era5v1/tn/M1m/SAMBA_34_5S
Title: eORCA1 ERA5v1 NPD M1m/SAMBA_34_5S Icechunk repository
Description: Icechunk repository containing eORCA1 ERA5v1 NPD global ocean scalar monthly mean outputs.
Platform: tn
Start Date: 1976-01-01T00:00:00Z
End Date: 2024-12-31T00:00:00Z
* Item ID: noc-npd-era5/npd-eorca1-era5v1/tn/M1m/RAPID_26N
Title: eORCA1 ERA5v1 NPD M1m/RAPID_26N Icechunk repository
Description: Icechunk repository containing eORCA1 ERA5v1 NPD global sea-ice monthly mean outputs defined at T-points.
Platform: tn
Start Date: 1976-01-01T00:00:00Z
End Date: 2024-12-31T00:00:00Z
* Item ID: noc-npd-era5/npd-eorca1-era5v1/tn/M1m/OSNAP
Title: eORCA1 ERA5v1 NPD M1m/OSNAP Icechunk repository
Description: Icechunk repository containing eORCA1 ERA5v1 NPD global ocean scalar monthly mean outputs.
Platform: tn
Start Date: 1976-01-01T00:00:00Z
End Date: 2024-12-31T00:00:00Z
* Item ID: noc-npd-era5/npd-eorca025-era5v1/tn/M1m/MOVE_16N
Title: eORCA025 ERA5v1 NPD M1m/MOVE_16N Icechunk repository
Description: Icechunk repository containing eORCA025 ERA5v1 NPD ocean physics transect monthly mean outputs defined at MOVE_16N.
Platform: tn
Start Date: 1976-01-01T00:00:00Z
End Date: 2024-12-31T00:00:00Z
* Item ID: noc-npd-era5/npd-eorca025-era5v1/tn/M1m/SAMBA_34_5S
Title: eORCA025 ERA5v1 NPD M1m/SAMBA_34_5S Icechunk repository
Description: Icechunk repository containing eORCA025 ERA5v1 NPD global ocean scalar monthly mean outputs.
Platform: tn
Start Date: 1976-01-01T00:00:00Z
End Date: 2024-12-31T00:00:00Z
* Item ID: noc-npd-era5/npd-eorca025-era5v1/tn/M1m/RAPID_26N
Title: eORCA025 ERA5v1 NPD M1m/RAPID_26N Icechunk repository
Description: Icechunk repository containing eORCA025 ERA5v1 NPD global sea-ice monthly mean outputs defined at T-points.
Platform: tn
Start Date: 1976-01-01T00:00:00Z
End Date: 2024-12-31T00:00:00Z
* Item ID: noc-npd-era5/npd-eorca025-era5v1/tn/M1m/OSNAP
Title: eORCA025 ERA5v1 NPD M1m/OSNAP Icechunk repository
Description: Icechunk repository containing eORCA025 ERA5v1 NPD global ocean scalar monthly mean outputs.
Platform: tn
Start Date: 1976-01-01T00:00:00Z
End Date: 2024-12-31T00:00:00Z
* Item ID: noc-npd-era5/npd-eorca12-era5v1/tn/M1m/MOVE_16N
Title: eORCA12 ERA5v1 NPD M1m/MOVE_16N Icechunk repository
Description: Icechunk repository containing eORCA12 ERA5v1 NPD ocean physics transect monthly mean outputs defined at MOVE_16N.
Platform: tn
Start Date: 1976-01-01T00:00:00Z
End Date: 2024-12-31T00:00:00Z
* Item ID: noc-npd-era5/npd-eorca12-era5v1/tn/M1m/SAMBA_34_5S
Title: eORCA12 ERA5v1 NPD M1m/SAMBA_34_5S Icechunk repository
Description: Icechunk repository containing eORCA12 ERA5v1 NPD global ocean scalar monthly mean outputs.
Platform: tn
Start Date: 1976-01-01T00:00:00Z
End Date: 2024-12-31T00:00:00Z
* Item ID: noc-npd-era5/npd-eorca12-era5v1/tn/M1m/RAPID_26N
Title: eORCA12 ERA5v1 NPD M1m/RAPID_26N Icechunk repository
Description: Icechunk repository containing eORCA12 ERA5v1 NPD global sea-ice monthly mean outputs defined at T-points.
Platform: tn
Start Date: 1976-01-01T00:00:00Z
End Date: 2024-12-31T00:00:00Z
* Item ID: noc-npd-era5/npd-eorca12-era5v1/tn/M1m/OSNAP
Title: eORCA12 ERA5v1 NPD M1m/OSNAP Icechunk repository
Description: Icechunk repository containing eORCA12 ERA5v1 NPD global ocean scalar monthly mean outputs.
Platform: tn
Start Date: 1976-01-01T00:00:00Z
End Date: 2024-12-31T00:00:00Z
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/tn/M1m/RAPID_26N")
ds_rapid
<xarray.Dataset> Size: 156MB
Dimensions: (time: 588, z: 75, xbounds: 72, x: 71)
Coordinates:
* time (time) datetime64[ns] 5kB 1976-01-16T12:00:00 ... 2024-12-...
* x (x) float64 568B -80.5 -79.5 -78.5 ... -12.5 -11.5 -10.5
* 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
Data variables: (12/60)
fw_fc (time) float64 5kB dask.array<chunksize=(294,), meta=np.ndarray>
fw_gyre_model (time) float64 5kB dask.array<chunksize=(294,), meta=np.ndarray>
fw_eddy (time) float64 5kB dask.array<chunksize=(294,), meta=np.ndarray>
dh (time, z, xbounds) float64 25MB dask.array<chunksize=(1, 75, 72), meta=np.ndarray>
fw_gyre_rapid (time) float64 5kB dask.array<chunksize=(294,), meta=np.ndarray>
fw_ek (time) float64 5kB dask.array<chunksize=(294,), meta=np.ndarray>
... ...
temp (time, z, x) float64 25MB dask.array<chunksize=(1, 75, 71), meta=np.ndarray>
v_fc (time, z) float64 353kB dask.array<chunksize=(1, 75), meta=np.ndarray>
v_basin_rapid (time, z) float64 353kB dask.array<chunksize=(1, 75), meta=np.ndarray>
sf_wbw (time, z) float64 353kB dask.array<chunksize=(1, 75), meta=np.ndarray>
wbw (time) float64 5kB dask.array<chunksize=(294,), meta=np.ndarray>
vgeo (time, z, x) float64 25MB dask.array<chunksize=(1, 75, 71), meta=np.ndarray>
Attributes:
geostrophic_method: bottom-up
geostrophic_reference_level: 4820.0
reference_to_model_velocity: None
eos: teos10
rhocp: 4084625.0
ekman_level: 100.0
contact: fredc.ucar.edu
code_reference: https://github.com/NCAR/metric
method_references: (1) McCarthy, G. D., and Coauthors, 2015: M...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: noc-npd-era5/npd-eorca1-era5v1/gn/domain/domain_cfg
Title: eORCA1 ERA5v1 NPD domain/domain_cfg Icechunk repository
Description: Icechunk repository containing eORCA1 ERA5v1 NPD global ocean model domain_cfg variables.
Platform: gn
Start Date: 1976-01-01T00:00:00Z
End Date: 2024-12-31T00:00:00Z
* Item ID: noc-npd-era5/npd-eorca025-era5v1/gn/domain/domain_cfg
Title: eORCA025 ERA5v1 NPD domain/domain_cfg Icechunk repository
Description: Icechunk repository containing eORCA025 ERA5v1 NPD global ocean model domain_cfg variables.
Platform: gn
Start Date: 1976-01-01T00:00:00Z
End Date: 2024-12-31T00:00:00Z
* Item ID: noc-npd-era5/npd-eorca12-era5v1/gn/domain/domain_cfg
Title: eORCA12 ERA5v1 NPD domain/domain_cfg Icechunk repository
Description: Icechunk repository containing eORCA12 ERA5v1 NPD global ocean model domain_cfg variables.
Platform: gn
Start Date: 1976-01-01T00:00:00Z
End Date: 2024-12-31T00:00:00Z
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/gn/domain/domain_cfg")
ds_domain_cfg
<xarray.Dataset> Size: 666MB
Dimensions: (t: 1, y: 331, x: 360, z: 75)
Dimensions without coordinates: t, y, x, z
Data variables: (12/43)
bathy_metry (t, y, x) float32 477kB dask.array<chunksize=(1, 331, 360), meta=np.ndarray>
bottom_level (t, y, x) int32 477kB dask.array<chunksize=(1, 331, 360), meta=np.ndarray>
e2u (t, y, x) float64 953kB dask.array<chunksize=(1, 331, 360), meta=np.ndarray>
e1v (t, y, x) float64 953kB dask.array<chunksize=(1, 331, 360), meta=np.ndarray>
e2f (t, y, x) float64 953kB dask.array<chunksize=(1, 331, 360), meta=np.ndarray>
e2v (t, y, x) float64 953kB dask.array<chunksize=(1, 331, 360), meta=np.ndarray>
... ...
top_level (t, y, x) int32 477kB dask.array<chunksize=(1, 331, 360), meta=np.ndarray>
mask_opensea (t, y, x) int32 477kB dask.array<chunksize=(1, 331, 360), meta=np.ndarray>
mask_csrnf (t, y, x) int32 477kB dask.array<chunksize=(1, 331, 360), meta=np.ndarray>
gphit (t, y, x) float64 953kB dask.array<chunksize=(1, 331, 360), meta=np.ndarray>
mask_csglo (t, y, x) int32 477kB dask.array<chunksize=(1, 331, 360), meta=np.ndarray>
mask_csundef (t, y, x) int32 477kB dask.array<chunksize=(1, 331, 360), meta=np.ndarray>
Attributes:
DOMAIN_number_total: 1
DOMAIN_number: 0
DOMAIN_dimensions_ids: [1, 2]
DOMAIN_size_global: [362, 332]
DOMAIN_size_local: [362, 332]
DOMAIN_position_first: [1, 1]
DOMAIN_position_last: [362, 332]
DOMAIN_halo_size_start: [0, 0]
DOMAIN_halo_size_end: [0, 0]
DOMAIN_type: BOX
history: Mon Jun 5 12:41:32 2023: ncks -A mask.nc ORCA1_...
NCO: 4.4.7