Using CF-Xarray to easily analyze CMORized and non-CMORized output#
This notebook demonstrates how to use CF attributes in datasets to write code that generalizes across datasets that follow different naming conventions.
It makes a simple depth plot of zonal velocity at (0°N, 140°W) and uses the cf_xarray package to take advantage of CF attributes. For example, the zonal velocity variable (named UVEL
or uo
depending on output) is extracted using the CF standard name sea_water_x_velocity
. The associated latitude, longitude variables (ULAT
, lat
, yh
; ULONG
, lon
, xh
) are extracted using cf_xarray logic for identifying appropriate latitude and longitude variables.
There are some outstanding issues:
CESM-POP2 does not output a nice complete set of CF attributes for each variable. This will need to be added as a post-processing step.
indexing on a curvilinear lat-lon grid is hard, but xarray will make this more convenient soon.
indexing along longitudes that could be 0→360 or -180→180 is also hard, but we can fix this when xarray exposes more indexing functionality.
%load_ext watermark
import cf_xarray as cfxr
import dask_jobqueue
import distributed
import intake
import intake_esm
import matplotlib as mpl
import matplotlib.pyplot as plt
import numpy as np
import pint_xarray
import xarray as xr
from cf_xarray.units import units # loads some UDUNITS definitions
import pop_tools
xr.set_options(keep_attrs=True)
%watermark -iv
matplotlib : 3.3.2
numpy : 1.19.2
intake : 0.6.0
cf_xarray : 0.4.1.dev31+g7a8c620
distributed : 2.30.0
pint_xarray : 0.2
pop_tools : 2020.9.14
xarray : 0.16.3.dev150+g37522e991
intake_esm : 2020.8.15
dask_jobqueue: 0.7.1
cluster = dask_jobqueue.PBSCluster(
cores=1, # The number of cores you want
memory='10GB', # Amount of memory
processes=1, # How many processes
queue='casper', # The type of queue to utilize (/glade/u/apps/dav/opt/usr/bin/execcasper)
local_directory='$TMPDIR', # Use your local directory
resource_spec='select=1:ncpus=1:mem=10GB', # Specify resources
project='ncgd0048', # Input your project ID here
walltime='02:00:00', # Amount of wall time
interface='ib0', # Interface to use
)
cluster.scale(6)
client = distributed.Client(cluster)
client
Client
|
Cluster
|
TODO:#
[ ] read data with intake-esm
# intake.open_esm_datastore("/glade/collections/cmip/catalog/intake-esm-datastore/catalogs/glade-cmip6.json")
[ ] Add
pop_tools.add_cf_attributes()
# CF attributes to add to POP output
cf_attrs = {
"UVEL": {"standard_name": "sea_water_x_velocity", "cell_measures": "area: UAREA"},
"VVEL": {"standard_name": "sea_water_y_velocity", "cell_measures": "area: UAREA"},
"TEMP": {
"standard_name": "sea_water_potential_temperature",
"cell_measures": "area: TAREA",
},
"SALT": {"standard_name": "sea_water_salinity", "cell_measures": "area: TAREA"},
}
def set_coords(ds):
"""Set nlat, nlon as coordinate variables and identify axis as X, Y"""
ds["nlat"] = ("nlat", np.arange(ds.sizes["nlat"]), {"axis": "Y"})
ds["nlon"] = ("nlon", np.arange(ds.sizes["nlon"]), {"axis": "X"})
return ds
Read and clean data#
First we read in datasets; add nice CF-attributes to CESM-POP; delete a bad cell_measures
attribute in the CMOR datasets; and delete units="none"
for two variables in the MOM6 dataset
CESM-POP#
cesm = xr.open_mfdataset(
"/glade/campaign/collections/cmip/CMIP6/timeseries-cmip6/b.e21.B1850.f09_g17.CMIP6-piControl.001/ocn/proc/tseries/month_1/b.e21.B1850.f09_g17.CMIP6-piControl.001.pop.h.UVEL.*.nc",
chunks={"time": 1000, "nlat": 100, "nlon": 10},
parallel=True,
data_vars="minimal",
coords="minimal",
compat="override",
)
cesm["UVEL"].attrs.update(cf_attrs["UVEL"]) # CESM-POP2 doesn't add standard_name by default
cesm = set_coords(cesm)
cesm
<xarray.Dataset> Dimensions: (moc_comp: 3, transport_comp: 5, transport_reg: 2, z_t: 60, z_t_150m: 15, z_w: 60, z_w_top: 60, z_w_bot: 60, lat_aux_grid: 395, moc_z: 61, nlat: 384, nlon: 320, time: 24000, d2: 2) Coordinates: (12/14) * z_t (z_t) float32 500.0 1.5e+03 ... 5.125e+05 5.375e+05 * z_t_150m (z_t_150m) float32 500.0 1.5e+03 ... 1.45e+04 * z_w (z_w) float32 0.0 1e+03 2e+03 ... 5e+05 5.25e+05 * z_w_top (z_w_top) float32 0.0 1e+03 2e+03 ... 5e+05 5.25e+05 * z_w_bot (z_w_bot) float32 1e+03 2e+03 ... 5.25e+05 5.5e+05 * lat_aux_grid (lat_aux_grid) float32 -79.49 -78.95 ... 89.47 90.0 ... ... ULAT (nlat, nlon) float64 dask.array<chunksize=(100, 10), meta=np.ndarray> TLONG (nlat, nlon) float64 dask.array<chunksize=(100, 10), meta=np.ndarray> TLAT (nlat, nlon) float64 dask.array<chunksize=(100, 10), meta=np.ndarray> * time (time) object 0001-02-01 00:00:00 ... 2001-01-01 ... * nlat (nlat) int64 0 1 2 3 4 5 ... 378 379 380 381 382 383 * nlon (nlon) int64 0 1 2 3 4 5 ... 314 315 316 317 318 319 Dimensions without coordinates: moc_comp, transport_comp, transport_reg, d2 Data variables: (12/55) moc_components (moc_comp) |S384 dask.array<chunksize=(3,), meta=np.ndarray> transport_components (transport_comp) |S384 dask.array<chunksize=(5,), meta=np.ndarray> transport_regions (transport_reg) |S384 dask.array<chunksize=(2,), meta=np.ndarray> dz (z_t) float32 dask.array<chunksize=(60,), meta=np.ndarray> dzw (z_w) float32 dask.array<chunksize=(60,), meta=np.ndarray> KMT (nlat, nlon) float64 dask.array<chunksize=(100, 10), meta=np.ndarray> ... ... salinity_factor float64 ... sflux_factor float64 ... nsurface_t float64 ... nsurface_u float64 ... time_bound (time, d2) object dask.array<chunksize=(1000, 2), meta=np.ndarray> UVEL (time, z_t, nlat, nlon) float32 dask.array<chunksize=(1000, 60, 100, 10), meta=np.ndarray> Attributes: title: b.e21.B1850.f09_g17.CMIP6-piControl.001 history: none Conventions: CF-1.0; http://www.cgd.ucar.edu/cms/eaton/netcdf/CF-cu... time_period_freq: month_1 model_doi_url: https://doi.org/10.5065/D67H1H0V contents: Diagnostic and Prognostic Variables source: CCSM POP2, the CCSM Ocean Component revision: $Id: tavg.F90 89644 2018-08-04 14:26:01Z klindsay $ calendar: All years have exactly 365 days. start_time: This dataset was created on 2018-08-09 at 18:18:26.3 cell_methods: cell_methods = time: mean ==> the variable values are ...
- moc_comp: 3
- transport_comp: 5
- transport_reg: 2
- z_t: 60
- z_t_150m: 15
- z_w: 60
- z_w_top: 60
- z_w_bot: 60
- lat_aux_grid: 395
- moc_z: 61
- nlat: 384
- nlon: 320
- time: 24000
- d2: 2
- z_t(z_t)float32500.0 1.5e+03 ... 5.375e+05
- long_name :
- depth from surface to midpoint of layer
- units :
- centimeters
- positive :
- down
- valid_min :
- 500.0
- valid_max :
- 537500.0
array([5.000000e+02, 1.500000e+03, 2.500000e+03, 3.500000e+03, 4.500000e+03, 5.500000e+03, 6.500000e+03, 7.500000e+03, 8.500000e+03, 9.500000e+03, 1.050000e+04, 1.150000e+04, 1.250000e+04, 1.350000e+04, 1.450000e+04, 1.550000e+04, 1.650984e+04, 1.754790e+04, 1.862913e+04, 1.976603e+04, 2.097114e+04, 2.225783e+04, 2.364088e+04, 2.513702e+04, 2.676542e+04, 2.854837e+04, 3.051192e+04, 3.268680e+04, 3.510935e+04, 3.782276e+04, 4.087846e+04, 4.433777e+04, 4.827367e+04, 5.277280e+04, 5.793729e+04, 6.388626e+04, 7.075633e+04, 7.870025e+04, 8.788252e+04, 9.847059e+04, 1.106204e+05, 1.244567e+05, 1.400497e+05, 1.573946e+05, 1.764003e+05, 1.968944e+05, 2.186457e+05, 2.413972e+05, 2.649001e+05, 2.889385e+05, 3.133405e+05, 3.379793e+05, 3.627670e+05, 3.876452e+05, 4.125768e+05, 4.375392e+05, 4.625190e+05, 4.875083e+05, 5.125028e+05, 5.375000e+05], dtype=float32)
- z_t_150m(z_t_150m)float32500.0 1.5e+03 ... 1.35e+04 1.45e+04
- long_name :
- depth from surface to midpoint of layer
- units :
- centimeters
- positive :
- down
- valid_min :
- 500.0
- valid_max :
- 14500.0
array([ 500., 1500., 2500., 3500., 4500., 5500., 6500., 7500., 8500., 9500., 10500., 11500., 12500., 13500., 14500.], dtype=float32)
- z_w(z_w)float320.0 1e+03 2e+03 ... 5e+05 5.25e+05
- long_name :
- depth from surface to top of layer
- units :
- centimeters
- positive :
- down
- valid_min :
- 0.0
- valid_max :
- 525000.94
array([ 0. , 1000. , 2000. , 3000. , 4000. , 5000. , 6000. , 7000. , 8000. , 9000. , 10000. , 11000. , 12000. , 13000. , 14000. , 15000. , 16000. , 17019.682, 18076.129, 19182.125, 20349.932, 21592.344, 22923.312, 24358.453, 25915.58 , 27615.26 , 29481.47 , 31542.373, 33831.227, 36387.473, 39258.047, 42498.887, 46176.656, 50370.688, 55174.91 , 60699.668, 67072.86 , 74439.805, 82960.695, 92804.35 , 104136.82 , 117104.016, 131809.36 , 148290.08 , 166499.2 , 186301.44 , 207487.39 , 229803.9 , 252990.4 , 276809.84 , 301067.06 , 325613.84 , 350344.88 , 375189.2 , 400101.16 , 425052.47 , 450026.06 , 475012. , 500004.7 , 525000.94 ], dtype=float32)
- z_w_top(z_w_top)float320.0 1e+03 2e+03 ... 5e+05 5.25e+05
- long_name :
- depth from surface to top of layer
- units :
- centimeters
- positive :
- down
- valid_min :
- 0.0
- valid_max :
- 525000.94
array([ 0. , 1000. , 2000. , 3000. , 4000. , 5000. , 6000. , 7000. , 8000. , 9000. , 10000. , 11000. , 12000. , 13000. , 14000. , 15000. , 16000. , 17019.682, 18076.129, 19182.125, 20349.932, 21592.344, 22923.312, 24358.453, 25915.58 , 27615.26 , 29481.47 , 31542.373, 33831.227, 36387.473, 39258.047, 42498.887, 46176.656, 50370.688, 55174.91 , 60699.668, 67072.86 , 74439.805, 82960.695, 92804.35 , 104136.82 , 117104.016, 131809.36 , 148290.08 , 166499.2 , 186301.44 , 207487.39 , 229803.9 , 252990.4 , 276809.84 , 301067.06 , 325613.84 , 350344.88 , 375189.2 , 400101.16 , 425052.47 , 450026.06 , 475012. , 500004.7 , 525000.94 ], dtype=float32)
- z_w_bot(z_w_bot)float321e+03 2e+03 ... 5.25e+05 5.5e+05
- long_name :
- depth from surface to bottom of layer
- units :
- centimeters
- positive :
- down
- valid_min :
- 1000.0
- valid_max :
- 549999.06
array([ 1000. , 2000. , 3000. , 4000. , 5000. , 6000. , 7000. , 8000. , 9000. , 10000. , 11000. , 12000. , 13000. , 14000. , 15000. , 16000. , 17019.682, 18076.129, 19182.125, 20349.932, 21592.344, 22923.312, 24358.453, 25915.58 , 27615.26 , 29481.47 , 31542.373, 33831.227, 36387.473, 39258.047, 42498.887, 46176.656, 50370.688, 55174.91 , 60699.668, 67072.86 , 74439.805, 82960.695, 92804.35 , 104136.82 , 117104.016, 131809.36 , 148290.08 , 166499.2 , 186301.44 , 207487.39 , 229803.9 , 252990.4 , 276809.84 , 301067.06 , 325613.84 , 350344.88 , 375189.2 , 400101.16 , 425052.47 , 450026.06 , 475012. , 500004.7 , 525000.94 , 549999.06 ], dtype=float32)
- lat_aux_grid(lat_aux_grid)float32-79.49 -78.95 -78.42 ... 89.47 90.0
- long_name :
- latitude grid for transport diagnostics
- units :
- degrees_north
- valid_min :
- -79.48815
- valid_max :
- 90.0
array([-79.48815 , -78.952896, -78.418655, ..., 88.948814, 89.47441 , 90. ], dtype=float32)
- moc_z(moc_z)float320.0 1e+03 ... 5.25e+05 5.5e+05
- long_name :
- depth from surface to top of layer
- units :
- centimeters
- positive :
- down
- valid_min :
- 0.0
- valid_max :
- 549999.06
array([ 0. , 1000. , 2000. , 3000. , 4000. , 5000. , 6000. , 7000. , 8000. , 9000. , 10000. , 11000. , 12000. , 13000. , 14000. , 15000. , 16000. , 17019.682, 18076.129, 19182.125, 20349.932, 21592.344, 22923.312, 24358.453, 25915.58 , 27615.26 , 29481.47 , 31542.373, 33831.227, 36387.473, 39258.047, 42498.887, 46176.656, 50370.688, 55174.91 , 60699.668, 67072.86 , 74439.805, 82960.695, 92804.35 , 104136.82 , 117104.016, 131809.36 , 148290.08 , 166499.2 , 186301.44 , 207487.39 , 229803.9 , 252990.4 , 276809.84 , 301067.06 , 325613.84 , 350344.88 , 375189.2 , 400101.16 , 425052.47 , 450026.06 , 475012. , 500004.7 , 525000.94 , 549999.06 ], dtype=float32)
- ULONG(nlat, nlon)float64dask.array<chunksize=(100, 10), meta=np.ndarray>
- long_name :
- array of u-grid longitudes
- units :
- degrees_east
Array Chunk Bytes 983.04 kB 8.00 kB Shape (384, 320) (100, 10) Count 129 Tasks 128 Chunks Type float64 numpy.ndarray - ULAT(nlat, nlon)float64dask.array<chunksize=(100, 10), meta=np.ndarray>
- long_name :
- array of u-grid latitudes
- units :
- degrees_north
Array Chunk Bytes 983.04 kB 8.00 kB Shape (384, 320) (100, 10) Count 129 Tasks 128 Chunks Type float64 numpy.ndarray - TLONG(nlat, nlon)float64dask.array<chunksize=(100, 10), meta=np.ndarray>
- long_name :
- array of t-grid longitudes
- units :
- degrees_east
Array Chunk Bytes 983.04 kB 8.00 kB Shape (384, 320) (100, 10) Count 129 Tasks 128 Chunks Type float64 numpy.ndarray - TLAT(nlat, nlon)float64dask.array<chunksize=(100, 10), meta=np.ndarray>
- long_name :
- array of t-grid latitudes
- units :
- degrees_north
Array Chunk Bytes 983.04 kB 8.00 kB Shape (384, 320) (100, 10) Count 129 Tasks 128 Chunks Type float64 numpy.ndarray - time(time)object0001-02-01 00:00:00 ... 2001-01-...
- long_name :
- time
- bounds :
- time_bound
array([cftime.DatetimeNoLeap(1, 2, 1, 0, 0, 0, 0), cftime.DatetimeNoLeap(1, 3, 1, 0, 0, 0, 0), cftime.DatetimeNoLeap(1, 4, 1, 0, 0, 0, 0), ..., cftime.DatetimeNoLeap(2000, 11, 1, 0, 0, 0, 0), cftime.DatetimeNoLeap(2000, 12, 1, 0, 0, 0, 0), cftime.DatetimeNoLeap(2001, 1, 1, 0, 0, 0, 0)], dtype=object)
- nlat(nlat)int640 1 2 3 4 5 ... 379 380 381 382 383
- axis :
- Y
array([ 0, 1, 2, ..., 381, 382, 383])
- nlon(nlon)int640 1 2 3 4 5 ... 315 316 317 318 319
- axis :
- X
array([ 0, 1, 2, ..., 317, 318, 319])
- moc_components(moc_comp)|S384dask.array<chunksize=(3,), meta=np.ndarray>
- long_name :
- MOC component names
- units :
Array Chunk Bytes 1.15 kB 1.15 kB Shape (3,) (3,) Count 2 Tasks 1 Chunks Type |S384 numpy.ndarray - transport_components(transport_comp)|S384dask.array<chunksize=(5,), meta=np.ndarray>
- long_name :
- T,S transport components
- units :
Array Chunk Bytes 1.92 kB 1.92 kB Shape (5,) (5,) Count 2 Tasks 1 Chunks Type |S384 numpy.ndarray - transport_regions(transport_reg)|S384dask.array<chunksize=(2,), meta=np.ndarray>
- long_name :
- regions for all transport diagnostics
- units :
Array Chunk Bytes 768 B 768 B Shape (2,) (2,) Count 2 Tasks 1 Chunks Type |S384 numpy.ndarray - dz(z_t)float32dask.array<chunksize=(60,), meta=np.ndarray>
- long_name :
- thickness of layer k
- units :
- centimeters
Array Chunk Bytes 240 B 240 B Shape (60,) (60,) Count 2 Tasks 1 Chunks Type float32 numpy.ndarray - dzw(z_w)float32dask.array<chunksize=(60,), meta=np.ndarray>
- long_name :
- midpoint of k to midpoint of k+1
- units :
- centimeters
Array Chunk Bytes 240 B 240 B Shape (60,) (60,) Count 2 Tasks 1 Chunks Type float32 numpy.ndarray - KMT(nlat, nlon)float64dask.array<chunksize=(100, 10), meta=np.ndarray>
- long_name :
- k Index of Deepest Grid Cell on T Grid
Array Chunk Bytes 983.04 kB 8.00 kB Shape (384, 320) (100, 10) Count 129 Tasks 128 Chunks Type float64 numpy.ndarray - KMU(nlat, nlon)float64dask.array<chunksize=(100, 10), meta=np.ndarray>
- long_name :
- k Index of Deepest Grid Cell on U Grid
Array Chunk Bytes 983.04 kB 8.00 kB Shape (384, 320) (100, 10) Count 129 Tasks 128 Chunks Type float64 numpy.ndarray - REGION_MASK(nlat, nlon)float64dask.array<chunksize=(100, 10), meta=np.ndarray>
- long_name :
- basin index number (signed integers)
Array Chunk Bytes 983.04 kB 8.00 kB Shape (384, 320) (100, 10) Count 129 Tasks 128 Chunks Type float64 numpy.ndarray - UAREA(nlat, nlon)float64dask.array<chunksize=(100, 10), meta=np.ndarray>
- long_name :
- area of U cells
- units :
- centimeter^2
Array Chunk Bytes 983.04 kB 8.00 kB Shape (384, 320) (100, 10) Count 129 Tasks 128 Chunks Type float64 numpy.ndarray - TAREA(nlat, nlon)float64dask.array<chunksize=(100, 10), meta=np.ndarray>
- long_name :
- area of T cells
- units :
- centimeter^2
Array Chunk Bytes 983.04 kB 8.00 kB Shape (384, 320) (100, 10) Count 129 Tasks 128 Chunks Type float64 numpy.ndarray - HU(nlat, nlon)float64dask.array<chunksize=(100, 10), meta=np.ndarray>
- long_name :
- ocean depth at U points
- units :
- centimeter
Array Chunk Bytes 983.04 kB 8.00 kB Shape (384, 320) (100, 10) Count 129 Tasks 128 Chunks Type float64 numpy.ndarray - HT(nlat, nlon)float64dask.array<chunksize=(100, 10), meta=np.ndarray>
- long_name :
- ocean depth at T points
- units :
- centimeter
Array Chunk Bytes 983.04 kB 8.00 kB Shape (384, 320) (100, 10) Count 129 Tasks 128 Chunks Type float64 numpy.ndarray - DXU(nlat, nlon)float64dask.array<chunksize=(100, 10), meta=np.ndarray>
- long_name :
- x-spacing centered at U points
- units :
- centimeters
Array Chunk Bytes 983.04 kB 8.00 kB Shape (384, 320) (100, 10) Count 129 Tasks 128 Chunks Type float64 numpy.ndarray - DYU(nlat, nlon)float64dask.array<chunksize=(100, 10), meta=np.ndarray>
- long_name :
- y-spacing centered at U points
- units :
- centimeters
Array Chunk Bytes 983.04 kB 8.00 kB Shape (384, 320) (100, 10) Count 129 Tasks 128 Chunks Type float64 numpy.ndarray - DXT(nlat, nlon)float64dask.array<chunksize=(100, 10), meta=np.ndarray>
- long_name :
- x-spacing centered at T points
- units :
- centimeters
Array Chunk Bytes 983.04 kB 8.00 kB Shape (384, 320) (100, 10) Count 129 Tasks 128 Chunks Type float64 numpy.ndarray - DYT(nlat, nlon)float64dask.array<chunksize=(100, 10), meta=np.ndarray>
- long_name :
- y-spacing centered at T points
- units :
- centimeters
Array Chunk Bytes 983.04 kB 8.00 kB Shape (384, 320) (100, 10) Count 129 Tasks 128 Chunks Type float64 numpy.ndarray - HTN(nlat, nlon)float64dask.array<chunksize=(100, 10), meta=np.ndarray>
- long_name :
- cell widths on North sides of T cell
- units :
- centimeters
Array Chunk Bytes 983.04 kB 8.00 kB Shape (384, 320) (100, 10) Count 129 Tasks 128 Chunks Type float64 numpy.ndarray - HTE(nlat, nlon)float64dask.array<chunksize=(100, 10), meta=np.ndarray>
- long_name :
- cell widths on East sides of T cell
- units :
- centimeters
Array Chunk Bytes 983.04 kB 8.00 kB Shape (384, 320) (100, 10) Count 129 Tasks 128 Chunks Type float64 numpy.ndarray - HUS(nlat, nlon)float64dask.array<chunksize=(100, 10), meta=np.ndarray>
- long_name :
- cell widths on South sides of U cell
- units :
- centimeters
Array Chunk Bytes 983.04 kB 8.00 kB Shape (384, 320) (100, 10) Count 129 Tasks 128 Chunks Type float64 numpy.ndarray - HUW(nlat, nlon)float64dask.array<chunksize=(100, 10), meta=np.ndarray>
- long_name :
- cell widths on West sides of U cell
- units :
- centimeters
Array Chunk Bytes 983.04 kB 8.00 kB Shape (384, 320) (100, 10) Count 129 Tasks 128 Chunks Type float64 numpy.ndarray - ANGLE(nlat, nlon)float64dask.array<chunksize=(100, 10), meta=np.ndarray>
- long_name :
- angle grid makes with latitude line
- units :
- radians
Array Chunk Bytes 983.04 kB 8.00 kB Shape (384, 320) (100, 10) Count 129 Tasks 128 Chunks Type float64 numpy.ndarray - ANGLET(nlat, nlon)float64dask.array<chunksize=(100, 10), meta=np.ndarray>
- long_name :
- angle grid makes with latitude line on T grid
- units :
- radians
Array Chunk Bytes 983.04 kB 8.00 kB Shape (384, 320) (100, 10) Count 129 Tasks 128 Chunks Type float64 numpy.ndarray - days_in_norm_year()timedelta64[ns]...
- long_name :
- Calendar Length
array(31536000000000000, dtype='timedelta64[ns]')
- grav()float64...
- long_name :
- Acceleration Due to Gravity
- units :
- centimeter/s^2
array(980.616)
- omega()float64...
- long_name :
- Earths Angular Velocity
- units :
- 1/second
array(7.292124e-05)
- radius()float64...
- long_name :
- Earths Radius
- units :
- centimeters
array(6.37122e+08)
- cp_sw()float64...
- long_name :
- Specific Heat of Sea Water
- units :
- erg/g/K
array(39960000.)
- sound()float64...
- long_name :
- Speed of Sound
- units :
- centimeter/s
array(150000.)
- vonkar()float64...
- long_name :
- von Karman Constant
array(0.4)
- cp_air()float64...
- long_name :
- Heat Capacity of Air
- units :
- joule/kg/degK
array(1004.64)
- rho_air()float64...
- long_name :
- Ambient Air Density
- units :
- kg/m^3
array(1.292318)
- rho_sw()float64...
- long_name :
- Density of Sea Water
- units :
- gram/centimeter^3
array(1.026)
- rho_fw()float64...
- long_name :
- Density of Fresh Water
- units :
- gram/centimeter^3
array(1.)
- stefan_boltzmann()float64...
- long_name :
- Stefan-Boltzmann Constant
- units :
- watt/m^2/degK^4
array(5.67e-08)
- latent_heat_vapor()float64...
- long_name :
- Latent Heat of Vaporization
- units :
- J/kg
array(2501000.)
- latent_heat_fusion()float64...
- long_name :
- Latent Heat of Fusion
- units :
- erg/g
array(3.337e+09)
- latent_heat_fusion_mks()float64...
- long_name :
- Latent Heat of Fusion
- units :
- J/kg
array(333700.)
- ocn_ref_salinity()float64...
- long_name :
- Ocean Reference Salinity
- units :
- g/kg
array(34.7)
- sea_ice_salinity()float64...
- long_name :
- Salinity of Sea Ice
- units :
- g/kg
array(4.)
- T0_Kelvin()float64...
- long_name :
- Zero Point for Celsius
- units :
- degK
array(273.15)
- salt_to_ppt()float64...
- long_name :
- Convert Salt in gram/gram to g/kg
array(1000.)
- ppt_to_salt()float64...
- long_name :
- Convert Salt in g/kg to gram/gram
array(0.001)
- mass_to_Sv()float64...
- long_name :
- Convert Mass Flux to Sverdrups
array(1.e-12)
- heat_to_PW()float64...
- long_name :
- Convert Heat Flux to Petawatts
array(4.186e-15)
- salt_to_Svppt()float64...
- long_name :
- Convert Salt Flux to Sverdrups*g/kg
array(1.e-09)
- salt_to_mmday()float64...
- long_name :
- Convert Salt to Water (millimeters/day)
array(315360.)
- momentum_factor()float64...
- long_name :
- Convert Windstress to Velocity Flux
array(10.)
- hflux_factor()float64...
- long_name :
- Convert Heat and Solar Flux to Temperature Flux
array(2.439086e-05)
- fwflux_factor()float64...
- long_name :
- Convert Net Fresh Water Flux to Salt Flux (in model units)
array(0.0001)
- salinity_factor()float64...
array(-0.00347)
- sflux_factor()float64...
- long_name :
- Convert Salt Flux to Salt Flux (in model units)
array(0.1)
- nsurface_t()float64...
- long_name :
- Number of Ocean T Points at Surface
array(86096.)
- nsurface_u()float64...
- long_name :
- Number of Ocean U Points at Surface
array(82966.)
- time_bound(time, d2)objectdask.array<chunksize=(1000, 2), meta=np.ndarray>
- long_name :
- boundaries for time-averaging interval
Array Chunk Bytes 384.00 kB 16.00 kB Shape (24000, 2) (1000, 2) Count 100 Tasks 40 Chunks Type object numpy.ndarray - UVEL(time, z_t, nlat, nlon)float32dask.array<chunksize=(1000, 60, 100, 10), meta=np.ndarray>
- long_name :
- Velocity in grid-x direction
- units :
- centimeter/s
- grid_loc :
- 3221
- cell_methods :
- time: mean
- standard_name :
- sea_water_x_velocity
- cell_measures :
- area: UAREA
Array Chunk Bytes 707.79 GB 240.00 MB Shape (24000, 60, 384, 320) (1000, 60, 100, 10) Count 10260 Tasks 5120 Chunks Type float32 numpy.ndarray
- title :
- b.e21.B1850.f09_g17.CMIP6-piControl.001
- history :
- none
- Conventions :
- CF-1.0; http://www.cgd.ucar.edu/cms/eaton/netcdf/CF-current.htm
- time_period_freq :
- month_1
- model_doi_url :
- https://doi.org/10.5065/D67H1H0V
- contents :
- Diagnostic and Prognostic Variables
- source :
- CCSM POP2, the CCSM Ocean Component
- revision :
- $Id: tavg.F90 89644 2018-08-04 14:26:01Z klindsay $
- calendar :
- All years have exactly 365 days.
- start_time :
- This dataset was created on 2018-08-09 at 18:18:26.3
- cell_methods :
- cell_methods = time: mean ==> the variable values are averaged over the time interval between the previous time coordinate and the current one. cell_methods absent ==> the variable values are at the time given by the current time coordinate.
CMORized CESM-POP#
cmor = xr.open_mfdataset(
"/glade/collections/cdg/data/CMIP6/CMIP/NCAR/CESM2/piControl/r1i1p1f1/Omon/uo/gn/latest/*.nc",
chunks={"time": 1000, "nlat": 100, "nlon": 10},
coords="minimal",
compat="override",
decode_coords="all", # set bounds variables as coordinates
parallel=True,
)
cmor = set_coords(cmor)
del cmor["uo"].encoding["cell_measures"] # = "--OPT"????
cmor
<xarray.Dataset> Dimensions: (time: 14400, lev: 60, nlat: 384, nlon: 320, d2: 2, vertices: 4) Coordinates: lat (nlat, nlon) float64 dask.array<chunksize=(100, 10), meta=np.ndarray> * lev (lev) float64 500.0 1.5e+03 2.5e+03 ... 5.125e+05 5.375e+05 lon (nlat, nlon) float64 dask.array<chunksize=(100, 10), meta=np.ndarray> * nlat (nlat) int64 0 1 2 3 4 5 6 7 ... 376 377 378 379 380 381 382 383 * nlon (nlon) int64 0 1 2 3 4 5 6 7 ... 312 313 314 315 316 317 318 319 * time (time) object 0001-01-15 13:00:00 ... 1200-12-15 12:00:00 time_bnds (time, d2) object dask.array<chunksize=(1000, 2), meta=np.ndarray> lat_bnds (nlat, nlon, vertices) float32 dask.array<chunksize=(100, 10, 4), meta=np.ndarray> lon_bnds (nlat, nlon, vertices) float32 dask.array<chunksize=(100, 10, 4), meta=np.ndarray> lev_bnds (lev, d2) float32 dask.array<chunksize=(60, 2), meta=np.ndarray> Dimensions without coordinates: d2, vertices Data variables: uo (time, lev, nlat, nlon) float32 dask.array<chunksize=(1000, 60, 100, 10), meta=np.ndarray> Attributes: (12/44) Conventions: CF-1.7 CMIP-6.2 activity_id: CMIP case_id: 3 cesm_casename: b.e21.B1850.f09_g17.CMIP6-piControl.001 contact: cesm_cmip6@ucar.edu creation_date: 2019-01-20T18:33:54Z ... ... variable_id: uo variant_info: CMIP6 CESM2 piControl experiment with CAM6, inter... variant_label: r1i1p1f1 branch_time_in_parent: 48545.0 branch_time_in_child: 0.0 branch_method: standard
- time: 14400
- lev: 60
- nlat: 384
- nlon: 320
- d2: 2
- vertices: 4
- lat(nlat, nlon)float64dask.array<chunksize=(100, 10), meta=np.ndarray>
- axis :
- Y
- standard_name :
- latitude
- title :
- Latitude
- type :
- double
- units :
- degrees_north
- valid_max :
- 90.0
- valid_min :
- -90.0
Array Chunk Bytes 983.04 kB 8.00 kB Shape (384, 320) (100, 10) Count 129 Tasks 128 Chunks Type float64 numpy.ndarray - lev(lev)float64500.0 1.5e+03 ... 5.375e+05
- axis :
- Z
- positive :
- down
- standard_name :
- olevel
- title :
- ocean model level
- type :
- double
- units :
- centimeters
array([5.000000e+02, 1.500000e+03, 2.500000e+03, 3.500000e+03, 4.500000e+03, 5.500000e+03, 6.500000e+03, 7.500000e+03, 8.500000e+03, 9.500000e+03, 1.050000e+04, 1.150000e+04, 1.250000e+04, 1.350000e+04, 1.450000e+04, 1.550000e+04, 1.650984e+04, 1.754790e+04, 1.862913e+04, 1.976603e+04, 2.097114e+04, 2.225783e+04, 2.364088e+04, 2.513702e+04, 2.676542e+04, 2.854837e+04, 3.051192e+04, 3.268680e+04, 3.510935e+04, 3.782276e+04, 4.087846e+04, 4.433777e+04, 4.827367e+04, 5.277280e+04, 5.793729e+04, 6.388626e+04, 7.075633e+04, 7.870025e+04, 8.788252e+04, 9.847059e+04, 1.106204e+05, 1.244567e+05, 1.400497e+05, 1.573946e+05, 1.764003e+05, 1.968944e+05, 2.186457e+05, 2.413972e+05, 2.649001e+05, 2.889385e+05, 3.133405e+05, 3.379793e+05, 3.627670e+05, 3.876452e+05, 4.125768e+05, 4.375392e+05, 4.625190e+05, 4.875083e+05, 5.125028e+05, 5.375000e+05])
- lon(nlat, nlon)float64dask.array<chunksize=(100, 10), meta=np.ndarray>
- axis :
- X
- standard_name :
- longitude
- title :
- Longitude
- type :
- double
- units :
- degrees_east
- valid_max :
- 360.0
- valid_min :
- 0.0
Array Chunk Bytes 983.04 kB 8.00 kB Shape (384, 320) (100, 10) Count 129 Tasks 128 Chunks Type float64 numpy.ndarray - nlat(nlat)int640 1 2 3 4 5 ... 379 380 381 382 383
- axis :
- Y
array([ 0, 1, 2, ..., 381, 382, 383])
- nlon(nlon)int640 1 2 3 4 5 ... 315 316 317 318 319
- axis :
- X
array([ 0, 1, 2, ..., 317, 318, 319])
- time(time)object0001-01-15 13:00:00 ... 1200-12-...
- axis :
- T
- standard_name :
- time
- title :
- time
- type :
- double
array([cftime.DatetimeNoLeap(1, 1, 15, 13, 0, 0, 0), cftime.DatetimeNoLeap(1, 2, 14, 0, 0, 0, 0), cftime.DatetimeNoLeap(1, 3, 15, 12, 0, 0, 0), ..., cftime.DatetimeNoLeap(1200, 10, 15, 12, 0, 0, 0), cftime.DatetimeNoLeap(1200, 11, 15, 0, 0, 0, 0), cftime.DatetimeNoLeap(1200, 12, 15, 12, 0, 0, 0)], dtype=object)
- time_bnds(time, d2)objectdask.array<chunksize=(1000, 2), meta=np.ndarray>
Array Chunk Bytes 230.40 kB 16.00 kB Shape (14400, 2) (1000, 2) Count 60 Tasks 24 Chunks Type object numpy.ndarray - lat_bnds(nlat, nlon, vertices)float32dask.array<chunksize=(100, 10, 4), meta=np.ndarray>
- units :
- degrees_north
Array Chunk Bytes 1.97 MB 16.00 kB Shape (384, 320, 4) (100, 10, 4) Count 129 Tasks 128 Chunks Type float32 numpy.ndarray - lon_bnds(nlat, nlon, vertices)float32dask.array<chunksize=(100, 10, 4), meta=np.ndarray>
- units :
- degrees_east
Array Chunk Bytes 1.97 MB 16.00 kB Shape (384, 320, 4) (100, 10, 4) Count 129 Tasks 128 Chunks Type float32 numpy.ndarray - lev_bnds(lev, d2)float32dask.array<chunksize=(60, 2), meta=np.ndarray>
- units :
- m
Array Chunk Bytes 480 B 480 B Shape (60, 2) (60, 2) Count 2 Tasks 1 Chunks Type float32 numpy.ndarray
- uo(time, lev, nlat, nlon)float32dask.array<chunksize=(1000, 60, 100, 10), meta=np.ndarray>
- cell_methods :
- time: mean
- comment :
- Prognostic x-ward velocity component resolved by the model.
- description :
- Prognostic x-ward velocity component resolved by the model.
- frequency :
- mon
- id :
- uo
- long_name :
- Sea Water X Velocity
- mipTable :
- Omon
- out_name :
- uo
- prov :
- Omon ((isd.003))
- realm :
- ocean
- standard_name :
- sea_water_x_velocity
- time :
- time
- time_label :
- time-mean
- time_title :
- Temporal mean
- title :
- Sea Water X Velocity
- type :
- real
- units :
- m s-1
- variable_id :
- uo
Array Chunk Bytes 424.67 GB 240.00 MB Shape (14400, 60, 384, 320) (1000, 60, 100, 10) Count 6156 Tasks 3072 Chunks Type float32 numpy.ndarray
- Conventions :
- CF-1.7 CMIP-6.2
- activity_id :
- CMIP
- case_id :
- 3
- cesm_casename :
- b.e21.B1850.f09_g17.CMIP6-piControl.001
- contact :
- cesm_cmip6@ucar.edu
- creation_date :
- 2019-01-20T18:33:54Z
- data_specs_version :
- 01.00.29
- experiment :
- pre-industrial control
- experiment_id :
- piControl
- forcing_index :
- 1
- frequency :
- mon
- further_info_url :
- https://furtherinfo.es-doc.org/CMIP6.NCAR.CESM2.piControl.none.r1i1p1f1
- grid :
- native gx1v7 displaced pole grid (384x320 latxlon)
- grid_label :
- gn
- initialization_index :
- 1
- institution :
- National Center for Atmospheric Research, Climate and Global Dynamics Laboratory, 1850 Table Mesa Drive, Boulder, CO 80305, USA
- institution_id :
- NCAR
- license :
- CMIP6 model data produced by <The National Center for Atmospheric Research> is licensed under a Creative Commons Attribution-[]ShareAlike 4.0 International License (https://creativecommons.org/licenses/). Consult https://pcmdi.llnl.gov/CMIP6/TermsOfUse for terms of use governing CMIP6 output, including citation requirements and proper acknowledgment. Further information about this data, including some limitations, can be found via the further_info_url (recorded as a global attribute in this file)[]. The data producers and data providers make no warranty, either express or implied, including, but not limited to, warranties of merchantability and fitness for a particular purpose. All liabilities arising from the supply of the information (including any liability arising in negligence) are excluded to the fullest extent permitted by law.
- mip_era :
- CMIP6
- model_doi_url :
- https://doi.org/10.5065/D67H1H0V
- nominal_resolution :
- 100 km
- parent_activity_id :
- CMIP
- parent_experiment_id :
- piControl-spinup
- parent_mip_era :
- CMIP6
- parent_source_id :
- CESM2
- parent_time_units :
- days since 0001-01-01 00:00:00
- parent_variant_label :
- r1i1p1f1
- physics_index :
- 1
- product :
- model-output
- realization_index :
- 1
- realm :
- ocean
- source :
- CESM2 (2017): atmosphere: CAM6 (0.9x1.25 finite volume grid; 288 x 192 longitude/latitude; 32 levels; top level 2.25 mb); ocean: POP2 (320x384 longitude/latitude; 60 levels; top grid cell 0-10 m); sea_ice: CICE5.1 (same grid as ocean); land: CLM5 0.9x1.25 finite volume grid; 288 x 192 longitude/latitude; 32 levels; top level 2.25 mb); aerosol: MAM4 (0.9x1.25 finite volume grid; 288 x 192 longitude/latitude; 32 levels; top level 2.25 mb); atmoschem: MAM4 (0.9x1.25 finite volume grid; 288 x 192 longitude/latitude; 32 levels; top level 2.25 mb); landIce: CISM2.1; ocnBgchem: MARBL (320x384 longitude/latitude; 60 levels; top grid cell 0-10 m)
- source_id :
- CESM2
- source_type :
- AOGCM BGC AER
- sub_experiment :
- none
- sub_experiment_id :
- none
- table_id :
- Omon
- tracking_id :
- hdl:21.14100/10d78d6e-34a5-44d7-a2c4-47708f7e098e
- variable_id :
- uo
- variant_info :
- CMIP6 CESM2 piControl experiment with CAM6, interactive land (CLM5), coupled ocean (POP2) with biogeochemistry (MARBL), interactive sea ice (CICE5.1), and non-evolving land ice (CISM2.1)
- variant_label :
- r1i1p1f1
- branch_time_in_parent :
- 48545.0
- branch_time_in_child :
- 0.0
- branch_method :
- standard
CESM-MOM6 z*#
mom6zs = xr.open_mfdataset(
"/glade/scratch/gmarques/gmom.e22.GJRAv3.TL319_t061_zstar_N75.mct.baseline.002/run/*mom6.hm_*.nc",
parallel=True,
coords="minimal",
data_vars="minimal",
compat="override",
)
# nv and scalar_axis have units="none" which pint cannot handle
del mom6zs.scalar_axis.attrs["units"]
del mom6zs.nv.attrs["units"]
mom6zs
<xarray.Dataset> Dimensions: (xq: 540, yh: 458, zl: 75, time: 696, nv: 2, xh: 540, yq: 458, zi: 76, scalar_axis: 1) Coordinates: * xq (xq) float64 -286.3 -285.7 -285.0 ... 72.33 73.0 * yh (yh) float64 -79.2 -79.08 -78.95 ... 87.71 87.74 * zl (zl) float64 1.25 3.75 ... 5.619e+03 5.873e+03 * time (time) object 0001-01-16 12:00:00 ... 0058-12-1... * nv (nv) float64 1.0 2.0 * xh (xh) float64 -286.7 -286.0 -285.3 ... 72.0 72.67 * yq (yq) float64 -79.14 -79.01 -78.89 ... 87.73 87.74 * zi (zi) float64 0.0 2.5 5.0 ... 5.746e+03 6e+03 * scalar_axis (scalar_axis) float64 0.0 Data variables: (12/77) uo (time, zl, yh, xq) float32 dask.array<chunksize=(1, 75, 458, 540), meta=np.ndarray> vo (time, zl, yq, xh) float32 dask.array<chunksize=(1, 75, 458, 540), meta=np.ndarray> h (time, zl, yh, xh) float32 dask.array<chunksize=(1, 75, 458, 540), meta=np.ndarray> e (time, zi, yh, xh) float32 dask.array<chunksize=(1, 76, 458, 540), meta=np.ndarray> thetao (time, zl, yh, xh) float32 dask.array<chunksize=(1, 75, 458, 540), meta=np.ndarray> so (time, zl, yh, xh) float32 dask.array<chunksize=(1, 75, 458, 540), meta=np.ndarray> ... ... KE (time, zl, yh, xh) float32 dask.array<chunksize=(1, 75, 458, 540), meta=np.ndarray> rsdo (time, zi, yh, xh) float32 dask.array<chunksize=(1, 76, 458, 540), meta=np.ndarray> average_T1 (time) object dask.array<chunksize=(1,), meta=np.ndarray> average_T2 (time) object dask.array<chunksize=(1,), meta=np.ndarray> average_DT (time) timedelta64[ns] dask.array<chunksize=(1,), meta=np.ndarray> time_bnds (time, nv) timedelta64[ns] dask.array<chunksize=(1, 2), meta=np.ndarray> Attributes: filename: gmom.e22.GJRAv3.TL319_t061_zstar_N75.mct.baseline.002.... title: MOM6 diagnostic fields table for CESM case: gmom.e22.G... associated_files: area_t: gmom.e22.GJRAv3.TL319_t061_zstar_N75.mct.basel... grid_type: regular grid_tile: N/A
- xq: 540
- yh: 458
- zl: 75
- time: 696
- nv: 2
- xh: 540
- yq: 458
- zi: 76
- scalar_axis: 1
- xq(xq)float64-286.3 -285.7 -285.0 ... 72.33 73.0
- long_name :
- q point nominal longitude
- units :
- degrees_east
- cartesian_axis :
- X
array([-286.333333, -285.666667, -285. , ..., 71.666667, 72.333333, 73. ])
- yh(yh)float64-79.2 -79.08 -78.95 ... 87.71 87.74
- long_name :
- h point nominal latitude
- units :
- degrees_north
- cartesian_axis :
- Y
array([-79.202602, -79.076995, -78.949944, ..., 87.641507, 87.706191, 87.738663])
- zl(zl)float641.25 3.75 ... 5.619e+03 5.873e+03
- long_name :
- Layer pseudo-depth, -z*
- units :
- meter
- cartesian_axis :
- Z
- positive :
- down
array([1.250000e+00, 3.750110e+00, 6.250513e+00, 8.751399e+00, 1.125308e+01, 1.375607e+01, 1.626123e+01, 1.876995e+01, 2.128458e+01, 2.380895e+01, 2.634948e+01, 2.891684e+01, 3.152900e+01, 3.421656e+01, 3.703255e+01, 4.007146e+01, 4.350694e+01, 4.766315e+01, 5.309426e+01, 6.037432e+01, 6.933990e+01, 7.911551e+01, 8.908133e+01, 9.907633e+01, 1.090754e+02, 1.190749e+02, 1.290746e+02, 1.390742e+02, 1.490739e+02, 1.590997e+02, 1.692943e+02, 1.798470e+02, 1.908943e+02, 2.025637e+02, 2.149872e+02, 2.283087e+02, 2.426894e+02, 2.583132e+02, 2.753934e+02, 2.941791e+02, 3.149636e+02, 3.380943e+02, 3.639847e+02, 3.931282e+02, 4.261145e+02, 4.636487e+02, 5.065716e+02, 5.558810e+02, 6.127502e+02, 6.785392e+02, 7.547892e+02, 8.431905e+02, 9.455058e+02, 1.063437e+03, 1.198429e+03, 1.351425e+03, 1.522623e+03, 1.711320e+03, 1.915909e+03, 2.134079e+03, 2.363155e+03, 2.600479e+03, 2.843700e+03, 3.090928e+03, 3.340761e+03, 3.592224e+03, 3.844672e+03, 4.097698e+03, 4.351054e+03, 4.604594e+03, 4.858234e+03, 5.111928e+03, 5.365649e+03, 5.619385e+03, 5.873128e+03])
- time(time)object0001-01-16 12:00:00 ... 0058-12-...
- long_name :
- time
- cartesian_axis :
- T
- calendar_type :
- NOLEAP
- bounds :
- time_bnds
array([cftime.DatetimeNoLeap(1, 1, 16, 12, 0, 0, 0), cftime.DatetimeNoLeap(1, 2, 15, 0, 0, 0, 0), cftime.DatetimeNoLeap(1, 3, 16, 12, 0, 0, 0), ..., cftime.DatetimeNoLeap(58, 10, 16, 12, 0, 0, 0), cftime.DatetimeNoLeap(58, 11, 16, 0, 0, 0, 0), cftime.DatetimeNoLeap(58, 12, 16, 12, 0, 0, 0)], dtype=object)
- nv(nv)float641.0 2.0
- long_name :
- vertex number
- cartesian_axis :
- N
array([1., 2.])
- xh(xh)float64-286.7 -286.0 -285.3 ... 72.0 72.67
- long_name :
- h point nominal longitude
- units :
- degrees_east
- cartesian_axis :
- X
array([-286.666667, -286. , -285.333333, ..., 71.333333, 72. , 72.666667])
- yq(yq)float64-79.14 -79.01 ... 87.73 87.74
- long_name :
- q point nominal latitude
- units :
- degrees_north
- cartesian_axis :
- Y
array([-79.139978, -79.013651, -78.885872, ..., 87.67781 , 87.726499, 87.7427 ])
- zi(zi)float640.0 2.5 5.0 ... 5.746e+03 6e+03
- long_name :
- Interface pseudo-depth, -z*
- units :
- meter
- cartesian_axis :
- Z
- positive :
- down
array([0.000000e+00, 2.500000e+00, 5.000221e+00, 7.500806e+00, 1.000199e+01, 1.250417e+01, 1.500798e+01, 1.751448e+01, 2.002543e+01, 2.254373e+01, 2.507418e+01, 2.762478e+01, 3.020890e+01, 3.284911e+01, 3.558401e+01, 3.848109e+01, 4.166183e+01, 4.535204e+01, 4.997426e+01, 5.621426e+01, 6.453437e+01, 7.414542e+01, 8.408560e+01, 9.407706e+01, 1.040756e+02, 1.140751e+02, 1.240748e+02, 1.340744e+02, 1.440741e+02, 1.540737e+02, 1.641257e+02, 1.744629e+02, 1.852311e+02, 1.965575e+02, 2.085699e+02, 2.214046e+02, 2.352128e+02, 2.501659e+02, 2.664606e+02, 2.843263e+02, 3.040319e+02, 3.258952e+02, 3.502934e+02, 3.776761e+02, 4.085804e+02, 4.436487e+02, 4.836487e+02, 5.294945e+02, 5.822675e+02, 6.432330e+02, 7.138454e+02, 7.957330e+02, 8.906479e+02, 1.000364e+03, 1.126511e+03, 1.270348e+03, 1.432502e+03, 1.612745e+03, 1.809896e+03, 2.021923e+03, 2.246235e+03, 2.480076e+03, 2.720883e+03, 2.966516e+03, 3.215339e+03, 3.466183e+03, 3.718264e+03, 3.971079e+03, 4.224316e+03, 4.477791e+03, 4.731396e+03, 4.985072e+03, 5.238784e+03, 5.492515e+03, 5.746255e+03, 6.000000e+03])
- scalar_axis(scalar_axis)float640.0
- long_name :
- none
- cartesian_axis :
- N
array([0.])
- uo(time, zl, yh, xq)float32dask.array<chunksize=(1, 75, 458, 540), meta=np.ndarray>
- long_name :
- Sea Water X Velocity
- units :
- m s-1
- cell_methods :
- zl:mean yh:mean xq:point time: mean
- time_avg_info :
- average_T1,average_T2,average_DT
- standard_name :
- sea_water_x_velocity
- interp_method :
- none
Array Chunk Bytes 51.64 GB 74.20 MB Shape (696, 75, 458, 540) (1, 75, 458, 540) Count 2088 Tasks 696 Chunks Type float32 numpy.ndarray - vo(time, zl, yq, xh)float32dask.array<chunksize=(1, 75, 458, 540), meta=np.ndarray>
- long_name :
- Sea Water Y Velocity
- units :
- m s-1
- cell_methods :
- zl:mean yq:point xh:mean time: mean
- time_avg_info :
- average_T1,average_T2,average_DT
- standard_name :
- sea_water_y_velocity
- interp_method :
- none
Array Chunk Bytes 51.64 GB 74.20 MB Shape (696, 75, 458, 540) (1, 75, 458, 540) Count 2088 Tasks 696 Chunks Type float32 numpy.ndarray - h(time, zl, yh, xh)float32dask.array<chunksize=(1, 75, 458, 540), meta=np.ndarray>
- long_name :
- Layer Thickness
- units :
- m
- cell_methods :
- area:mean zl:sum yh:mean xh:mean time: mean
- cell_measures :
- volume: volcello area: area_t
- time_avg_info :
- average_T1,average_T2,average_DT
Array Chunk Bytes 51.64 GB 74.20 MB Shape (696, 75, 458, 540) (1, 75, 458, 540) Count 2088 Tasks 696 Chunks Type float32 numpy.ndarray - e(time, zi, yh, xh)float32dask.array<chunksize=(1, 76, 458, 540), meta=np.ndarray>
- long_name :
- Interface Height Relative to Mean Sea Level
- units :
- m
- cell_methods :
- area:mean zi:point yh:mean xh:mean time: mean
- cell_measures :
- area: area_t
- time_avg_info :
- average_T1,average_T2,average_DT
Array Chunk Bytes 52.33 GB 75.19 MB Shape (696, 76, 458, 540) (1, 76, 458, 540) Count 2088 Tasks 696 Chunks Type float32 numpy.ndarray - thetao(time, zl, yh, xh)float32dask.array<chunksize=(1, 75, 458, 540), meta=np.ndarray>
- long_name :
- Sea Water Potential Temperature
- units :
- degC
- cell_methods :
- area:mean zl:mean yh:mean xh:mean time: mean
- cell_measures :
- volume: volcello area: area_t
- time_avg_info :
- average_T1,average_T2,average_DT
- standard_name :
- sea_water_potential_temperature
Array Chunk Bytes 51.64 GB 74.20 MB Shape (696, 75, 458, 540) (1, 75, 458, 540) Count 2088 Tasks 696 Chunks Type float32 numpy.ndarray - so(time, zl, yh, xh)float32dask.array<chunksize=(1, 75, 458, 540), meta=np.ndarray>
- long_name :
- Sea Water Salinity
- units :
- psu
- cell_methods :
- area:mean zl:mean yh:mean xh:mean time: mean
- cell_measures :
- volume: volcello area: area_t
- time_avg_info :
- average_T1,average_T2,average_DT
- standard_name :
- sea_water_salinity
Array Chunk Bytes 51.64 GB 74.20 MB Shape (696, 75, 458, 540) (1, 75, 458, 540) Count 2088 Tasks 696 Chunks Type float32 numpy.ndarray - rhopot0(time, zl, yh, xh)float32dask.array<chunksize=(1, 75, 458, 540), meta=np.ndarray>
- long_name :
- Potential density referenced to surface
- units :
- kg m-3
- cell_methods :
- area:mean zl:mean yh:mean xh:mean time: mean
- cell_measures :
- volume: volcello area: area_t
- time_avg_info :
- average_T1,average_T2,average_DT
Array Chunk Bytes 51.64 GB 74.20 MB Shape (696, 75, 458, 540) (1, 75, 458, 540) Count 2088 Tasks 696 Chunks Type float32 numpy.ndarray - rhopot2(time, zl, yh, xh)float32dask.array<chunksize=(1, 75, 458, 540), meta=np.ndarray>
- long_name :
- Potential density referenced to 2000 dbar
- units :
- kg m-3
- cell_methods :
- area:mean zl:mean yh:mean xh:mean time: mean
- cell_measures :
- volume: volcello area: area_t
- time_avg_info :
- average_T1,average_T2,average_DT
Array Chunk Bytes 51.64 GB 74.20 MB Shape (696, 75, 458, 540) (1, 75, 458, 540) Count 2088 Tasks 696 Chunks Type float32 numpy.ndarray - soga(time, scalar_axis)float32dask.array<chunksize=(1, 1), meta=np.ndarray>
- long_name :
- Global Mean Ocean Salinity
- units :
- psu
- cell_methods :
- time: mean
- time_avg_info :
- average_T1,average_T2,average_DT
- standard_name :
- sea_water_salinity
Array Chunk Bytes 2.78 kB 4 B Shape (696, 1) (1, 1) Count 2088 Tasks 696 Chunks Type float32 numpy.ndarray - thetaoga(time, scalar_axis)float32dask.array<chunksize=(1, 1), meta=np.ndarray>
- long_name :
- Global Mean Ocean Potential Temperature
- units :
- degC
- cell_methods :
- time: mean
- time_avg_info :
- average_T1,average_T2,average_DT
- standard_name :
- sea_water_potential_temperature
Array Chunk Bytes 2.78 kB 4 B Shape (696, 1) (1, 1) Count 2088 Tasks 696 Chunks Type float32 numpy.ndarray - uh(time, zl, yh, xq)float32dask.array<chunksize=(1, 75, 458, 540), meta=np.ndarray>
- long_name :
- Zonal Thickness Flux
- units :
- m3 s-1
- cell_methods :
- zl:sum yh:sum xq:point time: mean
- time_avg_info :
- average_T1,average_T2,average_DT
- interp_method :
- none
Array Chunk Bytes 51.64 GB 74.20 MB Shape (696, 75, 458, 540) (1, 75, 458, 540) Count 2088 Tasks 696 Chunks Type float32 numpy.ndarray - vh(time, zl, yq, xh)float32dask.array<chunksize=(1, 75, 458, 540), meta=np.ndarray>
- long_name :
- Meridional Thickness Flux
- units :
- m3 s-1
- cell_methods :
- zl:sum yq:point xh:sum time: mean
- time_avg_info :
- average_T1,average_T2,average_DT
- interp_method :
- none
Array Chunk Bytes 51.64 GB 74.20 MB Shape (696, 75, 458, 540) (1, 75, 458, 540) Count 2088 Tasks 696 Chunks Type float32 numpy.ndarray - vhbt(time, yq, xh)float32dask.array<chunksize=(1, 458, 540), meta=np.ndarray>
- long_name :
- Barotropic meridional transport averaged over a baroclinic step
- units :
- m3 s-1
- cell_methods :
- yq:point xh:mean time: mean
- time_avg_info :
- average_T1,average_T2,average_DT
- interp_method :
- none
Array Chunk Bytes 688.54 MB 989.28 kB Shape (696, 458, 540) (1, 458, 540) Count 2088 Tasks 696 Chunks Type float32 numpy.ndarray - uhbt(time, yh, xq)float32dask.array<chunksize=(1, 458, 540), meta=np.ndarray>
- long_name :
- Barotropic zonal transport averaged over a baroclinic step
- units :
- m3 s-1
- cell_methods :
- yh:mean xq:point time: mean
- time_avg_info :
- average_T1,average_T2,average_DT
- interp_method :
- none
Array Chunk Bytes 688.54 MB 989.28 kB Shape (696, 458, 540) (1, 458, 540) Count 2088 Tasks 696 Chunks Type float32 numpy.ndarray - oml(time, yh, xh)float32dask.array<chunksize=(1, 458, 540), meta=np.ndarray>
- long_name :
- Thickness of the surface Ocean Boundary Layer calculated by [CVMix] KPP
- units :
- meter
- cell_methods :
- area:mean yh:mean xh:mean time: mean
- cell_measures :
- area: area_t
- time_avg_info :
- average_T1,average_T2,average_DT
Array Chunk Bytes 688.54 MB 989.28 kB Shape (696, 458, 540) (1, 458, 540) Count 2088 Tasks 696 Chunks Type float32 numpy.ndarray - tauuo(time, yh, xq)float32dask.array<chunksize=(1, 458, 540), meta=np.ndarray>
- long_name :
- Surface Downward X Stress
- units :
- N m-2
- cell_methods :
- yh:mean xq:point time: mean
- time_avg_info :
- average_T1,average_T2,average_DT
- standard_name :
- surface_downward_x_stress
- interp_method :
- none
Array Chunk Bytes 688.54 MB 989.28 kB Shape (696, 458, 540) (1, 458, 540) Count 2088 Tasks 696 Chunks Type float32 numpy.ndarray - tauvo(time, yq, xh)float32dask.array<chunksize=(1, 458, 540), meta=np.ndarray>
- long_name :
- Surface Downward Y Stress
- units :
- N m-2
- cell_methods :
- yq:point xh:mean time: mean
- time_avg_info :
- average_T1,average_T2,average_DT
- standard_name :
- surface_downward_y_stress
- interp_method :
- none
Array Chunk Bytes 688.54 MB 989.28 kB Shape (696, 458, 540) (1, 458, 540) Count 2088 Tasks 696 Chunks Type float32 numpy.ndarray - friver(time, yh, xh)float32dask.array<chunksize=(1, 458, 540), meta=np.ndarray>
- long_name :
- Water Flux into Sea Water From Rivers
- units :
- kg m-2 s-1
- cell_methods :
- area:mean yh:mean xh:mean time: mean
- cell_measures :
- area: area_t
- time_avg_info :
- average_T1,average_T2,average_DT
- standard_name :
- water_flux_into_sea_water_from_rivers
Array Chunk Bytes 688.54 MB 989.28 kB Shape (696, 458, 540) (1, 458, 540) Count 2088 Tasks 696 Chunks Type float32 numpy.ndarray - prsn(time, yh, xh)float32dask.array<chunksize=(1, 458, 540), meta=np.ndarray>
- long_name :
- Snowfall Flux where Ice Free Ocean over Sea
- units :
- kg m-2 s-1
- cell_methods :
- area:mean yh:mean xh:mean time: mean
- cell_measures :
- area: area_t
- time_avg_info :
- average_T1,average_T2,average_DT
- standard_name :
- snowfall_flux
Array Chunk Bytes 688.54 MB 989.28 kB Shape (696, 458, 540) (1, 458, 540) Count 2088 Tasks 696 Chunks Type float32 numpy.ndarray - prlq(time, yh, xh)float32dask.array<chunksize=(1, 458, 540), meta=np.ndarray>
- long_name :
- Rainfall Flux where Ice Free Ocean over Sea
- units :
- kg m-2 s-1
- cell_methods :
- area:mean yh:mean xh:mean time: mean
- cell_measures :
- area: area_t
- time_avg_info :
- average_T1,average_T2,average_DT
- standard_name :
- rainfall_flux
Array Chunk Bytes 688.54 MB 989.28 kB Shape (696, 458, 540) (1, 458, 540) Count 2088 Tasks 696 Chunks Type float32 numpy.ndarray - evs(time, yh, xh)float32dask.array<chunksize=(1, 458, 540), meta=np.ndarray>
- long_name :
- Water Evaporation Flux Where Ice Free Ocean over Sea
- units :
- kg m-2 s-1
- cell_methods :
- area:mean yh:mean xh:mean time: mean
- cell_measures :
- area: area_t
- time_avg_info :
- average_T1,average_T2,average_DT
- standard_name :
- water_evaporation_flux
Array Chunk Bytes 688.54 MB 989.28 kB Shape (696, 458, 540) (1, 458, 540) Count 2088 Tasks 696 Chunks Type float32 numpy.ndarray - hfsso(time, yh, xh)float32dask.array<chunksize=(1, 458, 540), meta=np.ndarray>
- long_name :
- Surface Downward Sensible Heat Flux
- units :
- W m-2
- cell_methods :
- area:mean yh:mean xh:mean time: mean
- cell_measures :
- area: area_t
- time_avg_info :
- average_T1,average_T2,average_DT
- standard_name :
- surface_downward_sensible_heat_flux
Array Chunk Bytes 688.54 MB 989.28 kB Shape (696, 458, 540) (1, 458, 540) Count 2088 Tasks 696 Chunks Type float32 numpy.ndarray - rlntds(time, yh, xh)float32dask.array<chunksize=(1, 458, 540), meta=np.ndarray>
- long_name :
- Surface Net Downward Longwave Radiation
- units :
- W m-2
- cell_methods :
- area:mean yh:mean xh:mean time: mean
- cell_measures :
- area: area_t
- time_avg_info :
- average_T1,average_T2,average_DT
- standard_name :
- surface_net_downward_longwave_flux
Array Chunk Bytes 688.54 MB 989.28 kB Shape (696, 458, 540) (1, 458, 540) Count 2088 Tasks 696 Chunks Type float32 numpy.ndarray - hfsnthermds(time, yh, xh)float32dask.array<chunksize=(1, 458, 540), meta=np.ndarray>
- long_name :
- Latent Heat to Melt Frozen Precipitation
- units :
- W m-2
- cell_methods :
- area:mean yh:mean xh:mean time: mean
- cell_measures :
- area: area_t
- time_avg_info :
- average_T1,average_T2,average_DT
- standard_name :
- heat_flux_into_sea_water_due_to_snow_thermodynamics
Array Chunk Bytes 688.54 MB 989.28 kB Shape (696, 458, 540) (1, 458, 540) Count 2088 Tasks 696 Chunks Type float32 numpy.ndarray - sfdsi(time, yh, xh)float32dask.array<chunksize=(1, 458, 540), meta=np.ndarray>
- long_name :
- Downward Sea Ice Basal Salt Flux
- units :
- kg m-2 s-1
- cell_methods :
- area:mean yh:mean xh:mean time: mean
- cell_measures :
- area: area_t
- time_avg_info :
- average_T1,average_T2,average_DT
- standard_name :
- downward_sea_ice_basal_salt_flux
Array Chunk Bytes 688.54 MB 989.28 kB Shape (696, 458, 540) (1, 458, 540) Count 2088 Tasks 696 Chunks Type float32 numpy.ndarray - rsntds(time, yh, xh)float32dask.array<chunksize=(1, 458, 540), meta=np.ndarray>
- long_name :
- Net Downward Shortwave Radiation at Sea Water Surface
- units :
- W m-2
- cell_methods :
- area:mean yh:mean xh:mean time: mean
- cell_measures :
- area: area_t
- time_avg_info :
- average_T1,average_T2,average_DT
- standard_name :
- net_downward_shortwave_flux_at_sea_water_surface
Array Chunk Bytes 688.54 MB 989.28 kB Shape (696, 458, 540) (1, 458, 540) Count 2088 Tasks 696 Chunks Type float32 numpy.ndarray - hfds(time, yh, xh)float32dask.array<chunksize=(1, 458, 540), meta=np.ndarray>
- long_name :
- Surface ocean heat flux from SW+LW+latent+sensible+masstransfer+frazil+seaice_melt_heat
- units :
- W m-2
- cell_methods :
- area:mean yh:mean xh:mean time: mean
- cell_measures :
- area: area_t
- time_avg_info :
- average_T1,average_T2,average_DT
- standard_name :
- surface_downward_heat_flux_in_sea_water
Array Chunk Bytes 688.54 MB 989.28 kB Shape (696, 458, 540) (1, 458, 540) Count 2088 Tasks 696 Chunks Type float32 numpy.ndarray - ustar(time, yh, xh)float32dask.array<chunksize=(1, 458, 540), meta=np.ndarray>
- long_name :
- Surface friction velocity = [(gustiness + tau_magnitude)/rho0]^(1/2)
- units :
- m s-1
- cell_methods :
- area:mean yh:mean xh:mean time: mean
- cell_measures :
- area: area_t
- time_avg_info :
- average_T1,average_T2,average_DT
Array Chunk Bytes 688.54 MB 989.28 kB Shape (696, 458, 540) (1, 458, 540) Count 2088 Tasks 696 Chunks Type float32 numpy.ndarray - hfsifrazil(time, yh, xh)float32dask.array<chunksize=(1, 458, 540), meta=np.ndarray>
- long_name :
- Heat Flux into Sea Water due to Frazil Ice Formation
- units :
- W m-2
- cell_methods :
- area:mean yh:mean xh:mean time: mean
- cell_measures :
- area: area_t
- time_avg_info :
- average_T1,average_T2,average_DT
- standard_name :
- heat_flux_into_sea_water_due_to_frazil_ice_formation
Array Chunk Bytes 688.54 MB 989.28 kB Shape (696, 458, 540) (1, 458, 540) Count 2088 Tasks 696 Chunks Type float32 numpy.ndarray - wfo(time, yh, xh)float32dask.array<chunksize=(1, 458, 540), meta=np.ndarray>
- long_name :
- Water Flux Into Sea Water
- units :
- kg m-2 s-1
- cell_methods :
- area:mean yh:mean xh:mean time: mean
- cell_measures :
- area: area_t
- time_avg_info :
- average_T1,average_T2,average_DT
- standard_name :
- water_flux_into_sea_water
Array Chunk Bytes 688.54 MB 989.28 kB Shape (696, 458, 540) (1, 458, 540) Count 2088 Tasks 696 Chunks Type float32 numpy.ndarray - ficeberg(time, yh, xh)float32dask.array<chunksize=(1, 458, 540), meta=np.ndarray>
- long_name :
- Water Flux into Seawater from Icebergs
- units :
- kg m-2 s-1
- cell_methods :
- area:mean yh:mean xh:mean time: mean
- cell_measures :
- area: area_t
- time_avg_info :
- average_T1,average_T2,average_DT
- standard_name :
- water_flux_into_sea_water_from_icebergs
Array Chunk Bytes 688.54 MB 989.28 kB Shape (696, 458, 540) (1, 458, 540) Count 2088 Tasks 696 Chunks Type float32 numpy.ndarray - fsitherm(time, yh, xh)float32dask.array<chunksize=(1, 458, 540), meta=np.ndarray>
- long_name :
- water flux to ocean from sea ice melt(> 0) or form(< 0)
- units :
- kg m-2 s-1
- cell_methods :
- area:mean yh:mean xh:mean time: mean
- cell_measures :
- area: area_t
- time_avg_info :
- average_T1,average_T2,average_DT
- standard_name :
- water_flux_into_sea_water_due_to_sea_ice_thermodynamics
Array Chunk Bytes 688.54 MB 989.28 kB Shape (696, 458, 540) (1, 458, 540) Count 2088 Tasks 696 Chunks Type float32 numpy.ndarray - hflso(time, yh, xh)float32dask.array<chunksize=(1, 458, 540), meta=np.ndarray>
- long_name :
- Surface Downward Latent Heat Flux due to Evap + Melt Snow/Ice
- units :
- W m-2
- cell_methods :
- area:mean yh:mean xh:mean time: mean
- cell_measures :
- area: area_t
- time_avg_info :
- average_T1,average_T2,average_DT
- standard_name :
- surface_downward_latent_heat_flux
Array Chunk Bytes 688.54 MB 989.28 kB Shape (696, 458, 540) (1, 458, 540) Count 2088 Tasks 696 Chunks Type float32 numpy.ndarray - pso(time, yh, xh)float32dask.array<chunksize=(1, 458, 540), meta=np.ndarray>
- long_name :
- Sea Water Pressure at Sea Water Surface
- units :
- Pa
- cell_methods :
- area:mean yh:mean xh:mean time: mean
- cell_measures :
- area: area_t
- time_avg_info :
- average_T1,average_T2,average_DT
- standard_name :
- sea_water_pressure_at_sea_water_surface
Array Chunk Bytes 688.54 MB 989.28 kB Shape (696, 458, 540) (1, 458, 540) Count 2088 Tasks 696 Chunks Type float32 numpy.ndarray - seaice_melt_heat(time, yh, xh)float32dask.array<chunksize=(1, 458, 540), meta=np.ndarray>
- long_name :
- Heat flux into ocean due to snow and sea ice melt/freeze
- units :
- W m-2
- cell_methods :
- area:mean yh:mean xh:mean time: mean
- cell_measures :
- area: area_t
- time_avg_info :
- average_T1,average_T2,average_DT
- standard_name :
- snow_ice_melt_heat_flux
Array Chunk Bytes 688.54 MB 989.28 kB Shape (696, 458, 540) (1, 458, 540) Count 2088 Tasks 696 Chunks Type float32 numpy.ndarray - Heat_PmE(time, yh, xh)float32dask.array<chunksize=(1, 458, 540), meta=np.ndarray>
- long_name :
- Heat flux into ocean from mass flux into ocean
- units :
- W m-2
- cell_methods :
- area:mean yh:mean xh:mean time: mean
- cell_measures :
- area: area_t
- time_avg_info :
- average_T1,average_T2,average_DT
Array Chunk Bytes 688.54 MB 989.28 kB Shape (696, 458, 540) (1, 458, 540) Count 2088 Tasks 696 Chunks Type float32 numpy.ndarray - salt_flux_added(time, yh, xh)float32dask.array<chunksize=(1, 458, 540), meta=np.ndarray>
- long_name :
- Salt flux into ocean at surface due to restoring or flux adjustment
- units :
- kg m-2 s-1
- cell_methods :
- area:mean yh:mean xh:mean time: mean
- cell_measures :
- area: area_t
- time_avg_info :
- average_T1,average_T2,average_DT
Array Chunk Bytes 688.54 MB 989.28 kB Shape (696, 458, 540) (1, 458, 540) Count 2088 Tasks 696 Chunks Type float32 numpy.ndarray - SSH(time, yh, xh)float32dask.array<chunksize=(1, 458, 540), meta=np.ndarray>
- long_name :
- Sea Surface Height
- units :
- m
- cell_methods :
- area:mean yh:mean xh:mean time: mean
- cell_measures :
- area: area_t
- time_avg_info :
- average_T1,average_T2,average_DT
Array Chunk Bytes 688.54 MB 989.28 kB Shape (696, 458, 540) (1, 458, 540) Count 2088 Tasks 696 Chunks Type float32 numpy.ndarray - tos(time, yh, xh)float32dask.array<chunksize=(1, 458, 540), meta=np.ndarray>
- long_name :
- Sea Surface Temperature
- units :
- degC
- cell_methods :
- area:mean yh:mean xh:mean time: mean
- cell_measures :
- area: area_t
- time_avg_info :
- average_T1,average_T2,average_DT
- standard_name :
- sea_surface_temperature
Array Chunk Bytes 688.54 MB 989.28 kB Shape (696, 458, 540) (1, 458, 540) Count 2088 Tasks 696 Chunks Type float32 numpy.ndarray - sos(time, yh, xh)float32dask.array<chunksize=(1, 458, 540), meta=np.ndarray>
- long_name :
- Sea Surface Salinity
- units :
- psu
- cell_methods :
- area:mean yh:mean xh:mean time: mean
- cell_measures :
- area: area_t
- time_avg_info :
- average_T1,average_T2,average_DT
- standard_name :
- sea_surface_salinity
Array Chunk Bytes 688.54 MB 989.28 kB Shape (696, 458, 540) (1, 458, 540) Count 2088 Tasks 696 Chunks Type float32 numpy.ndarray - SSU(time, yh, xq)float32dask.array<chunksize=(1, 458, 540), meta=np.ndarray>
- long_name :
- Sea Surface Zonal Velocity
- units :
- m s-1
- cell_methods :
- yh:mean xq:point time: mean
- time_avg_info :
- average_T1,average_T2,average_DT
- interp_method :
- none
Array Chunk Bytes 688.54 MB 989.28 kB Shape (696, 458, 540) (1, 458, 540) Count 2088 Tasks 696 Chunks Type float32 numpy.ndarray - SSV(time, yq, xh)float32dask.array<chunksize=(1, 458, 540), meta=np.ndarray>
- long_name :
- Sea Surface Meridional Velocity
- units :
- m s-1
- cell_methods :
- yq:point xh:mean time: mean
- time_avg_info :
- average_T1,average_T2,average_DT
- interp_method :
- none
Array Chunk Bytes 688.54 MB 989.28 kB Shape (696, 458, 540) (1, 458, 540) Count 2088 Tasks 696 Chunks Type float32 numpy.ndarray - mass_wt(time, yh, xh)float32dask.array<chunksize=(1, 458, 540), meta=np.ndarray>
- long_name :
- The column mass for calculating mass-weighted average properties
- units :
- kg m-2
- cell_methods :
- area:mean yh:mean xh:mean time: mean
- cell_measures :
- area: area_t
- time_avg_info :
- average_T1,average_T2,average_DT
Array Chunk Bytes 688.54 MB 989.28 kB Shape (696, 458, 540) (1, 458, 540) Count 2088 Tasks 696 Chunks Type float32 numpy.ndarray - opottempmint(time, yh, xh)float32dask.array<chunksize=(1, 458, 540), meta=np.ndarray>
- long_name :
- integral_wrt_depth_of_product_of_sea_water_density_and_potential_temperature
- units :
- degC kg m-2
- cell_methods :
- area:mean yh:mean xh:mean time: mean
- cell_measures :
- area: area_t
- time_avg_info :
- average_T1,average_T2,average_DT
- standard_name :
- Depth integrated density times potential temperature
Array Chunk Bytes 688.54 MB 989.28 kB Shape (696, 458, 540) (1, 458, 540) Count 2088 Tasks 696 Chunks Type float32 numpy.ndarray - somint(time, yh, xh)float32dask.array<chunksize=(1, 458, 540), meta=np.ndarray>
- long_name :
- integral_wrt_depth_of_product_of_sea_water_density_and_salinity
- units :
- psu kg m-2
- cell_methods :
- area:mean yh:mean xh:mean time: mean
- cell_measures :
- area: area_t
- time_avg_info :
- average_T1,average_T2,average_DT
- standard_name :
- Depth integrated density times salinity
Array Chunk Bytes 688.54 MB 989.28 kB Shape (696, 458, 540) (1, 458, 540) Count 2088 Tasks 696 Chunks Type float32 numpy.ndarray - Rd_dx(time, yh, xh)float32dask.array<chunksize=(1, 458, 540), meta=np.ndarray>
- long_name :
- Ratio between deformation radius and grid spacing
- units :
- m m-1
- cell_methods :
- area:mean yh:mean xh:mean time: mean
- cell_measures :
- area: area_t
- time_avg_info :
- average_T1,average_T2,average_DT
Array Chunk Bytes 688.54 MB 989.28 kB Shape (696, 458, 540) (1, 458, 540) Count 2088 Tasks 696 Chunks Type float32 numpy.ndarray - speed(time, yh, xh)float32dask.array<chunksize=(1, 458, 540), meta=np.ndarray>
- long_name :
- Sea Surface Speed
- units :
- m s-1
- cell_methods :
- area:mean yh:mean xh:mean time: mean
- cell_measures :
- area: area_t
- time_avg_info :
- average_T1,average_T2,average_DT
Array Chunk Bytes 688.54 MB 989.28 kB Shape (696, 458, 540) (1, 458, 540) Count 2088 Tasks 696 Chunks Type float32 numpy.ndarray - mlotst(time, yh, xh)float32dask.array<chunksize=(1, 458, 540), meta=np.ndarray>
- long_name :
- Ocean Mixed Layer Thickness Defined by Sigma T
- units :
- m
- cell_methods :
- area:mean yh:mean xh:mean time: mean
- cell_measures :
- area: area_t
- time_avg_info :
- average_T1,average_T2,average_DT
- standard_name :
- ocean_mixed_layer_thickness_defined_by_sigma_t
Array Chunk Bytes 688.54 MB 989.28 kB Shape (696, 458, 540) (1, 458, 540) Count 2088 Tasks 696 Chunks Type float32 numpy.ndarray - diftrelo(time, yh, xh)float32dask.array<chunksize=(1, 458, 540), meta=np.ndarray>
- long_name :
- Ocean Tracer Epineutral Laplacian Diffusivity
- units :
- m2 s-1
- cell_methods :
- area:mean yh:mean xh:mean time: mean
- cell_measures :
- area: area_t
- time_avg_info :
- average_T1,average_T2,average_DT
- standard_name :
- ocean_tracer_epineutral_laplacian_diffusivity
Array Chunk Bytes 688.54 MB 989.28 kB Shape (696, 458, 540) (1, 458, 540) Count 2088 Tasks 696 Chunks Type float32 numpy.ndarray - diftrblo(time, zl, yh, xh)float32dask.array<chunksize=(1, 75, 458, 540), meta=np.ndarray>
- long_name :
- Ocean Tracer Diffusivity due to Parameterized Mesoscale Advection
- units :
- m2 s-1
- cell_methods :
- area:mean zl:mean yh:mean xh:mean time: mean
- cell_measures :
- volume: volcello area: area_t
- time_avg_info :
- average_T1,average_T2,average_DT
- standard_name :
- ocean_tracer_diffusivity_due_to_parameterized_mesoscale_advection
Array Chunk Bytes 51.64 GB 74.20 MB Shape (696, 75, 458, 540) (1, 75, 458, 540) Count 2088 Tasks 696 Chunks Type float32 numpy.ndarray - difmxybo(time, zl, yh, xh)float32dask.array<chunksize=(1, 75, 458, 540), meta=np.ndarray>
- long_name :
- Ocean lateral biharmonic viscosity
- units :
- m4 s-1
- cell_methods :
- area:mean zl:mean yh:mean xh:mean time: mean
- cell_measures :
- volume: volcello area: area_t
- time_avg_info :
- average_T1,average_T2,average_DT
- standard_name :
- ocean_momentum_xy_biharmonic_diffusivity
Array Chunk Bytes 51.64 GB 74.20 MB Shape (696, 75, 458, 540) (1, 75, 458, 540) Count 2088 Tasks 696 Chunks Type float32 numpy.ndarray - difmxylo(time, zl, yh, xh)float32dask.array<chunksize=(1, 75, 458, 540), meta=np.ndarray>
- long_name :
- Ocean lateral Laplacian viscosity
- units :
- m2 s-1
- cell_methods :
- area:mean zl:mean yh:mean xh:mean time: mean
- cell_measures :
- volume: volcello area: area_t
- time_avg_info :
- average_T1,average_T2,average_DT
- standard_name :
- ocean_momentum_xy_laplacian_diffusivity
Array Chunk Bytes 51.64 GB 74.20 MB Shape (696, 75, 458, 540) (1, 75, 458, 540) Count 2088 Tasks 696 Chunks Type float32 numpy.ndarray - volcello(time, zl, yh, xh)float32dask.array<chunksize=(1, 75, 458, 540), meta=np.ndarray>
- long_name :
- Ocean grid-cell volume
- units :
- m3
- cell_methods :
- area:sum zl:sum yh:sum xh:sum time: mean
- cell_measures :
- area: area_t
- time_avg_info :
- average_T1,average_T2,average_DT
- standard_name :
- ocean_volume
Array Chunk Bytes 51.64 GB 74.20 MB Shape (696, 75, 458, 540) (1, 75, 458, 540) Count 2088 Tasks 696 Chunks Type float32 numpy.ndarray - vmo(time, zl, yq, xh)float32dask.array<chunksize=(1, 75, 458, 540), meta=np.ndarray>
- long_name :
- Ocean Mass Y Transport
- units :
- kg s-1
- cell_methods :
- zl:sum yq:point xh:sum time: mean
- time_avg_info :
- average_T1,average_T2,average_DT
- standard_name :
- ocean_mass_y_transport
- interp_method :
- none
Array Chunk Bytes 51.64 GB 74.20 MB Shape (696, 75, 458, 540) (1, 75, 458, 540) Count 2088 Tasks 696 Chunks Type float32 numpy.ndarray - vhGM(time, zl, yq, xh)float32dask.array<chunksize=(1, 75, 458, 540), meta=np.ndarray>
- long_name :
- Time Mean Diffusive Meridional Thickness Flux
- units :
- kg s-1
- cell_methods :
- zl:sum yq:point xh:sum time: mean
- time_avg_info :
- average_T1,average_T2,average_DT
- interp_method :
- none
Array Chunk Bytes 51.64 GB 74.20 MB Shape (696, 75, 458, 540) (1, 75, 458, 540) Count 2088 Tasks 696 Chunks Type float32 numpy.ndarray - vhml(time, zl, yq, xh)float32dask.array<chunksize=(1, 75, 458, 540), meta=np.ndarray>
- long_name :
- Meridional Thickness Flux to Restratify Mixed Layer
- units :
- kg s-1
- cell_methods :
- zl:sum yq:point xh:sum time: mean
- time_avg_info :
- average_T1,average_T2,average_DT
- interp_method :
- none
Array Chunk Bytes 51.64 GB 74.20 MB Shape (696, 75, 458, 540) (1, 75, 458, 540) Count 2088 Tasks 696 Chunks Type float32 numpy.ndarray - umo(time, zl, yh, xq)float32dask.array<chunksize=(1, 75, 458, 540), meta=np.ndarray>
- long_name :
- Ocean Mass X Transport
- units :
- kg s-1
- cell_methods :
- zl:sum yh:sum xq:point time: mean
- time_avg_info :
- average_T1,average_T2,average_DT
- standard_name :
- ocean_mass_x_transport
- interp_method :
- none
Array Chunk Bytes 51.64 GB 74.20 MB Shape (696, 75, 458, 540) (1, 75, 458, 540) Count 2088 Tasks 696 Chunks Type float32 numpy.ndarray - uhGM(time, zl, yh, xq)float32dask.array<chunksize=(1, 75, 458, 540), meta=np.ndarray>
- long_name :
- Time Mean Diffusive Zonal Thickness Flux
- units :
- kg s-1
- cell_methods :
- zl:sum yh:sum xq:point time: mean
- time_avg_info :
- average_T1,average_T2,average_DT
- interp_method :
- none
Array Chunk Bytes 51.64 GB 74.20 MB Shape (696, 75, 458, 540) (1, 75, 458, 540) Count 2088 Tasks 696 Chunks Type float32 numpy.ndarray - uhml(time, zl, yh, xq)float32dask.array<chunksize=(1, 75, 458, 540), meta=np.ndarray>
- long_name :
- Zonal Thickness Flux to Restratify Mixed Layer
- units :
- kg s-1
- cell_methods :
- zl:sum yh:sum xq:point time: mean
- time_avg_info :
- average_T1,average_T2,average_DT
- interp_method :
- none
Array Chunk Bytes 51.64 GB 74.20 MB Shape (696, 75, 458, 540) (1, 75, 458, 540) Count 2088 Tasks 696 Chunks Type float32 numpy.ndarray - agessc(time, zl, yh, xh)float32dask.array<chunksize=(1, 75, 458, 540), meta=np.ndarray>
- long_name :
- Ideal Age Tracer
- units :
- yr
- cell_methods :
- area:mean zl:mean yh:mean xh:mean time: mean
- cell_measures :
- volume: volcello area: area_t
- time_avg_info :
- average_T1,average_T2,average_DT
- standard_name :
- ideal_age_tracer
Array Chunk Bytes 51.64 GB 74.20 MB Shape (696, 75, 458, 540) (1, 75, 458, 540) Count 2088 Tasks 696 Chunks Type float32 numpy.ndarray - T_ady_2d(time, yq, xh)float32dask.array<chunksize=(1, 458, 540), meta=np.ndarray>
- long_name :
- Vertically Integrated Advective Meridional Flux of Heat
- units :
- W
- cell_methods :
- yq:point xh:sum time: mean
- time_avg_info :
- average_T1,average_T2,average_DT
- interp_method :
- none
Array Chunk Bytes 688.54 MB 989.28 kB Shape (696, 458, 540) (1, 458, 540) Count 2088 Tasks 696 Chunks Type float32 numpy.ndarray - T_adx_2d(time, yh, xq)float32dask.array<chunksize=(1, 458, 540), meta=np.ndarray>
- long_name :
- Vertically Integrated Advective Zonal Flux of Heat
- units :
- W
- cell_methods :
- yh:sum xq:point time: mean
- time_avg_info :
- average_T1,average_T2,average_DT
- interp_method :
- none
Array Chunk Bytes 688.54 MB 989.28 kB Shape (696, 458, 540) (1, 458, 540) Count 2088 Tasks 696 Chunks Type float32 numpy.ndarray - T_diffy_2d(time, yq, xh)float32dask.array<chunksize=(1, 458, 540), meta=np.ndarray>
- long_name :
- Vertically Integrated Diffusive Meridional Flux of Heat
- units :
- W
- cell_methods :
- yq:point xh:sum time: mean
- time_avg_info :
- average_T1,average_T2,average_DT
- interp_method :
- none
Array Chunk Bytes 688.54 MB 989.28 kB Shape (696, 458, 540) (1, 458, 540) Count 2088 Tasks 696 Chunks Type float32 numpy.ndarray - T_diffx_2d(time, yh, xq)float32dask.array<chunksize=(1, 458, 540), meta=np.ndarray>
- long_name :
- Vertically Integrated Diffusive Zonal Flux of Heat
- units :
- W
- cell_methods :
- yh:sum xq:point time: mean
- time_avg_info :
- average_T1,average_T2,average_DT
- interp_method :
- none
Array Chunk Bytes 688.54 MB 989.28 kB Shape (696, 458, 540) (1, 458, 540) Count 2088 Tasks 696 Chunks Type float32 numpy.ndarray - T_lbd_diffy_2d(time, yq, xh)float32dask.array<chunksize=(1, 458, 540), meta=np.ndarray>
- long_name :
- Vertically-integrated meridional diffusive flux from the lateral boundary diffusion scheme for Heat
- units :
- W
- cell_methods :
- yq:point xh:sum time: mean
- time_avg_info :
- average_T1,average_T2,average_DT
- interp_method :
- none
Array Chunk Bytes 688.54 MB 989.28 kB Shape (696, 458, 540) (1, 458, 540) Count 2088 Tasks 696 Chunks Type float32 numpy.ndarray - T_lbd_diffy(time, zl, yq, xh)float32dask.array<chunksize=(1, 75, 458, 540), meta=np.ndarray>
- long_name :
- Lateral Boundary Diffusive Meridional Flux of Heat
- units :
- W
- cell_methods :
- zl:sum yq:point xh:sum time: mean
- time_avg_info :
- average_T1,average_T2,average_DT
- interp_method :
- none
Array Chunk Bytes 51.64 GB 74.20 MB Shape (696, 75, 458, 540) (1, 75, 458, 540) Count 2088 Tasks 696 Chunks Type float32 numpy.ndarray - T_lbd_diffx_2d(time, yh, xq)float32dask.array<chunksize=(1, 458, 540), meta=np.ndarray>
- long_name :
- Vertically-integrated zonal diffusive flux from the lateral boundary diffusion scheme for Heat
- units :
- W
- cell_methods :
- yh:sum xq:point time: mean
- time_avg_info :
- average_T1,average_T2,average_DT
- interp_method :
- none
Array Chunk Bytes 688.54 MB 989.28 kB Shape (696, 458, 540) (1, 458, 540) Count 2088 Tasks 696 Chunks Type float32 numpy.ndarray - T_lbd_diffx(time, zl, yh, xq)float32dask.array<chunksize=(1, 75, 458, 540), meta=np.ndarray>
- long_name :
- Lateral Boundary Diffusive Zonal Flux of Heat
- units :
- W
- cell_methods :
- zl:sum yh:sum xq:point time: mean
- time_avg_info :
- average_T1,average_T2,average_DT
- interp_method :
- none
Array Chunk Bytes 51.64 GB 74.20 MB Shape (696, 75, 458, 540) (1, 75, 458, 540) Count 2088 Tasks 696 Chunks Type float32 numpy.ndarray - T_lbdxy_cont_tendency(time, zl, yh, xh)float32dask.array<chunksize=(1, 75, 458, 540), meta=np.ndarray>
- long_name :
- Lateral diffusion tracer content tendency for T
- units :
- W m-2
- cell_methods :
- area:sum zl:sum yh:sum xh:sum time: mean
- cell_measures :
- volume: volcello area: area_t
- time_avg_info :
- average_T1,average_T2,average_DT
Array Chunk Bytes 51.64 GB 74.20 MB Shape (696, 75, 458, 540) (1, 75, 458, 540) Count 2088 Tasks 696 Chunks Type float32 numpy.ndarray - T_lbdxy_cont_tendency_2d(time, yh, xh)float32dask.array<chunksize=(1, 458, 540), meta=np.ndarray>
- long_name :
- Depth integrated lateral diffusion tracer content tendency for T
- units :
- W m-2
- cell_methods :
- area:sum yh:sum xh:sum time: mean
- cell_measures :
- area: area_t
- time_avg_info :
- average_T1,average_T2,average_DT
Array Chunk Bytes 688.54 MB 989.28 kB Shape (696, 458, 540) (1, 458, 540) Count 2088 Tasks 696 Chunks Type float32 numpy.ndarray - MEKE(time, yh, xh)float32dask.array<chunksize=(1, 458, 540), meta=np.ndarray>
- long_name :
- Mesoscale Eddy Kinetic Energy
- units :
- m2 s-2
- cell_methods :
- area:mean yh:mean xh:mean time: mean
- cell_measures :
- area: area_t
- time_avg_info :
- average_T1,average_T2,average_DT
Array Chunk Bytes 688.54 MB 989.28 kB Shape (696, 458, 540) (1, 458, 540) Count 2088 Tasks 696 Chunks Type float32 numpy.ndarray - KE(time, zl, yh, xh)float32dask.array<chunksize=(1, 75, 458, 540), meta=np.ndarray>
- long_name :
- Layer kinetic energy per unit mass
- units :
- m2 s-2
- cell_methods :
- area:mean zl:mean yh:mean xh:mean time: mean
- cell_measures :
- volume: volcello area: area_t
- time_avg_info :
- average_T1,average_T2,average_DT
Array Chunk Bytes 51.64 GB 74.20 MB Shape (696, 75, 458, 540) (1, 75, 458, 540) Count 2088 Tasks 696 Chunks Type float32 numpy.ndarray - rsdo(time, zi, yh, xh)float32dask.array<chunksize=(1, 76, 458, 540), meta=np.ndarray>
- long_name :
- Downwelling Shortwave Flux in Sea Water at Grid Cell Upper Interface
- units :
- W m-2
- cell_methods :
- area:mean zi:point yh:mean xh:mean time: mean
- cell_measures :
- area: area_t
- time_avg_info :
- average_T1,average_T2,average_DT
- standard_name :
- downwelling_shortwave_flux_in_sea_water
Array Chunk Bytes 52.33 GB 75.19 MB Shape (696, 76, 458, 540) (1, 76, 458, 540) Count 2088 Tasks 696 Chunks Type float32 numpy.ndarray - average_T1(time)objectdask.array<chunksize=(1,), meta=np.ndarray>
- long_name :
- Start time for average period
Array Chunk Bytes 5.57 kB 8 B Shape (696,) (1,) Count 2088 Tasks 696 Chunks Type object numpy.ndarray - average_T2(time)objectdask.array<chunksize=(1,), meta=np.ndarray>
- long_name :
- End time for average period
Array Chunk Bytes 5.57 kB 8 B Shape (696,) (1,) Count 2088 Tasks 696 Chunks Type object numpy.ndarray - average_DT(time)timedelta64[ns]dask.array<chunksize=(1,), meta=np.ndarray>
- long_name :
- Length of average period
Array Chunk Bytes 5.57 kB 8 B Shape (696,) (1,) Count 2088 Tasks 696 Chunks Type timedelta64[ns] numpy.ndarray - time_bnds(time, nv)timedelta64[ns]dask.array<chunksize=(1, 2), meta=np.ndarray>
- long_name :
- time axis boundaries
- calendar :
- NOLEAP
Array Chunk Bytes 11.14 kB 16 B Shape (696, 2) (1, 2) Count 2088 Tasks 696 Chunks Type timedelta64[ns] numpy.ndarray
- filename :
- gmom.e22.GJRAv3.TL319_t061_zstar_N75.mct.baseline.002.mom6.hm_0001_01.nc
- title :
- MOM6 diagnostic fields table for CESM case: gmom.e22.GJRAv3.TL319_t061_zstar_N75.mct.baseline.002
- associated_files :
- area_t: gmom.e22.GJRAv3.TL319_t061_zstar_N75.mct.baseline.002.mom6.static.nc
- grid_type :
- regular
- grid_tile :
- N/A
Use pint arrays to represent quantities with units#
cesm.UVEL
is currently an xarray DataArray wrapping a Dask array. Note that it has units
attribute with value centimeter/s
cesm.UVEL
<xarray.DataArray 'UVEL' (time: 24000, z_t: 60, nlat: 384, nlon: 320)> dask.array<concatenate, shape=(24000, 60, 384, 320), dtype=float32, chunksize=(1000, 60, 100, 10), chunktype=numpy.ndarray> Coordinates: * z_t (z_t) float32 500.0 1.5e+03 2.5e+03 ... 5.125e+05 5.375e+05 ULONG (nlat, nlon) float64 dask.array<chunksize=(100, 10), meta=np.ndarray> ULAT (nlat, nlon) float64 dask.array<chunksize=(100, 10), meta=np.ndarray> TLONG (nlat, nlon) float64 dask.array<chunksize=(100, 10), meta=np.ndarray> TLAT (nlat, nlon) float64 dask.array<chunksize=(100, 10), meta=np.ndarray> * time (time) object 0001-02-01 00:00:00 ... 2001-01-01 00:00:00 * nlat (nlat) int64 0 1 2 3 4 5 6 7 8 ... 376 377 378 379 380 381 382 383 * nlon (nlon) int64 0 1 2 3 4 5 6 7 8 ... 312 313 314 315 316 317 318 319 Attributes: long_name: Velocity in grid-x direction units: centimeter/s grid_loc: 3221 cell_methods: time: mean standard_name: sea_water_x_velocity cell_measures: area: UAREA
- time: 24000
- z_t: 60
- nlat: 384
- nlon: 320
- dask.array<chunksize=(1000, 60, 100, 10), meta=np.ndarray>
Array Chunk Bytes 707.79 GB 240.00 MB Shape (24000, 60, 384, 320) (1000, 60, 100, 10) Count 10260 Tasks 5120 Chunks Type float32 numpy.ndarray - z_t(z_t)float32500.0 1.5e+03 ... 5.375e+05
- long_name :
- depth from surface to midpoint of layer
- units :
- centimeters
- positive :
- down
- valid_min :
- 500.0
- valid_max :
- 537500.0
array([5.000000e+02, 1.500000e+03, 2.500000e+03, 3.500000e+03, 4.500000e+03, 5.500000e+03, 6.500000e+03, 7.500000e+03, 8.500000e+03, 9.500000e+03, 1.050000e+04, 1.150000e+04, 1.250000e+04, 1.350000e+04, 1.450000e+04, 1.550000e+04, 1.650984e+04, 1.754790e+04, 1.862913e+04, 1.976603e+04, 2.097114e+04, 2.225783e+04, 2.364088e+04, 2.513702e+04, 2.676542e+04, 2.854837e+04, 3.051192e+04, 3.268680e+04, 3.510935e+04, 3.782276e+04, 4.087846e+04, 4.433777e+04, 4.827367e+04, 5.277280e+04, 5.793729e+04, 6.388626e+04, 7.075633e+04, 7.870025e+04, 8.788252e+04, 9.847059e+04, 1.106204e+05, 1.244567e+05, 1.400497e+05, 1.573946e+05, 1.764003e+05, 1.968944e+05, 2.186457e+05, 2.413972e+05, 2.649001e+05, 2.889385e+05, 3.133405e+05, 3.379793e+05, 3.627670e+05, 3.876452e+05, 4.125768e+05, 4.375392e+05, 4.625190e+05, 4.875083e+05, 5.125028e+05, 5.375000e+05], dtype=float32)
- ULONG(nlat, nlon)float64dask.array<chunksize=(100, 10), meta=np.ndarray>
- long_name :
- array of u-grid longitudes
- units :
- degrees_east
Array Chunk Bytes 983.04 kB 8.00 kB Shape (384, 320) (100, 10) Count 129 Tasks 128 Chunks Type float64 numpy.ndarray - ULAT(nlat, nlon)float64dask.array<chunksize=(100, 10), meta=np.ndarray>
- long_name :
- array of u-grid latitudes
- units :
- degrees_north
Array Chunk Bytes 983.04 kB 8.00 kB Shape (384, 320) (100, 10) Count 129 Tasks 128 Chunks Type float64 numpy.ndarray - TLONG(nlat, nlon)float64dask.array<chunksize=(100, 10), meta=np.ndarray>
- long_name :
- array of t-grid longitudes
- units :
- degrees_east
Array Chunk Bytes 983.04 kB 8.00 kB Shape (384, 320) (100, 10) Count 129 Tasks 128 Chunks Type float64 numpy.ndarray - TLAT(nlat, nlon)float64dask.array<chunksize=(100, 10), meta=np.ndarray>
- long_name :
- array of t-grid latitudes
- units :
- degrees_north
Array Chunk Bytes 983.04 kB 8.00 kB Shape (384, 320) (100, 10) Count 129 Tasks 128 Chunks Type float64 numpy.ndarray - time(time)object0001-02-01 00:00:00 ... 2001-01-...
- long_name :
- time
- bounds :
- time_bound
array([cftime.DatetimeNoLeap(1, 2, 1, 0, 0, 0, 0), cftime.DatetimeNoLeap(1, 3, 1, 0, 0, 0, 0), cftime.DatetimeNoLeap(1, 4, 1, 0, 0, 0, 0), ..., cftime.DatetimeNoLeap(2000, 11, 1, 0, 0, 0, 0), cftime.DatetimeNoLeap(2000, 12, 1, 0, 0, 0, 0), cftime.DatetimeNoLeap(2001, 1, 1, 0, 0, 0, 0)], dtype=object)
- nlat(nlat)int640 1 2 3 4 5 ... 379 380 381 382 383
- axis :
- Y
array([ 0, 1, 2, ..., 381, 382, 383])
- nlon(nlon)int640 1 2 3 4 5 ... 315 316 317 318 319
- axis :
- X
array([ 0, 1, 2, ..., 317, 318, 319])
- long_name :
- Velocity in grid-x direction
- units :
- centimeter/s
- grid_loc :
- 3221
- cell_methods :
- time: mean
- standard_name :
- sea_water_x_velocity
- cell_measures :
- area: UAREA
We can convert the underlying dask arrays to pint “Quantities” using pint_xarray
. To do so, call .pint.quantify
Now we have an xarray DataArray wrapping a Pint Quantity which in turn wraps a dask array (under Magnitude
in the repr). Note the extra Units
field in the repr; and that units
is not in the attributes any more. Pint will keep track of units from here on
cesm = cesm.pint.quantify()
cesm.UVEL
<xarray.DataArray 'UVEL' (time: 24000, z_t: 60, nlat: 384, nlon: 320)> <Quantity(dask.array<concatenate, shape=(24000, 60, 384, 320), dtype=float32, chunksize=(1000, 60, 100, 10), chunktype=numpy.ndarray>, 'centimeter / second')> Coordinates: * z_t (z_t) float32 500.0 1.5e+03 2.5e+03 ... 5.125e+05 5.375e+05 ULONG (nlat, nlon) float64 [degrees_E] dask.array<open_dataset-b251813... ULAT (nlat, nlon) float64 [degrees_N] dask.array<open_dataset-b251813... TLONG (nlat, nlon) float64 [degrees_E] dask.array<open_dataset-b251813... TLAT (nlat, nlon) float64 [degrees_N] dask.array<open_dataset-b251813... * time (time) object 0001-02-01 00:00:00 ... 2001-01-01 00:00:00 * nlat (nlat) int64 0 1 2 3 4 5 6 7 8 ... 376 377 378 379 380 381 382 383 * nlon (nlon) int64 0 1 2 3 4 5 6 7 8 ... 312 313 314 315 316 317 318 319 Attributes: long_name: Velocity in grid-x direction grid_loc: 3221 cell_methods: time: mean standard_name: sea_water_x_velocity cell_measures: area: UAREA
- time: 24000
- z_t: 60
- nlat: 384
- nlon: 320
- [cm/s] dask.array<concatenate, shape=(24000, 60, 384, 320), dtype=f...
Magnitude Array Chunk Bytes 707.79 GB 240.00 MB Shape (24000, 60, 384, 320) (1000, 60, 100, 10) Count 10260 Tasks 5120 Chunks Type float32 numpy.ndarray Units centimeter/second - z_t(z_t)float32500.0 1.5e+03 ... 5.375e+05
- long_name :
- depth from surface to midpoint of layer
- positive :
- down
- valid_min :
- 500.0
- valid_max :
- 537500.0
- units :
- centimeter
array([5.000000e+02, 1.500000e+03, 2.500000e+03, 3.500000e+03, 4.500000e+03, 5.500000e+03, 6.500000e+03, 7.500000e+03, 8.500000e+03, 9.500000e+03, 1.050000e+04, 1.150000e+04, 1.250000e+04, 1.350000e+04, 1.450000e+04, 1.550000e+04, 1.650984e+04, 1.754790e+04, 1.862913e+04, 1.976603e+04, 2.097114e+04, 2.225783e+04, 2.364088e+04, 2.513702e+04, 2.676542e+04, 2.854837e+04, 3.051192e+04, 3.268680e+04, 3.510935e+04, 3.782276e+04, 4.087846e+04, 4.433777e+04, 4.827367e+04, 5.277280e+04, 5.793729e+04, 6.388626e+04, 7.075633e+04, 7.870025e+04, 8.788252e+04, 9.847059e+04, 1.106204e+05, 1.244567e+05, 1.400497e+05, 1.573946e+05, 1.764003e+05, 1.968944e+05, 2.186457e+05, 2.413972e+05, 2.649001e+05, 2.889385e+05, 3.133405e+05, 3.379793e+05, 3.627670e+05, 3.876452e+05, 4.125768e+05, 4.375392e+05, 4.625190e+05, 4.875083e+05, 5.125028e+05, 5.375000e+05], dtype=float32)
- ULONG(nlat, nlon)float64[degrees_E] dask.array<open_data...
- long_name :
- array of u-grid longitudes
Magnitude Array Chunk Bytes 983.04 kB 8.00 kB Shape (384, 320) (100, 10) Count 129 Tasks 128 Chunks Type float64 numpy.ndarray Units degrees_east - ULAT(nlat, nlon)float64[degrees_N] dask.array<open_data...
- long_name :
- array of u-grid latitudes
Magnitude Array Chunk Bytes 983.04 kB 8.00 kB Shape (384, 320) (100, 10) Count 129 Tasks 128 Chunks Type float64 numpy.ndarray Units degrees_north - TLONG(nlat, nlon)float64[degrees_E] dask.array<open_data...
- long_name :
- array of t-grid longitudes
Magnitude Array Chunk Bytes 983.04 kB 8.00 kB Shape (384, 320) (100, 10) Count 129 Tasks 128 Chunks Type float64 numpy.ndarray Units degrees_east - TLAT(nlat, nlon)float64[degrees_N] dask.array<open_data...
- long_name :
- array of t-grid latitudes
Magnitude Array Chunk Bytes 983.04 kB 8.00 kB Shape (384, 320) (100, 10) Count 129 Tasks 128 Chunks Type float64 numpy.ndarray Units degrees_north - time(time)object0001-02-01 00:00:00 ... 2001-01-...
- long_name :
- time
- bounds :
- time_bound
array([cftime.DatetimeNoLeap(1, 2, 1, 0, 0, 0, 0), cftime.DatetimeNoLeap(1, 3, 1, 0, 0, 0, 0), cftime.DatetimeNoLeap(1, 4, 1, 0, 0, 0, 0), ..., cftime.DatetimeNoLeap(2000, 11, 1, 0, 0, 0, 0), cftime.DatetimeNoLeap(2000, 12, 1, 0, 0, 0, 0), cftime.DatetimeNoLeap(2001, 1, 1, 0, 0, 0, 0)], dtype=object)
- nlat(nlat)int640 1 2 3 4 5 ... 379 380 381 382 383
- axis :
- Y
array([ 0, 1, 2, ..., 381, 382, 383])
- nlon(nlon)int640 1 2 3 4 5 ... 315 316 317 318 319
- axis :
- X
array([ 0, 1, 2, ..., 317, 318, 319])
- long_name :
- Velocity in grid-x direction
- grid_loc :
- 3221
- cell_methods :
- time: mean
- standard_name :
- sea_water_x_velocity
- cell_measures :
- area: UAREA
Similarly with cmor
. The cmor-ized dataset has units m/s
cmor = cmor.pint.quantify()
cmor.uo
<xarray.DataArray 'uo' (time: 14400, lev: 60, nlat: 384, nlon: 320)> <Quantity(dask.array<concatenate, shape=(14400, 60, 384, 320), dtype=float32, chunksize=(1000, 60, 100, 10), chunktype=numpy.ndarray>, 'meter / second')> Coordinates: lat (nlat, nlon) float64 [degrees_N] dask.array<open_dataset-e0a471e... * lev (lev) float64 500.0 1.5e+03 2.5e+03 ... 5.125e+05 5.375e+05 lon (nlat, nlon) float64 [degrees_E] dask.array<open_dataset-e0a471e... * nlat (nlat) int64 0 1 2 3 4 5 6 7 8 ... 376 377 378 379 380 381 382 383 * nlon (nlon) int64 0 1 2 3 4 5 6 7 8 ... 312 313 314 315 316 317 318 319 * time (time) object 0001-01-15 13:00:00 ... 1200-12-15 12:00:00 Attributes: (12/17) cell_methods: time: mean comment: Prognostic x-ward velocity component resolved by the model. description: Prognostic x-ward velocity component resolved by the model. frequency: mon id: uo long_name: Sea Water X Velocity ... ... time: time time_label: time-mean time_title: Temporal mean title: Sea Water X Velocity type: real variable_id: uo
- time: 14400
- lev: 60
- nlat: 384
- nlon: 320
- [m/s] dask.array<concatenate, shape=(14400, 60, 384, 320), dtype=fl...
Magnitude Array Chunk Bytes 424.67 GB 240.00 MB Shape (14400, 60, 384, 320) (1000, 60, 100, 10) Count 6156 Tasks 3072 Chunks Type float32 numpy.ndarray Units meter/second - lat(nlat, nlon)float64[degrees_N] dask.array<open_data...
- axis :
- Y
- standard_name :
- latitude
- title :
- Latitude
- type :
- double
- valid_max :
- 90.0
- valid_min :
- -90.0
Magnitude Array Chunk Bytes 983.04 kB 8.00 kB Shape (384, 320) (100, 10) Count 129 Tasks 128 Chunks Type float64 numpy.ndarray Units degrees_north - lev(lev)float64500.0 1.5e+03 ... 5.375e+05
- axis :
- Z
- positive :
- down
- standard_name :
- olevel
- title :
- ocean model level
- type :
- double
- units :
- centimeter
array([5.000000e+02, 1.500000e+03, 2.500000e+03, 3.500000e+03, 4.500000e+03, 5.500000e+03, 6.500000e+03, 7.500000e+03, 8.500000e+03, 9.500000e+03, 1.050000e+04, 1.150000e+04, 1.250000e+04, 1.350000e+04, 1.450000e+04, 1.550000e+04, 1.650984e+04, 1.754790e+04, 1.862913e+04, 1.976603e+04, 2.097114e+04, 2.225783e+04, 2.364088e+04, 2.513702e+04, 2.676542e+04, 2.854837e+04, 3.051192e+04, 3.268680e+04, 3.510935e+04, 3.782276e+04, 4.087846e+04, 4.433777e+04, 4.827367e+04, 5.277280e+04, 5.793729e+04, 6.388626e+04, 7.075633e+04, 7.870025e+04, 8.788252e+04, 9.847059e+04, 1.106204e+05, 1.244567e+05, 1.400497e+05, 1.573946e+05, 1.764003e+05, 1.968944e+05, 2.186457e+05, 2.413972e+05, 2.649001e+05, 2.889385e+05, 3.133405e+05, 3.379793e+05, 3.627670e+05, 3.876452e+05, 4.125768e+05, 4.375392e+05, 4.625190e+05, 4.875083e+05, 5.125028e+05, 5.375000e+05])
- lon(nlat, nlon)float64[degrees_E] dask.array<open_data...
- axis :
- X
- standard_name :
- longitude
- title :
- Longitude
- type :
- double
- valid_max :
- 360.0
- valid_min :
- 0.0
Magnitude Array Chunk Bytes 983.04 kB 8.00 kB Shape (384, 320) (100, 10) Count 129 Tasks 128 Chunks Type float64 numpy.ndarray Units degrees_east - nlat(nlat)int640 1 2 3 4 5 ... 379 380 381 382 383
- axis :
- Y
array([ 0, 1, 2, ..., 381, 382, 383])
- nlon(nlon)int640 1 2 3 4 5 ... 315 316 317 318 319
- axis :
- X
array([ 0, 1, 2, ..., 317, 318, 319])
- time(time)object0001-01-15 13:00:00 ... 1200-12-...
- axis :
- T
- standard_name :
- time
- title :
- time
- type :
- double
array([cftime.DatetimeNoLeap(1, 1, 15, 13, 0, 0, 0), cftime.DatetimeNoLeap(1, 2, 14, 0, 0, 0, 0), cftime.DatetimeNoLeap(1, 3, 15, 12, 0, 0, 0), ..., cftime.DatetimeNoLeap(1200, 10, 15, 12, 0, 0, 0), cftime.DatetimeNoLeap(1200, 11, 15, 0, 0, 0, 0), cftime.DatetimeNoLeap(1200, 12, 15, 12, 0, 0, 0)], dtype=object)
- cell_methods :
- time: mean
- comment :
- Prognostic x-ward velocity component resolved by the model.
- description :
- Prognostic x-ward velocity component resolved by the model.
- frequency :
- mon
- id :
- uo
- long_name :
- Sea Water X Velocity
- mipTable :
- Omon
- out_name :
- uo
- prov :
- Omon ((isd.003))
- realm :
- ocean
- standard_name :
- sea_water_x_velocity
- time :
- time
- time_label :
- time-mean
- time_title :
- Temporal mean
- title :
- Sea Water X Velocity
- type :
- real
- variable_id :
- uo
mom6zs = mom6zs.pint.quantify()
mom6zs.uo
<xarray.DataArray 'uo' (time: 696, zl: 75, yh: 458, xq: 540)> <Quantity(dask.array<concatenate, shape=(696, 75, 458, 540), dtype=float32, chunksize=(1, 75, 458, 540), chunktype=numpy.ndarray>, 'meter / second')> Coordinates: * xq (xq) float64 -286.3 -285.7 -285.0 -284.3 ... 71.0 71.67 72.33 73.0 * yh (yh) float64 -79.2 -79.08 -78.95 -78.82 ... 87.55 87.64 87.71 87.74 * zl (zl) float64 1.25 3.75 6.251 ... 5.366e+03 5.619e+03 5.873e+03 * time (time) object 0001-01-16 12:00:00 ... 0058-12-16 12:00:00 Attributes: long_name: Sea Water X Velocity cell_methods: zl:mean yh:mean xq:point time: mean time_avg_info: average_T1,average_T2,average_DT standard_name: sea_water_x_velocity interp_method: none
- time: 696
- zl: 75
- yh: 458
- xq: 540
- [m/s] dask.array<concatenate, shape=(696, 75, 458, 540), dtype=floa...
Magnitude Array Chunk Bytes 51.64 GB 74.20 MB Shape (696, 75, 458, 540) (1, 75, 458, 540) Count 2088 Tasks 696 Chunks Type float32 numpy.ndarray Units meter/second - xq(xq)float64-286.3 -285.7 -285.0 ... 72.33 73.0
- long_name :
- q point nominal longitude
- cartesian_axis :
- X
- units :
- degrees_east
array([-286.333333, -285.666667, -285. , ..., 71.666667, 72.333333, 73. ])
- yh(yh)float64-79.2 -79.08 -78.95 ... 87.71 87.74
- long_name :
- h point nominal latitude
- cartesian_axis :
- Y
- units :
- degrees_north
array([-79.202602, -79.076995, -78.949944, ..., 87.641507, 87.706191, 87.738663])
- zl(zl)float641.25 3.75 ... 5.619e+03 5.873e+03
- long_name :
- Layer pseudo-depth, -z*
- cartesian_axis :
- Z
- positive :
- down
- units :
- meter
array([1.250000e+00, 3.750110e+00, 6.250513e+00, 8.751399e+00, 1.125308e+01, 1.375607e+01, 1.626123e+01, 1.876995e+01, 2.128458e+01, 2.380895e+01, 2.634948e+01, 2.891684e+01, 3.152900e+01, 3.421656e+01, 3.703255e+01, 4.007146e+01, 4.350694e+01, 4.766315e+01, 5.309426e+01, 6.037432e+01, 6.933990e+01, 7.911551e+01, 8.908133e+01, 9.907633e+01, 1.090754e+02, 1.190749e+02, 1.290746e+02, 1.390742e+02, 1.490739e+02, 1.590997e+02, 1.692943e+02, 1.798470e+02, 1.908943e+02, 2.025637e+02, 2.149872e+02, 2.283087e+02, 2.426894e+02, 2.583132e+02, 2.753934e+02, 2.941791e+02, 3.149636e+02, 3.380943e+02, 3.639847e+02, 3.931282e+02, 4.261145e+02, 4.636487e+02, 5.065716e+02, 5.558810e+02, 6.127502e+02, 6.785392e+02, 7.547892e+02, 8.431905e+02, 9.455058e+02, 1.063437e+03, 1.198429e+03, 1.351425e+03, 1.522623e+03, 1.711320e+03, 1.915909e+03, 2.134079e+03, 2.363155e+03, 2.600479e+03, 2.843700e+03, 3.090928e+03, 3.340761e+03, 3.592224e+03, 3.844672e+03, 4.097698e+03, 4.351054e+03, 4.604594e+03, 4.858234e+03, 5.111928e+03, 5.365649e+03, 5.619385e+03, 5.873128e+03])
- time(time)object0001-01-16 12:00:00 ... 0058-12-...
- long_name :
- time
- cartesian_axis :
- T
- calendar_type :
- NOLEAP
- bounds :
- time_bnds
array([cftime.DatetimeNoLeap(1, 1, 16, 12, 0, 0, 0), cftime.DatetimeNoLeap(1, 2, 15, 0, 0, 0, 0), cftime.DatetimeNoLeap(1, 3, 16, 12, 0, 0, 0), ..., cftime.DatetimeNoLeap(58, 10, 16, 12, 0, 0, 0), cftime.DatetimeNoLeap(58, 11, 16, 0, 0, 0, 0), cftime.DatetimeNoLeap(58, 12, 16, 12, 0, 0, 0)], dtype=object)
- long_name :
- Sea Water X Velocity
- cell_methods :
- zl:mean yh:mean xq:point time: mean
- time_avg_info :
- average_T1,average_T2,average_DT
- standard_name :
- sea_water_x_velocity
- interp_method :
- none
Use cf_xarray to extract sea_water_x_velocity
#
# note that `lat` and `lon` are attached
cmor.cf["sea_water_x_velocity"] # CF standard name
<xarray.DataArray 'uo' (time: 14400, lev: 60, nlat: 384, nlon: 320)> <Quantity(dask.array<concatenate, shape=(14400, 60, 384, 320), dtype=float32, chunksize=(1000, 60, 100, 10), chunktype=numpy.ndarray>, 'meter / second')> Coordinates: * lev (lev) float64 500.0 1.5e+03 2.5e+03 ... 5.125e+05 5.375e+05 * nlat (nlat) int64 0 1 2 3 4 5 6 7 8 ... 376 377 378 379 380 381 382 383 * nlon (nlon) int64 0 1 2 3 4 5 6 7 8 ... 312 313 314 315 316 317 318 319 * time (time) object 0001-01-15 13:00:00 ... 1200-12-15 12:00:00 lat (nlat, nlon) float64 [degrees_N] dask.array<open_dataset-e0a471e... lon (nlat, nlon) float64 [degrees_E] dask.array<open_dataset-e0a471e... Attributes: (12/17) cell_methods: time: mean comment: Prognostic x-ward velocity component resolved by the model. description: Prognostic x-ward velocity component resolved by the model. frequency: mon id: uo long_name: Sea Water X Velocity ... ... time: time time_label: time-mean time_title: Temporal mean title: Sea Water X Velocity type: real variable_id: uo
- time: 14400
- lev: 60
- nlat: 384
- nlon: 320
- [m/s] dask.array<concatenate, shape=(14400, 60, 384, 320), dtype=fl...
Magnitude Array Chunk Bytes 424.67 GB 240.00 MB Shape (14400, 60, 384, 320) (1000, 60, 100, 10) Count 6156 Tasks 3072 Chunks Type float32 numpy.ndarray Units meter/second - lev(lev)float64500.0 1.5e+03 ... 5.375e+05
- axis :
- Z
- positive :
- down
- standard_name :
- olevel
- title :
- ocean model level
- type :
- double
- units :
- centimeter
array([5.000000e+02, 1.500000e+03, 2.500000e+03, 3.500000e+03, 4.500000e+03, 5.500000e+03, 6.500000e+03, 7.500000e+03, 8.500000e+03, 9.500000e+03, 1.050000e+04, 1.150000e+04, 1.250000e+04, 1.350000e+04, 1.450000e+04, 1.550000e+04, 1.650984e+04, 1.754790e+04, 1.862913e+04, 1.976603e+04, 2.097114e+04, 2.225783e+04, 2.364088e+04, 2.513702e+04, 2.676542e+04, 2.854837e+04, 3.051192e+04, 3.268680e+04, 3.510935e+04, 3.782276e+04, 4.087846e+04, 4.433777e+04, 4.827367e+04, 5.277280e+04, 5.793729e+04, 6.388626e+04, 7.075633e+04, 7.870025e+04, 8.788252e+04, 9.847059e+04, 1.106204e+05, 1.244567e+05, 1.400497e+05, 1.573946e+05, 1.764003e+05, 1.968944e+05, 2.186457e+05, 2.413972e+05, 2.649001e+05, 2.889385e+05, 3.133405e+05, 3.379793e+05, 3.627670e+05, 3.876452e+05, 4.125768e+05, 4.375392e+05, 4.625190e+05, 4.875083e+05, 5.125028e+05, 5.375000e+05])
- nlat(nlat)int640 1 2 3 4 5 ... 379 380 381 382 383
- axis :
- Y
array([ 0, 1, 2, ..., 381, 382, 383])
- nlon(nlon)int640 1 2 3 4 5 ... 315 316 317 318 319
- axis :
- X
array([ 0, 1, 2, ..., 317, 318, 319])
- time(time)object0001-01-15 13:00:00 ... 1200-12-...
- axis :
- T
- standard_name :
- time
- title :
- time
- type :
- double
array([cftime.DatetimeNoLeap(1, 1, 15, 13, 0, 0, 0), cftime.DatetimeNoLeap(1, 2, 14, 0, 0, 0, 0), cftime.DatetimeNoLeap(1, 3, 15, 12, 0, 0, 0), ..., cftime.DatetimeNoLeap(1200, 10, 15, 12, 0, 0, 0), cftime.DatetimeNoLeap(1200, 11, 15, 0, 0, 0, 0), cftime.DatetimeNoLeap(1200, 12, 15, 12, 0, 0, 0)], dtype=object)
- lat(nlat, nlon)float64[degrees_N] dask.array<open_data...
- axis :
- Y
- standard_name :
- latitude
- title :
- Latitude
- type :
- double
- valid_max :
- 90.0
- valid_min :
- -90.0
Magnitude Array Chunk Bytes 983.04 kB 8.00 kB Shape (384, 320) (100, 10) Count 129 Tasks 128 Chunks Type float64 numpy.ndarray Units degrees_north - lon(nlat, nlon)float64[degrees_E] dask.array<open_data...
- axis :
- X
- standard_name :
- longitude
- title :
- Longitude
- type :
- double
- valid_max :
- 360.0
- valid_min :
- 0.0
Magnitude Array Chunk Bytes 983.04 kB 8.00 kB Shape (384, 320) (100, 10) Count 129 Tasks 128 Chunks Type float64 numpy.ndarray Units degrees_east
- cell_methods :
- time: mean
- comment :
- Prognostic x-ward velocity component resolved by the model.
- description :
- Prognostic x-ward velocity component resolved by the model.
- frequency :
- mon
- id :
- uo
- long_name :
- Sea Water X Velocity
- mipTable :
- Omon
- out_name :
- uo
- prov :
- Omon ((isd.003))
- realm :
- ocean
- standard_name :
- sea_water_x_velocity
- time :
- time
- time_label :
- time-mean
- time_title :
- Temporal mean
- title :
- Sea Water X Velocity
- type :
- real
- variable_id :
- uo
# Note that we get `ULAT`, `ULONG`, `UAREA` are attached
cesm.cf["sea_water_x_velocity"]
<xarray.DataArray 'UVEL' (time: 24000, z_t: 60, nlat: 384, nlon: 320)> <Quantity(dask.array<concatenate, shape=(24000, 60, 384, 320), dtype=float32, chunksize=(1000, 60, 100, 10), chunktype=numpy.ndarray>, 'centimeter / second')> Coordinates: * z_t (z_t) float32 500.0 1.5e+03 2.5e+03 ... 5.125e+05 5.375e+05 * time (time) object 0001-02-01 00:00:00 ... 2001-01-01 00:00:00 * nlat (nlat) int64 0 1 2 3 4 5 6 7 8 ... 376 377 378 379 380 381 382 383 * nlon (nlon) int64 0 1 2 3 4 5 6 7 8 ... 312 313 314 315 316 317 318 319 UAREA (nlat, nlon) float64 [cm²] dask.array<open_dataset-b251813acfde5... ULONG (nlat, nlon) float64 [degrees_E] dask.array<open_dataset-b251813... ULAT (nlat, nlon) float64 [degrees_N] dask.array<open_dataset-b251813... Attributes: long_name: Velocity in grid-x direction grid_loc: 3221 cell_methods: time: mean standard_name: sea_water_x_velocity cell_measures: area: UAREA
- time: 24000
- z_t: 60
- nlat: 384
- nlon: 320
- [cm/s] dask.array<concatenate, shape=(24000, 60, 384, 320), dtype=f...
Magnitude Array Chunk Bytes 707.79 GB 240.00 MB Shape (24000, 60, 384, 320) (1000, 60, 100, 10) Count 10260 Tasks 5120 Chunks Type float32 numpy.ndarray Units centimeter/second - z_t(z_t)float32500.0 1.5e+03 ... 5.375e+05
- long_name :
- depth from surface to midpoint of layer
- positive :
- down
- valid_min :
- 500.0
- valid_max :
- 537500.0
- units :
- centimeter
array([5.000000e+02, 1.500000e+03, 2.500000e+03, 3.500000e+03, 4.500000e+03, 5.500000e+03, 6.500000e+03, 7.500000e+03, 8.500000e+03, 9.500000e+03, 1.050000e+04, 1.150000e+04, 1.250000e+04, 1.350000e+04, 1.450000e+04, 1.550000e+04, 1.650984e+04, 1.754790e+04, 1.862913e+04, 1.976603e+04, 2.097114e+04, 2.225783e+04, 2.364088e+04, 2.513702e+04, 2.676542e+04, 2.854837e+04, 3.051192e+04, 3.268680e+04, 3.510935e+04, 3.782276e+04, 4.087846e+04, 4.433777e+04, 4.827367e+04, 5.277280e+04, 5.793729e+04, 6.388626e+04, 7.075633e+04, 7.870025e+04, 8.788252e+04, 9.847059e+04, 1.106204e+05, 1.244567e+05, 1.400497e+05, 1.573946e+05, 1.764003e+05, 1.968944e+05, 2.186457e+05, 2.413972e+05, 2.649001e+05, 2.889385e+05, 3.133405e+05, 3.379793e+05, 3.627670e+05, 3.876452e+05, 4.125768e+05, 4.375392e+05, 4.625190e+05, 4.875083e+05, 5.125028e+05, 5.375000e+05], dtype=float32)
- time(time)object0001-02-01 00:00:00 ... 2001-01-...
- long_name :
- time
- bounds :
- time_bound
array([cftime.DatetimeNoLeap(1, 2, 1, 0, 0, 0, 0), cftime.DatetimeNoLeap(1, 3, 1, 0, 0, 0, 0), cftime.DatetimeNoLeap(1, 4, 1, 0, 0, 0, 0), ..., cftime.DatetimeNoLeap(2000, 11, 1, 0, 0, 0, 0), cftime.DatetimeNoLeap(2000, 12, 1, 0, 0, 0, 0), cftime.DatetimeNoLeap(2001, 1, 1, 0, 0, 0, 0)], dtype=object)
- nlat(nlat)int640 1 2 3 4 5 ... 379 380 381 382 383
- axis :
- Y
array([ 0, 1, 2, ..., 381, 382, 383])
- nlon(nlon)int640 1 2 3 4 5 ... 315 316 317 318 319
- axis :
- X
array([ 0, 1, 2, ..., 317, 318, 319])
- UAREA(nlat, nlon)float64[cm²] dask.array<open_dataset-b2...
- long_name :
- area of U cells
Magnitude Array Chunk Bytes 983.04 kB 8.00 kB Shape (384, 320) (100, 10) Count 129 Tasks 128 Chunks Type float64 numpy.ndarray Units centimeter2 - ULONG(nlat, nlon)float64[degrees_E] dask.array<open_data...
- long_name :
- array of u-grid longitudes
Magnitude Array Chunk Bytes 983.04 kB 8.00 kB Shape (384, 320) (100, 10) Count 129 Tasks 128 Chunks Type float64 numpy.ndarray Units degrees_east - ULAT(nlat, nlon)float64[degrees_N] dask.array<open_data...
- long_name :
- array of u-grid latitudes
Magnitude Array Chunk Bytes 983.04 kB 8.00 kB Shape (384, 320) (100, 10) Count 129 Tasks 128 Chunks Type float64 numpy.ndarray Units degrees_north
- long_name :
- Velocity in grid-x direction
- grid_loc :
- 3221
- cell_methods :
- time: mean
- standard_name :
- sea_water_x_velocity
- cell_measures :
- area: UAREA
mom6zs.cf["sea_water_x_velocity"]
<xarray.DataArray 'uo' (time: 696, zl: 75, yh: 458, xq: 540)> <Quantity(dask.array<concatenate, shape=(696, 75, 458, 540), dtype=float32, chunksize=(1, 75, 458, 540), chunktype=numpy.ndarray>, 'meter / second')> Coordinates: * xq (xq) float64 -286.3 -285.7 -285.0 -284.3 ... 71.0 71.67 72.33 73.0 * yh (yh) float64 -79.2 -79.08 -78.95 -78.82 ... 87.55 87.64 87.71 87.74 * zl (zl) float64 1.25 3.75 6.251 ... 5.366e+03 5.619e+03 5.873e+03 * time (time) object 0001-01-16 12:00:00 ... 0058-12-16 12:00:00 Attributes: long_name: Sea Water X Velocity cell_methods: zl:mean yh:mean xq:point time: mean time_avg_info: average_T1,average_T2,average_DT standard_name: sea_water_x_velocity interp_method: none
- time: 696
- zl: 75
- yh: 458
- xq: 540
- [m/s] dask.array<concatenate, shape=(696, 75, 458, 540), dtype=floa...
Magnitude Array Chunk Bytes 51.64 GB 74.20 MB Shape (696, 75, 458, 540) (1, 75, 458, 540) Count 2088 Tasks 696 Chunks Type float32 numpy.ndarray Units meter/second - xq(xq)float64-286.3 -285.7 -285.0 ... 72.33 73.0
- long_name :
- q point nominal longitude
- cartesian_axis :
- X
- units :
- degrees_east
array([-286.333333, -285.666667, -285. , ..., 71.666667, 72.333333, 73. ])
- yh(yh)float64-79.2 -79.08 -78.95 ... 87.71 87.74
- long_name :
- h point nominal latitude
- cartesian_axis :
- Y
- units :
- degrees_north
array([-79.202602, -79.076995, -78.949944, ..., 87.641507, 87.706191, 87.738663])
- zl(zl)float641.25 3.75 ... 5.619e+03 5.873e+03
- long_name :
- Layer pseudo-depth, -z*
- cartesian_axis :
- Z
- positive :
- down
- units :
- meter
array([1.250000e+00, 3.750110e+00, 6.250513e+00, 8.751399e+00, 1.125308e+01, 1.375607e+01, 1.626123e+01, 1.876995e+01, 2.128458e+01, 2.380895e+01, 2.634948e+01, 2.891684e+01, 3.152900e+01, 3.421656e+01, 3.703255e+01, 4.007146e+01, 4.350694e+01, 4.766315e+01, 5.309426e+01, 6.037432e+01, 6.933990e+01, 7.911551e+01, 8.908133e+01, 9.907633e+01, 1.090754e+02, 1.190749e+02, 1.290746e+02, 1.390742e+02, 1.490739e+02, 1.590997e+02, 1.692943e+02, 1.798470e+02, 1.908943e+02, 2.025637e+02, 2.149872e+02, 2.283087e+02, 2.426894e+02, 2.583132e+02, 2.753934e+02, 2.941791e+02, 3.149636e+02, 3.380943e+02, 3.639847e+02, 3.931282e+02, 4.261145e+02, 4.636487e+02, 5.065716e+02, 5.558810e+02, 6.127502e+02, 6.785392e+02, 7.547892e+02, 8.431905e+02, 9.455058e+02, 1.063437e+03, 1.198429e+03, 1.351425e+03, 1.522623e+03, 1.711320e+03, 1.915909e+03, 2.134079e+03, 2.363155e+03, 2.600479e+03, 2.843700e+03, 3.090928e+03, 3.340761e+03, 3.592224e+03, 3.844672e+03, 4.097698e+03, 4.351054e+03, 4.604594e+03, 4.858234e+03, 5.111928e+03, 5.365649e+03, 5.619385e+03, 5.873128e+03])
- time(time)object0001-01-16 12:00:00 ... 0058-12-...
- long_name :
- time
- cartesian_axis :
- T
- calendar_type :
- NOLEAP
- bounds :
- time_bnds
array([cftime.DatetimeNoLeap(1, 1, 16, 12, 0, 0, 0), cftime.DatetimeNoLeap(1, 2, 15, 0, 0, 0, 0), cftime.DatetimeNoLeap(1, 3, 16, 12, 0, 0, 0), ..., cftime.DatetimeNoLeap(58, 10, 16, 12, 0, 0, 0), cftime.DatetimeNoLeap(58, 11, 16, 0, 0, 0, 0), cftime.DatetimeNoLeap(58, 12, 16, 12, 0, 0, 0)], dtype=object)
- long_name :
- Sea Water X Velocity
- cell_methods :
- zl:mean yh:mean xq:point time: mean
- time_avg_info :
- average_T1,average_T2,average_DT
- standard_name :
- sea_water_x_velocity
- interp_method :
- none
Compare x velocity across three simulations#
We will now make a simple plot. There are UnitStrippedWarnings
because xarray is pulling out numpy arrays from the pint arrays. This will get fixed.
def plot_euc(ds, **plot_kwargs):
if "nlat" in ds.dims and "nlat" not in ds.coords:
ds = set_coords(ds)
# gets UVEL in CESM-POP, "uo" in CESM-MOM6, "uo" in CMOR
u = ds.cf["sea_water_x_velocity"]
# find the z-coordinate name: "z_t" in CESM-POP, "lev" in CMOR, "zl" in CESM-MOM6
Zname = u.cf.coordinates["vertical"][0]
# Make sure we are using SI units
# convert velocity to m/s
# convert the Z-coordinate to m
u = u.pint.to("m/s").pint.to({Zname: "m"})
# --- find (0, -140)
lat = u.cf["latitude"] # gets possibly 2D latitude variable
lon = u.cf["longitude"]
# TODO: Xarray will provide a better solution here in ≈ 6 months
# right now, we need to know
# Unfortunately 220*units.degress_east == -140*degrees_east is False
# If not, we could avoid this if condition
if bool(np.all(lon.data > 0)):
lon_target = 220 * units.degrees_east
else:
lon_target = -140 * units.degrees_east
lat_target = 0 * units.degrees_north
if lon.ndim == 2:
# find index corresponding to (0, -140)
# TODO: we need to extract magnitudes (pure numpy arrays, no units)
ilat, ilon = np.unravel_index(
np.argmin(
(lat - lat_target).data.magnitude ** 2 + (lon - lon_target).data.magnitude ** 2
),
lon.shape,
)
# TODO: .isel(X=ilon, Y=ilat) does not work
# because for the CMOR dataset, "lon" and "nlon" both have axis="X"
u_sub = u.cf.isel({"X": ilon, "Y": ilat})
else:
u_sub = u.cf.sel({"X": lon_target, "Y": lat_target}, method="nearest")
# now plot the last year for demonstration
# All datasets here use "time" for the time axis,
# so using .cf.mean("time") is really just for demo purposes
(
u_sub.cf.sel(vertical=slice(500)) # top 500m
.cf.isel(time=slice(-12, None))
.cf.mean("time")
.cf.plot(**plot_kwargs) # puts 'Z' on the y-axis automatically and
# makes sure values increase downward (since attrs["positive"] == "down")
)
plot_euc(cmor, label="CMOR-POP")
plot_euc(cesm, label="CESM-POP")
plot_euc(mom6zs, label="CESM-MOM6-z*")
plt.legend()
/glade/u/home/dcherian/miniconda3/envs/dcpy/lib/python3.8/site-packages/numpy/core/_asarray.py:83: UnitStrippedWarning: The unit of the quantity is stripped when downcasting to ndarray.
return array(a, dtype, copy=False, order=order)
/glade/u/home/dcherian/miniconda3/envs/dcpy/lib/python3.8/site-packages/numpy/core/_asarray.py:83: UnitStrippedWarning: The unit of the quantity is stripped when downcasting to ndarray.
return array(a, dtype, copy=False, order=order)
/glade/u/home/dcherian/miniconda3/envs/dcpy/lib/python3.8/site-packages/numpy/core/_asarray.py:83: UnitStrippedWarning: The unit of the quantity is stripped when downcasting to ndarray.
return array(a, dtype, copy=False, order=order)
/glade/u/home/dcherian/miniconda3/envs/dcpy/lib/python3.8/site-packages/numpy/core/_asarray.py:83: UnitStrippedWarning: The unit of the quantity is stripped when downcasting to ndarray.
return array(a, dtype, copy=False, order=order)
/glade/u/home/dcherian/miniconda3/envs/dcpy/lib/python3.8/site-packages/numpy/core/_asarray.py:83: UnitStrippedWarning: The unit of the quantity is stripped when downcasting to ndarray.
return array(a, dtype, copy=False, order=order)
<matplotlib.legend.Legend at 0x2b41b55aeee0>

