import xarray as xr
import xroms
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import cartopy
How to select data¶
The input/output notebook demonstrates how to load in data, but now how to select and slice it apart? Much of this is accomplished with the sel and isel methods in xarray, which are demonstrated in detail in this notebook.
Use sel to select/slice a Dataset or DataArray by dimension values; the best example of this for ROMS output is selecting certain time using a string representation of a datetime.
ds.salt.sel(ocean_time='2010-1-1 12:00')
ds.salt.sel(ocean_time=slice('2010-1-1', '2010-2-1'))
Use isel to subdivide a Dataset or DataArray by dimension indices:
ds.salt.isel(eta_rho=20, xi_rho=100)
ds.salt.isel(eta_rho=slice(20,100,10), xi_rho=slice(None,None,5))
cf-xarray¶
xroms includes the cf-xarray accessor, which allows you to use xarray sel and isel commands for a DataArray without needing to input the exact grid – just the axes.
With xarray alone:
ds.salt.isel(xi_rho=20, eta_rho=10, s_rho=20, ocean_time=10)
With cf-xarray accessor:
ds.salt.cf.isel(X=20, Y=10, Z=20, T=10)
and get the same thing back. Same for sel. The T, Z, Y, X names can be mixed and matched with the actual dimension names. Some of the attribute wrangling in xroms is dedicated to making sure that cf-xarray can always identify dimensions and coordinates for DataArrays.
You can always check what cf-xarray understands about a Dataset or DataArray with
ds.salt.cf.describe()
Load in data¶
More information at in input/output page
ds = xroms.datasets.fetch_ROMS_example_full_grid()
ds, xgrid = xroms.roms_dataset(ds, include_cell_volume=True)
ds.xroms.set_grid(xgrid)
ds
<xarray.Dataset> Size: 734MB
Dimensions: (eta_rho: 191, xi_rho: 300, s_rho: 30, ocean_time: 2, s_w: 31,
xi_u: 299, eta_v: 190)
Coordinates: (12/21)
lon_rho (eta_rho, xi_rho) float64 458kB dask.array<chunksize=(191, 300), meta=np.ndarray>
lat_rho (eta_rho, xi_rho) float64 458kB dask.array<chunksize=(191, 300), meta=np.ndarray>
* s_rho (s_rho) float64 240B -0.9833 -0.95 -0.9167 ... -0.05 -0.01667
* s_w (s_w) float64 248B -1.0 -0.9667 -0.9333 ... -0.03333 0.0
* ocean_time (ocean_time) datetime64[ns] 16B 2009-11-19T12:00:00 2009-11-1...
lon_u (eta_rho, xi_u) float64 457kB dask.array<chunksize=(191, 299), meta=np.ndarray>
... ...
z_w_v (ocean_time, s_w, eta_v, xi_rho) float64 28MB dask.array<chunksize=(2, 31, 190, 300), meta=np.ndarray>
z_w_psi (ocean_time, s_w, eta_v, xi_u) float64 28MB dask.array<chunksize=(2, 31, 190, 299), meta=np.ndarray>
z_rho (ocean_time, s_rho, eta_rho, xi_rho) float64 28MB dask.array<chunksize=(2, 30, 191, 300), meta=np.ndarray>
z_rho_u (ocean_time, s_rho, eta_rho, xi_u) float64 27MB dask.array<chunksize=(2, 30, 191, 299), meta=np.ndarray>
z_rho_v (ocean_time, s_rho, eta_v, xi_rho) float64 27MB dask.array<chunksize=(2, 30, 190, 300), meta=np.ndarray>
z_rho_psi (ocean_time, s_rho, eta_v, xi_u) float64 27MB dask.array<chunksize=(2, 30, 190, 299), meta=np.ndarray>
Data variables: (12/45)
angle (eta_rho, xi_rho) float64 458kB dask.array<chunksize=(191, 300), meta=np.ndarray>
hc float64 8B ...
Cs_r (s_rho) float64 240B dask.array<chunksize=(30,), meta=np.ndarray>
zeta (ocean_time, eta_rho, xi_rho) float32 458kB dask.array<chunksize=(2, 191, 300), meta=np.ndarray>
h (eta_rho, xi_rho) float64 458kB dask.array<chunksize=(191, 300), meta=np.ndarray>
Cs_w (s_w) float64 248B dask.array<chunksize=(31,), meta=np.ndarray>
... ...
dV_w_u (ocean_time, s_w, eta_rho, xi_u) float64 28MB dask.array<chunksize=(2, 31, 191, 299), meta=np.ndarray>
dV_v (ocean_time, s_rho, eta_v, xi_rho) float64 27MB dask.array<chunksize=(2, 30, 190, 300), meta=np.ndarray>
dV_w_v (ocean_time, s_w, eta_v, xi_rho) float64 28MB dask.array<chunksize=(2, 31, 190, 300), meta=np.ndarray>
dV_psi (ocean_time, s_rho, eta_v, xi_u) float64 27MB dask.array<chunksize=(2, 30, 190, 299), meta=np.ndarray>
dV_w_psi (ocean_time, s_w, eta_v, xi_u) float64 28MB dask.array<chunksize=(2, 31, 190, 299), meta=np.ndarray>
rho0 int64 8B 1025
Attributes: (12/29)
file: ocean_his_0150.nc
format: netCDF-3 classic file
Conventions: CF-1.4
type: ROMS/TOMS history file
title: Texas and Louisiana Shelf case (Nesting)
rst_file: ocean_rst.nc
... ...
compiler_command: /g/software/openmpi/1.4.3/intel/bin/mpif90
compiler_flags: -heap-arrays -fp-model precise -assume 2underscores -c...
tiling: 016x032
history: ROMS/TOMS, Version 3.4, Sunday - December 4, 2011 - 7...
ana_file: /scratch/zhangxq/projects/txla_nesting6/Functionals/an...
CPP_options: TXLA, ANA_BSFLUX, ANA_BTFLUX, ASSUMED_SHAPE, BULK_FLUX...- eta_rho: 191
- xi_rho: 300
- s_rho: 30
- ocean_time: 2
- s_w: 31
- xi_u: 299
- eta_v: 190
- lon_rho(eta_rho, xi_rho)float64dask.array<chunksize=(191, 300), meta=np.ndarray>
- units :
- meters
- standard_name :
- longitude
Array Chunk Bytes 447.66 kiB 447.66 kiB Shape (191, 300) (191, 300) Dask graph 1 chunks in 2 graph layers Data type float64 numpy.ndarray 300 191 - lat_rho(eta_rho, xi_rho)float64dask.array<chunksize=(191, 300), meta=np.ndarray>
- units :
- meters
- standard_name :
- latitude
Array Chunk Bytes 447.66 kiB 447.66 kiB Shape (191, 300) (191, 300) Dask graph 1 chunks in 2 graph layers Data type float64 numpy.ndarray 300 191 - s_rho(s_rho)float64-0.9833 -0.95 ... -0.05 -0.01667
- long_name :
- S-coordinate at RHO-points
- valid_min :
- -1.0
- valid_max :
- 0.0
- standard_name :
- ocean_s_coordinate_g1
- formula_terms :
- s: s_rho C: Cs_r eta: zeta depth: h depth_c: hc
- field :
- s_rho, scalar
- axis :
- Z
array([-0.983333, -0.95 , -0.916667, -0.883333, -0.85 , -0.816667, -0.783333, -0.75 , -0.716667, -0.683333, -0.65 , -0.616667, -0.583333, -0.55 , -0.516667, -0.483333, -0.45 , -0.416667, -0.383333, -0.35 , -0.316667, -0.283333, -0.25 , -0.216667, -0.183333, -0.15 , -0.116667, -0.083333, -0.05 , -0.016667]) - s_w(s_w)float64-1.0 -0.9667 ... -0.03333 0.0
- long_name :
- S-coordinate at W-points
- valid_min :
- -1.0
- valid_max :
- 0.0
- standard_name :
- ocean_s_coordinate_g1
- formula_terms :
- s: s_w C: Cs_w eta: zeta depth: h depth_c: hc
- field :
- s_w, scalar
- axis :
- Z
array([-1. , -0.966667, -0.933333, -0.9 , -0.866667, -0.833333, -0.8 , -0.766667, -0.733333, -0.7 , -0.666667, -0.633333, -0.6 , -0.566667, -0.533333, -0.5 , -0.466667, -0.433333, -0.4 , -0.366667, -0.333333, -0.3 , -0.266667, -0.233333, -0.2 , -0.166667, -0.133333, -0.1 , -0.066667, -0.033333, 0. ]) - ocean_time(ocean_time)datetime64[ns]2009-11-19T12:00:00 2009-11-19T1...
- long_name :
- time since initialization
- field :
- time, scalar, series
- axis :
- T
- standard_name :
- time
array(['2009-11-19T12:00:00.000000000', '2009-11-19T16:00:00.000000000'], dtype='datetime64[ns]') - lon_u(eta_rho, xi_u)float64dask.array<chunksize=(191, 299), meta=np.ndarray>
- units :
- meters
- standard_name :
- longitude
Array Chunk Bytes 446.16 kiB 446.16 kiB Shape (191, 299) (191, 299) Dask graph 1 chunks in 2 graph layers Data type float64 numpy.ndarray 299 191 - lat_u(eta_rho, xi_u)float64dask.array<chunksize=(191, 299), meta=np.ndarray>
- units :
- meters
- standard_name :
- latitude
Array Chunk Bytes 446.16 kiB 446.16 kiB Shape (191, 299) (191, 299) Dask graph 1 chunks in 2 graph layers Data type float64 numpy.ndarray 299 191 - lon_v(eta_v, xi_rho)float64dask.array<chunksize=(190, 300), meta=np.ndarray>
- units :
- meters
- standard_name :
- longitude
Array Chunk Bytes 445.31 kiB 445.31 kiB Shape (190, 300) (190, 300) Dask graph 1 chunks in 2 graph layers Data type float64 numpy.ndarray 300 190 - lat_v(eta_v, xi_rho)float64dask.array<chunksize=(190, 300), meta=np.ndarray>
- units :
- meters
- standard_name :
- latitude
Array Chunk Bytes 445.31 kiB 445.31 kiB Shape (190, 300) (190, 300) Dask graph 1 chunks in 2 graph layers Data type float64 numpy.ndarray 300 190 - xi_rho(xi_rho)int640 1 2 3 4 5 ... 295 296 297 298 299
- axis :
- X
array([ 0, 1, 2, ..., 297, 298, 299], shape=(300,))
- xi_u(xi_u)int640 1 2 3 4 5 ... 294 295 296 297 298
- axis :
- X
array([ 0, 1, 2, ..., 296, 297, 298], shape=(299,))
- eta_rho(eta_rho)int640 1 2 3 4 5 ... 186 187 188 189 190
- axis :
- Y
array([ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190]) - eta_v(eta_v)int640 1 2 3 4 5 ... 185 186 187 188 189
- axis :
- Y
array([ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189]) - z_w(ocean_time, s_w, eta_rho, xi_rho)float64dask.array<chunksize=(2, 31, 191, 300), meta=np.ndarray>
- long_name :
- depth of W-points
- time :
- ocean_time
- field :
- z_w, scalar, series
- units :
- m
- positive :
- up
- standard_name :
- depth
Array Chunk Bytes 27.10 MiB 27.10 MiB Shape (2, 31, 191, 300) (2, 31, 191, 300) Dask graph 1 chunks in 29 graph layers Data type float64 numpy.ndarray 2 1 300 191 31 - z_w_u(ocean_time, s_w, eta_rho, xi_u)float64dask.array<chunksize=(2, 31, 191, 299), meta=np.ndarray>
- long_name :
- depth of U-points on vertical W grid
- time :
- ocean_time
- field :
- z_w_u, scalar, series
- units :
- m
- positive :
- up
- standard_name :
- depth
Array Chunk Bytes 27.01 MiB 27.01 MiB Shape (2, 31, 191, 299) (2, 31, 191, 299) Dask graph 1 chunks in 32 graph layers Data type float64 numpy.ndarray 2 1 299 191 31 - z_w_v(ocean_time, s_w, eta_v, xi_rho)float64dask.array<chunksize=(2, 31, 190, 300), meta=np.ndarray>
- long_name :
- depth of V-points on vertical W grid
- time :
- ocean_time
- field :
- z_w_v, scalar, series
- units :
- m
- positive :
- up
- standard_name :
- depth
Array Chunk Bytes 26.96 MiB 26.96 MiB Shape (2, 31, 190, 300) (2, 31, 190, 300) Dask graph 1 chunks in 34 graph layers Data type float64 numpy.ndarray 2 1 300 190 31 - z_w_psi(ocean_time, s_w, eta_v, xi_u)float64dask.array<chunksize=(2, 31, 190, 299), meta=np.ndarray>
- long_name :
- depth of PSI-points on vertical W grid
- time :
- ocean_time
- field :
- z_w_psi, scalar, series
- units :
- m
- positive :
- up
- standard_name :
- depth
Array Chunk Bytes 26.87 MiB 26.87 MiB Shape (2, 31, 190, 299) (2, 31, 190, 299) Dask graph 1 chunks in 37 graph layers Data type float64 numpy.ndarray 2 1 299 190 31 - z_rho(ocean_time, s_rho, eta_rho, xi_rho)float64dask.array<chunksize=(2, 30, 191, 300), meta=np.ndarray>
- long_name :
- depth of RHO-points
- time :
- ocean_time
- field :
- z_rho, scalar, series
- units :
- m
- positive :
- up
- standard_name :
- depth
Array Chunk Bytes 26.23 MiB 26.23 MiB Shape (2, 30, 191, 300) (2, 30, 191, 300) Dask graph 1 chunks in 29 graph layers Data type float64 numpy.ndarray 2 1 300 191 30 - z_rho_u(ocean_time, s_rho, eta_rho, xi_u)float64dask.array<chunksize=(2, 30, 191, 299), meta=np.ndarray>
- long_name :
- depth of U-points on vertical RHO grid
- time :
- ocean_time
- field :
- z_rho_u, scalar, series
- units :
- m
- positive :
- up
- standard_name :
- depth
Array Chunk Bytes 26.14 MiB 26.14 MiB Shape (2, 30, 191, 299) (2, 30, 191, 299) Dask graph 1 chunks in 32 graph layers Data type float64 numpy.ndarray 2 1 299 191 30 - z_rho_v(ocean_time, s_rho, eta_v, xi_rho)float64dask.array<chunksize=(2, 30, 190, 300), meta=np.ndarray>
- long_name :
- depth of V-points on vertical RHO grid
- time :
- ocean_time
- field :
- z_rho_v, scalar, series
- units :
- m
- positive :
- up
- standard_name :
- depth
Array Chunk Bytes 26.09 MiB 26.09 MiB Shape (2, 30, 190, 300) (2, 30, 190, 300) Dask graph 1 chunks in 34 graph layers Data type float64 numpy.ndarray 2 1 300 190 30 - z_rho_psi(ocean_time, s_rho, eta_v, xi_u)float64dask.array<chunksize=(2, 30, 190, 299), meta=np.ndarray>
- long_name :
- depth of PSI-points on vertical RHO grid
- time :
- ocean_time
- field :
- z_rho_psi, scalar, series
- units :
- m
- positive :
- up
- standard_name :
- depth
Array Chunk Bytes 26.01 MiB 26.01 MiB Shape (2, 30, 190, 299) (2, 30, 190, 299) Dask graph 1 chunks in 37 graph layers Data type float64 numpy.ndarray 2 1 299 190 30
- angle(eta_rho, xi_rho)float64dask.array<chunksize=(191, 300), meta=np.ndarray>
- long_name :
- angle between XI-axis and EAST
- units :
- radians
- field :
- angle, scalar
Array Chunk Bytes 447.66 kiB 447.66 kiB Shape (191, 300) (191, 300) Dask graph 1 chunks in 2 graph layers Data type float64 numpy.ndarray 300 191 - hc()float64...
- long_name :
- S-coordinate parameter, critical depth
- units :
- meter
[1 values with dtype=float64]
- Cs_r(s_rho)float64dask.array<chunksize=(30,), meta=np.ndarray>
- long_name :
- S-coordinate stretching curves at RHO-points
- valid_min :
- -1.0
- valid_max :
- 0.0
- field :
- Cs_r, scalar
Array Chunk Bytes 240 B 240 B Shape (30,) (30,) Dask graph 1 chunks in 2 graph layers Data type float64 numpy.ndarray 30 1 - zeta(ocean_time, eta_rho, xi_rho)float32dask.array<chunksize=(2, 191, 300), meta=np.ndarray>
- long_name :
- free-surface
- units :
- meter
- time :
- ocean_time
- field :
- free-surface, scalar, series
Array Chunk Bytes 447.66 kiB 447.66 kiB Shape (2, 191, 300) (2, 191, 300) Dask graph 1 chunks in 2 graph layers Data type float32 numpy.ndarray 300 191 2 - h(eta_rho, xi_rho)float64dask.array<chunksize=(191, 300), meta=np.ndarray>
- long_name :
- bathymetry at RHO-points
- units :
- meter
- field :
- bath, scalar
Array Chunk Bytes 447.66 kiB 447.66 kiB Shape (191, 300) (191, 300) Dask graph 1 chunks in 2 graph layers Data type float64 numpy.ndarray 300 191 - Cs_w(s_w)float64dask.array<chunksize=(31,), meta=np.ndarray>
- long_name :
- S-coordinate stretching curves at W-points
- valid_min :
- -1.0
- valid_max :
- 0.0
- field :
- Cs_w, scalar
Array Chunk Bytes 248 B 248 B Shape (31,) (31,) Dask graph 1 chunks in 2 graph layers Data type float64 numpy.ndarray 31 1 - mask_rho(eta_rho, xi_rho)float64dask.array<chunksize=(191, 300), meta=np.ndarray>
- long_name :
- mask on RHO-points
- flag_values :
- [0. 1.]
- flag_meanings :
- land water
Array Chunk Bytes 447.66 kiB 447.66 kiB Shape (191, 300) (191, 300) Dask graph 1 chunks in 2 graph layers Data type float64 numpy.ndarray 300 191 - mask_u(eta_rho, xi_u)float64dask.array<chunksize=(191, 299), meta=np.ndarray>
- long_name :
- mask on U-points
- flag_values :
- [0. 1.]
- flag_meanings :
- land water
Array Chunk Bytes 446.16 kiB 446.16 kiB Shape (191, 299) (191, 299) Dask graph 1 chunks in 2 graph layers Data type float64 numpy.ndarray 299 191 - mask_v(eta_v, xi_rho)float64dask.array<chunksize=(190, 300), meta=np.ndarray>
- long_name :
- mask on V-points
- flag_values :
- [0. 1.]
- flag_meanings :
- land water
Array Chunk Bytes 445.31 kiB 445.31 kiB Shape (190, 300) (190, 300) Dask graph 1 chunks in 2 graph layers Data type float64 numpy.ndarray 300 190 - u(ocean_time, s_rho, eta_rho, xi_u)float32dask.array<chunksize=(2, 30, 191, 299), meta=np.ndarray>
- long_name :
- u-momentum component
- units :
- meter second-1
- time :
- ocean_time
- field :
- u-velocity, scalar, series
Array Chunk Bytes 13.07 MiB 13.07 MiB Shape (2, 30, 191, 299) (2, 30, 191, 299) Dask graph 1 chunks in 2 graph layers Data type float32 numpy.ndarray 2 1 299 191 30 - v(ocean_time, s_rho, eta_v, xi_rho)float32dask.array<chunksize=(2, 30, 190, 300), meta=np.ndarray>
- long_name :
- v-momentum component
- units :
- meter second-1
- time :
- ocean_time
- field :
- v-velocity, scalar, series
Array Chunk Bytes 13.05 MiB 13.05 MiB Shape (2, 30, 190, 300) (2, 30, 190, 300) Dask graph 1 chunks in 2 graph layers Data type float32 numpy.ndarray 2 1 300 190 30 - temp(ocean_time, s_rho, eta_rho, xi_rho)float32dask.array<chunksize=(2, 30, 191, 300), meta=np.ndarray>
- long_name :
- potential temperature
- units :
- Celsius
- time :
- ocean_time
- field :
- temperature, scalar, series
Array Chunk Bytes 13.11 MiB 13.11 MiB Shape (2, 30, 191, 300) (2, 30, 191, 300) Dask graph 1 chunks in 2 graph layers Data type float32 numpy.ndarray 2 1 300 191 30 - salt(ocean_time, s_rho, eta_rho, xi_rho)float32dask.array<chunksize=(2, 30, 191, 300), meta=np.ndarray>
- long_name :
- salinity
- time :
- ocean_time
- field :
- salinity, scalar, series
Array Chunk Bytes 13.11 MiB 13.11 MiB Shape (2, 30, 191, 300) (2, 30, 191, 300) Dask graph 1 chunks in 2 graph layers Data type float32 numpy.ndarray 2 1 300 191 30 - Vtransform()int32...
- long_name :
- vertical terrain-following transformation equation
[1 values with dtype=int32]
- pm(eta_rho, xi_rho)float64dask.array<chunksize=(191, 300), meta=np.ndarray>
- long_name :
- curvilinear coordinate metric in XI
- units :
- meter-1
- field :
- pm, scalar
Array Chunk Bytes 447.66 kiB 447.66 kiB Shape (191, 300) (191, 300) Dask graph 1 chunks in 2 graph layers Data type float64 numpy.ndarray 300 191 - pn(eta_rho, xi_rho)float64dask.array<chunksize=(191, 300), meta=np.ndarray>
- long_name :
- curvilinear coordinate metric in ETA
- units :
- meter-1
- field :
- pn, scalar
Array Chunk Bytes 447.66 kiB 447.66 kiB Shape (191, 300) (191, 300) Dask graph 1 chunks in 2 graph layers Data type float64 numpy.ndarray 300 191 - f(eta_rho, xi_rho)float64dask.array<chunksize=(191, 300), meta=np.ndarray>
- long_name :
- Coriolis parameter at RHO-points
- units :
- second-1
- field :
- coriolis, scalar
Array Chunk Bytes 447.66 kiB 447.66 kiB Shape (191, 300) (191, 300) Dask graph 1 chunks in 2 graph layers Data type float64 numpy.ndarray 300 191 - spherical()int641
array(1)
- 3d()boolTrue
array(True)
- dx(eta_rho, xi_rho)float64dask.array<chunksize=(191, 300), meta=np.ndarray>
- long_name :
- inverse curvilinear coordinate metric in XI
- units :
- meter
- field :
- dx, scalar
Array Chunk Bytes 447.66 kiB 447.66 kiB Shape (191, 300) (191, 300) Dask graph 1 chunks in 3 graph layers Data type float64 numpy.ndarray 300 191 - dx_u(eta_rho, xi_u)float64dask.array<chunksize=(191, 299), meta=np.ndarray>
- long_name :
- inverse curvilinear coordinate metric in XI on U grid
- units :
- meter
- field :
- dx_u, scalar
Array Chunk Bytes 446.16 kiB 446.16 kiB Shape (191, 299) (191, 299) Dask graph 1 chunks in 6 graph layers Data type float64 numpy.ndarray 299 191 - dx_v(eta_v, xi_rho)float64dask.array<chunksize=(190, 300), meta=np.ndarray>
- long_name :
- inverse curvilinear coordinate metric in XI on V grid
- units :
- meter
- field :
- dx_v, scalar
Array Chunk Bytes 445.31 kiB 445.31 kiB Shape (190, 300) (190, 300) Dask graph 1 chunks in 8 graph layers Data type float64 numpy.ndarray 300 190 - dx_psi(eta_v, xi_u)float64dask.array<chunksize=(190, 299), meta=np.ndarray>
- long_name :
- inverse curvilinear coordinate metric in XI on PSI grid
- units :
- meter
- field :
- dx_psi, scalar
Array Chunk Bytes 443.83 kiB 443.83 kiB Shape (190, 299) (190, 299) Dask graph 1 chunks in 11 graph layers Data type float64 numpy.ndarray 299 190 - dy(eta_rho, xi_rho)float64dask.array<chunksize=(191, 300), meta=np.ndarray>
- long_name :
- inverse curvilinear coordinate metric in ETA
- units :
- meter
- field :
- dy, scalar
Array Chunk Bytes 447.66 kiB 447.66 kiB Shape (191, 300) (191, 300) Dask graph 1 chunks in 3 graph layers Data type float64 numpy.ndarray 300 191 - dy_u(eta_rho, xi_u)float64dask.array<chunksize=(191, 299), meta=np.ndarray>
- long_name :
- inverse curvilinear coordinate metric in ETA on U grid
- units :
- meter
- field :
- dy_u, scalar
Array Chunk Bytes 446.16 kiB 446.16 kiB Shape (191, 299) (191, 299) Dask graph 1 chunks in 6 graph layers Data type float64 numpy.ndarray 299 191 - dy_v(eta_v, xi_rho)float64dask.array<chunksize=(190, 300), meta=np.ndarray>
- long_name :
- inverse curvilinear coordinate metric in ETA on V grid
- units :
- meter
- field :
- dy_v, scalar
Array Chunk Bytes 445.31 kiB 445.31 kiB Shape (190, 300) (190, 300) Dask graph 1 chunks in 8 graph layers Data type float64 numpy.ndarray 300 190 - dy_psi(eta_v, xi_u)float64dask.array<chunksize=(190, 299), meta=np.ndarray>
- long_name :
- inverse curvilinear coordinate metric in ETA on PSI grid
- units :
- meter
- field :
- dy_psi, scalar
Array Chunk Bytes 443.83 kiB 443.83 kiB Shape (190, 299) (190, 299) Dask graph 1 chunks in 11 graph layers Data type float64 numpy.ndarray 299 190 - dz(ocean_time, s_rho, eta_rho, xi_rho)float64dask.array<chunksize=(2, 30, 191, 300), meta=np.ndarray>
- long_name :
- vertical layer thickness on vertical RHO grid
- time :
- ocean_time
- field :
- dz, scalar, series
- units :
- m
Array Chunk Bytes 26.23 MiB 26.23 MiB Shape (2, 30, 191, 300) (2, 30, 191, 300) Dask graph 1 chunks in 34 graph layers Data type float64 numpy.ndarray 2 1 300 191 30 - dz_w(ocean_time, s_w, eta_rho, xi_rho)float64dask.array<chunksize=(2, 31, 191, 300), meta=np.ndarray>
- long_name :
- vertical layer thickness on vertical W grid
- time :
- ocean_time
- field :
- dz_w, scalar, series
- units :
- m
Array Chunk Bytes 27.10 MiB 27.10 MiB Shape (2, 31, 191, 300) (2, 31, 191, 300) Dask graph 1 chunks in 38 graph layers Data type float64 numpy.ndarray 2 1 300 191 31 - dz_u(ocean_time, s_rho, eta_rho, xi_u)float64dask.array<chunksize=(2, 30, 191, 299), meta=np.ndarray>
- long_name :
- vertical layer thickness on vertical RHO grid on U grid
- time :
- ocean_time
- field :
- dz_u, scalar, series
- units :
- m
Array Chunk Bytes 26.14 MiB 26.14 MiB Shape (2, 30, 191, 299) (2, 30, 191, 299) Dask graph 1 chunks in 37 graph layers Data type float64 numpy.ndarray 2 1 299 191 30 - dz_w_u(ocean_time, s_w, eta_rho, xi_u)float64dask.array<chunksize=(2, 31, 191, 299), meta=np.ndarray>
- long_name :
- vertical layer thickness on vertical W grid on U grid
- time :
- ocean_time
- field :
- dz_w_u, scalar, series
- units :
- m
Array Chunk Bytes 27.01 MiB 27.01 MiB Shape (2, 31, 191, 299) (2, 31, 191, 299) Dask graph 1 chunks in 41 graph layers Data type float64 numpy.ndarray 2 1 299 191 31 - dz_v(ocean_time, s_rho, eta_v, xi_rho)float64dask.array<chunksize=(2, 30, 190, 300), meta=np.ndarray>
- long_name :
- vertical layer thickness on vertical RHO grid on V grid
- time :
- ocean_time
- field :
- dz_v, scalar, series
- units :
- m
Array Chunk Bytes 26.09 MiB 26.09 MiB Shape (2, 30, 190, 300) (2, 30, 190, 300) Dask graph 1 chunks in 39 graph layers Data type float64 numpy.ndarray 2 1 300 190 30 - dz_w_v(ocean_time, s_w, eta_v, xi_rho)float64dask.array<chunksize=(2, 31, 190, 300), meta=np.ndarray>
- long_name :
- vertical layer thickness on vertical W grid on V grid
- time :
- ocean_time
- field :
- dz_w_v, scalar, series
- units :
- m
Array Chunk Bytes 26.96 MiB 26.96 MiB Shape (2, 31, 190, 300) (2, 31, 190, 300) Dask graph 1 chunks in 43 graph layers Data type float64 numpy.ndarray 2 1 300 190 31 - dz_psi(ocean_time, s_rho, eta_v, xi_u)float64dask.array<chunksize=(2, 30, 190, 299), meta=np.ndarray>
- long_name :
- vertical layer thickness on vertical RHO grid on PSI grid
- time :
- ocean_time
- field :
- dz_psi, scalar, series
- units :
- m
Array Chunk Bytes 26.01 MiB 26.01 MiB Shape (2, 30, 190, 299) (2, 30, 190, 299) Dask graph 1 chunks in 42 graph layers Data type float64 numpy.ndarray 2 1 299 190 30 - dz_w_psi(ocean_time, s_w, eta_v, xi_u)float64dask.array<chunksize=(2, 31, 190, 299), meta=np.ndarray>
- long_name :
- vertical layer thickness on vertical W grid on PSI grid
- time :
- ocean_time
- field :
- dz_w_psi, scalar, series
- units :
- m
Array Chunk Bytes 26.87 MiB 26.87 MiB Shape (2, 31, 190, 299) (2, 31, 190, 299) Dask graph 1 chunks in 46 graph layers Data type float64 numpy.ndarray 2 1 299 190 31 - dA(eta_rho, xi_rho)float64dask.array<chunksize=(191, 300), meta=np.ndarray>
- long_name :
- area metric in XI and ETA on RHO grid
- units :
- meter2
- field :
- dA, scalar
Array Chunk Bytes 447.66 kiB 447.66 kiB Shape (191, 300) (191, 300) Dask graph 1 chunks in 7 graph layers Data type float64 numpy.ndarray 300 191 - dV(ocean_time, s_rho, eta_rho, xi_rho)float64dask.array<chunksize=(2, 30, 191, 300), meta=np.ndarray>
- long_name :
- volume metric in XI and ETA and S on RHO/RHO grids
- units :
- meter3
- field :
- dV, scalar
Array Chunk Bytes 26.23 MiB 26.23 MiB Shape (2, 30, 191, 300) (2, 30, 191, 300) Dask graph 1 chunks in 44 graph layers Data type float64 numpy.ndarray 2 1 300 191 30 - dV_w(ocean_time, s_w, eta_rho, xi_rho)float64dask.array<chunksize=(2, 31, 191, 300), meta=np.ndarray>
- long_name :
- volume metric in XI and ETA and S on RHO/W grids
- units :
- meter3
- field :
- dV_w, scalar
Array Chunk Bytes 27.10 MiB 27.10 MiB Shape (2, 31, 191, 300) (2, 31, 191, 300) Dask graph 1 chunks in 48 graph layers Data type float64 numpy.ndarray 2 1 300 191 31 - dV_u(ocean_time, s_rho, eta_rho, xi_u)float64dask.array<chunksize=(2, 30, 191, 299), meta=np.ndarray>
- long_name :
- volume metric in XI and ETA and S on U/RHO grids
- units :
- meter3
- field :
- dV_u, scalar
Array Chunk Bytes 26.14 MiB 26.14 MiB Shape (2, 30, 191, 299) (2, 30, 191, 299) Dask graph 1 chunks in 53 graph layers Data type float64 numpy.ndarray 2 1 299 191 30 - dV_w_u(ocean_time, s_w, eta_rho, xi_u)float64dask.array<chunksize=(2, 31, 191, 299), meta=np.ndarray>
- long_name :
- volume metric in XI and ETA and S on U/W grids
- units :
- meter3
- field :
- dV_w_u, scalar
Array Chunk Bytes 27.01 MiB 27.01 MiB Shape (2, 31, 191, 299) (2, 31, 191, 299) Dask graph 1 chunks in 57 graph layers Data type float64 numpy.ndarray 2 1 299 191 31 - dV_v(ocean_time, s_rho, eta_v, xi_rho)float64dask.array<chunksize=(2, 30, 190, 300), meta=np.ndarray>
- long_name :
- volume metric in XI and ETA and S on V/RHO grids
- units :
- meter3
- field :
- dV_v, scalar
Array Chunk Bytes 26.09 MiB 26.09 MiB Shape (2, 30, 190, 300) (2, 30, 190, 300) Dask graph 1 chunks in 59 graph layers Data type float64 numpy.ndarray 2 1 300 190 30 - dV_w_v(ocean_time, s_w, eta_v, xi_rho)float64dask.array<chunksize=(2, 31, 190, 300), meta=np.ndarray>
- long_name :
- volume metric in XI and ETA and S on V/W grids
- units :
- meter3
- field :
- dV_w_v, scalar
Array Chunk Bytes 26.96 MiB 26.96 MiB Shape (2, 31, 190, 300) (2, 31, 190, 300) Dask graph 1 chunks in 63 graph layers Data type float64 numpy.ndarray 2 1 300 190 31 - dV_psi(ocean_time, s_rho, eta_v, xi_u)float64dask.array<chunksize=(2, 30, 190, 299), meta=np.ndarray>
- long_name :
- volume metric in XI and ETA and S on PSI/RHO grids
- units :
- meter3
- field :
- dV_psi, scalar
Array Chunk Bytes 26.01 MiB 26.01 MiB Shape (2, 30, 190, 299) (2, 30, 190, 299) Dask graph 1 chunks in 68 graph layers Data type float64 numpy.ndarray 2 1 299 190 30 - dV_w_psi(ocean_time, s_w, eta_v, xi_u)float64dask.array<chunksize=(2, 31, 190, 299), meta=np.ndarray>
- long_name :
- volume metric in XI and ETA and S on PSI/W grids
- units :
- meter3
- field :
- dV_w_psi, scalar
Array Chunk Bytes 26.87 MiB 26.87 MiB Shape (2, 31, 190, 299) (2, 31, 190, 299) Dask graph 1 chunks in 72 graph layers Data type float64 numpy.ndarray 2 1 299 190 31 - rho0()int641025
array(1025)
- s_rhoPandasIndex
PandasIndex(Index([ -0.9833333333333333, -0.95, -0.9166666666666666, -0.8833333333333333, -0.85, -0.8166666666666667, -0.7833333333333333, -0.75, -0.7166666666666667, -0.6833333333333333, -0.65, -0.6166666666666667, -0.5833333333333334, -0.55, -0.5166666666666666, -0.48333333333333334, -0.45, -0.4166666666666667, -0.3833333333333333, -0.35, -0.31666666666666665, -0.2833333333333333, -0.25, -0.21666666666666667, -0.18333333333333332, -0.15, -0.11666666666666667, -0.08333333333333333, -0.05, -0.016666666666666666], dtype='float64', name='s_rho')) - s_wPandasIndex
PandasIndex(Index([ -1.0, -0.9666666666666667, -0.9333333333333333, -0.9, -0.8666666666666667, -0.8333333333333334, -0.8, -0.7666666666666666, -0.7333333333333333, -0.7, -0.6666666666666666, -0.6333333333333333, -0.6, -0.5666666666666667, -0.5333333333333333, -0.5, -0.4666666666666667, -0.43333333333333335, -0.4, -0.36666666666666664, -0.3333333333333333, -0.3, -0.26666666666666666, -0.23333333333333334, -0.2, -0.16666666666666666, -0.13333333333333333, -0.1, -0.06666666666666667, -0.03333333333333333, 0.0], dtype='float64', name='s_w')) - ocean_timePandasIndex
PandasIndex(DatetimeIndex(['2009-11-19 12:00:00', '2009-11-19 16:00:00'], dtype='datetime64[ns]', name='ocean_time', freq=None))
- xi_rhoPandasIndex
PandasIndex(Index([ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, ... 290, 291, 292, 293, 294, 295, 296, 297, 298, 299], dtype='int64', name='xi_rho', length=300)) - xi_uPandasIndex
PandasIndex(Index([ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, ... 289, 290, 291, 292, 293, 294, 295, 296, 297, 298], dtype='int64', name='xi_u', length=299)) - eta_rhoPandasIndex
PandasIndex(Index([ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, ... 181, 182, 183, 184, 185, 186, 187, 188, 189, 190], dtype='int64', name='eta_rho', length=191)) - eta_vPandasIndex
PandasIndex(Index([ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, ... 180, 181, 182, 183, 184, 185, 186, 187, 188, 189], dtype='int64', name='eta_v', length=190))
- file :
- ocean_his_0150.nc
- format :
- netCDF-3 classic file
- Conventions :
- CF-1.4
- type :
- ROMS/TOMS history file
- title :
- Texas and Louisiana Shelf case (Nesting)
- rst_file :
- ocean_rst.nc
- his_base :
- ocean_his
- grd_file :
- txla_grd_v4_new.nc
- ini_file :
- ocean_rst.nc
- frc_file_01 :
- txla_blk_narr_2009.nc
- frc_file_02 :
- TXLA_river_4dyes_2011.nc
- frc_file_03 :
- txla_flx_frc_9911.nc
- bry_file :
- txla_bry_2009_new.nc
- clm_file :
- txla_clm_2009_new.nc
- script_file :
- External/ocean_txla.in
- svn_url :
- https://www.myroms.org/svn/src/trunk
- svn_rev :
- exported
- code_dir :
- /scratch/zhangxq/ROMS
- header_dir :
- /scratch/zhangxq/projects/txla_nesting6
- header_file :
- txla.h
- os :
- Linux
- cpu :
- x86_64
- compiler_system :
- ifort
- compiler_command :
- /g/software/openmpi/1.4.3/intel/bin/mpif90
- compiler_flags :
- -heap-arrays -fp-model precise -assume 2underscores -convert big_endian -ip -O3 -free
- tiling :
- 016x032
- history :
- ROMS/TOMS, Version 3.4, Sunday - December 4, 2011 - 7:17:45 AM
- ana_file :
- /scratch/zhangxq/projects/txla_nesting6/Functionals/ana_btflux.h, /scratch/zhangxq/projects/txla_nesting6/Functionals/ana_hmixcoef.h, /scratch/zhangxq/projects/txla_nesting6/Functionals/ana_nudgcoef.h, /scratch/zhangxq/projects/txla_nesting6/Functionals/ana_stflux.h
- CPP_options :
- TXLA, ANA_BSFLUX, ANA_BTFLUX, ASSUMED_SHAPE, BULK_FLUXES, CURVGRID, DIFF_GRID, DJ_GRADPS, DOUBLE_PRECISION, EAST_FSCHAPMAN, EAST_M2FLATHER, EAST_M3NUDGING, EAST_M3RADIATION, EAST_TNUDGING, EAST_TRADIATION, EMINUSP, LONGWAVE, M3CLIMATOLOGY, M3CLM_NUDGING, MASKING, MIX_GEO_TS, MIX_S_UV, MPI, MY25_MIXING, NONLINEAR, NONLIN_EOS, NORTHERN_WALL, N2S2_HORAVG, POWER_LAW, PROFILE, QCORRECTION, K_GSCHEME, !RST_SINGLE, SALINITY, SOLAR_SOURCE, SOLVE3D, SOUTH_FSCHAPMAN, SOUTH_M2FLATHER, SOUTH_M3NUDGING, SOUTH_M3RADIATION, SOUTH_TNUDGING, SOUTH_TRADIATION, SPLINES, TCLIMATOLOGY, TCLM_NUDGING, THREE_GHOST, T_PASSIVE, TS_MPDATA, TS_DIF2, TS_PSOURCE, UV_ADV, UV_COR, UV_U3HADVECTION, UV_C4VADVECTION, UV_LOGDRAG, UV_PSOURCE, UV_VIS2, VAR_RHO_2D, VISC_GRID, WEST_FSCHAPMAN, WEST_M2FLATHER, WEST_M3NUDGING, WEST_M3RADIATION, WEST_TNUDGING, WEST_TRADIATION
ds.salt.cf.describe()
Coordinates:
CF Axes: * X: ['xi_rho']
* Y: ['eta_rho']
* Z: ['s_rho']
* T: ['ocean_time']
CF Coordinates: longitude: ['lon_rho']
latitude: ['lat_rho']
vertical: ['z_rho']
* time: ['ocean_time']
Cell Measures: area, volume: n/a
Standard Names: depth: ['z_rho']
latitude: ['lat_rho']
longitude: ['lon_rho']
* ocean_s_coordinate_g1: ['s_rho']
* time: ['ocean_time']
Bounds: n/a
Grid Mappings: n/a
/tmp/ipykernel_3073/990108105.py:1: DeprecationWarning: 'obj.cf.describe()' will be removed in a future version. Use instead 'repr(obj.cf)' or 'obj.cf' in a Jupyter environment.
ds.salt.cf.describe()
Select¶
Surface layer slice¶
The surface in ROMS is given by the last index in the vertical dimension. The easiest way to access this is by indexing into s_rho. While normally it is better to access coordinates through keywords to be human-readable, it’s not easy to tell what value of s_rho gives the surface. In this instance, it’s easier to just go by index.
ds.salt.isel(s_rho=-1)
ds.salt.cf.isel(Z=-1) # with cf-xarray
You can also grab the Z level that is “nearest” to 0, the surface, which will give the same vertical level as the other options:
ds.salt.cf.sel(Z=0, method="nearest")
ds.salt.cf.sel(Z=0, method="nearest")
<xarray.DataArray 'salt' (ocean_time: 2, eta_rho: 191, xi_rho: 300)> Size: 458kB
dask.array<getitem, shape=(2, 191, 300), dtype=float32, chunksize=(2, 191, 300), chunktype=numpy.ndarray>
Coordinates:
lon_rho (eta_rho, xi_rho) float64 458kB dask.array<chunksize=(191, 300), meta=np.ndarray>
lat_rho (eta_rho, xi_rho) float64 458kB dask.array<chunksize=(191, 300), meta=np.ndarray>
s_rho float64 8B -0.01667
* ocean_time (ocean_time) datetime64[ns] 16B 2009-11-19T12:00:00 2009-11-1...
* xi_rho (xi_rho) int64 2kB 0 1 2 3 4 5 6 ... 293 294 295 296 297 298 299
* eta_rho (eta_rho) int64 2kB 0 1 2 3 4 5 6 ... 185 186 187 188 189 190
z_rho (ocean_time, eta_rho, xi_rho) float64 917kB dask.array<chunksize=(2, 191, 300), meta=np.ndarray>
Attributes:
long_name: salinity
time: ocean_time
field: salinity, scalar, series- ocean_time: 2
- eta_rho: 191
- xi_rho: 300
- dask.array<chunksize=(2, 191, 300), meta=np.ndarray>
Array Chunk Bytes 447.66 kiB 447.66 kiB Shape (2, 191, 300) (2, 191, 300) Dask graph 1 chunks in 3 graph layers Data type float32 numpy.ndarray 300 191 2 - lon_rho(eta_rho, xi_rho)float64dask.array<chunksize=(191, 300), meta=np.ndarray>
- units :
- meters
- standard_name :
- longitude
Array Chunk Bytes 447.66 kiB 447.66 kiB Shape (191, 300) (191, 300) Dask graph 1 chunks in 2 graph layers Data type float64 numpy.ndarray 300 191 - lat_rho(eta_rho, xi_rho)float64dask.array<chunksize=(191, 300), meta=np.ndarray>
- units :
- meters
- standard_name :
- latitude
Array Chunk Bytes 447.66 kiB 447.66 kiB Shape (191, 300) (191, 300) Dask graph 1 chunks in 2 graph layers Data type float64 numpy.ndarray 300 191 - s_rho()float64-0.01667
- long_name :
- S-coordinate at RHO-points
- valid_min :
- -1.0
- valid_max :
- 0.0
- standard_name :
- ocean_s_coordinate_g1
- formula_terms :
- s: s_rho C: Cs_r eta: zeta depth: h depth_c: hc
- field :
- s_rho, scalar
- axis :
- Z
array(-0.01666667)
- ocean_time(ocean_time)datetime64[ns]2009-11-19T12:00:00 2009-11-19T1...
- long_name :
- time since initialization
- field :
- time, scalar, series
- axis :
- T
- standard_name :
- time
array(['2009-11-19T12:00:00.000000000', '2009-11-19T16:00:00.000000000'], dtype='datetime64[ns]') - xi_rho(xi_rho)int640 1 2 3 4 5 ... 295 296 297 298 299
- axis :
- X
array([ 0, 1, 2, ..., 297, 298, 299], shape=(300,))
- eta_rho(eta_rho)int640 1 2 3 4 5 ... 186 187 188 189 190
- axis :
- Y
array([ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190]) - z_rho(ocean_time, eta_rho, xi_rho)float64dask.array<chunksize=(2, 191, 300), meta=np.ndarray>
- long_name :
- depth of RHO-points
- time :
- ocean_time
- field :
- z_rho, scalar, series
- units :
- m
- positive :
- up
- standard_name :
- depth
Array Chunk Bytes 895.31 kiB 895.31 kiB Shape (2, 191, 300) (2, 191, 300) Dask graph 1 chunks in 30 graph layers Data type float64 numpy.ndarray 300 191 2
- ocean_timePandasIndex
PandasIndex(DatetimeIndex(['2009-11-19 12:00:00', '2009-11-19 16:00:00'], dtype='datetime64[ns]', name='ocean_time', freq=None))
- xi_rhoPandasIndex
PandasIndex(Index([ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, ... 290, 291, 292, 293, 294, 295, 296, 297, 298, 299], dtype='int64', name='xi_rho', length=300)) - eta_rhoPandasIndex
PandasIndex(Index([ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, ... 181, 182, 183, 184, 185, 186, 187, 188, 189, 190], dtype='int64', name='eta_rho', length=191))
- long_name :
- salinity
- time :
- ocean_time
- field :
- salinity, scalar, series
x/y index slice¶
For a curvilinear ROMS grid, selecting by the dimensions xi_rho or eta_rho (or for whichever is the relevant grid) is not very meaningful because they are given by index. Thus the following is possible to get a slice along the index, but it cannot be used to find a slice based on the lon/lat values. For the eta and xi grids, sel is equivalent to isel.
ds.temp.sel(xi_rho=20)
ds.temp.cf.sel(X=20); # same with cf-xarray accessor
ds.temp.cf.sel(X=20)
<xarray.DataArray 'temp' (ocean_time: 2, s_rho: 30, eta_rho: 191)> Size: 46kB
dask.array<getitem, shape=(2, 30, 191), dtype=float32, chunksize=(2, 30, 191), chunktype=numpy.ndarray>
Coordinates:
lon_rho (eta_rho) float64 2kB dask.array<chunksize=(191,), meta=np.ndarray>
lat_rho (eta_rho) float64 2kB dask.array<chunksize=(191,), meta=np.ndarray>
* s_rho (s_rho) float64 240B -0.9833 -0.95 -0.9167 ... -0.05 -0.01667
* ocean_time (ocean_time) datetime64[ns] 16B 2009-11-19T12:00:00 2009-11-1...
xi_rho int64 8B 20
* eta_rho (eta_rho) int64 2kB 0 1 2 3 4 5 6 ... 185 186 187 188 189 190
z_rho (ocean_time, s_rho, eta_rho) float64 92kB dask.array<chunksize=(2, 30, 191), meta=np.ndarray>
Attributes:
long_name: potential temperature
units: Celsius
time: ocean_time
field: temperature, scalar, series- ocean_time: 2
- s_rho: 30
- eta_rho: 191
- dask.array<chunksize=(2, 30, 191), meta=np.ndarray>
Array Chunk Bytes 44.77 kiB 44.77 kiB Shape (2, 30, 191) (2, 30, 191) Dask graph 1 chunks in 3 graph layers Data type float32 numpy.ndarray 191 30 2 - lon_rho(eta_rho)float64dask.array<chunksize=(191,), meta=np.ndarray>
- units :
- meters
- standard_name :
- longitude
Array Chunk Bytes 1.49 kiB 1.49 kiB Shape (191,) (191,) Dask graph 1 chunks in 3 graph layers Data type float64 numpy.ndarray 191 1 - lat_rho(eta_rho)float64dask.array<chunksize=(191,), meta=np.ndarray>
- units :
- meters
- standard_name :
- latitude
Array Chunk Bytes 1.49 kiB 1.49 kiB Shape (191,) (191,) Dask graph 1 chunks in 3 graph layers Data type float64 numpy.ndarray 191 1 - s_rho(s_rho)float64-0.9833 -0.95 ... -0.05 -0.01667
- long_name :
- S-coordinate at RHO-points
- valid_min :
- -1.0
- valid_max :
- 0.0
- standard_name :
- ocean_s_coordinate_g1
- formula_terms :
- s: s_rho C: Cs_r eta: zeta depth: h depth_c: hc
- field :
- s_rho, scalar
- axis :
- Z
array([-0.983333, -0.95 , -0.916667, -0.883333, -0.85 , -0.816667, -0.783333, -0.75 , -0.716667, -0.683333, -0.65 , -0.616667, -0.583333, -0.55 , -0.516667, -0.483333, -0.45 , -0.416667, -0.383333, -0.35 , -0.316667, -0.283333, -0.25 , -0.216667, -0.183333, -0.15 , -0.116667, -0.083333, -0.05 , -0.016667]) - ocean_time(ocean_time)datetime64[ns]2009-11-19T12:00:00 2009-11-19T1...
- long_name :
- time since initialization
- field :
- time, scalar, series
- axis :
- T
- standard_name :
- time
array(['2009-11-19T12:00:00.000000000', '2009-11-19T16:00:00.000000000'], dtype='datetime64[ns]') - xi_rho()int6420
- axis :
- X
array(20)
- eta_rho(eta_rho)int640 1 2 3 4 5 ... 186 187 188 189 190
- axis :
- Y
array([ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190]) - z_rho(ocean_time, s_rho, eta_rho)float64dask.array<chunksize=(2, 30, 191), meta=np.ndarray>
- long_name :
- depth of RHO-points
- time :
- ocean_time
- field :
- z_rho, scalar, series
- units :
- m
- positive :
- up
- standard_name :
- depth
Array Chunk Bytes 89.53 kiB 89.53 kiB Shape (2, 30, 191) (2, 30, 191) Dask graph 1 chunks in 30 graph layers Data type float64 numpy.ndarray 191 30 2
- s_rhoPandasIndex
PandasIndex(Index([ -0.9833333333333333, -0.95, -0.9166666666666666, -0.8833333333333333, -0.85, -0.8166666666666667, -0.7833333333333333, -0.75, -0.7166666666666667, -0.6833333333333333, -0.65, -0.6166666666666667, -0.5833333333333334, -0.55, -0.5166666666666666, -0.48333333333333334, -0.45, -0.4166666666666667, -0.3833333333333333, -0.35, -0.31666666666666665, -0.2833333333333333, -0.25, -0.21666666666666667, -0.18333333333333332, -0.15, -0.11666666666666667, -0.08333333333333333, -0.05, -0.016666666666666666], dtype='float64', name='s_rho')) - ocean_timePandasIndex
PandasIndex(DatetimeIndex(['2009-11-19 12:00:00', '2009-11-19 16:00:00'], dtype='datetime64[ns]', name='ocean_time', freq=None))
- eta_rhoPandasIndex
PandasIndex(Index([ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, ... 181, 182, 183, 184, 185, 186, 187, 188, 189, 190], dtype='int64', name='eta_rho', length=191))
- long_name :
- potential temperature
- units :
- Celsius
- time :
- ocean_time
- field :
- temperature, scalar, series
Single time¶
Find the forecast model output available that is closest to now. Note that the method keyword argument is not necessary if the desired date/time is exactly a model output time. You can daisy-chain together different sel and isel calls.
date = "2009-11-19T13:00"
ds.salt.isel(s_rho=-1).sel(ocean_time=date, method='nearest')
ds.salt.cf.isel(Z=-1).cf.sel(T=date, method='nearest') # with cf-xarray
date = "2009-11-19T13:00"
ds.salt.cf.sel(Z=0, T=date, method='nearest')
<xarray.DataArray 'salt' (eta_rho: 191, xi_rho: 300)> Size: 229kB
dask.array<getitem, shape=(191, 300), dtype=float32, chunksize=(191, 300), chunktype=numpy.ndarray>
Coordinates:
lon_rho (eta_rho, xi_rho) float64 458kB dask.array<chunksize=(191, 300), meta=np.ndarray>
lat_rho (eta_rho, xi_rho) float64 458kB dask.array<chunksize=(191, 300), meta=np.ndarray>
s_rho float64 8B -0.01667
ocean_time datetime64[ns] 8B 2009-11-19T12:00:00
* xi_rho (xi_rho) int64 2kB 0 1 2 3 4 5 6 ... 293 294 295 296 297 298 299
* eta_rho (eta_rho) int64 2kB 0 1 2 3 4 5 6 ... 185 186 187 188 189 190
z_rho (eta_rho, xi_rho) float64 458kB dask.array<chunksize=(191, 300), meta=np.ndarray>
Attributes:
long_name: salinity
time: ocean_time
field: salinity, scalar, series- eta_rho: 191
- xi_rho: 300
- dask.array<chunksize=(191, 300), meta=np.ndarray>
Array Chunk Bytes 223.83 kiB 223.83 kiB Shape (191, 300) (191, 300) Dask graph 1 chunks in 3 graph layers Data type float32 numpy.ndarray 300 191 - lon_rho(eta_rho, xi_rho)float64dask.array<chunksize=(191, 300), meta=np.ndarray>
- units :
- meters
- standard_name :
- longitude
Array Chunk Bytes 447.66 kiB 447.66 kiB Shape (191, 300) (191, 300) Dask graph 1 chunks in 2 graph layers Data type float64 numpy.ndarray 300 191 - lat_rho(eta_rho, xi_rho)float64dask.array<chunksize=(191, 300), meta=np.ndarray>
- units :
- meters
- standard_name :
- latitude
Array Chunk Bytes 447.66 kiB 447.66 kiB Shape (191, 300) (191, 300) Dask graph 1 chunks in 2 graph layers Data type float64 numpy.ndarray 300 191 - s_rho()float64-0.01667
- long_name :
- S-coordinate at RHO-points
- valid_min :
- -1.0
- valid_max :
- 0.0
- standard_name :
- ocean_s_coordinate_g1
- formula_terms :
- s: s_rho C: Cs_r eta: zeta depth: h depth_c: hc
- field :
- s_rho, scalar
- axis :
- Z
array(-0.01666667)
- ocean_time()datetime64[ns]2009-11-19T12:00:00
- long_name :
- time since initialization
- field :
- time, scalar, series
- axis :
- T
- standard_name :
- time
array('2009-11-19T12:00:00.000000000', dtype='datetime64[ns]') - xi_rho(xi_rho)int640 1 2 3 4 5 ... 295 296 297 298 299
- axis :
- X
array([ 0, 1, 2, ..., 297, 298, 299], shape=(300,))
- eta_rho(eta_rho)int640 1 2 3 4 5 ... 186 187 188 189 190
- axis :
- Y
array([ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190]) - z_rho(eta_rho, xi_rho)float64dask.array<chunksize=(191, 300), meta=np.ndarray>
- long_name :
- depth of RHO-points
- time :
- ocean_time
- field :
- z_rho, scalar, series
- units :
- m
- positive :
- up
- standard_name :
- depth
Array Chunk Bytes 447.66 kiB 447.66 kiB Shape (191, 300) (191, 300) Dask graph 1 chunks in 30 graph layers Data type float64 numpy.ndarray 300 191
- xi_rhoPandasIndex
PandasIndex(Index([ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, ... 290, 291, 292, 293, 294, 295, 296, 297, 298, 299], dtype='int64', name='xi_rho', length=300)) - eta_rhoPandasIndex
PandasIndex(Index([ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, ... 181, 182, 183, 184, 185, 186, 187, 188, 189, 190], dtype='int64', name='eta_rho', length=191))
- long_name :
- salinity
- time :
- ocean_time
- field :
- salinity, scalar, series
Range of time¶
time_range = slice(date, pd.Timestamp(date)+pd.Timedelta('3 hours'))
ds.salt.sel(ocean_time=time_range)
ds.salt.cf.sel(T=time_range) # cf-xarray
time_range = slice(date, pd.Timestamp(date)+pd.Timedelta('3 hours'))
ds.salt.cf.sel(T=time_range) # cf-xarray
<xarray.DataArray 'salt' (ocean_time: 1, s_rho: 30, eta_rho: 191, xi_rho: 300)> Size: 7MB
dask.array<getitem, shape=(1, 30, 191, 300), dtype=float32, chunksize=(1, 30, 191, 300), chunktype=numpy.ndarray>
Coordinates:
lon_rho (eta_rho, xi_rho) float64 458kB dask.array<chunksize=(191, 300), meta=np.ndarray>
lat_rho (eta_rho, xi_rho) float64 458kB dask.array<chunksize=(191, 300), meta=np.ndarray>
* s_rho (s_rho) float64 240B -0.9833 -0.95 -0.9167 ... -0.05 -0.01667
* ocean_time (ocean_time) datetime64[ns] 8B 2009-11-19T16:00:00
* xi_rho (xi_rho) int64 2kB 0 1 2 3 4 5 6 ... 293 294 295 296 297 298 299
* eta_rho (eta_rho) int64 2kB 0 1 2 3 4 5 6 ... 185 186 187 188 189 190
z_rho (ocean_time, s_rho, eta_rho, xi_rho) float64 14MB dask.array<chunksize=(1, 30, 191, 300), meta=np.ndarray>
Attributes:
long_name: salinity
time: ocean_time
field: salinity, scalar, series- ocean_time: 1
- s_rho: 30
- eta_rho: 191
- xi_rho: 300
- dask.array<chunksize=(1, 30, 191, 300), meta=np.ndarray>
Array Chunk Bytes 6.56 MiB 6.56 MiB Shape (1, 30, 191, 300) (1, 30, 191, 300) Dask graph 1 chunks in 3 graph layers Data type float32 numpy.ndarray 1 1 300 191 30 - lon_rho(eta_rho, xi_rho)float64dask.array<chunksize=(191, 300), meta=np.ndarray>
- units :
- meters
- standard_name :
- longitude
Array Chunk Bytes 447.66 kiB 447.66 kiB Shape (191, 300) (191, 300) Dask graph 1 chunks in 2 graph layers Data type float64 numpy.ndarray 300 191 - lat_rho(eta_rho, xi_rho)float64dask.array<chunksize=(191, 300), meta=np.ndarray>
- units :
- meters
- standard_name :
- latitude
Array Chunk Bytes 447.66 kiB 447.66 kiB Shape (191, 300) (191, 300) Dask graph 1 chunks in 2 graph layers Data type float64 numpy.ndarray 300 191 - s_rho(s_rho)float64-0.9833 -0.95 ... -0.05 -0.01667
- long_name :
- S-coordinate at RHO-points
- valid_min :
- -1.0
- valid_max :
- 0.0
- standard_name :
- ocean_s_coordinate_g1
- formula_terms :
- s: s_rho C: Cs_r eta: zeta depth: h depth_c: hc
- field :
- s_rho, scalar
- axis :
- Z
array([-0.983333, -0.95 , -0.916667, -0.883333, -0.85 , -0.816667, -0.783333, -0.75 , -0.716667, -0.683333, -0.65 , -0.616667, -0.583333, -0.55 , -0.516667, -0.483333, -0.45 , -0.416667, -0.383333, -0.35 , -0.316667, -0.283333, -0.25 , -0.216667, -0.183333, -0.15 , -0.116667, -0.083333, -0.05 , -0.016667]) - ocean_time(ocean_time)datetime64[ns]2009-11-19T16:00:00
- long_name :
- time since initialization
- field :
- time, scalar, series
- axis :
- T
- standard_name :
- time
array(['2009-11-19T16:00:00.000000000'], dtype='datetime64[ns]')
- xi_rho(xi_rho)int640 1 2 3 4 5 ... 295 296 297 298 299
- axis :
- X
array([ 0, 1, 2, ..., 297, 298, 299], shape=(300,))
- eta_rho(eta_rho)int640 1 2 3 4 5 ... 186 187 188 189 190
- axis :
- Y
array([ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190]) - z_rho(ocean_time, s_rho, eta_rho, xi_rho)float64dask.array<chunksize=(1, 30, 191, 300), meta=np.ndarray>
- long_name :
- depth of RHO-points
- time :
- ocean_time
- field :
- z_rho, scalar, series
- units :
- m
- positive :
- up
- standard_name :
- depth
Array Chunk Bytes 13.11 MiB 13.11 MiB Shape (1, 30, 191, 300) (1, 30, 191, 300) Dask graph 1 chunks in 30 graph layers Data type float64 numpy.ndarray 1 1 300 191 30
- s_rhoPandasIndex
PandasIndex(Index([ -0.9833333333333333, -0.95, -0.9166666666666666, -0.8833333333333333, -0.85, -0.8166666666666667, -0.7833333333333333, -0.75, -0.7166666666666667, -0.6833333333333333, -0.65, -0.6166666666666667, -0.5833333333333334, -0.55, -0.5166666666666666, -0.48333333333333334, -0.45, -0.4166666666666667, -0.3833333333333333, -0.35, -0.31666666666666665, -0.2833333333333333, -0.25, -0.21666666666666667, -0.18333333333333332, -0.15, -0.11666666666666667, -0.08333333333333333, -0.05, -0.016666666666666666], dtype='float64', name='s_rho')) - ocean_timePandasIndex
PandasIndex(DatetimeIndex(['2009-11-19 16:00:00'], dtype='datetime64[ns]', name='ocean_time', freq=None))
- xi_rhoPandasIndex
PandasIndex(Index([ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, ... 290, 291, 292, 293, 294, 295, 296, 297, 298, 299], dtype='int64', name='xi_rho', length=300)) - eta_rhoPandasIndex
PandasIndex(Index([ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, ... 181, 182, 183, 184, 185, 186, 187, 188, 189, 190], dtype='int64', name='eta_rho', length=191))
- long_name :
- salinity
- time :
- ocean_time
- field :
- salinity, scalar, series
Select region¶
Select a boxed region by min/max lon and lat values.
# want model output only within the box defined by these lat/lon values
lon = np.array([-92, -91])
lat = np.array([28, 29])
# this condition defines the region of interest
box = ((lon[0] < ds["salt"].cf["longitude"]) & (ds["salt"].cf["longitude"] < lon[1])
& (lat[0] < ds["salt"].cf["latitude"]) & (ds["salt"].cf["latitude"] < lat[1])).compute()
Plot the model output in the box at the surface
dss = ds.where(box).salt.cf.isel(Z=-1, T=0)
dss.cf.plot(x='longitude', y='latitude')
<matplotlib.collections.QuadMesh at 0x75dd53a4d4c0>
If you don’t need the rest of the model output, you can drop it by using drop=True in the where call.
dss = ds.where(box, drop=True).salt.cf.isel(Z=-1, T=0)
dss.cf.plot(x='longitude', y='latitude')
<matplotlib.collections.QuadMesh at 0x75dd5368e0c0>
Can calculate a metric within the box:
dss.mean().values
array(28.308672, dtype=float32)
Subset model output¶
Subset Dataset of model output such that subsetted domain is as if the simulation was run on that size grid. That is, the rho grid is 1 larger than the psi grid in each of xi and eta.
ds.xroms.subset(X=slice(20,40), Y=slice(50,100)) # with accessor
xroms.subset(ds, X=slice(20,40), Y=slice(50,100))
ds.xroms.subset(X=slice(20,40), Y=slice(50,100)) # with accessor
<xarray.Dataset> Size: 12MB
Dimensions: (eta_rho: 50, xi_rho: 20, s_rho: 30, ocean_time: 2, s_w: 31,
xi_u: 19, eta_v: 49)
Coordinates: (12/21)
lon_rho (eta_rho, xi_rho) float64 8kB dask.array<chunksize=(50, 20), meta=np.ndarray>
lat_rho (eta_rho, xi_rho) float64 8kB dask.array<chunksize=(50, 20), meta=np.ndarray>
* s_rho (s_rho) float64 240B -0.9833 -0.95 -0.9167 ... -0.05 -0.01667
* s_w (s_w) float64 248B -1.0 -0.9667 -0.9333 ... -0.03333 0.0
* ocean_time (ocean_time) datetime64[ns] 16B 2009-11-19T12:00:00 2009-11-1...
lon_u (eta_rho, xi_u) float64 8kB dask.array<chunksize=(50, 19), meta=np.ndarray>
... ...
z_w_v (ocean_time, s_w, eta_v, xi_rho) float64 486kB dask.array<chunksize=(2, 31, 49, 20), meta=np.ndarray>
z_w_psi (ocean_time, s_w, eta_v, xi_u) float64 462kB dask.array<chunksize=(2, 31, 49, 19), meta=np.ndarray>
z_rho (ocean_time, s_rho, eta_rho, xi_rho) float64 480kB dask.array<chunksize=(2, 30, 50, 20), meta=np.ndarray>
z_rho_u (ocean_time, s_rho, eta_rho, xi_u) float64 456kB dask.array<chunksize=(2, 30, 50, 19), meta=np.ndarray>
z_rho_v (ocean_time, s_rho, eta_v, xi_rho) float64 470kB dask.array<chunksize=(2, 30, 49, 20), meta=np.ndarray>
z_rho_psi (ocean_time, s_rho, eta_v, xi_u) float64 447kB dask.array<chunksize=(2, 30, 49, 19), meta=np.ndarray>
Data variables: (12/45)
angle (eta_rho, xi_rho) float64 8kB dask.array<chunksize=(50, 20), meta=np.ndarray>
hc float64 8B ...
Cs_r (s_rho) float64 240B dask.array<chunksize=(30,), meta=np.ndarray>
zeta (ocean_time, eta_rho, xi_rho) float32 8kB dask.array<chunksize=(2, 50, 20), meta=np.ndarray>
h (eta_rho, xi_rho) float64 8kB dask.array<chunksize=(50, 20), meta=np.ndarray>
Cs_w (s_w) float64 248B dask.array<chunksize=(31,), meta=np.ndarray>
... ...
dV_w_u (ocean_time, s_w, eta_rho, xi_u) float64 471kB dask.array<chunksize=(2, 31, 50, 19), meta=np.ndarray>
dV_v (ocean_time, s_rho, eta_v, xi_rho) float64 470kB dask.array<chunksize=(2, 30, 49, 20), meta=np.ndarray>
dV_w_v (ocean_time, s_w, eta_v, xi_rho) float64 486kB dask.array<chunksize=(2, 31, 49, 20), meta=np.ndarray>
dV_psi (ocean_time, s_rho, eta_v, xi_u) float64 447kB dask.array<chunksize=(2, 30, 49, 19), meta=np.ndarray>
dV_w_psi (ocean_time, s_w, eta_v, xi_u) float64 462kB dask.array<chunksize=(2, 31, 49, 19), meta=np.ndarray>
rho0 int64 8B 1025
Attributes: (12/29)
file: ocean_his_0150.nc
format: netCDF-3 classic file
Conventions: CF-1.4
type: ROMS/TOMS history file
title: Texas and Louisiana Shelf case (Nesting)
rst_file: ocean_rst.nc
... ...
compiler_command: /g/software/openmpi/1.4.3/intel/bin/mpif90
compiler_flags: -heap-arrays -fp-model precise -assume 2underscores -c...
tiling: 016x032
history: ROMS/TOMS, Version 3.4, Sunday - December 4, 2011 - 7...
ana_file: /scratch/zhangxq/projects/txla_nesting6/Functionals/an...
CPP_options: TXLA, ANA_BSFLUX, ANA_BTFLUX, ASSUMED_SHAPE, BULK_FLUX...- eta_rho: 50
- xi_rho: 20
- s_rho: 30
- ocean_time: 2
- s_w: 31
- xi_u: 19
- eta_v: 49
- lon_rho(eta_rho, xi_rho)float64dask.array<chunksize=(50, 20), meta=np.ndarray>
- units :
- meters
- standard_name :
- longitude
Array Chunk Bytes 7.81 kiB 7.81 kiB Shape (50, 20) (50, 20) Dask graph 1 chunks in 4 graph layers Data type float64 numpy.ndarray 20 50 - lat_rho(eta_rho, xi_rho)float64dask.array<chunksize=(50, 20), meta=np.ndarray>
- units :
- meters
- standard_name :
- latitude
Array Chunk Bytes 7.81 kiB 7.81 kiB Shape (50, 20) (50, 20) Dask graph 1 chunks in 4 graph layers Data type float64 numpy.ndarray 20 50 - s_rho(s_rho)float64-0.9833 -0.95 ... -0.05 -0.01667
- long_name :
- S-coordinate at RHO-points
- valid_min :
- -1.0
- valid_max :
- 0.0
- standard_name :
- ocean_s_coordinate_g1
- formula_terms :
- s: s_rho C: Cs_r eta: zeta depth: h depth_c: hc
- field :
- s_rho, scalar
- axis :
- Z
array([-0.983333, -0.95 , -0.916667, -0.883333, -0.85 , -0.816667, -0.783333, -0.75 , -0.716667, -0.683333, -0.65 , -0.616667, -0.583333, -0.55 , -0.516667, -0.483333, -0.45 , -0.416667, -0.383333, -0.35 , -0.316667, -0.283333, -0.25 , -0.216667, -0.183333, -0.15 , -0.116667, -0.083333, -0.05 , -0.016667]) - s_w(s_w)float64-1.0 -0.9667 ... -0.03333 0.0
- long_name :
- S-coordinate at W-points
- valid_min :
- -1.0
- valid_max :
- 0.0
- standard_name :
- ocean_s_coordinate_g1
- formula_terms :
- s: s_w C: Cs_w eta: zeta depth: h depth_c: hc
- field :
- s_w, scalar
- axis :
- Z
array([-1. , -0.966667, -0.933333, -0.9 , -0.866667, -0.833333, -0.8 , -0.766667, -0.733333, -0.7 , -0.666667, -0.633333, -0.6 , -0.566667, -0.533333, -0.5 , -0.466667, -0.433333, -0.4 , -0.366667, -0.333333, -0.3 , -0.266667, -0.233333, -0.2 , -0.166667, -0.133333, -0.1 , -0.066667, -0.033333, 0. ]) - ocean_time(ocean_time)datetime64[ns]2009-11-19T12:00:00 2009-11-19T1...
- long_name :
- time since initialization
- field :
- time, scalar, series
- axis :
- T
- standard_name :
- time
array(['2009-11-19T12:00:00.000000000', '2009-11-19T16:00:00.000000000'], dtype='datetime64[ns]') - lon_u(eta_rho, xi_u)float64dask.array<chunksize=(50, 19), meta=np.ndarray>
- units :
- meters
- standard_name :
- longitude
Array Chunk Bytes 7.42 kiB 7.42 kiB Shape (50, 19) (50, 19) Dask graph 1 chunks in 4 graph layers Data type float64 numpy.ndarray 19 50 - lat_u(eta_rho, xi_u)float64dask.array<chunksize=(50, 19), meta=np.ndarray>
- units :
- meters
- standard_name :
- latitude
Array Chunk Bytes 7.42 kiB 7.42 kiB Shape (50, 19) (50, 19) Dask graph 1 chunks in 4 graph layers Data type float64 numpy.ndarray 19 50 - lon_v(eta_v, xi_rho)float64dask.array<chunksize=(49, 20), meta=np.ndarray>
- units :
- meters
- standard_name :
- longitude
Array Chunk Bytes 7.66 kiB 7.66 kiB Shape (49, 20) (49, 20) Dask graph 1 chunks in 4 graph layers Data type float64 numpy.ndarray 20 49 - lat_v(eta_v, xi_rho)float64dask.array<chunksize=(49, 20), meta=np.ndarray>
- units :
- meters
- standard_name :
- latitude
Array Chunk Bytes 7.66 kiB 7.66 kiB Shape (49, 20) (49, 20) Dask graph 1 chunks in 4 graph layers Data type float64 numpy.ndarray 20 49 - xi_rho(xi_rho)int6420 21 22 23 24 ... 35 36 37 38 39
- axis :
- X
array([20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39]) - xi_u(xi_u)int6420 21 22 23 24 ... 34 35 36 37 38
- axis :
- X
array([20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38]) - eta_rho(eta_rho)int6450 51 52 53 54 ... 95 96 97 98 99
- axis :
- Y
array([50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99]) - eta_v(eta_v)int6450 51 52 53 54 ... 94 95 96 97 98
- axis :
- Y
array([50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98]) - z_w(ocean_time, s_w, eta_rho, xi_rho)float64dask.array<chunksize=(2, 31, 50, 20), meta=np.ndarray>
- long_name :
- depth of W-points
- time :
- ocean_time
- field :
- z_w, scalar, series
- units :
- m
- positive :
- up
- standard_name :
- depth
Array Chunk Bytes 484.38 kiB 484.38 kiB Shape (2, 31, 50, 20) (2, 31, 50, 20) Dask graph 1 chunks in 31 graph layers Data type float64 numpy.ndarray 2 1 20 50 31 - z_w_u(ocean_time, s_w, eta_rho, xi_u)float64dask.array<chunksize=(2, 31, 50, 19), meta=np.ndarray>
- long_name :
- depth of U-points on vertical W grid
- time :
- ocean_time
- field :
- z_w_u, scalar, series
- units :
- m
- positive :
- up
- standard_name :
- depth
Array Chunk Bytes 460.16 kiB 460.16 kiB Shape (2, 31, 50, 19) (2, 31, 50, 19) Dask graph 1 chunks in 34 graph layers Data type float64 numpy.ndarray 2 1 19 50 31 - z_w_v(ocean_time, s_w, eta_v, xi_rho)float64dask.array<chunksize=(2, 31, 49, 20), meta=np.ndarray>
- long_name :
- depth of V-points on vertical W grid
- time :
- ocean_time
- field :
- z_w_v, scalar, series
- units :
- m
- positive :
- up
- standard_name :
- depth
Array Chunk Bytes 474.69 kiB 474.69 kiB Shape (2, 31, 49, 20) (2, 31, 49, 20) Dask graph 1 chunks in 36 graph layers Data type float64 numpy.ndarray 2 1 20 49 31 - z_w_psi(ocean_time, s_w, eta_v, xi_u)float64dask.array<chunksize=(2, 31, 49, 19), meta=np.ndarray>
- long_name :
- depth of PSI-points on vertical W grid
- time :
- ocean_time
- field :
- z_w_psi, scalar, series
- units :
- m
- positive :
- up
- standard_name :
- depth
Array Chunk Bytes 450.95 kiB 450.95 kiB Shape (2, 31, 49, 19) (2, 31, 49, 19) Dask graph 1 chunks in 39 graph layers Data type float64 numpy.ndarray 2 1 19 49 31 - z_rho(ocean_time, s_rho, eta_rho, xi_rho)float64dask.array<chunksize=(2, 30, 50, 20), meta=np.ndarray>
- long_name :
- depth of RHO-points
- time :
- ocean_time
- field :
- z_rho, scalar, series
- units :
- m
- positive :
- up
- standard_name :
- depth
Array Chunk Bytes 468.75 kiB 468.75 kiB Shape (2, 30, 50, 20) (2, 30, 50, 20) Dask graph 1 chunks in 31 graph layers Data type float64 numpy.ndarray 2 1 20 50 30 - z_rho_u(ocean_time, s_rho, eta_rho, xi_u)float64dask.array<chunksize=(2, 30, 50, 19), meta=np.ndarray>
- long_name :
- depth of U-points on vertical RHO grid
- time :
- ocean_time
- field :
- z_rho_u, scalar, series
- units :
- m
- positive :
- up
- standard_name :
- depth
Array Chunk Bytes 445.31 kiB 445.31 kiB Shape (2, 30, 50, 19) (2, 30, 50, 19) Dask graph 1 chunks in 34 graph layers Data type float64 numpy.ndarray 2 1 19 50 30 - z_rho_v(ocean_time, s_rho, eta_v, xi_rho)float64dask.array<chunksize=(2, 30, 49, 20), meta=np.ndarray>
- long_name :
- depth of V-points on vertical RHO grid
- time :
- ocean_time
- field :
- z_rho_v, scalar, series
- units :
- m
- positive :
- up
- standard_name :
- depth
Array Chunk Bytes 459.38 kiB 459.38 kiB Shape (2, 30, 49, 20) (2, 30, 49, 20) Dask graph 1 chunks in 36 graph layers Data type float64 numpy.ndarray 2 1 20 49 30 - z_rho_psi(ocean_time, s_rho, eta_v, xi_u)float64dask.array<chunksize=(2, 30, 49, 19), meta=np.ndarray>
- long_name :
- depth of PSI-points on vertical RHO grid
- time :
- ocean_time
- field :
- z_rho_psi, scalar, series
- units :
- m
- positive :
- up
- standard_name :
- depth
Array Chunk Bytes 436.41 kiB 436.41 kiB Shape (2, 30, 49, 19) (2, 30, 49, 19) Dask graph 1 chunks in 39 graph layers Data type float64 numpy.ndarray 2 1 19 49 30
- angle(eta_rho, xi_rho)float64dask.array<chunksize=(50, 20), meta=np.ndarray>
- long_name :
- angle between XI-axis and EAST
- units :
- radians
- field :
- angle, scalar
Array Chunk Bytes 7.81 kiB 7.81 kiB Shape (50, 20) (50, 20) Dask graph 1 chunks in 4 graph layers Data type float64 numpy.ndarray 20 50 - hc()float64...
- long_name :
- S-coordinate parameter, critical depth
- units :
- meter
[1 values with dtype=float64]
- Cs_r(s_rho)float64dask.array<chunksize=(30,), meta=np.ndarray>
- long_name :
- S-coordinate stretching curves at RHO-points
- valid_min :
- -1.0
- valid_max :
- 0.0
- field :
- Cs_r, scalar
Array Chunk Bytes 240 B 240 B Shape (30,) (30,) Dask graph 1 chunks in 2 graph layers Data type float64 numpy.ndarray 30 1 - zeta(ocean_time, eta_rho, xi_rho)float32dask.array<chunksize=(2, 50, 20), meta=np.ndarray>
- long_name :
- free-surface
- units :
- meter
- time :
- ocean_time
- field :
- free-surface, scalar, series
Array Chunk Bytes 7.81 kiB 7.81 kiB Shape (2, 50, 20) (2, 50, 20) Dask graph 1 chunks in 4 graph layers Data type float32 numpy.ndarray 20 50 2 - h(eta_rho, xi_rho)float64dask.array<chunksize=(50, 20), meta=np.ndarray>
- long_name :
- bathymetry at RHO-points
- units :
- meter
- field :
- bath, scalar
Array Chunk Bytes 7.81 kiB 7.81 kiB Shape (50, 20) (50, 20) Dask graph 1 chunks in 4 graph layers Data type float64 numpy.ndarray 20 50 - Cs_w(s_w)float64dask.array<chunksize=(31,), meta=np.ndarray>
- long_name :
- S-coordinate stretching curves at W-points
- valid_min :
- -1.0
- valid_max :
- 0.0
- field :
- Cs_w, scalar
Array Chunk Bytes 248 B 248 B Shape (31,) (31,) Dask graph 1 chunks in 2 graph layers Data type float64 numpy.ndarray 31 1 - mask_rho(eta_rho, xi_rho)float64dask.array<chunksize=(50, 20), meta=np.ndarray>
- long_name :
- mask on RHO-points
- flag_values :
- [0. 1.]
- flag_meanings :
- land water
Array Chunk Bytes 7.81 kiB 7.81 kiB Shape (50, 20) (50, 20) Dask graph 1 chunks in 4 graph layers Data type float64 numpy.ndarray 20 50 - mask_u(eta_rho, xi_u)float64dask.array<chunksize=(50, 19), meta=np.ndarray>
- long_name :
- mask on U-points
- flag_values :
- [0. 1.]
- flag_meanings :
- land water
Array Chunk Bytes 7.42 kiB 7.42 kiB Shape (50, 19) (50, 19) Dask graph 1 chunks in 4 graph layers Data type float64 numpy.ndarray 19 50 - mask_v(eta_v, xi_rho)float64dask.array<chunksize=(49, 20), meta=np.ndarray>
- long_name :
- mask on V-points
- flag_values :
- [0. 1.]
- flag_meanings :
- land water
Array Chunk Bytes 7.66 kiB 7.66 kiB Shape (49, 20) (49, 20) Dask graph 1 chunks in 4 graph layers Data type float64 numpy.ndarray 20 49 - u(ocean_time, s_rho, eta_rho, xi_u)float32dask.array<chunksize=(2, 30, 50, 19), meta=np.ndarray>
- long_name :
- u-momentum component
- units :
- meter second-1
- time :
- ocean_time
- field :
- u-velocity, scalar, series
Array Chunk Bytes 222.66 kiB 222.66 kiB Shape (2, 30, 50, 19) (2, 30, 50, 19) Dask graph 1 chunks in 4 graph layers Data type float32 numpy.ndarray 2 1 19 50 30 - v(ocean_time, s_rho, eta_v, xi_rho)float32dask.array<chunksize=(2, 30, 49, 20), meta=np.ndarray>
- long_name :
- v-momentum component
- units :
- meter second-1
- time :
- ocean_time
- field :
- v-velocity, scalar, series
Array Chunk Bytes 229.69 kiB 229.69 kiB Shape (2, 30, 49, 20) (2, 30, 49, 20) Dask graph 1 chunks in 4 graph layers Data type float32 numpy.ndarray 2 1 20 49 30 - temp(ocean_time, s_rho, eta_rho, xi_rho)float32dask.array<chunksize=(2, 30, 50, 20), meta=np.ndarray>
- long_name :
- potential temperature
- units :
- Celsius
- time :
- ocean_time
- field :
- temperature, scalar, series
Array Chunk Bytes 234.38 kiB 234.38 kiB Shape (2, 30, 50, 20) (2, 30, 50, 20) Dask graph 1 chunks in 4 graph layers Data type float32 numpy.ndarray 2 1 20 50 30 - salt(ocean_time, s_rho, eta_rho, xi_rho)float32dask.array<chunksize=(2, 30, 50, 20), meta=np.ndarray>
- long_name :
- salinity
- time :
- ocean_time
- field :
- salinity, scalar, series
Array Chunk Bytes 234.38 kiB 234.38 kiB Shape (2, 30, 50, 20) (2, 30, 50, 20) Dask graph 1 chunks in 4 graph layers Data type float32 numpy.ndarray 2 1 20 50 30 - Vtransform()int32...
- long_name :
- vertical terrain-following transformation equation
[1 values with dtype=int32]
- pm(eta_rho, xi_rho)float64dask.array<chunksize=(50, 20), meta=np.ndarray>
- long_name :
- curvilinear coordinate metric in XI
- units :
- meter-1
- field :
- pm, scalar
Array Chunk Bytes 7.81 kiB 7.81 kiB Shape (50, 20) (50, 20) Dask graph 1 chunks in 4 graph layers Data type float64 numpy.ndarray 20 50 - pn(eta_rho, xi_rho)float64dask.array<chunksize=(50, 20), meta=np.ndarray>
- long_name :
- curvilinear coordinate metric in ETA
- units :
- meter-1
- field :
- pn, scalar
Array Chunk Bytes 7.81 kiB 7.81 kiB Shape (50, 20) (50, 20) Dask graph 1 chunks in 4 graph layers Data type float64 numpy.ndarray 20 50 - f(eta_rho, xi_rho)float64dask.array<chunksize=(50, 20), meta=np.ndarray>
- long_name :
- Coriolis parameter at RHO-points
- units :
- second-1
- field :
- coriolis, scalar
Array Chunk Bytes 7.81 kiB 7.81 kiB Shape (50, 20) (50, 20) Dask graph 1 chunks in 4 graph layers Data type float64 numpy.ndarray 20 50 - spherical()int641
array(1)
- 3d()boolTrue
array(True)
- dx(eta_rho, xi_rho)float64dask.array<chunksize=(50, 20), meta=np.ndarray>
- long_name :
- inverse curvilinear coordinate metric in XI
- units :
- meter
- field :
- dx, scalar
Array Chunk Bytes 7.81 kiB 7.81 kiB Shape (50, 20) (50, 20) Dask graph 1 chunks in 5 graph layers Data type float64 numpy.ndarray 20 50 - dx_u(eta_rho, xi_u)float64dask.array<chunksize=(50, 19), meta=np.ndarray>
- long_name :
- inverse curvilinear coordinate metric in XI on U grid
- units :
- meter
- field :
- dx_u, scalar
Array Chunk Bytes 7.42 kiB 7.42 kiB Shape (50, 19) (50, 19) Dask graph 1 chunks in 8 graph layers Data type float64 numpy.ndarray 19 50 - dx_v(eta_v, xi_rho)float64dask.array<chunksize=(49, 20), meta=np.ndarray>
- long_name :
- inverse curvilinear coordinate metric in XI on V grid
- units :
- meter
- field :
- dx_v, scalar
Array Chunk Bytes 7.66 kiB 7.66 kiB Shape (49, 20) (49, 20) Dask graph 1 chunks in 10 graph layers Data type float64 numpy.ndarray 20 49 - dx_psi(eta_v, xi_u)float64dask.array<chunksize=(49, 19), meta=np.ndarray>
- long_name :
- inverse curvilinear coordinate metric in XI on PSI grid
- units :
- meter
- field :
- dx_psi, scalar
Array Chunk Bytes 7.27 kiB 7.27 kiB Shape (49, 19) (49, 19) Dask graph 1 chunks in 13 graph layers Data type float64 numpy.ndarray 19 49 - dy(eta_rho, xi_rho)float64dask.array<chunksize=(50, 20), meta=np.ndarray>
- long_name :
- inverse curvilinear coordinate metric in ETA
- units :
- meter
- field :
- dy, scalar
Array Chunk Bytes 7.81 kiB 7.81 kiB Shape (50, 20) (50, 20) Dask graph 1 chunks in 5 graph layers Data type float64 numpy.ndarray 20 50 - dy_u(eta_rho, xi_u)float64dask.array<chunksize=(50, 19), meta=np.ndarray>
- long_name :
- inverse curvilinear coordinate metric in ETA on U grid
- units :
- meter
- field :
- dy_u, scalar
Array Chunk Bytes 7.42 kiB 7.42 kiB Shape (50, 19) (50, 19) Dask graph 1 chunks in 8 graph layers Data type float64 numpy.ndarray 19 50 - dy_v(eta_v, xi_rho)float64dask.array<chunksize=(49, 20), meta=np.ndarray>
- long_name :
- inverse curvilinear coordinate metric in ETA on V grid
- units :
- meter
- field :
- dy_v, scalar
Array Chunk Bytes 7.66 kiB 7.66 kiB Shape (49, 20) (49, 20) Dask graph 1 chunks in 10 graph layers Data type float64 numpy.ndarray 20 49 - dy_psi(eta_v, xi_u)float64dask.array<chunksize=(49, 19), meta=np.ndarray>
- long_name :
- inverse curvilinear coordinate metric in ETA on PSI grid
- units :
- meter
- field :
- dy_psi, scalar
Array Chunk Bytes 7.27 kiB 7.27 kiB Shape (49, 19) (49, 19) Dask graph 1 chunks in 13 graph layers Data type float64 numpy.ndarray 19 49 - dz(ocean_time, s_rho, eta_rho, xi_rho)float64dask.array<chunksize=(2, 30, 50, 20), meta=np.ndarray>
- long_name :
- vertical layer thickness on vertical RHO grid
- time :
- ocean_time
- field :
- dz, scalar, series
- units :
- m
Array Chunk Bytes 468.75 kiB 468.75 kiB Shape (2, 30, 50, 20) (2, 30, 50, 20) Dask graph 1 chunks in 36 graph layers Data type float64 numpy.ndarray 2 1 20 50 30 - dz_w(ocean_time, s_w, eta_rho, xi_rho)float64dask.array<chunksize=(2, 31, 50, 20), meta=np.ndarray>
- long_name :
- vertical layer thickness on vertical W grid
- time :
- ocean_time
- field :
- dz_w, scalar, series
- units :
- m
Array Chunk Bytes 484.38 kiB 484.38 kiB Shape (2, 31, 50, 20) (2, 31, 50, 20) Dask graph 1 chunks in 40 graph layers Data type float64 numpy.ndarray 2 1 20 50 31 - dz_u(ocean_time, s_rho, eta_rho, xi_u)float64dask.array<chunksize=(2, 30, 50, 19), meta=np.ndarray>
- long_name :
- vertical layer thickness on vertical RHO grid on U grid
- time :
- ocean_time
- field :
- dz_u, scalar, series
- units :
- m
Array Chunk Bytes 445.31 kiB 445.31 kiB Shape (2, 30, 50, 19) (2, 30, 50, 19) Dask graph 1 chunks in 39 graph layers Data type float64 numpy.ndarray 2 1 19 50 30 - dz_w_u(ocean_time, s_w, eta_rho, xi_u)float64dask.array<chunksize=(2, 31, 50, 19), meta=np.ndarray>
- long_name :
- vertical layer thickness on vertical W grid on U grid
- time :
- ocean_time
- field :
- dz_w_u, scalar, series
- units :
- m
Array Chunk Bytes 460.16 kiB 460.16 kiB Shape (2, 31, 50, 19) (2, 31, 50, 19) Dask graph 1 chunks in 43 graph layers Data type float64 numpy.ndarray 2 1 19 50 31 - dz_v(ocean_time, s_rho, eta_v, xi_rho)float64dask.array<chunksize=(2, 30, 49, 20), meta=np.ndarray>
- long_name :
- vertical layer thickness on vertical RHO grid on V grid
- time :
- ocean_time
- field :
- dz_v, scalar, series
- units :
- m
Array Chunk Bytes 459.38 kiB 459.38 kiB Shape (2, 30, 49, 20) (2, 30, 49, 20) Dask graph 1 chunks in 41 graph layers Data type float64 numpy.ndarray 2 1 20 49 30 - dz_w_v(ocean_time, s_w, eta_v, xi_rho)float64dask.array<chunksize=(2, 31, 49, 20), meta=np.ndarray>
- long_name :
- vertical layer thickness on vertical W grid on V grid
- time :
- ocean_time
- field :
- dz_w_v, scalar, series
- units :
- m
Array Chunk Bytes 474.69 kiB 474.69 kiB Shape (2, 31, 49, 20) (2, 31, 49, 20) Dask graph 1 chunks in 45 graph layers Data type float64 numpy.ndarray 2 1 20 49 31 - dz_psi(ocean_time, s_rho, eta_v, xi_u)float64dask.array<chunksize=(2, 30, 49, 19), meta=np.ndarray>
- long_name :
- vertical layer thickness on vertical RHO grid on PSI grid
- time :
- ocean_time
- field :
- dz_psi, scalar, series
- units :
- m
Array Chunk Bytes 436.41 kiB 436.41 kiB Shape (2, 30, 49, 19) (2, 30, 49, 19) Dask graph 1 chunks in 44 graph layers Data type float64 numpy.ndarray 2 1 19 49 30 - dz_w_psi(ocean_time, s_w, eta_v, xi_u)float64dask.array<chunksize=(2, 31, 49, 19), meta=np.ndarray>
- long_name :
- vertical layer thickness on vertical W grid on PSI grid
- time :
- ocean_time
- field :
- dz_w_psi, scalar, series
- units :
- m
Array Chunk Bytes 450.95 kiB 450.95 kiB Shape (2, 31, 49, 19) (2, 31, 49, 19) Dask graph 1 chunks in 48 graph layers Data type float64 numpy.ndarray 2 1 19 49 31 - dA(eta_rho, xi_rho)float64dask.array<chunksize=(50, 20), meta=np.ndarray>
- long_name :
- area metric in XI and ETA on RHO grid
- units :
- meter2
- field :
- dA, scalar
Array Chunk Bytes 7.81 kiB 7.81 kiB Shape (50, 20) (50, 20) Dask graph 1 chunks in 9 graph layers Data type float64 numpy.ndarray 20 50 - dV(ocean_time, s_rho, eta_rho, xi_rho)float64dask.array<chunksize=(2, 30, 50, 20), meta=np.ndarray>
- long_name :
- volume metric in XI and ETA and S on RHO/RHO grids
- units :
- meter3
- field :
- dV, scalar
Array Chunk Bytes 468.75 kiB 468.75 kiB Shape (2, 30, 50, 20) (2, 30, 50, 20) Dask graph 1 chunks in 46 graph layers Data type float64 numpy.ndarray 2 1 20 50 30 - dV_w(ocean_time, s_w, eta_rho, xi_rho)float64dask.array<chunksize=(2, 31, 50, 20), meta=np.ndarray>
- long_name :
- volume metric in XI and ETA and S on RHO/W grids
- units :
- meter3
- field :
- dV_w, scalar
Array Chunk Bytes 484.38 kiB 484.38 kiB Shape (2, 31, 50, 20) (2, 31, 50, 20) Dask graph 1 chunks in 50 graph layers Data type float64 numpy.ndarray 2 1 20 50 31 - dV_u(ocean_time, s_rho, eta_rho, xi_u)float64dask.array<chunksize=(2, 30, 50, 19), meta=np.ndarray>
- long_name :
- volume metric in XI and ETA and S on U/RHO grids
- units :
- meter3
- field :
- dV_u, scalar
Array Chunk Bytes 445.31 kiB 445.31 kiB Shape (2, 30, 50, 19) (2, 30, 50, 19) Dask graph 1 chunks in 55 graph layers Data type float64 numpy.ndarray 2 1 19 50 30 - dV_w_u(ocean_time, s_w, eta_rho, xi_u)float64dask.array<chunksize=(2, 31, 50, 19), meta=np.ndarray>
- long_name :
- volume metric in XI and ETA and S on U/W grids
- units :
- meter3
- field :
- dV_w_u, scalar
Array Chunk Bytes 460.16 kiB 460.16 kiB Shape (2, 31, 50, 19) (2, 31, 50, 19) Dask graph 1 chunks in 59 graph layers Data type float64 numpy.ndarray 2 1 19 50 31 - dV_v(ocean_time, s_rho, eta_v, xi_rho)float64dask.array<chunksize=(2, 30, 49, 20), meta=np.ndarray>
- long_name :
- volume metric in XI and ETA and S on V/RHO grids
- units :
- meter3
- field :
- dV_v, scalar
Array Chunk Bytes 459.38 kiB 459.38 kiB Shape (2, 30, 49, 20) (2, 30, 49, 20) Dask graph 1 chunks in 61 graph layers Data type float64 numpy.ndarray 2 1 20 49 30 - dV_w_v(ocean_time, s_w, eta_v, xi_rho)float64dask.array<chunksize=(2, 31, 49, 20), meta=np.ndarray>
- long_name :
- volume metric in XI and ETA and S on V/W grids
- units :
- meter3
- field :
- dV_w_v, scalar
Array Chunk Bytes 474.69 kiB 474.69 kiB Shape (2, 31, 49, 20) (2, 31, 49, 20) Dask graph 1 chunks in 65 graph layers Data type float64 numpy.ndarray 2 1 20 49 31 - dV_psi(ocean_time, s_rho, eta_v, xi_u)float64dask.array<chunksize=(2, 30, 49, 19), meta=np.ndarray>
- long_name :
- volume metric in XI and ETA and S on PSI/RHO grids
- units :
- meter3
- field :
- dV_psi, scalar
Array Chunk Bytes 436.41 kiB 436.41 kiB Shape (2, 30, 49, 19) (2, 30, 49, 19) Dask graph 1 chunks in 70 graph layers Data type float64 numpy.ndarray 2 1 19 49 30 - dV_w_psi(ocean_time, s_w, eta_v, xi_u)float64dask.array<chunksize=(2, 31, 49, 19), meta=np.ndarray>
- long_name :
- volume metric in XI and ETA and S on PSI/W grids
- units :
- meter3
- field :
- dV_w_psi, scalar
Array Chunk Bytes 450.95 kiB 450.95 kiB Shape (2, 31, 49, 19) (2, 31, 49, 19) Dask graph 1 chunks in 74 graph layers Data type float64 numpy.ndarray 2 1 19 49 31 - rho0()int641025
array(1025)
- s_rhoPandasIndex
PandasIndex(Index([ -0.9833333333333333, -0.95, -0.9166666666666666, -0.8833333333333333, -0.85, -0.8166666666666667, -0.7833333333333333, -0.75, -0.7166666666666667, -0.6833333333333333, -0.65, -0.6166666666666667, -0.5833333333333334, -0.55, -0.5166666666666666, -0.48333333333333334, -0.45, -0.4166666666666667, -0.3833333333333333, -0.35, -0.31666666666666665, -0.2833333333333333, -0.25, -0.21666666666666667, -0.18333333333333332, -0.15, -0.11666666666666667, -0.08333333333333333, -0.05, -0.016666666666666666], dtype='float64', name='s_rho')) - s_wPandasIndex
PandasIndex(Index([ -1.0, -0.9666666666666667, -0.9333333333333333, -0.9, -0.8666666666666667, -0.8333333333333334, -0.8, -0.7666666666666666, -0.7333333333333333, -0.7, -0.6666666666666666, -0.6333333333333333, -0.6, -0.5666666666666667, -0.5333333333333333, -0.5, -0.4666666666666667, -0.43333333333333335, -0.4, -0.36666666666666664, -0.3333333333333333, -0.3, -0.26666666666666666, -0.23333333333333334, -0.2, -0.16666666666666666, -0.13333333333333333, -0.1, -0.06666666666666667, -0.03333333333333333, 0.0], dtype='float64', name='s_w')) - ocean_timePandasIndex
PandasIndex(DatetimeIndex(['2009-11-19 12:00:00', '2009-11-19 16:00:00'], dtype='datetime64[ns]', name='ocean_time', freq=None))
- xi_rhoPandasIndex
PandasIndex(Index([20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39], dtype='int64', name='xi_rho')) - xi_uPandasIndex
PandasIndex(Index([20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38], dtype='int64', name='xi_u')) - eta_rhoPandasIndex
PandasIndex(Index([50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99], dtype='int64', name='eta_rho')) - eta_vPandasIndex
PandasIndex(Index([50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98], dtype='int64', name='eta_v'))
- file :
- ocean_his_0150.nc
- format :
- netCDF-3 classic file
- Conventions :
- CF-1.4
- type :
- ROMS/TOMS history file
- title :
- Texas and Louisiana Shelf case (Nesting)
- rst_file :
- ocean_rst.nc
- his_base :
- ocean_his
- grd_file :
- txla_grd_v4_new.nc
- ini_file :
- ocean_rst.nc
- frc_file_01 :
- txla_blk_narr_2009.nc
- frc_file_02 :
- TXLA_river_4dyes_2011.nc
- frc_file_03 :
- txla_flx_frc_9911.nc
- bry_file :
- txla_bry_2009_new.nc
- clm_file :
- txla_clm_2009_new.nc
- script_file :
- External/ocean_txla.in
- svn_url :
- https://www.myroms.org/svn/src/trunk
- svn_rev :
- exported
- code_dir :
- /scratch/zhangxq/ROMS
- header_dir :
- /scratch/zhangxq/projects/txla_nesting6
- header_file :
- txla.h
- os :
- Linux
- cpu :
- x86_64
- compiler_system :
- ifort
- compiler_command :
- /g/software/openmpi/1.4.3/intel/bin/mpif90
- compiler_flags :
- -heap-arrays -fp-model precise -assume 2underscores -convert big_endian -ip -O3 -free
- tiling :
- 016x032
- history :
- ROMS/TOMS, Version 3.4, Sunday - December 4, 2011 - 7:17:45 AM
- ana_file :
- /scratch/zhangxq/projects/txla_nesting6/Functionals/ana_btflux.h, /scratch/zhangxq/projects/txla_nesting6/Functionals/ana_hmixcoef.h, /scratch/zhangxq/projects/txla_nesting6/Functionals/ana_nudgcoef.h, /scratch/zhangxq/projects/txla_nesting6/Functionals/ana_stflux.h
- CPP_options :
- TXLA, ANA_BSFLUX, ANA_BTFLUX, ASSUMED_SHAPE, BULK_FLUXES, CURVGRID, DIFF_GRID, DJ_GRADPS, DOUBLE_PRECISION, EAST_FSCHAPMAN, EAST_M2FLATHER, EAST_M3NUDGING, EAST_M3RADIATION, EAST_TNUDGING, EAST_TRADIATION, EMINUSP, LONGWAVE, M3CLIMATOLOGY, M3CLM_NUDGING, MASKING, MIX_GEO_TS, MIX_S_UV, MPI, MY25_MIXING, NONLINEAR, NONLIN_EOS, NORTHERN_WALL, N2S2_HORAVG, POWER_LAW, PROFILE, QCORRECTION, K_GSCHEME, !RST_SINGLE, SALINITY, SOLAR_SOURCE, SOLVE3D, SOUTH_FSCHAPMAN, SOUTH_M2FLATHER, SOUTH_M3NUDGING, SOUTH_M3RADIATION, SOUTH_TNUDGING, SOUTH_TRADIATION, SPLINES, TCLIMATOLOGY, TCLM_NUDGING, THREE_GHOST, T_PASSIVE, TS_MPDATA, TS_DIF2, TS_PSOURCE, UV_ADV, UV_COR, UV_U3HADVECTION, UV_C4VADVECTION, UV_LOGDRAG, UV_PSOURCE, UV_VIS2, VAR_RHO_2D, VISC_GRID, WEST_FSCHAPMAN, WEST_M2FLATHER, WEST_M3NUDGING, WEST_M3RADIATION, WEST_TNUDGING, WEST_TRADIATION
Find nearest in lon/lat¶
This matters for a curvilinear grid.
Can’t use sel because it will only search in one dimension for the nearest value and the dimensions are indices which are not necessarily geographic distance. Instead need to use a search for distance and use that for the where condition from the previous example. This functionality has been wrapped into xroms.sel2d (and its partner function xroms.argsel2d).
lon0, lat0 = -91, 28
saltsel = ds.salt.xroms.sel2d(lon0, lat0)
Or, if you instead want the indices of the nearest grid node returned, you can call argsel2d:
ds.salt.xroms.argsel2d(lon0, lat0)
(np.int64(16), np.int64(110))
Check this function, just to be sure:
dl = 0.05
box = (ds.lon_rho>lon0-dl) & (ds.lon_rho<lon0+dl) & (ds.lat_rho>lat0-dl) & (ds.lat_rho<lat0+dl)
dss = ds.where(box).salt.cf.isel(T=0, Z=-1)
vmin = dss.min().values
vmax = dss.max().values
dss.plot(x='lon_rho', y='lat_rho')
plt.scatter(lon0, lat0, c=saltsel.cf.isel(Z=-1, T=0), s=200, edgecolor='k', vmin=vmin, vmax=vmax)
plt.xlim(lon0-dl,lon0+dl)
plt.ylim(lat0-dl, lat0+dl)
(27.95, 28.05)