Automatic guessing of coordinates and axes variables.#
cf_xarray
copies over some heuristics from metpy to enable automatically detecting axes and coordinate variables. Calling this function will return a new Dataset or DataArray with new attributes set. You will want to save the return value.
cesm.cf.guess_coord_axis(verbose=True)
I think 'z_t' is of type 'Z'. It matched re.compile('(z|nav_lev|gdep|lv_|[o]*lev|bottom_top|sigma|h(ei)?ght|altitude|depth|isobaric|pres|isotherm)[a-z_]*[0-9]*')
I think 'z_t_150m' is of type 'Z'. It matched re.compile('(z|nav_lev|gdep|lv_|[o]*lev|bottom_top|sigma|h(ei)?ght|altitude|depth|isobaric|pres|isotherm)[a-z_]*[0-9]*')
I think 'z_w' is of type 'Z'. It matched re.compile('(z|nav_lev|gdep|lv_|[o]*lev|bottom_top|sigma|h(ei)?ght|altitude|depth|isobaric|pres|isotherm)[a-z_]*[0-9]*')
I think 'z_w_top' is of type 'Z'. It matched re.compile('(z|nav_lev|gdep|lv_|[o]*lev|bottom_top|sigma|h(ei)?ght|altitude|depth|isobaric|pres|isotherm)[a-z_]*[0-9]*')
I think 'z_w_bot' is of type 'Z'. It matched re.compile('(z|nav_lev|gdep|lv_|[o]*lev|bottom_top|sigma|h(ei)?ght|altitude|depth|isobaric|pres|isotherm)[a-z_]*[0-9]*')
I think 'lat_aux_grid' is of type 'latitude'. It matched re.compile('y?(nav_lat|lat|gphi)[a-z0-9]*')
I think 'time' is of type 'time'. It has a datetime-like type.
I think 'nlat' is of type 'Y'. It matched re.compile('y|j|nlat|nj')
I think 'nlon' is of type 'X'. It matched re.compile('x|i|nlon|ni')
<xarray.Dataset> Dimensions: (moc_comp: 3, transport_comp: 5, transport_reg: 2, z_t: 60, z_w: 60, nlat: 384, nlon: 320, time: 24000, d2: 2, z_t_150m: 15, z_w_top: 60, z_w_bot: 60, lat_aux_grid: 395, moc_z: 61) Coordinates: (12/14) * z_t (z_t) float32 500.0 1.5e+03 ... 5.125e+05 5.375e+05 * z_t_150m (z_t_150m) float32 500.0 1.5e+03 ... 1.45e+04 * z_w (z_w) float32 0.0 1e+03 2e+03 ... 5e+05 5.25e+05 * z_w_top (z_w_top) float32 0.0 1e+03 2e+03 ... 5e+05 5.25e+05 * z_w_bot (z_w_bot) float32 1e+03 2e+03 ... 5.25e+05 5.5e+05 * lat_aux_grid (lat_aux_grid) float32 -79.49 -78.95 ... 89.47 90.0 ... ... ULAT (nlat, nlon) float64 [degrees_N] dask.array<open_... TLONG (nlat, nlon) float64 [degrees_E] dask.array<open_... TLAT (nlat, nlon) float64 [degrees_N] dask.array<open_... * time (time) object 0001-02-01 00:00:00 ... 2001-01-01 ... * nlat (nlat) int64 0 1 2 3 4 5 ... 378 379 380 381 382 383 * nlon (nlon) int64 0 1 2 3 4 5 ... 314 315 316 317 318 319 Dimensions without coordinates: moc_comp, transport_comp, transport_reg, d2 Data variables: (12/55) moc_components (moc_comp) |S384 [] dask.array<copy, shape=(3,), ... transport_components (transport_comp) |S384 [] dask.array<copy, shape=... transport_regions (transport_reg) |S384 [] dask.array<copy, shape=(... dz (z_t) float32 [cm] dask.array<copy, shape=(60,), ... dzw (z_w) float32 [cm] dask.array<copy, shape=(60,), ... KMT (nlat, nlon) float64 dask.array<chunksize=(100, 10), meta=np.ndarray> ... ... salinity_factor float64 -0.00347 sflux_factor float64 0.1 nsurface_t float64 8.61e+04 nsurface_u float64 8.297e+04 time_bound (time, d2) object dask.array<chunksize=(1000, 2), meta=np.ndarray> UVEL (time, z_t, nlat, nlon) float32 [cm/s] dask.array... Attributes: title: b.e21.B1850.f09_g17.CMIP6-piControl.001 history: none Conventions: CF-1.0; http://www.cgd.ucar.edu/cms/eaton/netcdf/CF-cu... time_period_freq: month_1 model_doi_url: https://doi.org/10.5065/D67H1H0V contents: Diagnostic and Prognostic Variables source: CCSM POP2, the CCSM Ocean Component revision: $Id: tavg.F90 89644 2018-08-04 14:26:01Z klindsay $ calendar: All years have exactly 365 days. start_time: This dataset was created on 2018-08-09 at 18:18:26.3 cell_methods: cell_methods = time: mean ==> the variable values are ...
- moc_comp: 3
- transport_comp: 5
- transport_reg: 2
- z_t: 60
- z_w: 60
- nlat: 384
- nlon: 320
- time: 24000
- d2: 2
- z_t_150m: 15
- z_w_top: 60
- z_w_bot: 60
- lat_aux_grid: 395
- moc_z: 61
- z_t(z_t)float32500.0 1.5e+03 ... 5.375e+05
- axis :
- Z
- long_name :
- depth from surface to midpoint of layer
- positive :
- down
- valid_min :
- 500.0
- valid_max :
- 537500.0
- units :
- centimeter
array([5.000000e+02, 1.500000e+03, 2.500000e+03, 3.500000e+03, 4.500000e+03, 5.500000e+03, 6.500000e+03, 7.500000e+03, 8.500000e+03, 9.500000e+03, 1.050000e+04, 1.150000e+04, 1.250000e+04, 1.350000e+04, 1.450000e+04, 1.550000e+04, 1.650984e+04, 1.754790e+04, 1.862913e+04, 1.976603e+04, 2.097114e+04, 2.225783e+04, 2.364088e+04, 2.513702e+04, 2.676542e+04, 2.854837e+04, 3.051192e+04, 3.268680e+04, 3.510935e+04, 3.782276e+04, 4.087846e+04, 4.433777e+04, 4.827367e+04, 5.277280e+04, 5.793729e+04, 6.388626e+04, 7.075633e+04, 7.870025e+04, 8.788252e+04, 9.847059e+04, 1.106204e+05, 1.244567e+05, 1.400497e+05, 1.573946e+05, 1.764003e+05, 1.968944e+05, 2.186457e+05, 2.413972e+05, 2.649001e+05, 2.889385e+05, 3.133405e+05, 3.379793e+05, 3.627670e+05, 3.876452e+05, 4.125768e+05, 4.375392e+05, 4.625190e+05, 4.875083e+05, 5.125028e+05, 5.375000e+05], dtype=float32)
- z_t_150m(z_t_150m)float32500.0 1.5e+03 ... 1.35e+04 1.45e+04
- axis :
- Z
- long_name :
- depth from surface to midpoint of layer
- positive :
- down
- valid_min :
- 500.0
- valid_max :
- 14500.0
- units :
- centimeter
array([ 500., 1500., 2500., 3500., 4500., 5500., 6500., 7500., 8500., 9500., 10500., 11500., 12500., 13500., 14500.], dtype=float32)
- z_w(z_w)float320.0 1e+03 2e+03 ... 5e+05 5.25e+05
- axis :
- Z
- long_name :
- depth from surface to top of layer
- positive :
- down
- valid_min :
- 0.0
- valid_max :
- 525000.94
- units :
- centimeter
array([ 0. , 1000. , 2000. , 3000. , 4000. , 5000. , 6000. , 7000. , 8000. , 9000. , 10000. , 11000. , 12000. , 13000. , 14000. , 15000. , 16000. , 17019.682, 18076.129, 19182.125, 20349.932, 21592.344, 22923.312, 24358.453, 25915.58 , 27615.26 , 29481.47 , 31542.373, 33831.227, 36387.473, 39258.047, 42498.887, 46176.656, 50370.688, 55174.91 , 60699.668, 67072.86 , 74439.805, 82960.695, 92804.35 , 104136.82 , 117104.016, 131809.36 , 148290.08 , 166499.2 , 186301.44 , 207487.39 , 229803.9 , 252990.4 , 276809.84 , 301067.06 , 325613.84 , 350344.88 , 375189.2 , 400101.16 , 425052.47 , 450026.06 , 475012. , 500004.7 , 525000.94 ], dtype=float32)
- z_w_top(z_w_top)float320.0 1e+03 2e+03 ... 5e+05 5.25e+05
- axis :
- Z
- long_name :
- depth from surface to top of layer
- positive :
- down
- valid_min :
- 0.0
- valid_max :
- 525000.94
- units :
- centimeter
array([ 0. , 1000. , 2000. , 3000. , 4000. , 5000. , 6000. , 7000. , 8000. , 9000. , 10000. , 11000. , 12000. , 13000. , 14000. , 15000. , 16000. , 17019.682, 18076.129, 19182.125, 20349.932, 21592.344, 22923.312, 24358.453, 25915.58 , 27615.26 , 29481.47 , 31542.373, 33831.227, 36387.473, 39258.047, 42498.887, 46176.656, 50370.688, 55174.91 , 60699.668, 67072.86 , 74439.805, 82960.695, 92804.35 , 104136.82 , 117104.016, 131809.36 , 148290.08 , 166499.2 , 186301.44 , 207487.39 , 229803.9 , 252990.4 , 276809.84 , 301067.06 , 325613.84 , 350344.88 , 375189.2 , 400101.16 , 425052.47 , 450026.06 , 475012. , 500004.7 , 525000.94 ], dtype=float32)
- z_w_bot(z_w_bot)float321e+03 2e+03 ... 5.25e+05 5.5e+05
- axis :
- Z
- long_name :
- depth from surface to bottom of layer
- positive :
- down
- valid_min :
- 1000.0
- valid_max :
- 549999.06
- units :
- centimeter
array([ 1000. , 2000. , 3000. , 4000. , 5000. , 6000. , 7000. , 8000. , 9000. , 10000. , 11000. , 12000. , 13000. , 14000. , 15000. , 16000. , 17019.682, 18076.129, 19182.125, 20349.932, 21592.344, 22923.312, 24358.453, 25915.58 , 27615.26 , 29481.47 , 31542.373, 33831.227, 36387.473, 39258.047, 42498.887, 46176.656, 50370.688, 55174.91 , 60699.668, 67072.86 , 74439.805, 82960.695, 92804.35 , 104136.82 , 117104.016, 131809.36 , 148290.08 , 166499.2 , 186301.44 , 207487.39 , 229803.9 , 252990.4 , 276809.84 , 301067.06 , 325613.84 , 350344.88 , 375189.2 , 400101.16 , 425052.47 , 450026.06 , 475012. , 500004.7 , 525000.94 , 549999.06 ], dtype=float32)
- lat_aux_grid(lat_aux_grid)float32-79.49 -78.95 -78.42 ... 89.47 90.0
- units :
- degrees_north
- standard_name :
- latitude
- long_name :
- latitude grid for transport diagnostics
- valid_min :
- -79.48815
- valid_max :
- 90.0
array([-79.48815 , -78.952896, -78.418655, ..., 88.948814, 89.47441 , 90. ], dtype=float32)
- moc_z(moc_z)float320.0 1e+03 ... 5.25e+05 5.5e+05
- long_name :
- depth from surface to top of layer
- positive :
- down
- valid_min :
- 0.0
- valid_max :
- 549999.06
- units :
- centimeter
array([ 0. , 1000. , 2000. , 3000. , 4000. , 5000. , 6000. , 7000. , 8000. , 9000. , 10000. , 11000. , 12000. , 13000. , 14000. , 15000. , 16000. , 17019.682, 18076.129, 19182.125, 20349.932, 21592.344, 22923.312, 24358.453, 25915.58 , 27615.26 , 29481.47 , 31542.373, 33831.227, 36387.473, 39258.047, 42498.887, 46176.656, 50370.688, 55174.91 , 60699.668, 67072.86 , 74439.805, 82960.695, 92804.35 , 104136.82 , 117104.016, 131809.36 , 148290.08 , 166499.2 , 186301.44 , 207487.39 , 229803.9 , 252990.4 , 276809.84 , 301067.06 , 325613.84 , 350344.88 , 375189.2 , 400101.16 , 425052.47 , 450026.06 , 475012. , 500004.7 , 525000.94 , 549999.06 ], dtype=float32)
- ULONG(nlat, nlon)float64[degrees_E] dask.array<open_data...
- long_name :
- array of u-grid longitudes
Magnitude Array Chunk Bytes 983.04 kB 8.00 kB Shape (384, 320) (100, 10) Count 129 Tasks 128 Chunks Type float64 numpy.ndarray Units degrees_east - ULAT(nlat, nlon)float64[degrees_N] dask.array<open_data...
- long_name :
- array of u-grid latitudes
Magnitude Array Chunk Bytes 983.04 kB 8.00 kB Shape (384, 320) (100, 10) Count 129 Tasks 128 Chunks Type float64 numpy.ndarray Units degrees_north - TLONG(nlat, nlon)float64[degrees_E] dask.array<open_data...
- long_name :
- array of t-grid longitudes
Magnitude Array Chunk Bytes 983.04 kB 8.00 kB Shape (384, 320) (100, 10) Count 129 Tasks 128 Chunks Type float64 numpy.ndarray Units degrees_east - TLAT(nlat, nlon)float64[degrees_N] dask.array<open_data...
- long_name :
- array of t-grid latitudes
Magnitude Array Chunk Bytes 983.04 kB 8.00 kB Shape (384, 320) (100, 10) Count 129 Tasks 128 Chunks Type float64 numpy.ndarray Units degrees_north - time(time)object0001-02-01 00:00:00 ... 2001-01-...
- axis :
- T
- standard_name :
- time
- long_name :
- time
- bounds :
- time_bound
array([cftime.DatetimeNoLeap(1, 2, 1, 0, 0, 0, 0), cftime.DatetimeNoLeap(1, 3, 1, 0, 0, 0, 0), cftime.DatetimeNoLeap(1, 4, 1, 0, 0, 0, 0), ..., cftime.DatetimeNoLeap(2000, 11, 1, 0, 0, 0, 0), cftime.DatetimeNoLeap(2000, 12, 1, 0, 0, 0, 0), cftime.DatetimeNoLeap(2001, 1, 1, 0, 0, 0, 0)], dtype=object)
- nlat(nlat)int640 1 2 3 4 5 ... 379 380 381 382 383
- axis :
- Y
array([ 0, 1, 2, ..., 381, 382, 383])
- nlon(nlon)int640 1 2 3 4 5 ... 315 316 317 318 319
- axis :
- X
array([ 0, 1, 2, ..., 317, 318, 319])
- moc_components(moc_comp)|S384[] dask.array<copy, shape=(3,), ...
- long_name :
- MOC component names
Magnitude Array Chunk Bytes 1.15 kB 1.15 kB Shape (3,) (3,) Count 3 Tasks 1 Chunks Type |S384 numpy.ndarray Units dimensionless - transport_components(transport_comp)|S384[] dask.array<copy, shape=(5,), ...
- long_name :
- T,S transport components
Magnitude Array Chunk Bytes 1.92 kB 1.92 kB Shape (5,) (5,) Count 3 Tasks 1 Chunks Type |S384 numpy.ndarray Units dimensionless - transport_regions(transport_reg)|S384[] dask.array<copy, shape=(2,), ...
- long_name :
- regions for all transport diagnostics
Magnitude Array Chunk Bytes 768 B 768 B Shape (2,) (2,) Count 3 Tasks 1 Chunks Type |S384 numpy.ndarray Units dimensionless - dz(z_t)float32[cm] dask.array<copy, shape=(60,...
- long_name :
- thickness of layer k
Magnitude Array Chunk Bytes 240 B 240 B Shape (60,) (60,) Count 3 Tasks 1 Chunks Type float32 numpy.ndarray Units centimeter - dzw(z_w)float32[cm] dask.array<copy, shape=(60,...
- long_name :
- midpoint of k to midpoint of k+1
Magnitude Array Chunk Bytes 240 B 240 B Shape (60,) (60,) Count 3 Tasks 1 Chunks Type float32 numpy.ndarray Units centimeter - KMT(nlat, nlon)float64dask.array<chunksize=(100, 10), meta=np.ndarray>
- long_name :
- k Index of Deepest Grid Cell on T Grid
Array Chunk Bytes 983.04 kB 8.00 kB Shape (384, 320) (100, 10) Count 129 Tasks 128 Chunks Type float64 numpy.ndarray - KMU(nlat, nlon)float64dask.array<chunksize=(100, 10), meta=np.ndarray>
- long_name :
- k Index of Deepest Grid Cell on U Grid
Array Chunk Bytes 983.04 kB 8.00 kB Shape (384, 320) (100, 10) Count 129 Tasks 128 Chunks Type float64 numpy.ndarray - REGION_MASK(nlat, nlon)float64dask.array<chunksize=(100, 10), meta=np.ndarray>
- long_name :
- basin index number (signed integers)
Array Chunk Bytes 983.04 kB 8.00 kB Shape (384, 320) (100, 10) Count 129 Tasks 128 Chunks Type float64 numpy.ndarray - UAREA(nlat, nlon)float64[cm²] dask.array<open_dataset-b2...
- long_name :
- area of U cells
Magnitude Array Chunk Bytes 983.04 kB 8.00 kB Shape (384, 320) (100, 10) Count 129 Tasks 128 Chunks Type float64 numpy.ndarray Units centimeter2 - TAREA(nlat, nlon)float64[cm²] dask.array<open_dataset-b2...
- long_name :
- area of T cells
Magnitude Array Chunk Bytes 983.04 kB 8.00 kB Shape (384, 320) (100, 10) Count 129 Tasks 128 Chunks Type float64 numpy.ndarray Units centimeter2 - HU(nlat, nlon)float64[cm] dask.array<open_dataset-b25...
- long_name :
- ocean depth at U points
Magnitude Array Chunk Bytes 983.04 kB 8.00 kB Shape (384, 320) (100, 10) Count 129 Tasks 128 Chunks Type float64 numpy.ndarray Units centimeter - HT(nlat, nlon)float64[cm] dask.array<open_dataset-b25...
- long_name :
- ocean depth at T points
Magnitude Array Chunk Bytes 983.04 kB 8.00 kB Shape (384, 320) (100, 10) Count 129 Tasks 128 Chunks Type float64 numpy.ndarray Units centimeter - DXU(nlat, nlon)float64[cm] dask.array<open_dataset-b25...
- long_name :
- x-spacing centered at U points
Magnitude Array Chunk Bytes 983.04 kB 8.00 kB Shape (384, 320) (100, 10) Count 129 Tasks 128 Chunks Type float64 numpy.ndarray Units centimeter - DYU(nlat, nlon)float64[cm] dask.array<open_dataset-b25...
- long_name :
- y-spacing centered at U points
Magnitude Array Chunk Bytes 983.04 kB 8.00 kB Shape (384, 320) (100, 10) Count 129 Tasks 128 Chunks Type float64 numpy.ndarray Units centimeter - DXT(nlat, nlon)float64[cm] dask.array<open_dataset-b25...
- long_name :
- x-spacing centered at T points
Magnitude Array Chunk Bytes 983.04 kB 8.00 kB Shape (384, 320) (100, 10) Count 129 Tasks 128 Chunks Type float64 numpy.ndarray Units centimeter - DYT(nlat, nlon)float64[cm] dask.array<open_dataset-b25...
- long_name :
- y-spacing centered at T points
Magnitude Array Chunk Bytes 983.04 kB 8.00 kB Shape (384, 320) (100, 10) Count 129 Tasks 128 Chunks Type float64 numpy.ndarray Units centimeter - HTN(nlat, nlon)float64[cm] dask.array<open_dataset-b25...
- long_name :
- cell widths on North sides of T cell
Magnitude Array Chunk Bytes 983.04 kB 8.00 kB Shape (384, 320) (100, 10) Count 129 Tasks 128 Chunks Type float64 numpy.ndarray Units centimeter - HTE(nlat, nlon)float64[cm] dask.array<open_dataset-b25...
- long_name :
- cell widths on East sides of T cell
Magnitude Array Chunk Bytes 983.04 kB 8.00 kB Shape (384, 320) (100, 10) Count 129 Tasks 128 Chunks Type float64 numpy.ndarray Units centimeter - HUS(nlat, nlon)float64[cm] dask.array<open_dataset-b25...
- long_name :
- cell widths on South sides of U cell
Magnitude Array Chunk Bytes 983.04 kB 8.00 kB Shape (384, 320) (100, 10) Count 129 Tasks 128 Chunks Type float64 numpy.ndarray Units centimeter - HUW(nlat, nlon)float64[cm] dask.array<open_dataset-b25...
- long_name :
- cell widths on West sides of U cell
Magnitude Array Chunk Bytes 983.04 kB 8.00 kB Shape (384, 320) (100, 10) Count 129 Tasks 128 Chunks Type float64 numpy.ndarray Units centimeter - ANGLE(nlat, nlon)float64[rad] dask.array<open_dataset-b2...
- long_name :
- angle grid makes with latitude line
Magnitude Array Chunk Bytes 983.04 kB 8.00 kB Shape (384, 320) (100, 10) Count 129 Tasks 128 Chunks Type float64 numpy.ndarray Units radian - ANGLET(nlat, nlon)float64[rad] dask.array<open_dataset-b2...
- long_name :
- angle grid makes with latitude line on T grid
Magnitude Array Chunk Bytes 983.04 kB 8.00 kB Shape (384, 320) (100, 10) Count 129 Tasks 128 Chunks Type float64 numpy.ndarray Units radian - days_in_norm_year()timedelta64[ns]365 days
- long_name :
- Calendar Length
array(31536000000000000, dtype='timedelta64[ns]')
- grav()float64[cm/s²] 980.6
- long_name :
- Acceleration Due to Gravity
980.616
centimeter/second2 - omega()float64[1/s] 7.292e-05
- long_name :
- Earths Angular Velocity
7.292123516990375e-05
1/second - radius()float64[cm] 6.371e+08
- long_name :
- Earths Radius
637122000.0
centimeter - cp_sw()float64[erg/K/g] 3.996e+07
- long_name :
- Specific Heat of Sea Water
39960000.0
erg/(gram kelvin) - sound()float64[cm/s] 1.5e+05
- long_name :
- Speed of Sound
150000.0
centimeter/second - vonkar()float640.4
- long_name :
- von Karman Constant
array(0.4)
- cp_air()float64[J/K/kg] 1.005e+03
- long_name :
- Heat Capacity of Air
1004.64
joule/(kelvin kilogram) - rho_air()float64[kg/m³] 1.292
- long_name :
- Ambient Air Density
1.2923182846924677
kilogram/meter3 - rho_sw()float64[g/cm³] 1.026
- long_name :
- Density of Sea Water
1.026
gram/centimeter3 - rho_fw()float64[g/cm³] 1.0
- long_name :
- Density of Fresh Water
1.0
gram/centimeter3 - stefan_boltzmann()float64[W/K⁴/m²] 5.67e-08
- long_name :
- Stefan-Boltzmann Constant
5.67e-08
watt/(kelvin4 meter2) - latent_heat_vapor()float64[J/kg] 2.501e+06
- long_name :
- Latent Heat of Vaporization
2501000.0
joule/kilogram - latent_heat_fusion()float64[erg/g] 3.337e+09
- long_name :
- Latent Heat of Fusion
3337000000.0
erg/gram - latent_heat_fusion_mks()float64[J/kg] 3.337e+05
- long_name :
- Latent Heat of Fusion
333700.0
joule/kilogram - ocn_ref_salinity()float64[g/kg] 34.7
- long_name :
- Ocean Reference Salinity
34.7
gram/kilogram - sea_ice_salinity()float64[g/kg] 4.0
- long_name :
- Salinity of Sea Ice
4.0
gram/kilogram - T0_Kelvin()float64[K] 273.1
- long_name :
- Zero Point for Celsius
273.15
kelvin - salt_to_ppt()float641e+03
- long_name :
- Convert Salt in gram/gram to g/kg
array(1000.)
- ppt_to_salt()float640.001
- long_name :
- Convert Salt in g/kg to gram/gram
array(0.001)
- mass_to_Sv()float641e-12
- long_name :
- Convert Mass Flux to Sverdrups
array(1.e-12)
- heat_to_PW()float644.186e-15
- long_name :
- Convert Heat Flux to Petawatts
array(4.186e-15)
- salt_to_Svppt()float641e-09
- long_name :
- Convert Salt Flux to Sverdrups*g/kg
array(1.e-09)
- salt_to_mmday()float643.154e+05
- long_name :
- Convert Salt to Water (millimeters/day)
array(315360.)
- momentum_factor()float6410.0
- long_name :
- Convert Windstress to Velocity Flux
array(10.)
- hflux_factor()float642.439e-05
- long_name :
- Convert Heat and Solar Flux to Temperature Flux
array(2.43908626e-05)
- fwflux_factor()float640.0001
- long_name :
- Convert Net Fresh Water Flux to Salt Flux (in model units)
array(0.0001)
- salinity_factor()float64-0.00347
array(-0.00347)
- sflux_factor()float640.1
- long_name :
- Convert Salt Flux to Salt Flux (in model units)
array(0.1)
- nsurface_t()float648.61e+04
- long_name :
- Number of Ocean T Points at Surface
array(86096.)
- nsurface_u()float648.297e+04
- long_name :
- Number of Ocean U Points at Surface
array(82966.)
- time_bound(time, d2)objectdask.array<chunksize=(1000, 2), meta=np.ndarray>
- long_name :
- boundaries for time-averaging interval
Array Chunk Bytes 384.00 kB 16.00 kB Shape (24000, 2) (1000, 2) Count 100 Tasks 40 Chunks Type object numpy.ndarray