Model subsetting¶
Demonstration of accessing models with model_catalogs and then subsequent model manipulations with extract_model.
[1]:
import xarray as xr
import model_catalogs as mc
import pandas as pd
import extract_model as em
/Users/kthyng/miniconda3/envs/libgoods-docs/lib/python3.9/site-packages/extract_model/extract_model.py:21: UserWarning: xESMF not found. Interpolation will not work.
warnings.warn("xESMF not found. Interpolation will not work.") # pragma: no cover
Model output¶
[2]:
start = pd.Timestamp.today()
end = start + pd.Timedelta('1 day')
1. Curvilinear, multiple horizontal grids¶
[3]:
model = 'CBOFS'
lon_range, lat_range = [-76, -75], [37, 38]
bbox_cbofs = [lon_range[0], lat_range[0], lon_range[1], lat_range[1]]
main_cat = mc.setup()
source = mc.select_date_range(main_cat[model], timing='nowcast', start_date=start, end_date=end)
ds_cbofs = source.to_dask()
2. Rectilinear grid¶
[4]:
model = 'CBOFS-REGULARGRID'
lon_range, lat_range = [-76, -75], [37, 38]
bbox_cbofs_rg = [lon_range[0], lat_range[0], lon_range[1], lat_range[1]]
source = mc.select_date_range(main_cat[model], timing='forecast', start_date=start, end_date=end)
ds_cbofs_rg = source.to_dask()
3. Curvilinear, single horizontal grid¶
[5]:
model = 'LOOFS'
bbox_loofs = [-78.8, 43.5, -77.5, 43.8]
source = mc.select_date_range(main_cat[model], timing='nowcast', start_date=start, end_date=end)
ds_loofs = source.to_dask()
4. Unstructured grid¶
[6]:
model = 'NGOFS2'
bbox_ngofs2 = [-98+360, 27, -97+360, 28]
source = mc.select_date_range(main_cat[model], timing='forecast', start_date=start, end_date=end)
ds_ngofs2 = source.to_dask()
Subset Spatially¶
1. Curvilinear, multiple horizontal grids¶
Subsetting in more complicated for this example case because it is a ROMS model that is both curvilinear and has multiple horizontal grids (such that different variables in the Dataset may have different associated horizontal grids).
Subset DataArray to box¶
Narrow only a single variable to the bounding box.
[7]:
ds_cbofs['zeta'].em.sub_bbox(bbox=bbox_cbofs).cf.isel(T=0).cf.plot(x='longitude', y='latitude')
[7]:
<matplotlib.collections.QuadMesh at 0x1676b9760>
Subset Dataset to box¶
Narrow all variables in the Dataset to the bounding box.
[8]:
ds_cbofs_ss = ds_cbofs.em.sub_bbox(bbox=bbox_cbofs)
ds_cbofs_ss
[8]:
<xarray.Dataset>
Dimensions: (tracer: 3, boundary: 4, s_rho: 20, s_w: 21, eta_rho: 124,
xi_rho: 151, eta_u: 124, xi_u: 150, eta_v: 123, xi_v: 149,
eta_psi: 123, xi_psi: 149, ocean_time: 24)
Coordinates: (12/19)
* s_rho (s_rho) float64 -0.975 -0.925 -0.875 ... -0.075 -0.025
* s_w (s_w) float64 -1.0 -0.95 -0.9 -0.85 ... -0.15 -0.1 -0.05 0.0
lon_rho (eta_rho, xi_rho) float64 dask.array<chunksize=(124, 151), meta=np.ndarray>
lat_rho (eta_rho, xi_rho) float64 dask.array<chunksize=(124, 151), meta=np.ndarray>
* xi_rho (xi_rho) int64 181 182 183 184 185 ... 327 328 329 330 331
* eta_rho (eta_rho) int64 3 4 5 6 7 8 9 ... 121 122 123 124 125 126
... ...
* eta_v (eta_v) int64 3 4 5 6 7 8 9 ... 119 120 121 122 123 124 125
lon_psi (eta_psi, xi_psi) float64 dask.array<chunksize=(123, 149), meta=np.ndarray>
lat_psi (eta_psi, xi_psi) float64 dask.array<chunksize=(123, 149), meta=np.ndarray>
* xi_psi (xi_psi) int64 182 183 184 185 186 ... 326 327 328 329 330
* eta_psi (eta_psi) int64 3 4 5 6 7 8 9 ... 120 121 122 123 124 125
* ocean_time (ocean_time) datetime64[ns] 2022-08-25T11:00:00 ... 2022-...
Dimensions without coordinates: tracer, boundary
Data variables: (12/97)
ntimes int32 ...
ndtfast int32 ...
dt float64 ...
dtfast float64 ...
dstart datetime64[ns] ...
nHIS int32 ...
... ...
temp (ocean_time, s_rho, eta_rho, xi_rho) float32 dask.array<chunksize=(1, 20, 124, 151), meta=np.ndarray>
salt (ocean_time, s_rho, eta_rho, xi_rho) float32 dask.array<chunksize=(1, 20, 124, 151), meta=np.ndarray>
oxygen (ocean_time, s_rho, eta_rho, xi_rho) float32 dask.array<chunksize=(1, 20, 124, 151), meta=np.ndarray>
Pair (ocean_time, eta_rho, xi_rho) float32 dask.array<chunksize=(1, 124, 151), meta=np.ndarray>
Uwind (ocean_time, eta_rho, xi_rho) float32 dask.array<chunksize=(1, 124, 151), meta=np.ndarray>
Vwind (ocean_time, eta_rho, xi_rho) float32 dask.array<chunksize=(1, 124, 151), meta=np.ndarray>
Attributes: (12/37)
file: nos.cbofs.fields.nowcast.20220825.t12z_0...
format: netCDF-4/HDF5 file
Conventions: CF-1.4, SGRID-0.3
type: ROMS/TOMS history file
title: cbofs nowcast RUN in operational mode
var_info: varinfo.dat
... ...
history: ROMS/TOMS, Version 3.9, Thursday - Augus...
ana_file: ROMS/Functionals/ana_btflux.h, ROMS/Func...
CPP_options: mode, ADD_FSOBC, ADD_M2OBC, ANA_BPFLUX, ...
bio_file: ROMS/Nonlinear/Biology/hypoxia_srm.h
DODS_EXTRA.Unlimited_Dimension: ocean_time
EXTRA_DIMENSION.N: 20- tracer: 3
- boundary: 4
- s_rho: 20
- s_w: 21
- eta_rho: 124
- xi_rho: 151
- eta_u: 124
- xi_u: 150
- eta_v: 123
- xi_v: 149
- eta_psi: 123
- xi_psi: 149
- ocean_time: 24
- s_rho(s_rho)float64-0.975 -0.925 ... -0.075 -0.025
- long_name :
- S-coordinate at RHO-points
- valid_min :
- -1.0
- valid_max :
- 0.0
- positive :
- up
- 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.975, -0.925, -0.875, -0.825, -0.775, -0.725, -0.675, -0.625, -0.575, -0.525, -0.475, -0.425, -0.375, -0.325, -0.275, -0.225, -0.175, -0.125, -0.075, -0.025]) - s_w(s_w)float64-1.0 -0.95 -0.9 ... -0.1 -0.05 0.0
- long_name :
- S-coordinate at W-points
- valid_min :
- -1.0
- valid_max :
- 0.0
- positive :
- up
- 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.95, -0.9 , -0.85, -0.8 , -0.75, -0.7 , -0.65, -0.6 , -0.55, -0.5 , -0.45, -0.4 , -0.35, -0.3 , -0.25, -0.2 , -0.15, -0.1 , -0.05, 0. ]) - lon_rho(eta_rho, xi_rho)float64dask.array<chunksize=(124, 151), meta=np.ndarray>
- long_name :
- longitude of RHO-points
- units :
- degree_east
- standard_name :
- longitude
- field :
- lon_rho, scalar
Array Chunk Bytes 146.28 kiB 146.28 kiB Shape (124, 151) (124, 151) Count 44 Tasks 1 Chunks Type float64 numpy.ndarray 151 124 - lat_rho(eta_rho, xi_rho)float64dask.array<chunksize=(124, 151), meta=np.ndarray>
- long_name :
- latitude of RHO-points
- units :
- degree_north
- standard_name :
- latitude
- field :
- lat_rho, scalar
Array Chunk Bytes 146.28 kiB 146.28 kiB Shape (124, 151) (124, 151) Count 44 Tasks 1 Chunks Type float64 numpy.ndarray 151 124 - xi_rho(xi_rho)int64181 182 183 184 ... 328 329 330 331
- axis :
- X
array([181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331]) - eta_rho(eta_rho)int643 4 5 6 7 8 ... 122 123 124 125 126
- axis :
- Y
array([ 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]) - lon_u(eta_u, xi_u)float64dask.array<chunksize=(124, 150), meta=np.ndarray>
- long_name :
- longitude of U-points
- units :
- degree_east
- standard_name :
- longitude
- field :
- lon_u, scalar
Array Chunk Bytes 145.31 kiB 145.31 kiB Shape (124, 150) (124, 150) Count 8 Tasks 1 Chunks Type float64 numpy.ndarray 150 124 - lat_u(eta_u, xi_u)float64dask.array<chunksize=(124, 150), meta=np.ndarray>
- long_name :
- latitude of U-points
- units :
- degree_north
- standard_name :
- latitude
- field :
- lat_u, scalar
Array Chunk Bytes 145.31 kiB 145.31 kiB Shape (124, 150) (124, 150) Count 8 Tasks 1 Chunks Type float64 numpy.ndarray 150 124 - xi_u(xi_u)int64181 182 183 184 ... 327 328 329 330
- axis :
- X
array([181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330]) - eta_u(eta_u)int643 4 5 6 7 8 ... 122 123 124 125 126
- axis :
- Y
array([ 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]) - lon_v(eta_v, xi_v)float64dask.array<chunksize=(123, 149), meta=np.ndarray>
- long_name :
- longitude of V-points
- units :
- degree_east
- standard_name :
- longitude
- field :
- lon_v, scalar
Array Chunk Bytes 143.18 kiB 143.18 kiB Shape (123, 149) (123, 149) Count 8 Tasks 1 Chunks Type float64 numpy.ndarray 149 123 - lat_v(eta_v, xi_v)float64dask.array<chunksize=(123, 149), meta=np.ndarray>
- long_name :
- latitude of V-points
- units :
- degree_north
- standard_name :
- latitude
- field :
- lat_v, scalar
Array Chunk Bytes 143.18 kiB 143.18 kiB Shape (123, 149) (123, 149) Count 8 Tasks 1 Chunks Type float64 numpy.ndarray 149 123 - xi_v(xi_v)int64183 184 185 186 ... 328 329 330 331
- axis :
- X
array([183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331]) - eta_v(eta_v)int643 4 5 6 7 8 ... 121 122 123 124 125
- axis :
- Y
array([ 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]) - lon_psi(eta_psi, xi_psi)float64dask.array<chunksize=(123, 149), meta=np.ndarray>
- long_name :
- longitude of PSI-points
- units :
- degree_east
- standard_name :
- longitude
- field :
- lon_psi, scalar
Array Chunk Bytes 143.18 kiB 143.18 kiB Shape (123, 149) (123, 149) Count 5 Tasks 1 Chunks Type float64 numpy.ndarray 149 123 - lat_psi(eta_psi, xi_psi)float64dask.array<chunksize=(123, 149), meta=np.ndarray>
- long_name :
- latitude of PSI-points
- units :
- degree_north
- standard_name :
- latitude
- field :
- lat_psi, scalar
Array Chunk Bytes 143.18 kiB 143.18 kiB Shape (123, 149) (123, 149) Count 5 Tasks 1 Chunks Type float64 numpy.ndarray 149 123 - xi_psi(xi_psi)int64182 183 184 185 ... 327 328 329 330
- axis :
- X
array([182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330]) - eta_psi(eta_psi)int643 4 5 6 7 8 ... 121 122 123 124 125
- axis :
- Y
array([ 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]) - ocean_time(ocean_time)datetime64[ns]2022-08-25T11:00:00 ... 2022-08-...
- long_name :
- time since initialization
- field :
- time, scalar, series
- _ChunkSizes :
- 512
- axis :
- T
array(['2022-08-25T11:00:00.000000000', '2022-08-25T12:00:00.000000000', '2022-08-25T13:00:00.000000000', '2022-08-25T14:00:00.000000000', '2022-08-25T15:00:00.000000000', '2022-08-25T16:00:00.000000000', '2022-08-25T17:00:00.000000000', '2022-08-25T18:00:00.000000000', '2022-08-25T19:00:00.000000000', '2022-08-25T20:00:00.000000000', '2022-08-25T21:00:00.000000000', '2022-08-25T22:00:00.000000000', '2022-08-25T23:00:00.000000000', '2022-08-26T00:00:00.000000000', '2022-08-26T01:00:00.000000000', '2022-08-26T02:00:00.000000000', '2022-08-26T03:00:00.000000000', '2022-08-26T04:00:00.000000000', '2022-08-26T05:00:00.000000000', '2022-08-26T06:00:00.000000000', '2022-08-26T07:00:00.000000000', '2022-08-26T08:00:00.000000000', '2022-08-26T09:00:00.000000000', '2022-08-26T10:00:00.000000000'], dtype='datetime64[ns]')
- ntimes()int32...
- long_name :
- number of long time-steps
array(4320, dtype=int32)
- ndtfast()int32...
- long_name :
- number of short time-steps
array(20, dtype=int32)
- dt()float64...
- long_name :
- size of long time-steps
- units :
- second
array(5.)
- dtfast()float64...
- long_name :
- size of short time-steps
- units :
- second
array(0.25)
- dstart()datetime64[ns]...
- long_name :
- time stamp assigned to model initilization
array('2022-08-25T06:00:00.000000000', dtype='datetime64[ns]') - nHIS()int32...
- long_name :
- number of time-steps between history records
array(720, dtype=int32)
- ndefHIS()int32...
- long_name :
- number of time-steps between the creation of history files
array(720, dtype=int32)
- nRST()int32...
- long_name :
- number of time-steps between restart records
- cycle :
- only latest two records are maintained
array(4320, dtype=int32)
- nSTA()int32...
- long_name :
- number of time-steps between stations records
array(72, dtype=int32)
- Falpha()float64...
- long_name :
- Power-law shape barotropic filter parameter
array(2.)
- Fbeta()float64...
- long_name :
- Power-law shape barotropic filter parameter
array(4.)
- Fgamma()float64...
- long_name :
- Power-law shape barotropic filter parameter
array(0.284)
- nl_tnu2(tracer)float64dask.array<chunksize=(3,), meta=np.ndarray>
- long_name :
- nonlinear model Laplacian mixing coefficient for tracers
- units :
- meter2 second-1
Array Chunk Bytes 24 B 24 B Shape (3,) (3,) Count 2 Tasks 1 Chunks Type float64 numpy.ndarray 3 1 - nl_visc2()float64...
- long_name :
- nonlinear model Laplacian mixing coefficient for momentum
- units :
- meter2 second-1
array(10.)
- LuvSponge()int32...
- long_name :
- horizontal viscosity sponge activation switch
- flag_values :
- [0 1]
- flag_meanings :
- .FALSE. .TRUE.
array(0, dtype=int32)
- LtracerSponge(tracer)int32dask.array<chunksize=(3,), meta=np.ndarray>
- long_name :
- horizontal diffusivity sponge activation switch
- flag_values :
- [0 1]
- flag_meanings :
- .FALSE. .TRUE.
Array Chunk Bytes 12 B 12 B Shape (3,) (3,) Count 2 Tasks 1 Chunks Type int32 numpy.ndarray 3 1 - Akt_bak(tracer)float64dask.array<chunksize=(3,), meta=np.ndarray>
- long_name :
- background vertical mixing coefficient for tracers
- units :
- meter2 second-1
Array Chunk Bytes 24 B 24 B Shape (3,) (3,) Count 2 Tasks 1 Chunks Type float64 numpy.ndarray 3 1 - Akv_bak()float64...
- long_name :
- background vertical mixing coefficient for momentum
- units :
- meter2 second-1
array(5.e-05)
- Akk_bak()float64...
- long_name :
- background vertical mixing coefficient for turbulent energy
- units :
- meter2 second-1
array(5.e-06)
- Akp_bak()float64...
- long_name :
- background vertical mixing coefficient for length scale
- units :
- meter2 second-1
array(5.e-06)
- rdrg()float64...
- long_name :
- linear drag coefficient
- units :
- meter second-1
array(0.0003)
- rdrg2()float64...
- long_name :
- quadratic drag coefficient
array(0.005)
- Zob()float64...
- long_name :
- bottom roughness
- units :
- meter
array(0.0005)
- Zos()float64...
- long_name :
- surface roughness
- units :
- meter
array(0.02)
- gls_p()float64...
- long_name :
- stability exponent
array(-1.)
- gls_m()float64...
- long_name :
- turbulent kinetic energy exponent
array(0.5)
- gls_n()float64...
- long_name :
- turbulent length scale exponent
array(-1.)
- gls_cmu0()float64...
- long_name :
- stability coefficient
array(0.5477)
- gls_c1()float64...
- long_name :
- shear production coefficient
array(0.555)
- gls_c2()float64...
- long_name :
- dissipation coefficient
array(0.833)
- gls_c3m()float64...
- long_name :
- buoyancy production coefficient (minus)
array(-0.6)
- gls_c3p()float64...
- long_name :
- buoyancy production coefficient (plus)
array(1.)
- gls_sigk()float64...
- long_name :
- constant Schmidt number for TKE
array(2.)
- gls_sigp()float64...
- long_name :
- constant Schmidt number for PSI
array(2.)
- gls_Kmin()float64...
- long_name :
- minimum value of specific turbulent kinetic energy
array(1.e-10)
- gls_Pmin()float64...
- long_name :
- minimum Value of dissipation
array(1.e-12)
- Charnok_alpha()float64...
- long_name :
- Charnok factor for surface roughness
array(1400.)
- Zos_hsig_alpha()float64...
- long_name :
- wave amplitude factor for surface roughness
array(0.5)
- sz_alpha()float64...
- long_name :
- surface flux from wave dissipation
array(0.25)
- CrgBan_cw()float64...
- long_name :
- surface flux due to Craig and Banner wave breaking
array(100.)
- Znudg()float64...
- long_name :
- free-surface nudging/relaxation inverse time scale
- units :
- day-1
array(0.)
- M2nudg()float64...
- long_name :
- 2D momentum nudging/relaxation inverse time scale
- units :
- day-1
array(0.)
- M3nudg()float64...
- long_name :
- 3D momentum nudging/relaxation inverse time scale
- units :
- day-1
array(0.)
- Tnudg(tracer)float64dask.array<chunksize=(3,), meta=np.ndarray>
- long_name :
- Tracers nudging/relaxation inverse time scale
- units :
- day-1
Array Chunk Bytes 24 B 24 B Shape (3,) (3,) Count 2 Tasks 1 Chunks Type float64 numpy.ndarray 3 1 - FSobc_in(boundary)float64dask.array<chunksize=(4,), meta=np.ndarray>
- long_name :
- free-surface inflow, nudging inverse time scale
- units :
- second-1
Array Chunk Bytes 32 B 32 B Shape (4,) (4,) Count 2 Tasks 1 Chunks Type float64 numpy.ndarray 4 1 - FSobc_out(boundary)float64dask.array<chunksize=(4,), meta=np.ndarray>
- long_name :
- free-surface outflow, nudging inverse time scale
- units :
- second-1
Array Chunk Bytes 32 B 32 B Shape (4,) (4,) Count 2 Tasks 1 Chunks Type float64 numpy.ndarray 4 1 - M2obc_in(boundary)float64dask.array<chunksize=(4,), meta=np.ndarray>
- long_name :
- 2D momentum inflow, nudging inverse time scale
- units :
- second-1
Array Chunk Bytes 32 B 32 B Shape (4,) (4,) Count 2 Tasks 1 Chunks Type float64 numpy.ndarray 4 1 - M2obc_out(boundary)float64dask.array<chunksize=(4,), meta=np.ndarray>
- long_name :
- 2D momentum outflow, nudging inverse time scale
- units :
- second-1
Array Chunk Bytes 32 B 32 B Shape (4,) (4,) Count 2 Tasks 1 Chunks Type float64 numpy.ndarray 4 1 - Tobc_in(boundary, tracer)float64dask.array<chunksize=(4, 3), meta=np.ndarray>
- long_name :
- tracers inflow, nudging inverse time scale
- units :
- second-1
Array Chunk Bytes 96 B 96 B Shape (4, 3) (4, 3) Count 2 Tasks 1 Chunks Type float64 numpy.ndarray 3 4 - Tobc_out(boundary, tracer)float64dask.array<chunksize=(4, 3), meta=np.ndarray>
- long_name :
- tracers outflow, nudging inverse time scale
- units :
- second-1
Array Chunk Bytes 96 B 96 B Shape (4, 3) (4, 3) Count 2 Tasks 1 Chunks Type float64 numpy.ndarray 3 4 - M3obc_in(boundary)float64dask.array<chunksize=(4,), meta=np.ndarray>
- long_name :
- 3D momentum inflow, nudging inverse time scale
- units :
- second-1
Array Chunk Bytes 32 B 32 B Shape (4,) (4,) Count 2 Tasks 1 Chunks Type float64 numpy.ndarray 4 1 - M3obc_out(boundary)float64dask.array<chunksize=(4,), meta=np.ndarray>
- long_name :
- 3D momentum outflow, nudging inverse time scale
- units :
- second-1
Array Chunk Bytes 32 B 32 B Shape (4,) (4,) Count 2 Tasks 1 Chunks Type float64 numpy.ndarray 4 1 - rho0()float64...
- long_name :
- mean density used in Boussinesq approximation
- units :
- kilogram meter-3
array(1025.)
- gamma2()float64...
- long_name :
- slipperiness parameter
array(1.)
- LuvSrc()int32...
- long_name :
- momentum point sources and sink activation switch
- flag_values :
- [0 1]
- flag_meanings :
- .FALSE. .TRUE.
array(1, dtype=int32)
- LwSrc()int32...
- long_name :
- mass point sources and sink activation switch
- flag_values :
- [0 1]
- flag_meanings :
- .FALSE. .TRUE.
array(0, dtype=int32)
- LtracerSrc(tracer)int32dask.array<chunksize=(3,), meta=np.ndarray>
- long_name :
- tracer point sources and sink activation switch
- flag_values :
- [0 1]
- flag_meanings :
- .FALSE. .TRUE.
Array Chunk Bytes 12 B 12 B Shape (3,) (3,) Count 2 Tasks 1 Chunks Type int32 numpy.ndarray 3 1 - LsshCLM()int32...
- long_name :
- sea surface height climatology processing switch
- flag_values :
- [0 1]
- flag_meanings :
- .FALSE. .TRUE.
array(0, dtype=int32)
- Lm2CLM()int32...
- long_name :
- 2D momentum climatology processing switch
- flag_values :
- [0 1]
- flag_meanings :
- .FALSE. .TRUE.
array(0, dtype=int32)
- Lm3CLM()int32...
- long_name :
- 3D momentum climatology processing switch
- flag_values :
- [0 1]
- flag_meanings :
- .FALSE. .TRUE.
array(0, dtype=int32)
- LtracerCLM(tracer)int32dask.array<chunksize=(3,), meta=np.ndarray>
- long_name :
- tracer climatology processing switch
- flag_values :
- [0 1]
- flag_meanings :
- .FALSE. .TRUE.
Array Chunk Bytes 12 B 12 B Shape (3,) (3,) Count 2 Tasks 1 Chunks Type int32 numpy.ndarray 3 1 - LnudgeM2CLM()int32...
- long_name :
- 2D momentum climatology nudging activation switch
- flag_values :
- [0 1]
- flag_meanings :
- .FALSE. .TRUE.
array(0, dtype=int32)
- LnudgeM3CLM()int32...
- long_name :
- 3D momentum climatology nudging activation switch
- flag_values :
- [0 1]
- flag_meanings :
- .FALSE. .TRUE.
array(0, dtype=int32)
- LnudgeTCLM(tracer)int32dask.array<chunksize=(3,), meta=np.ndarray>
- long_name :
- tracer climatology nudging activation switch
- flag_values :
- [0 1]
- flag_meanings :
- .FALSE. .TRUE.
Array Chunk Bytes 12 B 12 B Shape (3,) (3,) Count 2 Tasks 1 Chunks Type int32 numpy.ndarray 3 1 - BioIter()int32...
- long_name :
- number of iterations to achieve convergence
array(1, dtype=int32)
- ResRate()float64...
- long_name :
- total biological respiration rate
- units :
- day-1
array(0.00011)
- spherical()int32...
- long_name :
- grid type logical switch
- flag_values :
- [0 1]
- flag_meanings :
- Cartesian spherical
array(1, dtype=int32)
- xl()float64...
- long_name :
- domain length in the XI-direction
- units :
- meter
array(6.943582)
- el()float64...
- long_name :
- domain length in the ETA-direction
- units :
- meter
array(3.42146)
- Vtransform()int32...
- long_name :
- vertical terrain-following transformation equation
array(1, dtype=int32)
- Vstretching()int32...
- long_name :
- vertical terrain-following stretching function
array(1, dtype=int32)
- theta_s()float64...
- long_name :
- S-coordinate surface control parameter
array(4.5)
- theta_b()float64...
- long_name :
- S-coordinate bottom control parameter
array(0.95)
- Tcline()float64...
- long_name :
- S-coordinate surface/bottom layer width
- units :
- meter
array(10.)
- hc()float64...
- long_name :
- S-coordinate parameter, critical depth
- units :
- meter
array(2.)
- grid()int32...
- cf_role :
- grid_topology
- topology_dimension :
- 2
- node_dimensions :
- xi_psi eta_psi
- face_dimensions :
- xi_rho: xi_psi (padding: both) eta_rho: eta_psi (padding: both)
- edge1_dimensions :
- xi_u: xi_psi eta_u: eta_psi (padding: both)
- edge2_dimensions :
- xi_v: xi_psi (padding: both) eta_v: eta_psi
- node_coordinates :
- lon_psi lat_psi
- face_coordinates :
- lon_rho lat_rho
- edge1_coordinates :
- lon_u lat_u
- edge2_coordinates :
- lon_v lat_v
- vertical_dimensions :
- s_rho: s_w (padding: none)
array(1, dtype=int32)
- Cs_r(s_rho)float64dask.array<chunksize=(20,), 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 160 B 160 B Shape (20,) (20,) Count 2 Tasks 1 Chunks Type float64 numpy.ndarray 20 1 - Cs_w(s_w)float64dask.array<chunksize=(21,), 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 168 B 168 B Shape (21,) (21,) Count 2 Tasks 1 Chunks Type float64 numpy.ndarray 21 1 - h(eta_rho, xi_rho)float64dask.array<chunksize=(124, 151), meta=np.ndarray>
- long_name :
- bathymetry at RHO-points
- units :
- meter
- grid :
- grid
- location :
- face
- field :
- bath, scalar
- standard_name :
- sea_floor_depth
Array Chunk Bytes 146.28 kiB 146.28 kiB Shape (124, 151) (124, 151) Count 7 Tasks 1 Chunks Type float64 numpy.ndarray 151 124 - f(eta_rho, xi_rho)float64dask.array<chunksize=(124, 151), meta=np.ndarray>
- long_name :
- Coriolis parameter at RHO-points
- units :
- second-1
- grid :
- grid
- location :
- face
- field :
- coriolis, scalar
Array Chunk Bytes 146.28 kiB 146.28 kiB Shape (124, 151) (124, 151) Count 7 Tasks 1 Chunks Type float64 numpy.ndarray 151 124 - pm(eta_rho, xi_rho)float64dask.array<chunksize=(124, 151), meta=np.ndarray>
- long_name :
- curvilinear coordinate metric in XI
- units :
- meter-1
- grid :
- grid
- location :
- face
- field :
- pm, scalar
Array Chunk Bytes 146.28 kiB 146.28 kiB Shape (124, 151) (124, 151) Count 7 Tasks 1 Chunks Type float64 numpy.ndarray 151 124 - pn(eta_rho, xi_rho)float64dask.array<chunksize=(124, 151), meta=np.ndarray>
- long_name :
- curvilinear coordinate metric in ETA
- units :
- meter-1
- grid :
- grid
- location :
- face
- field :
- pn, scalar
Array Chunk Bytes 146.28 kiB 146.28 kiB Shape (124, 151) (124, 151) Count 7 Tasks 1 Chunks Type float64 numpy.ndarray 151 124 - angle(eta_rho, xi_rho)float64dask.array<chunksize=(124, 151), meta=np.ndarray>
- long_name :
- angle between XI-axis and EAST
- units :
- radians
- grid :
- grid
- location :
- face
- field :
- angle, scalar
Array Chunk Bytes 146.28 kiB 146.28 kiB Shape (124, 151) (124, 151) Count 7 Tasks 1 Chunks Type float64 numpy.ndarray 151 124 - mask_rho(eta_rho, xi_rho)float64dask.array<chunksize=(124, 151), meta=np.ndarray>
- long_name :
- mask on RHO-points
- flag_values :
- [0. 1.]
- flag_meanings :
- land water
- grid :
- grid
- location :
- face
Array Chunk Bytes 146.28 kiB 146.28 kiB Shape (124, 151) (124, 151) Count 7 Tasks 1 Chunks Type float64 numpy.ndarray 151 124 - mask_u(eta_u, xi_u)float64dask.array<chunksize=(124, 150), meta=np.ndarray>
- long_name :
- mask on U-points
- flag_values :
- [0. 1.]
- flag_meanings :
- land water
- grid :
- grid
- location :
- edge1
Array Chunk Bytes 145.31 kiB 145.31 kiB Shape (124, 150) (124, 150) Count 7 Tasks 1 Chunks Type float64 numpy.ndarray 150 124 - mask_v(eta_v, xi_v)float64dask.array<chunksize=(123, 149), meta=np.ndarray>
- long_name :
- mask on V-points
- flag_values :
- [0. 1.]
- flag_meanings :
- land water
- grid :
- grid
- location :
- edge2
Array Chunk Bytes 143.18 kiB 143.18 kiB Shape (123, 149) (123, 149) Count 7 Tasks 1 Chunks Type float64 numpy.ndarray 149 123 - mask_psi(eta_psi, xi_psi)float64dask.array<chunksize=(123, 149), meta=np.ndarray>
- long_name :
- mask on psi-points
- flag_values :
- [0. 1.]
- flag_meanings :
- land water
- grid :
- grid
- location :
- node
Array Chunk Bytes 143.18 kiB 143.18 kiB Shape (123, 149) (123, 149) Count 7 Tasks 1 Chunks Type float64 numpy.ndarray 149 123 - zeta(ocean_time, eta_rho, xi_rho)float32dask.array<chunksize=(1, 124, 151), meta=np.ndarray>
- long_name :
- free-surface
- units :
- meter
- time :
- ocean_time
- grid :
- grid
- location :
- face
- field :
- free-surface, scalar, series
- _ChunkSizes :
- [ 1 291 332]
- standard_name :
- sea_surface_elevation
Array Chunk Bytes 1.71 MiB 73.14 kiB Shape (24, 124, 151) (1, 124, 151) Count 259 Tasks 24 Chunks Type float32 numpy.ndarray 151 124 24 - u(ocean_time, s_rho, eta_u, xi_u)float32dask.array<chunksize=(1, 20, 124, 150), meta=np.ndarray>
- long_name :
- u-momentum component
- units :
- meter second-1
- time :
- ocean_time
- grid :
- grid
- location :
- edge1
- field :
- u-velocity, scalar, series
- _ChunkSizes :
- [ 1 10 146 166]
- standard_name :
- eastward_sea_water_velocity
Array Chunk Bytes 34.06 MiB 1.42 MiB Shape (24, 20, 124, 150) (1, 20, 124, 150) Count 259 Tasks 24 Chunks Type float32 numpy.ndarray 24 1 150 124 20 - v(ocean_time, s_rho, eta_v, xi_v)float32dask.array<chunksize=(1, 20, 123, 149), meta=np.ndarray>
- long_name :
- v-momentum component
- units :
- meter second-1
- time :
- ocean_time
- grid :
- grid
- location :
- edge2
- field :
- v-velocity, scalar, series
- _ChunkSizes :
- [ 1 10 145 166]
- standard_name :
- northward_sea_water_velocity
Array Chunk Bytes 33.56 MiB 1.40 MiB Shape (24, 20, 123, 149) (1, 20, 123, 149) Count 259 Tasks 24 Chunks Type float32 numpy.ndarray 24 1 149 123 20 - w(ocean_time, s_w, eta_rho, xi_rho)float32dask.array<chunksize=(1, 21, 124, 151), meta=np.ndarray>
- long_name :
- vertical momentum component
- units :
- meter second-1
- time :
- ocean_time
- standard_name :
- upward_sea_water_velocity
- grid :
- grid
- location :
- face
- field :
- w-velocity, scalar, series
- _ChunkSizes :
- [ 1 11 146 166]
Array Chunk Bytes 36.00 MiB 1.50 MiB Shape (24, 21, 124, 151) (1, 21, 124, 151) Count 259 Tasks 24 Chunks Type float32 numpy.ndarray 24 1 151 124 21 - temp(ocean_time, s_rho, eta_rho, xi_rho)float32dask.array<chunksize=(1, 20, 124, 151), meta=np.ndarray>
- long_name :
- potential temperature
- units :
- Celsius
- time :
- ocean_time
- grid :
- grid
- location :
- face
- field :
- temperature, scalar, series
- _ChunkSizes :
- [ 1 10 146 166]
- standard_name :
- sea_water_temperature
Array Chunk Bytes 34.28 MiB 1.43 MiB Shape (24, 20, 124, 151) (1, 20, 124, 151) Count 259 Tasks 24 Chunks Type float32 numpy.ndarray 24 1 151 124 20 - salt(ocean_time, s_rho, eta_rho, xi_rho)float32dask.array<chunksize=(1, 20, 124, 151), meta=np.ndarray>
- long_name :
- salinity
- time :
- ocean_time
- grid :
- grid
- location :
- face
- field :
- salinity, scalar, series
- _ChunkSizes :
- [ 1 10 146 166]
- standard_name :
- sea_water_practical_salinity
Array Chunk Bytes 34.28 MiB 1.43 MiB Shape (24, 20, 124, 151) (1, 20, 124, 151) Count 259 Tasks 24 Chunks Type float32 numpy.ndarray 24 1 151 124 20 - oxygen(ocean_time, s_rho, eta_rho, xi_rho)float32dask.array<chunksize=(1, 20, 124, 151), meta=np.ndarray>
- long_name :
- dissolved oxygen concentration
- units :
- millimole_oxygen meter-3
- time :
- ocean_time
- grid :
- grid
- location :
- face
- field :
- Oxygen, scalar, series
- _ChunkSizes :
- [ 1 10 146 166]
Array Chunk Bytes 34.28 MiB 1.43 MiB Shape (24, 20, 124, 151) (1, 20, 124, 151) Count 259 Tasks 24 Chunks Type float32 numpy.ndarray 24 1 151 124 20 - Pair(ocean_time, eta_rho, xi_rho)float32dask.array<chunksize=(1, 124, 151), meta=np.ndarray>
- long_name :
- surface air pressure
- units :
- millibar
- time :
- ocean_time
- grid :
- grid
- location :
- face
- field :
- Pair, scalar, series
- _ChunkSizes :
- [ 1 291 332]
Array Chunk Bytes 1.71 MiB 73.14 kiB Shape (24, 124, 151) (1, 124, 151) Count 259 Tasks 24 Chunks Type float32 numpy.ndarray 151 124 24 - Uwind(ocean_time, eta_rho, xi_rho)float32dask.array<chunksize=(1, 124, 151), meta=np.ndarray>
- long_name :
- surface u-wind component
- units :
- meter second-1
- time :
- ocean_time
- grid :
- grid
- location :
- face
- field :
- u-wind, scalar, series
- _ChunkSizes :
- [ 1 291 332]
- standard_name :
- eastward_wind
Array Chunk Bytes 1.71 MiB 73.14 kiB Shape (24, 124, 151) (1, 124, 151) Count 259 Tasks 24 Chunks Type float32 numpy.ndarray 151 124 24 - Vwind(ocean_time, eta_rho, xi_rho)float32dask.array<chunksize=(1, 124, 151), meta=np.ndarray>
- long_name :
- surface v-wind component
- units :
- meter second-1
- time :
- ocean_time
- grid :
- grid
- location :
- face
- field :
- v-wind, scalar, series
- _ChunkSizes :
- [ 1 291 332]
- standard_name :
- northward_wind
Array Chunk Bytes 1.71 MiB 73.14 kiB Shape (24, 124, 151) (1, 124, 151) Count 259 Tasks 24 Chunks Type float32 numpy.ndarray 151 124 24
- file :
- nos.cbofs.fields.nowcast.20220825.t12z_0002.nc
- format :
- netCDF-4/HDF5 file
- Conventions :
- CF-1.4, SGRID-0.3
- type :
- ROMS/TOMS history file
- title :
- cbofs nowcast RUN in operational mode
- var_info :
- varinfo.dat
- rst_file :
- nos.cbofs.rst.nowcast.20220825.t12z.nc
- his_base :
- nos.cbofs.fields.nowcast.20220825.t12z
- sta_file :
- nos.cbofs.stations.nowcast.20220825.t12z.nc
- grd_file :
- nos.cbofs.romsgrid.nc
- ini_file :
- nos.cbofs.init.nowcast.20220825.t12z.nc
- tide_file :
- nos.cbofs.roms.tides.nc
- frc_file_01 :
- nos.cbofs.met.nowcast.20220825.t12z.nc
- frc_file_02 :
- nos.cbofs.respirate.nc
- bry_file_01 :
- nos.cbofs.obc.20220825.t12z.nc
- script_file :
- cbofs_ROMS_nowcast.in
- bpar_file :
- nos.cbofs.bio.in
- spos_file :
- nos.cbofs.stations.in
- NLM_TADV :
- ADVECTION: HORIZONTAL VERTICAL temp: HSIMT HSIMT salt: HSIMT HSIMT oxygen: HSIMT HSIMT
- NLM_LBC :
- EDGE: WEST SOUTH EAST NORTH zeta: Clo Cha Cha Clo ubar: Clo Fla Fla Clo vbar: Clo Fla Fla Clo u: Clo Rad Rad Clo v: Clo Rad Rad Clo temp: Clo RadNud RadNud Clo salt: Clo RadNud RadNud Clo oxygen: Clo RadNud RadNud Clo tke: Clo Gra Gra Clo
- svn_url :
- svn_rev :
- code_dir :
- /lfs/h1/ops/prod/packages/nosofs.v3.4.2/sorc/ROMS.fd
- header_dir :
- /lfs/h1/ops/prod/packages/nosofs.v3.4.2/sorc/ROMS.fd/ROMS/Include
- header_file :
- cbofs.h
- os :
- Linux
- cpu :
- x86_64
- compiler_system :
- ftn-intel
- compiler_command :
- /opt/cray/pe/craype/2.7.10/bin/ftn
- compiler_flags :
- -fp-model precise -ip -O2
- tiling :
- 008x016
- history :
- ROMS/TOMS, Version 3.9, Thursday - August 25, 2022 - 12:48:02 PM
- ana_file :
- ROMS/Functionals/ana_btflux.h, ROMS/Functionals/ana_rain.h, ROMS/Functionals/ana_stflux.h
- CPP_options :
- mode, ADD_FSOBC, ADD_M2OBC, ANA_BPFLUX, ANA_BSFLUX, ANA_BTFLUX, ANA_RAIN, ANA_SPFLUX, ANA_SSFLUX, ASSUMED_SHAPE, ATM_PRESS, !BOUNDARY_ALLGATHER, BULK_FLUXES, !COLLECT_ALL..., CURVGRID, DIFF_GRID, DJ_GRADPS, DOUBLE_PRECISION, EMINUSP, GLS_MIXING, HDF5, HYPOXIA_SRM, LIMIT_STFLX_COOLING, KANTHA_CLAYSON, LONGWAVE_OUT, MASKING, MIX_GEO_TS, MIX_S_UV, MPI, NONLINEAR, NONLIN_EOS, NO_LBC_ATT, N2S2_HORAVG, PERFECT_RESTART, POWER_LAW, PROFILE, K_GSCHEME, RADIATION_2D, REDUCE_ALLREDUCE, !RST_SINGLE, SALINITY, SOLAR_SOURCE, SOLVE3D, SSH_TIDES, STATIONS, SURFACE_DO_SATURATION, TS_DIF2, UV_ADV, UV_COR, UV_U3HADVECTION, UV_C4VADVECTION, UV_QDRAG, UV_TIDES, UV_VIS2, VAR_RHO_2D, VISC_GRID
- bio_file :
- ROMS/Nonlinear/Biology/hypoxia_srm.h
- DODS_EXTRA.Unlimited_Dimension :
- ocean_time
- EXTRA_DIMENSION.N :
- 20
[9]:
ds_cbofs_ss['zeta'].cf.isel(T=0).cf.plot(x='longitude', y='latitude')
[9]:
<matplotlib.collections.QuadMesh at 0x1666313a0>
Subset Dataset to proper set of grids¶
Return a Dataset with a full suite of horizontal grids of the proper relative sizes but narrowed to the bounding box. Because this model axes don’t align with longitude and latitude, the shape of the result is different.
This function won’t run with a DataArray.
[10]:
ds_cbofs_ss = ds_cbofs.em.sub_grid(bbox=bbox_cbofs)
ds_cbofs_ss['zeta'].cf.isel(T=0).cf.plot(x='longitude', y='latitude')
[10]:
<matplotlib.collections.QuadMesh at 0x1665fc550>
[11]:
ds_cbofs_ss
[11]:
<xarray.Dataset>
Dimensions: (tracer: 3, boundary: 4, s_rho: 20, s_w: 21, eta_rho: 124,
xi_rho: 151, eta_u: 124, xi_u: 150, eta_v: 123, xi_v: 151,
eta_psi: 123, xi_psi: 150, ocean_time: 24)
Coordinates: (12/19)
* s_rho (s_rho) float64 -0.975 -0.925 -0.875 ... -0.075 -0.025
* s_w (s_w) float64 -1.0 -0.95 -0.9 -0.85 ... -0.15 -0.1 -0.05 0.0
lon_rho (eta_rho, xi_rho) float64 dask.array<chunksize=(124, 151), meta=np.ndarray>
lat_rho (eta_rho, xi_rho) float64 dask.array<chunksize=(124, 151), meta=np.ndarray>
lon_u (eta_u, xi_u) float64 dask.array<chunksize=(124, 150), meta=np.ndarray>
lat_u (eta_u, xi_u) float64 dask.array<chunksize=(124, 150), meta=np.ndarray>
... ...
* xi_v (xi_v) int64 181 182 183 184 185 186 ... 327 328 329 330 331
* xi_psi (xi_psi) int64 181 182 183 184 185 ... 326 327 328 329 330
* eta_rho (eta_rho) int64 3 4 5 6 7 8 9 ... 121 122 123 124 125 126
* eta_u (eta_u) int64 3 4 5 6 7 8 9 ... 120 121 122 123 124 125 126
* eta_v (eta_v) int64 3 4 5 6 7 8 9 ... 119 120 121 122 123 124 125
* eta_psi (eta_psi) int64 3 4 5 6 7 8 9 ... 120 121 122 123 124 125
Dimensions without coordinates: tracer, boundary
Data variables: (12/97)
ntimes int32 ...
ndtfast int32 ...
dt float64 ...
dtfast float64 ...
dstart datetime64[ns] ...
nHIS int32 ...
... ...
temp (ocean_time, s_rho, eta_rho, xi_rho) float32 dask.array<chunksize=(1, 20, 124, 151), meta=np.ndarray>
salt (ocean_time, s_rho, eta_rho, xi_rho) float32 dask.array<chunksize=(1, 20, 124, 151), meta=np.ndarray>
oxygen (ocean_time, s_rho, eta_rho, xi_rho) float32 dask.array<chunksize=(1, 20, 124, 151), meta=np.ndarray>
Pair (ocean_time, eta_rho, xi_rho) float32 dask.array<chunksize=(1, 124, 151), meta=np.ndarray>
Uwind (ocean_time, eta_rho, xi_rho) float32 dask.array<chunksize=(1, 124, 151), meta=np.ndarray>
Vwind (ocean_time, eta_rho, xi_rho) float32 dask.array<chunksize=(1, 124, 151), meta=np.ndarray>
Attributes: (12/37)
file: nos.cbofs.fields.nowcast.20220825.t12z_0...
format: netCDF-4/HDF5 file
Conventions: CF-1.4, SGRID-0.3
type: ROMS/TOMS history file
title: cbofs nowcast RUN in operational mode
var_info: varinfo.dat
... ...
history: ROMS/TOMS, Version 3.9, Thursday - Augus...
ana_file: ROMS/Functionals/ana_btflux.h, ROMS/Func...
CPP_options: mode, ADD_FSOBC, ADD_M2OBC, ANA_BPFLUX, ...
bio_file: ROMS/Nonlinear/Biology/hypoxia_srm.h
DODS_EXTRA.Unlimited_Dimension: ocean_time
EXTRA_DIMENSION.N: 20- tracer: 3
- boundary: 4
- s_rho: 20
- s_w: 21
- eta_rho: 124
- xi_rho: 151
- eta_u: 124
- xi_u: 150
- eta_v: 123
- xi_v: 151
- eta_psi: 123
- xi_psi: 150
- ocean_time: 24
- s_rho(s_rho)float64-0.975 -0.925 ... -0.075 -0.025
- long_name :
- S-coordinate at RHO-points
- valid_min :
- -1.0
- valid_max :
- 0.0
- positive :
- up
- 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.975, -0.925, -0.875, -0.825, -0.775, -0.725, -0.675, -0.625, -0.575, -0.525, -0.475, -0.425, -0.375, -0.325, -0.275, -0.225, -0.175, -0.125, -0.075, -0.025]) - s_w(s_w)float64-1.0 -0.95 -0.9 ... -0.1 -0.05 0.0
- long_name :
- S-coordinate at W-points
- valid_min :
- -1.0
- valid_max :
- 0.0
- positive :
- up
- 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.95, -0.9 , -0.85, -0.8 , -0.75, -0.7 , -0.65, -0.6 , -0.55, -0.5 , -0.45, -0.4 , -0.35, -0.3 , -0.25, -0.2 , -0.15, -0.1 , -0.05, 0. ]) - lon_rho(eta_rho, xi_rho)float64dask.array<chunksize=(124, 151), meta=np.ndarray>
- long_name :
- longitude of RHO-points
- units :
- degree_east
- standard_name :
- longitude
- field :
- lon_rho, scalar
Array Chunk Bytes 146.28 kiB 146.28 kiB Shape (124, 151) (124, 151) Count 4 Tasks 1 Chunks Type float64 numpy.ndarray 151 124 - lat_rho(eta_rho, xi_rho)float64dask.array<chunksize=(124, 151), meta=np.ndarray>
- long_name :
- latitude of RHO-points
- units :
- degree_north
- standard_name :
- latitude
- field :
- lat_rho, scalar
Array Chunk Bytes 146.28 kiB 146.28 kiB Shape (124, 151) (124, 151) Count 4 Tasks 1 Chunks Type float64 numpy.ndarray 151 124 - lon_u(eta_u, xi_u)float64dask.array<chunksize=(124, 150), meta=np.ndarray>
- long_name :
- longitude of U-points
- units :
- degree_east
- standard_name :
- longitude
- field :
- lon_u, scalar
Array Chunk Bytes 145.31 kiB 145.31 kiB Shape (124, 150) (124, 150) Count 4 Tasks 1 Chunks Type float64 numpy.ndarray 150 124 - lat_u(eta_u, xi_u)float64dask.array<chunksize=(124, 150), meta=np.ndarray>
- long_name :
- latitude of U-points
- units :
- degree_north
- standard_name :
- latitude
- field :
- lat_u, scalar
Array Chunk Bytes 145.31 kiB 145.31 kiB Shape (124, 150) (124, 150) Count 4 Tasks 1 Chunks Type float64 numpy.ndarray 150 124 - lon_v(eta_v, xi_v)float64dask.array<chunksize=(123, 151), meta=np.ndarray>
- long_name :
- longitude of V-points
- units :
- degree_east
- standard_name :
- longitude
- field :
- lon_v, scalar
Array Chunk Bytes 145.10 kiB 145.10 kiB Shape (123, 151) (123, 151) Count 4 Tasks 1 Chunks Type float64 numpy.ndarray 151 123 - lat_v(eta_v, xi_v)float64dask.array<chunksize=(123, 151), meta=np.ndarray>
- long_name :
- latitude of V-points
- units :
- degree_north
- standard_name :
- latitude
- field :
- lat_v, scalar
Array Chunk Bytes 145.10 kiB 145.10 kiB Shape (123, 151) (123, 151) Count 4 Tasks 1 Chunks Type float64 numpy.ndarray 151 123 - lon_psi(eta_psi, xi_psi)float64dask.array<chunksize=(123, 150), meta=np.ndarray>
- long_name :
- longitude of PSI-points
- units :
- degree_east
- standard_name :
- longitude
- field :
- lon_psi, scalar
Array Chunk Bytes 144.14 kiB 144.14 kiB Shape (123, 150) (123, 150) Count 4 Tasks 1 Chunks Type float64 numpy.ndarray 150 123 - lat_psi(eta_psi, xi_psi)float64dask.array<chunksize=(123, 150), meta=np.ndarray>
- long_name :
- latitude of PSI-points
- units :
- degree_north
- standard_name :
- latitude
- field :
- lat_psi, scalar
Array Chunk Bytes 144.14 kiB 144.14 kiB Shape (123, 150) (123, 150) Count 4 Tasks 1 Chunks Type float64 numpy.ndarray 150 123 - ocean_time(ocean_time)datetime64[ns]2022-08-25T11:00:00 ... 2022-08-...
- long_name :
- time since initialization
- field :
- time, scalar, series
- _ChunkSizes :
- 512
- axis :
- T
array(['2022-08-25T11:00:00.000000000', '2022-08-25T12:00:00.000000000', '2022-08-25T13:00:00.000000000', '2022-08-25T14:00:00.000000000', '2022-08-25T15:00:00.000000000', '2022-08-25T16:00:00.000000000', '2022-08-25T17:00:00.000000000', '2022-08-25T18:00:00.000000000', '2022-08-25T19:00:00.000000000', '2022-08-25T20:00:00.000000000', '2022-08-25T21:00:00.000000000', '2022-08-25T22:00:00.000000000', '2022-08-25T23:00:00.000000000', '2022-08-26T00:00:00.000000000', '2022-08-26T01:00:00.000000000', '2022-08-26T02:00:00.000000000', '2022-08-26T03:00:00.000000000', '2022-08-26T04:00:00.000000000', '2022-08-26T05:00:00.000000000', '2022-08-26T06:00:00.000000000', '2022-08-26T07:00:00.000000000', '2022-08-26T08:00:00.000000000', '2022-08-26T09:00:00.000000000', '2022-08-26T10:00:00.000000000'], dtype='datetime64[ns]') - xi_rho(xi_rho)int64181 182 183 184 ... 328 329 330 331
- axis :
- X
array([181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331]) - xi_u(xi_u)int64181 182 183 184 ... 327 328 329 330
- axis :
- X
array([181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330]) - xi_v(xi_v)int64181 182 183 184 ... 328 329 330 331
- axis :
- X
array([181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331]) - xi_psi(xi_psi)int64181 182 183 184 ... 327 328 329 330
- axis :
- X
array([181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330]) - eta_rho(eta_rho)int643 4 5 6 7 8 ... 122 123 124 125 126
- axis :
- Y
array([ 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]) - eta_u(eta_u)int643 4 5 6 7 8 ... 122 123 124 125 126
- axis :
- Y
array([ 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]) - eta_v(eta_v)int643 4 5 6 7 8 ... 121 122 123 124 125
- axis :
- Y
array([ 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]) - eta_psi(eta_psi)int643 4 5 6 7 8 ... 121 122 123 124 125
- axis :
- Y
array([ 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])
- ntimes()int32...
- long_name :
- number of long time-steps
array(4320, dtype=int32)
- ndtfast()int32...
- long_name :
- number of short time-steps
array(20, dtype=int32)
- dt()float64...
- long_name :
- size of long time-steps
- units :
- second
array(5.)
- dtfast()float64...
- long_name :
- size of short time-steps
- units :
- second
array(0.25)
- dstart()datetime64[ns]...
- long_name :
- time stamp assigned to model initilization
array('2022-08-25T06:00:00.000000000', dtype='datetime64[ns]') - nHIS()int32...
- long_name :
- number of time-steps between history records
array(720, dtype=int32)
- ndefHIS()int32...
- long_name :
- number of time-steps between the creation of history files
array(720, dtype=int32)
- nRST()int32...
- long_name :
- number of time-steps between restart records
- cycle :
- only latest two records are maintained
array(4320, dtype=int32)
- nSTA()int32...
- long_name :
- number of time-steps between stations records
array(72, dtype=int32)
- Falpha()float64...
- long_name :
- Power-law shape barotropic filter parameter
array(2.)
- Fbeta()float64...
- long_name :
- Power-law shape barotropic filter parameter
array(4.)
- Fgamma()float64...
- long_name :
- Power-law shape barotropic filter parameter
array(0.284)
- nl_tnu2(tracer)float64dask.array<chunksize=(3,), meta=np.ndarray>
- long_name :
- nonlinear model Laplacian mixing coefficient for tracers
- units :
- meter2 second-1
Array Chunk Bytes 24 B 24 B Shape (3,) (3,) Count 2 Tasks 1 Chunks Type float64 numpy.ndarray 3 1 - nl_visc2()float64...
- long_name :
- nonlinear model Laplacian mixing coefficient for momentum
- units :
- meter2 second-1
array(10.)
- LuvSponge()int32...
- long_name :
- horizontal viscosity sponge activation switch
- flag_values :
- [0 1]
- flag_meanings :
- .FALSE. .TRUE.
array(0, dtype=int32)
- LtracerSponge(tracer)int32dask.array<chunksize=(3,), meta=np.ndarray>
- long_name :
- horizontal diffusivity sponge activation switch
- flag_values :
- [0 1]
- flag_meanings :
- .FALSE. .TRUE.
Array Chunk Bytes 12 B 12 B Shape (3,) (3,) Count 2 Tasks 1 Chunks Type int32 numpy.ndarray 3 1 - Akt_bak(tracer)float64dask.array<chunksize=(3,), meta=np.ndarray>
- long_name :
- background vertical mixing coefficient for tracers
- units :
- meter2 second-1
Array Chunk Bytes 24 B 24 B Shape (3,) (3,) Count 2 Tasks 1 Chunks Type float64 numpy.ndarray 3 1 - Akv_bak()float64...
- long_name :
- background vertical mixing coefficient for momentum
- units :
- meter2 second-1
array(5.e-05)
- Akk_bak()float64...
- long_name :
- background vertical mixing coefficient for turbulent energy
- units :
- meter2 second-1
array(5.e-06)
- Akp_bak()float64...
- long_name :
- background vertical mixing coefficient for length scale
- units :
- meter2 second-1
array(5.e-06)
- rdrg()float64...
- long_name :
- linear drag coefficient
- units :
- meter second-1
array(0.0003)
- rdrg2()float64...
- long_name :
- quadratic drag coefficient
array(0.005)
- Zob()float64...
- long_name :
- bottom roughness
- units :
- meter
array(0.0005)
- Zos()float64...
- long_name :
- surface roughness
- units :
- meter
array(0.02)
- gls_p()float64...
- long_name :
- stability exponent
array(-1.)
- gls_m()float64...
- long_name :
- turbulent kinetic energy exponent
array(0.5)
- gls_n()float64...
- long_name :
- turbulent length scale exponent
array(-1.)
- gls_cmu0()float64...
- long_name :
- stability coefficient
array(0.5477)
- gls_c1()float64...
- long_name :
- shear production coefficient
array(0.555)
- gls_c2()float64...
- long_name :
- dissipation coefficient
array(0.833)
- gls_c3m()float64...
- long_name :
- buoyancy production coefficient (minus)
array(-0.6)
- gls_c3p()float64...
- long_name :
- buoyancy production coefficient (plus)
array(1.)
- gls_sigk()float64...
- long_name :
- constant Schmidt number for TKE
array(2.)
- gls_sigp()float64...
- long_name :
- constant Schmidt number for PSI
array(2.)
- gls_Kmin()float64...
- long_name :
- minimum value of specific turbulent kinetic energy
array(1.e-10)
- gls_Pmin()float64...
- long_name :
- minimum Value of dissipation
array(1.e-12)
- Charnok_alpha()float64...
- long_name :
- Charnok factor for surface roughness
array(1400.)
- Zos_hsig_alpha()float64...
- long_name :
- wave amplitude factor for surface roughness
array(0.5)
- sz_alpha()float64...
- long_name :
- surface flux from wave dissipation
array(0.25)
- CrgBan_cw()float64...
- long_name :
- surface flux due to Craig and Banner wave breaking
array(100.)
- Znudg()float64...
- long_name :
- free-surface nudging/relaxation inverse time scale
- units :
- day-1
array(0.)
- M2nudg()float64...
- long_name :
- 2D momentum nudging/relaxation inverse time scale
- units :
- day-1
array(0.)
- M3nudg()float64...
- long_name :
- 3D momentum nudging/relaxation inverse time scale
- units :
- day-1
array(0.)
- Tnudg(tracer)float64dask.array<chunksize=(3,), meta=np.ndarray>
- long_name :
- Tracers nudging/relaxation inverse time scale
- units :
- day-1
Array Chunk Bytes 24 B 24 B Shape (3,) (3,) Count 2 Tasks 1 Chunks Type float64 numpy.ndarray 3 1 - FSobc_in(boundary)float64dask.array<chunksize=(4,), meta=np.ndarray>
- long_name :
- free-surface inflow, nudging inverse time scale
- units :
- second-1
Array Chunk Bytes 32 B 32 B Shape (4,) (4,) Count 2 Tasks 1 Chunks Type float64 numpy.ndarray 4 1 - FSobc_out(boundary)float64dask.array<chunksize=(4,), meta=np.ndarray>
- long_name :
- free-surface outflow, nudging inverse time scale
- units :
- second-1
Array Chunk Bytes 32 B 32 B Shape (4,) (4,) Count 2 Tasks 1 Chunks Type float64 numpy.ndarray 4 1 - M2obc_in(boundary)float64dask.array<chunksize=(4,), meta=np.ndarray>
- long_name :
- 2D momentum inflow, nudging inverse time scale
- units :
- second-1
Array Chunk Bytes 32 B 32 B Shape (4,) (4,) Count 2 Tasks 1 Chunks Type float64 numpy.ndarray 4 1 - M2obc_out(boundary)float64dask.array<chunksize=(4,), meta=np.ndarray>
- long_name :
- 2D momentum outflow, nudging inverse time scale
- units :
- second-1
Array Chunk Bytes 32 B 32 B Shape (4,) (4,) Count 2 Tasks 1 Chunks Type float64 numpy.ndarray 4 1 - Tobc_in(boundary, tracer)float64dask.array<chunksize=(4, 3), meta=np.ndarray>
- long_name :
- tracers inflow, nudging inverse time scale
- units :
- second-1
Array Chunk Bytes 96 B 96 B Shape (4, 3) (4, 3) Count 2 Tasks 1 Chunks Type float64 numpy.ndarray 3 4 - Tobc_out(boundary, tracer)float64dask.array<chunksize=(4, 3), meta=np.ndarray>
- long_name :
- tracers outflow, nudging inverse time scale
- units :
- second-1
Array Chunk Bytes 96 B 96 B Shape (4, 3) (4, 3) Count 2 Tasks 1 Chunks Type float64 numpy.ndarray 3 4 - M3obc_in(boundary)float64dask.array<chunksize=(4,), meta=np.ndarray>
- long_name :
- 3D momentum inflow, nudging inverse time scale
- units :
- second-1
Array Chunk Bytes 32 B 32 B Shape (4,) (4,) Count 2 Tasks 1 Chunks Type float64 numpy.ndarray 4 1 - M3obc_out(boundary)float64dask.array<chunksize=(4,), meta=np.ndarray>
- long_name :
- 3D momentum outflow, nudging inverse time scale
- units :
- second-1
Array Chunk Bytes 32 B 32 B Shape (4,) (4,) Count 2 Tasks 1 Chunks Type float64 numpy.ndarray 4 1 - rho0()float64...
- long_name :
- mean density used in Boussinesq approximation
- units :
- kilogram meter-3
array(1025.)
- gamma2()float64...
- long_name :
- slipperiness parameter
array(1.)
- LuvSrc()int32...
- long_name :
- momentum point sources and sink activation switch
- flag_values :
- [0 1]
- flag_meanings :
- .FALSE. .TRUE.
array(1, dtype=int32)
- LwSrc()int32...
- long_name :
- mass point sources and sink activation switch
- flag_values :
- [0 1]
- flag_meanings :
- .FALSE. .TRUE.
array(0, dtype=int32)
- LtracerSrc(tracer)int32dask.array<chunksize=(3,), meta=np.ndarray>
- long_name :
- tracer point sources and sink activation switch
- flag_values :
- [0 1]
- flag_meanings :
- .FALSE. .TRUE.
Array Chunk Bytes 12 B 12 B Shape (3,) (3,) Count 2 Tasks 1 Chunks Type int32 numpy.ndarray 3 1 - LsshCLM()int32...
- long_name :
- sea surface height climatology processing switch
- flag_values :
- [0 1]
- flag_meanings :
- .FALSE. .TRUE.
array(0, dtype=int32)
- Lm2CLM()int32...
- long_name :
- 2D momentum climatology processing switch
- flag_values :
- [0 1]
- flag_meanings :
- .FALSE. .TRUE.
array(0, dtype=int32)
- Lm3CLM()int32...
- long_name :
- 3D momentum climatology processing switch
- flag_values :
- [0 1]
- flag_meanings :
- .FALSE. .TRUE.
array(0, dtype=int32)
- LtracerCLM(tracer)int32dask.array<chunksize=(3,), meta=np.ndarray>
- long_name :
- tracer climatology processing switch
- flag_values :
- [0 1]
- flag_meanings :
- .FALSE. .TRUE.
Array Chunk Bytes 12 B 12 B Shape (3,) (3,) Count 2 Tasks 1 Chunks Type int32 numpy.ndarray 3 1 - LnudgeM2CLM()int32...
- long_name :
- 2D momentum climatology nudging activation switch
- flag_values :
- [0 1]
- flag_meanings :
- .FALSE. .TRUE.
array(0, dtype=int32)
- LnudgeM3CLM()int32...
- long_name :
- 3D momentum climatology nudging activation switch
- flag_values :
- [0 1]
- flag_meanings :
- .FALSE. .TRUE.
array(0, dtype=int32)
- LnudgeTCLM(tracer)int32dask.array<chunksize=(3,), meta=np.ndarray>
- long_name :
- tracer climatology nudging activation switch
- flag_values :
- [0 1]
- flag_meanings :
- .FALSE. .TRUE.
Array Chunk Bytes 12 B 12 B Shape (3,) (3,) Count 2 Tasks 1 Chunks Type int32 numpy.ndarray 3 1 - BioIter()int32...
- long_name :
- number of iterations to achieve convergence
array(1, dtype=int32)
- ResRate()float64...
- long_name :
- total biological respiration rate
- units :
- day-1
array(0.00011)
- spherical()int32...
- long_name :
- grid type logical switch
- flag_values :
- [0 1]
- flag_meanings :
- Cartesian spherical
array(1, dtype=int32)
- xl()float64...
- long_name :
- domain length in the XI-direction
- units :
- meter
array(6.943582)
- el()float64...
- long_name :
- domain length in the ETA-direction
- units :
- meter
array(3.42146)
- Vtransform()int32...
- long_name :
- vertical terrain-following transformation equation
array(1, dtype=int32)
- Vstretching()int32...
- long_name :
- vertical terrain-following stretching function
array(1, dtype=int32)
- theta_s()float64...
- long_name :
- S-coordinate surface control parameter
array(4.5)
- theta_b()float64...
- long_name :
- S-coordinate bottom control parameter
array(0.95)
- Tcline()float64...
- long_name :
- S-coordinate surface/bottom layer width
- units :
- meter
array(10.)
- hc()float64...
- long_name :
- S-coordinate parameter, critical depth
- units :
- meter
array(2.)
- grid()int32...
- cf_role :
- grid_topology
- topology_dimension :
- 2
- node_dimensions :
- xi_psi eta_psi
- face_dimensions :
- xi_rho: xi_psi (padding: both) eta_rho: eta_psi (padding: both)
- edge1_dimensions :
- xi_u: xi_psi eta_u: eta_psi (padding: both)
- edge2_dimensions :
- xi_v: xi_psi (padding: both) eta_v: eta_psi
- node_coordinates :
- lon_psi lat_psi
- face_coordinates :
- lon_rho lat_rho
- edge1_coordinates :
- lon_u lat_u
- edge2_coordinates :
- lon_v lat_v
- vertical_dimensions :
- s_rho: s_w (padding: none)
array(1, dtype=int32)
- Cs_r(s_rho)float64dask.array<chunksize=(20,), 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 160 B 160 B Shape (20,) (20,) Count 2 Tasks 1 Chunks Type float64 numpy.ndarray 20 1 - Cs_w(s_w)float64dask.array<chunksize=(21,), 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 168 B 168 B Shape (21,) (21,) Count 2 Tasks 1 Chunks Type float64 numpy.ndarray 21 1 - h(eta_rho, xi_rho)float64dask.array<chunksize=(124, 151), meta=np.ndarray>
- long_name :
- bathymetry at RHO-points
- units :
- meter
- grid :
- grid
- location :
- face
- field :
- bath, scalar
- standard_name :
- sea_floor_depth
Array Chunk Bytes 146.28 kiB 146.28 kiB Shape (124, 151) (124, 151) Count 4 Tasks 1 Chunks Type float64 numpy.ndarray 151 124 - f(eta_rho, xi_rho)float64dask.array<chunksize=(124, 151), meta=np.ndarray>
- long_name :
- Coriolis parameter at RHO-points
- units :
- second-1
- grid :
- grid
- location :
- face
- field :
- coriolis, scalar
Array Chunk Bytes 146.28 kiB 146.28 kiB Shape (124, 151) (124, 151) Count 4 Tasks 1 Chunks Type float64 numpy.ndarray 151 124 - pm(eta_rho, xi_rho)float64dask.array<chunksize=(124, 151), meta=np.ndarray>
- long_name :
- curvilinear coordinate metric in XI
- units :
- meter-1
- grid :
- grid
- location :
- face
- field :
- pm, scalar
Array Chunk Bytes 146.28 kiB 146.28 kiB Shape (124, 151) (124, 151) Count 4 Tasks 1 Chunks Type float64 numpy.ndarray 151 124 - pn(eta_rho, xi_rho)float64dask.array<chunksize=(124, 151), meta=np.ndarray>
- long_name :
- curvilinear coordinate metric in ETA
- units :
- meter-1
- grid :
- grid
- location :
- face
- field :
- pn, scalar
Array Chunk Bytes 146.28 kiB 146.28 kiB Shape (124, 151) (124, 151) Count 4 Tasks 1 Chunks Type float64 numpy.ndarray 151 124 - angle(eta_rho, xi_rho)float64dask.array<chunksize=(124, 151), meta=np.ndarray>
- long_name :
- angle between XI-axis and EAST
- units :
- radians
- grid :
- grid
- location :
- face
- field :
- angle, scalar
Array Chunk Bytes 146.28 kiB 146.28 kiB Shape (124, 151) (124, 151) Count 4 Tasks 1 Chunks Type float64 numpy.ndarray 151 124 - mask_rho(eta_rho, xi_rho)float64dask.array<chunksize=(124, 151), meta=np.ndarray>
- long_name :
- mask on RHO-points
- flag_values :
- [0. 1.]
- flag_meanings :
- land water
- grid :
- grid
- location :
- face
Array Chunk Bytes 146.28 kiB 146.28 kiB Shape (124, 151) (124, 151) Count 4 Tasks 1 Chunks Type float64 numpy.ndarray 151 124 - mask_u(eta_u, xi_u)float64dask.array<chunksize=(124, 150), meta=np.ndarray>
- long_name :
- mask on U-points
- flag_values :
- [0. 1.]
- flag_meanings :
- land water
- grid :
- grid
- location :
- edge1
Array Chunk Bytes 145.31 kiB 145.31 kiB Shape (124, 150) (124, 150) Count 4 Tasks 1 Chunks Type float64 numpy.ndarray 150 124 - mask_v(eta_v, xi_v)float64dask.array<chunksize=(123, 151), meta=np.ndarray>
- long_name :
- mask on V-points
- flag_values :
- [0. 1.]
- flag_meanings :
- land water
- grid :
- grid
- location :
- edge2
Array Chunk Bytes 145.10 kiB 145.10 kiB Shape (123, 151) (123, 151) Count 4 Tasks 1 Chunks Type float64 numpy.ndarray 151 123 - mask_psi(eta_psi, xi_psi)float64dask.array<chunksize=(123, 150), meta=np.ndarray>
- long_name :
- mask on psi-points
- flag_values :
- [0. 1.]
- flag_meanings :
- land water
- grid :
- grid
- location :
- node
Array Chunk Bytes 144.14 kiB 144.14 kiB Shape (123, 150) (123, 150) Count 4 Tasks 1 Chunks Type float64 numpy.ndarray 150 123 - zeta(ocean_time, eta_rho, xi_rho)float32dask.array<chunksize=(1, 124, 151), meta=np.ndarray>
- long_name :
- free-surface
- units :
- meter
- time :
- ocean_time
- grid :
- grid
- location :
- face
- field :
- free-surface, scalar, series
- _ChunkSizes :
- [ 1 291 332]
- standard_name :
- sea_surface_elevation
Array Chunk Bytes 1.71 MiB 73.14 kiB Shape (24, 124, 151) (1, 124, 151) Count 234 Tasks 24 Chunks Type float32 numpy.ndarray 151 124 24 - u(ocean_time, s_rho, eta_u, xi_u)float32dask.array<chunksize=(1, 20, 124, 150), meta=np.ndarray>
- long_name :
- u-momentum component
- units :
- meter second-1
- time :
- ocean_time
- grid :
- grid
- location :
- edge1
- field :
- u-velocity, scalar, series
- _ChunkSizes :
- [ 1 10 146 166]
- standard_name :
- eastward_sea_water_velocity
Array Chunk Bytes 34.06 MiB 1.42 MiB Shape (24, 20, 124, 150) (1, 20, 124, 150) Count 234 Tasks 24 Chunks Type float32 numpy.ndarray 24 1 150 124 20 - v(ocean_time, s_rho, eta_v, xi_v)float32dask.array<chunksize=(1, 20, 123, 151), meta=np.ndarray>
- long_name :
- v-momentum component
- units :
- meter second-1
- time :
- ocean_time
- grid :
- grid
- location :
- edge2
- field :
- v-velocity, scalar, series
- _ChunkSizes :
- [ 1 10 145 166]
- standard_name :
- northward_sea_water_velocity
Array Chunk Bytes 34.01 MiB 1.42 MiB Shape (24, 20, 123, 151) (1, 20, 123, 151) Count 234 Tasks 24 Chunks Type float32 numpy.ndarray 24 1 151 123 20 - w(ocean_time, s_w, eta_rho, xi_rho)float32dask.array<chunksize=(1, 21, 124, 151), meta=np.ndarray>
- long_name :
- vertical momentum component
- units :
- meter second-1
- time :
- ocean_time
- standard_name :
- upward_sea_water_velocity
- grid :
- grid
- location :
- face
- field :
- w-velocity, scalar, series
- _ChunkSizes :
- [ 1 11 146 166]
Array Chunk Bytes 36.00 MiB 1.50 MiB Shape (24, 21, 124, 151) (1, 21, 124, 151) Count 234 Tasks 24 Chunks Type float32 numpy.ndarray 24 1 151 124 21 - temp(ocean_time, s_rho, eta_rho, xi_rho)float32dask.array<chunksize=(1, 20, 124, 151), meta=np.ndarray>
- long_name :
- potential temperature
- units :
- Celsius
- time :
- ocean_time
- grid :
- grid
- location :
- face
- field :
- temperature, scalar, series
- _ChunkSizes :
- [ 1 10 146 166]
- standard_name :
- sea_water_temperature
Array Chunk Bytes 34.28 MiB 1.43 MiB Shape (24, 20, 124, 151) (1, 20, 124, 151) Count 234 Tasks 24 Chunks Type float32 numpy.ndarray 24 1 151 124 20 - salt(ocean_time, s_rho, eta_rho, xi_rho)float32dask.array<chunksize=(1, 20, 124, 151), meta=np.ndarray>
- long_name :
- salinity
- time :
- ocean_time
- grid :
- grid
- location :
- face
- field :
- salinity, scalar, series
- _ChunkSizes :
- [ 1 10 146 166]
- standard_name :
- sea_water_practical_salinity
Array Chunk Bytes 34.28 MiB 1.43 MiB Shape (24, 20, 124, 151) (1, 20, 124, 151) Count 234 Tasks 24 Chunks Type float32 numpy.ndarray 24 1 151 124 20 - oxygen(ocean_time, s_rho, eta_rho, xi_rho)float32dask.array<chunksize=(1, 20, 124, 151), meta=np.ndarray>
- long_name :
- dissolved oxygen concentration
- units :
- millimole_oxygen meter-3
- time :
- ocean_time
- grid :
- grid
- location :
- face
- field :
- Oxygen, scalar, series
- _ChunkSizes :
- [ 1 10 146 166]
Array Chunk Bytes 34.28 MiB 1.43 MiB Shape (24, 20, 124, 151) (1, 20, 124, 151) Count 234 Tasks 24 Chunks Type float32 numpy.ndarray 24 1 151 124 20 - Pair(ocean_time, eta_rho, xi_rho)float32dask.array<chunksize=(1, 124, 151), meta=np.ndarray>
- long_name :
- surface air pressure
- units :
- millibar
- time :
- ocean_time
- grid :
- grid
- location :
- face
- field :
- Pair, scalar, series
- _ChunkSizes :
- [ 1 291 332]
Array Chunk Bytes 1.71 MiB 73.14 kiB Shape (24, 124, 151) (1, 124, 151) Count 234 Tasks 24 Chunks Type float32 numpy.ndarray 151 124 24 - Uwind(ocean_time, eta_rho, xi_rho)float32dask.array<chunksize=(1, 124, 151), meta=np.ndarray>
- long_name :
- surface u-wind component
- units :
- meter second-1
- time :
- ocean_time
- grid :
- grid
- location :
- face
- field :
- u-wind, scalar, series
- _ChunkSizes :
- [ 1 291 332]
- standard_name :
- eastward_wind
Array Chunk Bytes 1.71 MiB 73.14 kiB Shape (24, 124, 151) (1, 124, 151) Count 234 Tasks 24 Chunks Type float32 numpy.ndarray 151 124 24 - Vwind(ocean_time, eta_rho, xi_rho)float32dask.array<chunksize=(1, 124, 151), meta=np.ndarray>
- long_name :
- surface v-wind component
- units :
- meter second-1
- time :
- ocean_time
- grid :
- grid
- location :
- face
- field :
- v-wind, scalar, series
- _ChunkSizes :
- [ 1 291 332]
- standard_name :
- northward_wind
Array Chunk Bytes 1.71 MiB 73.14 kiB Shape (24, 124, 151) (1, 124, 151) Count 234 Tasks 24 Chunks Type float32 numpy.ndarray 151 124 24
- file :
- nos.cbofs.fields.nowcast.20220825.t12z_0002.nc
- format :
- netCDF-4/HDF5 file
- Conventions :
- CF-1.4, SGRID-0.3
- type :
- ROMS/TOMS history file
- title :
- cbofs nowcast RUN in operational mode
- var_info :
- varinfo.dat
- rst_file :
- nos.cbofs.rst.nowcast.20220825.t12z.nc
- his_base :
- nos.cbofs.fields.nowcast.20220825.t12z
- sta_file :
- nos.cbofs.stations.nowcast.20220825.t12z.nc
- grd_file :
- nos.cbofs.romsgrid.nc
- ini_file :
- nos.cbofs.init.nowcast.20220825.t12z.nc
- tide_file :
- nos.cbofs.roms.tides.nc
- frc_file_01 :
- nos.cbofs.met.nowcast.20220825.t12z.nc
- frc_file_02 :
- nos.cbofs.respirate.nc
- bry_file_01 :
- nos.cbofs.obc.20220825.t12z.nc
- script_file :
- cbofs_ROMS_nowcast.in
- bpar_file :
- nos.cbofs.bio.in
- spos_file :
- nos.cbofs.stations.in
- NLM_TADV :
- ADVECTION: HORIZONTAL VERTICAL temp: HSIMT HSIMT salt: HSIMT HSIMT oxygen: HSIMT HSIMT
- NLM_LBC :
- EDGE: WEST SOUTH EAST NORTH zeta: Clo Cha Cha Clo ubar: Clo Fla Fla Clo vbar: Clo Fla Fla Clo u: Clo Rad Rad Clo v: Clo Rad Rad Clo temp: Clo RadNud RadNud Clo salt: Clo RadNud RadNud Clo oxygen: Clo RadNud RadNud Clo tke: Clo Gra Gra Clo
- svn_url :
- svn_rev :
- code_dir :
- /lfs/h1/ops/prod/packages/nosofs.v3.4.2/sorc/ROMS.fd
- header_dir :
- /lfs/h1/ops/prod/packages/nosofs.v3.4.2/sorc/ROMS.fd/ROMS/Include
- header_file :
- cbofs.h
- os :
- Linux
- cpu :
- x86_64
- compiler_system :
- ftn-intel
- compiler_command :
- /opt/cray/pe/craype/2.7.10/bin/ftn
- compiler_flags :
- -fp-model precise -ip -O2
- tiling :
- 008x016
- history :
- ROMS/TOMS, Version 3.9, Thursday - August 25, 2022 - 12:48:02 PM
- ana_file :
- ROMS/Functionals/ana_btflux.h, ROMS/Functionals/ana_rain.h, ROMS/Functionals/ana_stflux.h
- CPP_options :
- mode, ADD_FSOBC, ADD_M2OBC, ANA_BPFLUX, ANA_BSFLUX, ANA_BTFLUX, ANA_RAIN, ANA_SPFLUX, ANA_SSFLUX, ASSUMED_SHAPE, ATM_PRESS, !BOUNDARY_ALLGATHER, BULK_FLUXES, !COLLECT_ALL..., CURVGRID, DIFF_GRID, DJ_GRADPS, DOUBLE_PRECISION, EMINUSP, GLS_MIXING, HDF5, HYPOXIA_SRM, LIMIT_STFLX_COOLING, KANTHA_CLAYSON, LONGWAVE_OUT, MASKING, MIX_GEO_TS, MIX_S_UV, MPI, NONLINEAR, NONLIN_EOS, NO_LBC_ATT, N2S2_HORAVG, PERFECT_RESTART, POWER_LAW, PROFILE, K_GSCHEME, RADIATION_2D, REDUCE_ALLREDUCE, !RST_SINGLE, SALINITY, SOLAR_SOURCE, SOLVE3D, SSH_TIDES, STATIONS, SURFACE_DO_SATURATION, TS_DIF2, UV_ADV, UV_COR, UV_U3HADVECTION, UV_C4VADVECTION, UV_QDRAG, UV_TIDES, UV_VIS2, VAR_RHO_2D, VISC_GRID
- bio_file :
- ROMS/Nonlinear/Biology/hypoxia_srm.h
- DODS_EXTRA.Unlimited_Dimension :
- ocean_time
- EXTRA_DIMENSION.N :
- 20
2. Rectilinear grid¶
Subset DataArray or Dataset to box (same as grid)¶
All of these have the same essential function when the grid is rectilinear. The only difference is whether operating on the full Dataset or a DataArray.
[12]:
ds_cbofs_rg_ss = ds_cbofs_rg.em.sub_bbox(bbox=bbox_cbofs_rg)
[13]:
ds_cbofs_rg_ss['zeta'].cf.isel(T=0).cf.plot(x='longitude', y='latitude')
[13]:
<matplotlib.collections.QuadMesh at 0x1662cfeb0>
3. Curvilinear, single horizontal grid¶
Subset DataArray or Dataset to box (same as grid)¶
All of these also have the same essential function when there is only one horizontal grid. The only difference is whether operating on the full Dataset or a DataArray.
[14]:
ds_loofs_ss = ds_loofs.em.sub_grid(bbox=bbox_loofs)
ds_loofs_ss
[14]:
<xarray.Dataset>
Dimensions: (time: 24, ny: 7, nx: 21, sigma: 20)
Coordinates:
* time (time) datetime64[ns] 2022-08-25T11:00:14.062499968 ... 2022-0...
lon (ny, nx) float32 dask.array<chunksize=(7, 21), meta=np.ndarray>
lat (ny, nx) float32 dask.array<chunksize=(7, 21), meta=np.ndarray>
* sigma (sigma) float32 0.0 0.0227 0.0454 0.0681 ... 0.8853 0.9534 1.0
* nx (nx) int64 17 18 19 20 21 22 23 24 25 ... 30 31 32 33 34 35 36 37
* ny (ny) int64 8 9 10 11 12 13 14
Data variables:
validtime (time, ny, nx) object dask.array<chunksize=(1, 7, 21), meta=np.ndarray>
mask (ny, nx) float32 dask.array<chunksize=(7, 21), meta=np.ndarray>
depth (ny, nx) float32 dask.array<chunksize=(7, 21), meta=np.ndarray>
zeta (time, ny, nx) float32 dask.array<chunksize=(1, 7, 21), meta=np.ndarray>
air_u (time, ny, nx) float32 dask.array<chunksize=(1, 7, 21), meta=np.ndarray>
air_v (time, ny, nx) float32 dask.array<chunksize=(1, 7, 21), meta=np.ndarray>
u (time, sigma, ny, nx) float32 dask.array<chunksize=(1, 20, 7, 21), meta=np.ndarray>
v (time, sigma, ny, nx) float32 dask.array<chunksize=(1, 20, 7, 21), meta=np.ndarray>
temp (time, sigma, ny, nx) float32 dask.array<chunksize=(1, 20, 7, 21), meta=np.ndarray>
Attributes: (12/17)
datum1: reference to LWD=zeta
datum2: reference to IGLD85=zeta - IGLD85
file_type: Full_Grid
Conventions: COARDS
grid_type: rectilinear
z_type: 2-D
... ...
history: Operation-CO-OPS
references: greg.mott@noaa.gov
creation_date: 2022-08-25 12:50:16 00:00
DODS.strlen: 19
DODS.dimName: validtime_len
DODS_EXTRA.Unlimited_Dimension: time- time: 24
- ny: 7
- nx: 21
- sigma: 20
- time(time)datetime64[ns]2022-08-25T11:00:14.062499968 .....
- long_name :
- Time
- base_date :
- [2006 1 1 0]
- standard_name :
- time
- axis :
- T
array(['2022-08-25T11:00:14.062499968', '2022-08-25T12:00:00.000000000', '2022-08-25T12:59:45.937500032', '2022-08-25T14:00:14.062499968', '2022-08-25T15:00:00.000000000', '2022-08-25T15:59:45.937500032', '2022-08-25T17:00:14.062499968', '2022-08-25T18:00:00.000000000', '2022-08-25T18:59:45.937500032', '2022-08-25T20:00:14.062499968', '2022-08-25T21:00:00.000000000', '2022-08-25T21:59:45.937500032', '2022-08-25T23:00:14.062499968', '2022-08-26T00:00:00.000000000', '2022-08-26T00:59:45.937500032', '2022-08-26T02:00:14.062499968', '2022-08-26T03:00:00.000000000', '2022-08-26T03:59:45.937500032', '2022-08-26T05:00:14.062499968', '2022-08-26T06:00:00.000000000', '2022-08-26T06:59:45.937500032', '2022-08-26T08:00:14.062499968', '2022-08-26T09:00:00.000000000', '2022-08-26T09:59:45.937500032'], dtype='datetime64[ns]') - lon(ny, nx)float32dask.array<chunksize=(7, 21), meta=np.ndarray>
- long_name :
- Longitude
- units :
- degrees_east
- standard_name :
- longitude
Array Chunk Bytes 588 B 588 B Shape (7, 21) (7, 21) Count 5 Tasks 1 Chunks Type float32 numpy.ndarray 21 7 - lat(ny, nx)float32dask.array<chunksize=(7, 21), meta=np.ndarray>
- long_name :
- Latitude
- units :
- degrees_north
- standard_name :
- latitude
Array Chunk Bytes 588 B 588 B Shape (7, 21) (7, 21) Count 5 Tasks 1 Chunks Type float32 numpy.ndarray 21 7 - sigma(sigma)float320.0 0.0227 0.0454 ... 0.9534 1.0
- long_name :
- Sigma Stretched Vertical Coordinate at Nodes
- units :
- sigma_level
- positive :
- down
- standard_name :
- ocean_sigma_coordinate
- formula_terms :
- sigma: sigma eta: zeta depth: depth
- axis :
- Z
array([0. , 0.0227, 0.0454, 0.0681, 0.0908, 0.1135, 0.1362, 0.1589, 0.1816, 0.2043, 0.227 , 0.2724, 0.3405, 0.4313, 0.5448, 0.681 , 0.7945, 0.8853, 0.9534, 1. ], dtype=float32) - nx(nx)int6417 18 19 20 21 ... 33 34 35 36 37
- axis :
- X
array([17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37]) - ny(ny)int648 9 10 11 12 13 14
- axis :
- Y
array([ 8, 9, 10, 11, 12, 13, 14])
- validtime(time, ny, nx)objectdask.array<chunksize=(1, 7, 21), meta=np.ndarray>
Array Chunk Bytes 27.56 kiB 1.15 kiB Shape (24, 7, 21) (1, 7, 21) Count 231 Tasks 24 Chunks Type object numpy.ndarray 21 7 24 - mask(ny, nx)float32dask.array<chunksize=(7, 21), meta=np.ndarray>
- long_name :
- Land Mask
- units :
- nondimensional
Array Chunk Bytes 588 B 588 B Shape (7, 21) (7, 21) Count 7 Tasks 1 Chunks Type float32 numpy.ndarray 21 7 - depth(ny, nx)float32dask.array<chunksize=(7, 21), meta=np.ndarray>
- long_name :
- Bathymetry
- units :
- meters
- positive :
- down
- standard_name :
- sea_floor_depth
Array Chunk Bytes 588 B 588 B Shape (7, 21) (7, 21) Count 7 Tasks 1 Chunks Type float32 numpy.ndarray 21 7 - zeta(time, ny, nx)float32dask.array<chunksize=(1, 7, 21), meta=np.ndarray>
- reference :
- model_sea_level
- long_name :
- Height Above Model Sea Level
- units :
- meters
- positive :
- up
- standard_name :
- sea_surface_elevation
Array Chunk Bytes 13.78 kiB 588 B Shape (24, 7, 21) (1, 7, 21) Count 231 Tasks 24 Chunks Type float32 numpy.ndarray 21 7 24 - air_u(time, ny, nx)float32dask.array<chunksize=(1, 7, 21), meta=np.ndarray>
- long_name :
- Eastward Air Velocity
- units :
- m/s
- standard_name :
- eastward_wind
Array Chunk Bytes 13.78 kiB 588 B Shape (24, 7, 21) (1, 7, 21) Count 231 Tasks 24 Chunks Type float32 numpy.ndarray 21 7 24 - air_v(time, ny, nx)float32dask.array<chunksize=(1, 7, 21), meta=np.ndarray>
- long_name :
- Northward Air Velocity
- units :
- m/s
- standard_name :
- northward_wind
Array Chunk Bytes 13.78 kiB 588 B Shape (24, 7, 21) (1, 7, 21) Count 231 Tasks 24 Chunks Type float32 numpy.ndarray 21 7 24 - u(time, sigma, ny, nx)float32dask.array<chunksize=(1, 20, 7, 21), meta=np.ndarray>
- long_name :
- Eastward Water Velocity
- units :
- m/s
- standard_name :
- eastward_sea_water_velocity
Array Chunk Bytes 275.62 kiB 11.48 kiB Shape (24, 20, 7, 21) (1, 20, 7, 21) Count 231 Tasks 24 Chunks Type float32 numpy.ndarray 24 1 21 7 20 - v(time, sigma, ny, nx)float32dask.array<chunksize=(1, 20, 7, 21), meta=np.ndarray>
- long_name :
- Northward Water Velocity
- units :
- m/s
- standard_name :
- northward_sea_water_velocity
Array Chunk Bytes 275.62 kiB 11.48 kiB Shape (24, 20, 7, 21) (1, 20, 7, 21) Count 231 Tasks 24 Chunks Type float32 numpy.ndarray 24 1 21 7 20 - temp(time, sigma, ny, nx)float32dask.array<chunksize=(1, 20, 7, 21), meta=np.ndarray>
- long_name :
- Temperature
- units :
- Celsius
- standard_name :
- sea_water_temperature
Array Chunk Bytes 275.62 kiB 11.48 kiB Shape (24, 20, 7, 21) (1, 20, 7, 21) Count 231 Tasks 24 Chunks Type float32 numpy.ndarray 24 1 21 7 20
- datum1 :
- reference to LWD=zeta
- datum2 :
- reference to IGLD85=zeta - IGLD85
- file_type :
- Full_Grid
- Conventions :
- COARDS
- grid_type :
- rectilinear
- z_type :
- 2-D
- model :
- POMGL
- title :
- ofs4:/comf/operations/ohms
- comment :
- Linux
- source :
- current,zeta,temp,wind
- institution :
- NOAA/NOS/CO-OPS
- history :
- Operation-CO-OPS
- references :
- greg.mott@noaa.gov
- creation_date :
- 2022-08-25 12:50:16 00:00
- DODS.strlen :
- 19
- DODS.dimName :
- validtime_len
- DODS_EXTRA.Unlimited_Dimension :
- time
[15]:
ds_loofs_ss['zeta'].cf.isel(T=10).cf.plot(x='longitude', y='latitude')
[15]:
<matplotlib.collections.QuadMesh at 0x1660c55e0>
4. Unstructured grid¶
Subset DataArray or Dataset to box (same as grid)¶
All of these also have the same essential function when there is only one horizontal grid. The only difference is whether operating on the full Dataset or a DataArray.
[16]:
ds_ngofs2_ss = ds_ngofs2.em.sub_grid(bbox=bbox_ngofs2)
ds_ngofs2_ss
[16]:
<xarray.Dataset>
Dimensions: (nele: 30734, node: 16604, time: 8, four: 4, three: 3,
siglay: 40, siglev: 41, maxnode: 10, maxelem: 8)
Coordinates:
lonc (nele) float32 dask.array<chunksize=(30734,), meta=np.ndarray>
latc (nele) float32 dask.array<chunksize=(30734,), meta=np.ndarray>
lon (node) float32 dask.array<chunksize=(16604,), meta=np.ndarray>
lat (node) float32 dask.array<chunksize=(16604,), meta=np.ndarray>
* time (time) datetime64[ns] 2022-08-25T12:00:00 ... 2022-08...
sigma_levels (siglev, node) float32 dask.array<chunksize=(41, 16604), meta=np.ndarray>
sigma_layers (siglay, node) float32 dask.array<chunksize=(40, 16604), meta=np.ndarray>
Dimensions without coordinates: nele, node, four, three, siglay, siglev,
maxnode, maxelem
Data variables: (12/38)
nprocs int32 756
partition (nele) int32 dask.array<chunksize=(30734,), meta=np.ndarray>
x (node) float32 dask.array<chunksize=(16604,), meta=np.ndarray>
y (node) float32 dask.array<chunksize=(16604,), meta=np.ndarray>
xc (nele) float32 dask.array<chunksize=(30734,), meta=np.ndarray>
yc (nele) float32 dask.array<chunksize=(30734,), meta=np.ndarray>
... ...
nv (three, nele) int64 7 7 8 3 ... 16603 16603 16598 16599
nbe (three, nele) int64 0 0 2 3 15 ... 30730 30733 30734 0
nbsn (maxnode, node) int32 0 0 0 0 0 0 1 2 ... 0 0 0 0 0 0 0
ntsn (node) int32 3 4 5 4 3 3 7 7 6 7 ... 6 6 7 7 6 6 5 5 5 6
nbve (maxelem, node) int32 0 0 0 0 0 0 1 3 ... 0 0 0 0 0 0 0
ntve (node) int32 2 3 4 3 2 2 7 7 6 7 ... 3 3 4 7 6 3 2 2 2 3
Attributes: (12/17)
title: NGOFS2
institution: School for Marine Science and Technology
source: FVCOM_4.3
history: model started at: 25/08/2022 09:05
references: http://fvcom.smast.umassd.edu, http://co...
Conventions: CF-1.0
... ...
Surface_Heat_Forcing: FVCOM variable surface heat forcing file...
Surface_Wind_Forcing: FVCOM variable surface Wind forcing:\nFI...
Surface_PrecipEvap_Forcing: SURFACE PRECIPITATION FORCING IS OFF
DODS.strlen: 26
DODS.dimName: DateStrLen
DODS_EXTRA.Unlimited_Dimension: time- nele: 30734
- node: 16604
- time: 8
- four: 4
- three: 3
- siglay: 40
- siglev: 41
- maxnode: 10
- maxelem: 8
- lonc(nele)float32dask.array<chunksize=(30734,), meta=np.ndarray>
- long_name :
- zonal longitude
- standard_name :
- longitude
- units :
- degrees_east
Array Chunk Bytes 120.05 kiB 120.05 kiB Shape (30734,) (30734,) Count 3 Tasks 1 Chunks Type float32 numpy.ndarray 30734 1 - latc(nele)float32dask.array<chunksize=(30734,), meta=np.ndarray>
- long_name :
- zonal latitude
- standard_name :
- latitude
- units :
- degrees_north
Array Chunk Bytes 120.05 kiB 120.05 kiB Shape (30734,) (30734,) Count 3 Tasks 1 Chunks Type float32 numpy.ndarray 30734 1 - lon(node)float32dask.array<chunksize=(16604,), meta=np.ndarray>
- long_name :
- nodal longitude
- standard_name :
- longitude
- units :
- degrees_east
Array Chunk Bytes 64.86 kiB 64.86 kiB Shape (16604,) (16604,) Count 3 Tasks 1 Chunks Type float32 numpy.ndarray 16604 1 - lat(node)float32dask.array<chunksize=(16604,), meta=np.ndarray>
- long_name :
- nodal latitude
- standard_name :
- latitude
- units :
- degrees_north
Array Chunk Bytes 64.86 kiB 64.86 kiB Shape (16604,) (16604,) Count 3 Tasks 1 Chunks Type float32 numpy.ndarray 16604 1 - time(time)datetime64[ns]2022-08-25T12:00:00 ... 2022-08-...
- long_name :
- time
- format :
- defined reference date
- time_zone :
- UTC
- axis :
- T
array(['2022-08-25T12:00:00.000000000', '2022-08-25T15:00:00.000000000', '2022-08-25T18:00:00.000000000', '2022-08-25T21:00:00.000000000', '2022-08-26T00:00:00.000000000', '2022-08-26T03:00:00.000000000', '2022-08-26T06:00:00.000000000', '2022-08-26T09:00:00.000000000'], dtype='datetime64[ns]') - sigma_levels(siglev, node)float32dask.array<chunksize=(41, 16604), meta=np.ndarray>
- long_name :
- Sigma Levels
- standard_name :
- ocean_sigma_coordinate
- positive :
- up
- valid_min :
- -1.0
- valid_max :
- 0.0
- formula_terms :
- sigma: sigma_levels eta: zeta depth: h
Array Chunk Bytes 2.60 MiB 2.60 MiB Shape (41, 16604) (41, 16604) Count 3 Tasks 1 Chunks Type float32 numpy.ndarray 16604 41 - sigma_layers(siglay, node)float32dask.array<chunksize=(40, 16604), meta=np.ndarray>
- long_name :
- Sigma Layers
- standard_name :
- ocean_sigma_coordinate
- positive :
- up
- valid_min :
- -1.0
- valid_max :
- 0.0
- formula_terms :
- sigma: sigma_layers eta: zeta depth: h
Array Chunk Bytes 2.53 MiB 2.53 MiB Shape (40, 16604) (40, 16604) Count 3 Tasks 1 Chunks Type float32 numpy.ndarray 16604 40
- nprocs()int32756
- long_name :
- number of processors
array(756, dtype=int32)
- partition(nele)int32dask.array<chunksize=(30734,), meta=np.ndarray>
- long_name :
- partition
Array Chunk Bytes 120.05 kiB 120.05 kiB Shape (30734,) (30734,) Count 3 Tasks 1 Chunks Type int32 numpy.ndarray 30734 1 - x(node)float32dask.array<chunksize=(16604,), meta=np.ndarray>
- long_name :
- nodal x-coordinate
- units :
- meters
Array Chunk Bytes 64.86 kiB 64.86 kiB Shape (16604,) (16604,) Count 3 Tasks 1 Chunks Type float32 numpy.ndarray 16604 1 - y(node)float32dask.array<chunksize=(16604,), meta=np.ndarray>
- long_name :
- nodal y-coordinate
- units :
- meters
Array Chunk Bytes 64.86 kiB 64.86 kiB Shape (16604,) (16604,) Count 3 Tasks 1 Chunks Type float32 numpy.ndarray 16604 1 - xc(nele)float32dask.array<chunksize=(30734,), meta=np.ndarray>
- long_name :
- zonal x-coordinate
- units :
- meters
Array Chunk Bytes 120.05 kiB 120.05 kiB Shape (30734,) (30734,) Count 3 Tasks 1 Chunks Type float32 numpy.ndarray 30734 1 - yc(nele)float32dask.array<chunksize=(30734,), meta=np.ndarray>
- long_name :
- zonal y-coordinate
- units :
- meters
Array Chunk Bytes 120.05 kiB 120.05 kiB Shape (30734,) (30734,) Count 3 Tasks 1 Chunks Type float32 numpy.ndarray 30734 1 - h(node)float32dask.array<chunksize=(16604,), meta=np.ndarray>
- long_name :
- Bathymetry
- standard_name :
- sea_floor_depth
- units :
- m
- positive :
- down
- grid :
- Bathymetry_Mesh
- type :
- data
Array Chunk Bytes 64.86 kiB 64.86 kiB Shape (16604,) (16604,) Count 3 Tasks 1 Chunks Type float32 numpy.ndarray 16604 1 - iint(time)int32dask.array<chunksize=(1,), meta=np.ndarray>
- long_name :
- internal mode iteration number
Array Chunk Bytes 32 B 4 B Shape (8,) (1,) Count 65 Tasks 8 Chunks Type int32 numpy.ndarray 8 1 - Times(time)|S64dask.array<chunksize=(1,), meta=np.ndarray>
- time_zone :
- UTC
Array Chunk Bytes 512 B 64 B Shape (8,) (1,) Count 65 Tasks 8 Chunks Type |S64 numpy.ndarray 8 1 - zeta(time, node)float32dask.array<chunksize=(1, 16604), meta=np.ndarray>
- long_name :
- Water Surface Elevation
- units :
- meters
- positive :
- up
- standard_name :
- sea_surface_elevation
- grid :
- Bathymetry_Mesh
- type :
- data
- location :
- node
Array Chunk Bytes 518.88 kiB 64.86 kiB Shape (8, 16604) (1, 16604) Count 73 Tasks 8 Chunks Type float32 numpy.ndarray 16604 8 - a1u(four, nele)float32dask.array<chunksize=(4, 30734), meta=np.ndarray>
- long_name :
- a1u
Array Chunk Bytes 480.22 kiB 480.22 kiB Shape (4, 30734) (4, 30734) Count 3 Tasks 1 Chunks Type float32 numpy.ndarray 30734 4 - a2u(four, nele)float32dask.array<chunksize=(4, 30734), meta=np.ndarray>
- long_name :
- a2u
Array Chunk Bytes 480.22 kiB 480.22 kiB Shape (4, 30734) (4, 30734) Count 3 Tasks 1 Chunks Type float32 numpy.ndarray 30734 4 - aw0(three, nele)float32dask.array<chunksize=(3, 30734), meta=np.ndarray>
- long_name :
- aw0
Array Chunk Bytes 360.16 kiB 360.16 kiB Shape (3, 30734) (3, 30734) Count 3 Tasks 1 Chunks Type float32 numpy.ndarray 30734 3 - awx(three, nele)float32dask.array<chunksize=(3, 30734), meta=np.ndarray>
- long_name :
- awx
Array Chunk Bytes 360.16 kiB 360.16 kiB Shape (3, 30734) (3, 30734) Count 3 Tasks 1 Chunks Type float32 numpy.ndarray 30734 3 - awy(three, nele)float32dask.array<chunksize=(3, 30734), meta=np.ndarray>
- long_name :
- awy
Array Chunk Bytes 360.16 kiB 360.16 kiB Shape (3, 30734) (3, 30734) Count 3 Tasks 1 Chunks Type float32 numpy.ndarray 30734 3 - u(time, siglay, nele)float32dask.array<chunksize=(1, 40, 30734), meta=np.ndarray>
- long_name :
- Eastward Water Velocity
- standard_name :
- eastward_sea_water_velocity
- units :
- meters s-1
- grid :
- fvcom_grid
- type :
- data
- mesh :
- fvcom_mesh
- location :
- face
Array Chunk Bytes 37.52 MiB 4.69 MiB Shape (8, 40, 30734) (1, 40, 30734) Count 73 Tasks 8 Chunks Type float32 numpy.ndarray 30734 40 8 - v(time, siglay, nele)float32dask.array<chunksize=(1, 40, 30734), meta=np.ndarray>
- long_name :
- Northward Water Velocity
- standard_name :
- northward_sea_water_velocity
- units :
- meters s-1
- grid :
- fvcom_grid
- type :
- data
- mesh :
- fvcom_mesh
- location :
- face
Array Chunk Bytes 37.52 MiB 4.69 MiB Shape (8, 40, 30734) (1, 40, 30734) Count 73 Tasks 8 Chunks Type float32 numpy.ndarray 30734 40 8 - tauc(time, nele)float32dask.array<chunksize=(1, 30734), meta=np.ndarray>
- long_name :
- bed stress magnitude from currents
- note1 :
- this stress is bottom boundary condtion on velocity field
- note2 :
- dimensions are stress/rho
- units :
- m^2 s^-2
- grid :
- fvcom_grid
- type :
- data
- mesh :
- fvcom_mesh
- location :
- face
Array Chunk Bytes 0.94 MiB 120.05 kiB Shape (8, 30734) (1, 30734) Count 73 Tasks 8 Chunks Type float32 numpy.ndarray 30734 8 - omega(time, siglev, node)float32dask.array<chunksize=(1, 41, 16604), meta=np.ndarray>
- long_name :
- Vertical Sigma Coordinate Velocity
- units :
- s-1
- grid :
- fvcom_grid
- type :
- data
Array Chunk Bytes 20.78 MiB 2.60 MiB Shape (8, 41, 16604) (1, 41, 16604) Count 73 Tasks 8 Chunks Type float32 numpy.ndarray 16604 41 8 - ww(time, siglay, nele)float32dask.array<chunksize=(1, 40, 30734), meta=np.ndarray>
- long_name :
- Upward Water Velocity
- units :
- meters s-1
- grid :
- fvcom_grid
- type :
- data
Array Chunk Bytes 37.52 MiB 4.69 MiB Shape (8, 40, 30734) (1, 40, 30734) Count 73 Tasks 8 Chunks Type float32 numpy.ndarray 30734 40 8 - temp(time, siglay, node)float32dask.array<chunksize=(1, 40, 16604), meta=np.ndarray>
- long_name :
- temperature
- standard_name :
- sea_water_temperature
- units :
- degrees_C
- grid :
- fvcom_grid
- type :
- data
- mesh :
- fvcom_mesh
- location :
- node
Array Chunk Bytes 20.27 MiB 2.53 MiB Shape (8, 40, 16604) (1, 40, 16604) Count 73 Tasks 8 Chunks Type float32 numpy.ndarray 16604 40 8 - salinity(time, siglay, node)float32dask.array<chunksize=(1, 40, 16604), meta=np.ndarray>
- long_name :
- salinity
- standard_name :
- sea_water_practical_salinity
- units :
- 1e-3
- grid :
- fvcom_grid
- type :
- data
- mesh :
- fvcom_mesh
- location :
- node
Array Chunk Bytes 20.27 MiB 2.53 MiB Shape (8, 40, 16604) (1, 40, 16604) Count 73 Tasks 8 Chunks Type float32 numpy.ndarray 16604 40 8 - short_wave(time, node)float32dask.array<chunksize=(1, 16604), meta=np.ndarray>
- long_name :
- Short Wave Radiation
- units :
- W m-2
- grid :
- fvcom_grid
- type :
- data
- mesh :
- fvcom_mesh
- location :
- node
Array Chunk Bytes 518.88 kiB 64.86 kiB Shape (8, 16604) (1, 16604) Count 73 Tasks 8 Chunks Type float32 numpy.ndarray 16604 8 - net_heat_flux(time, node)float32dask.array<chunksize=(1, 16604), meta=np.ndarray>
- long_name :
- Surface Net Heat Flux
- units :
- W m-2
- grid :
- fvcom_grid
- type :
- data
- mesh :
- fvcom_mesh
- location :
- node
Array Chunk Bytes 518.88 kiB 64.86 kiB Shape (8, 16604) (1, 16604) Count 73 Tasks 8 Chunks Type float32 numpy.ndarray 16604 8 - uwind_speed(time, nele)float32dask.array<chunksize=(1, 30734), meta=np.ndarray>
- long_name :
- Eastward Wind Velocity
- standard_name :
- eastward_wind
- units :
- meters s-1
- grid :
- fvcom_grid
- type :
- data
- mesh :
- fvcom_mesh
- location :
- face
Array Chunk Bytes 0.94 MiB 120.05 kiB Shape (8, 30734) (1, 30734) Count 73 Tasks 8 Chunks Type float32 numpy.ndarray 30734 8 - vwind_speed(time, nele)float32dask.array<chunksize=(1, 30734), meta=np.ndarray>
- long_name :
- Northward Wind Velocity
- standard_name :
- northward_wind
- units :
- meters s-1
- grid :
- fvcom_grid
- type :
- data
- mesh :
- fvcom_mesh
- location :
- face
Array Chunk Bytes 0.94 MiB 120.05 kiB Shape (8, 30734) (1, 30734) Count 73 Tasks 8 Chunks Type float32 numpy.ndarray 30734 8 - atmos_press(time, node)float32dask.array<chunksize=(1, 16604), meta=np.ndarray>
- long_name :
- Atmospheric Pressure
- units :
- pascals
- grid :
- fvcom_grid
- type :
- data
Array Chunk Bytes 518.88 kiB 64.86 kiB Shape (8, 16604) (1, 16604) Count 73 Tasks 8 Chunks Type float32 numpy.ndarray 16604 8 - wet_nodes(time, node)int32dask.array<chunksize=(1, 16604), meta=np.ndarray>
- long_name :
- Wet_Nodes
- grid :
- fvcom_grid
- type :
- data
- mesh :
- fvcom_mesh
- location :
- node
Array Chunk Bytes 518.88 kiB 64.86 kiB Shape (8, 16604) (1, 16604) Count 73 Tasks 8 Chunks Type int32 numpy.ndarray 16604 8 - wet_cells(time, nele)int32dask.array<chunksize=(1, 30734), meta=np.ndarray>
- long_name :
- Wet_Cells
- grid :
- fvcom_grid
- type :
- data
- mesh :
- fvcom_mesh
- location :
- face
Array Chunk Bytes 0.94 MiB 120.05 kiB Shape (8, 30734) (1, 30734) Count 73 Tasks 8 Chunks Type int32 numpy.ndarray 30734 8 - wet_nodes_prev_int(time, node)int32dask.array<chunksize=(1, 16604), meta=np.ndarray>
- long_name :
- Wet_Nodes_At_Previous_Internal_Step
- grid :
- fvcom_grid
- type :
- data
- mesh :
- fvcom_mesh
- location :
- node
Array Chunk Bytes 518.88 kiB 64.86 kiB Shape (8, 16604) (1, 16604) Count 73 Tasks 8 Chunks Type int32 numpy.ndarray 16604 8 - wet_cells_prev_int(time, nele)int32dask.array<chunksize=(1, 30734), meta=np.ndarray>
- long_name :
- Wet_Cells_At_Previous_Internal_Step
- grid :
- fvcom_grid
- type :
- data
- mesh :
- fvcom_mesh
- location :
- face
Array Chunk Bytes 0.94 MiB 120.05 kiB Shape (8, 30734) (1, 30734) Count 73 Tasks 8 Chunks Type int32 numpy.ndarray 30734 8 - wet_cells_prev_ext(time, nele)int32dask.array<chunksize=(1, 30734), meta=np.ndarray>
- long_name :
- Wet_Cells_At_Previous_External_Step
- grid :
- fvcom_grid
- type :
- data
Array Chunk Bytes 0.94 MiB 120.05 kiB Shape (8, 30734) (1, 30734) Count 73 Tasks 8 Chunks Type int32 numpy.ndarray 30734 8 - nv(three, nele)int647 7 8 3 ... 16603 16603 16598 16599
- long_name :
- nodes surrounding element
array([[ 7, 7, 8, ..., 16604, 16604, 16604], [ 1, 2, 2, ..., 16598, 16599, 16600], [ 6, 1, 7, ..., 16603, 16598, 16599]]) - nbe(three, nele)int640 0 2 3 15 ... 30730 30733 30734 0
- long_name :
- elements surrounding each element
array([[ 0, 0, 2, ..., 30731, 30724, 30726], [ 11, 1, 13, ..., 0, 30732, 30733], [ 2, 3, 4, ..., 30733, 30734, 0]]) - nbsn(maxnode, node)int320 0 0 0 0 0 1 2 ... 0 0 0 0 0 0 0 0
- long_name :
- nodes surrounding each node
array([[ 0, 0, 0, ..., 16602, 16603, 16604], [ 0, 1, 2, ..., 16603, 16604, 16600], [ 6, 7, 8, ..., 16598, 16598, 16599], ..., [ 0, 0, 0, ..., 0, 0, 0], [ 0, 0, 0, ..., 0, 0, 0], [ 0, 0, 0, ..., 0, 0, 0]], dtype=int32) - ntsn(node)int323 4 5 4 3 3 7 7 ... 7 7 6 6 5 5 5 6
- long_name :
- #nodes surrounding each node
array([3, 4, 5, ..., 5, 5, 6], dtype=int32)
- nbve(maxelem, node)int320 0 0 0 0 0 1 3 ... 0 0 0 0 0 0 0 0
- long_name :
- elems surrounding each node
array([[ 0, 0, 0, ..., 30731, 30732, 30734], [ 0, 2, 4, ..., 30730, 30731, 30733], [ 1, 3, 5, ..., 0, 0, 30732], ..., [ 0, 0, 0, ..., 0, 0, 0], [ 0, 0, 0, ..., 0, 0, 0], [ 0, 0, 0, ..., 0, 0, 0]], dtype=int32) - ntve(node)int322 3 4 3 2 2 7 7 ... 4 7 6 3 2 2 2 3
- long_name :
- #elems surrounding each node
array([2, 3, 4, ..., 2, 2, 3], dtype=int32)
- title :
- NGOFS2
- institution :
- School for Marine Science and Technology
- source :
- FVCOM_4.3
- history :
- model started at: 25/08/2022 09:05
- references :
- http://fvcom.smast.umassd.edu, http://codfish.smast.umassd.edu
- Conventions :
- CF-1.0
- CoordinateSystem :
- GeoReferenced
- CoordinateProjection :
- init=nad83:4205
- Tidal_Forcing :
- TIDAL ELEVATION FORCING IS OFF!
- River_Forcing :
- THERE ARE 63 RIVERS IN THIS MODEL. RIVER INFLOW IS ON THE nodes WHERE TEMPERATURE AND SALINITY ARE calculated IN THE MODEL. THE FOLLOWING RIVER NAMES ARE USED: 08012000 02365500 02375500 02489500 02492000 08211200 08211200 08211200 02481510 02481510 02481510 02479000 02479000 02479000 02479000 08164800 08164800 08164000 08164000 08188800 08188800 08188800 08066500 08066500 02479560 02479560 02479560 02479560 07375500 07375500 08030500 08030500 08069000 08069000 08069000 07381600 07381600 07381600 07381600 02470629 02470629 02470629 02470629 02471019 02471019 02471019 02471019 02471019 08076000 08076000 08075400 08041780 08015500 08075000 08075000 07374000 07374000 07374000 07374000 08162500 08116650 02376500 02368000
- GroundWater_Forcing :
- GROUND WATER FORCING IS OFF!
- Surface_Heat_Forcing :
- FVCOM variable surface heat forcing file: FILE NAME:nos.ngofs2.hflux.nowcast.20220825.t09z.nc SOURCE:FVCOM grid (unstructured) surface forcing Unknown start date meta data format
- Surface_Wind_Forcing :
- FVCOM variable surface Wind forcing: FILE NAME:nos.ngofs2.met.nowcast.20220825.t09z.nc SOURCE:FVCOM grid (unstructured) surface forcing Unknown start date meta data format
- Surface_PrecipEvap_Forcing :
- SURFACE PRECIPITATION FORCING IS OFF
- DODS.strlen :
- 26
- DODS.dimName :
- DateStrLen
- DODS_EXTRA.Unlimited_Dimension :
- time
[17]:
ds_ngofs2_ss.cf.isel(T=3).plot.scatter(x='lon', y='lat', hue='zeta', s=0.5)
[17]:
<matplotlib.collections.PathCollection at 0x165ff99d0>
Subset Temporally¶
Use cf-xarray to refer to the time dimension as ds.cf['T'].
By time stamps¶
Use ds.cf.sel(T=slice(start_time, end_time, stride)).
[18]:
ds_cbofs_rg_ss.cf['T'][:5]
[18]:
<xarray.DataArray 'ocean_time' (ocean_time: 5)>
array(['2022-08-25T11:00:00.000000000', '2022-08-25T12:00:00.000000000',
'2022-08-25T13:00:00.000000000', '2022-08-25T14:00:00.000000000',
'2022-08-25T15:00:00.000000000'], dtype='datetime64[ns]')
Coordinates:
* ocean_time (ocean_time) datetime64[ns] 2022-08-25T11:00:00 ... 2022-08-2...
Attributes:
long_name: time since initialization
field: time, scalar, series
axis: T- ocean_time: 5
- 2022-08-25T11:00:00 2022-08-25T12:00:00 ... 2022-08-25T15:00:00
array(['2022-08-25T11:00:00.000000000', '2022-08-25T12:00:00.000000000', '2022-08-25T13:00:00.000000000', '2022-08-25T14:00:00.000000000', '2022-08-25T15:00:00.000000000'], dtype='datetime64[ns]') - ocean_time(ocean_time)datetime64[ns]2022-08-25T11:00:00 ... 2022-08-...
- long_name :
- time since initialization
- field :
- time, scalar, series
- axis :
- T
array(['2022-08-25T11:00:00.000000000', '2022-08-25T12:00:00.000000000', '2022-08-25T13:00:00.000000000', '2022-08-25T14:00:00.000000000', '2022-08-25T15:00:00.000000000'], dtype='datetime64[ns]')
- long_name :
- time since initialization
- field :
- time, scalar, series
- axis :
- T
[19]:
ds_cbofs_rg_ss.cf.sel(T=slice(start, start+pd.Timedelta('12 hours'), 3))
[19]:
<xarray.Dataset>
Dimensions: (ny: 199, nx: 199, ocean_time: 4, Depth: 15)
Coordinates:
Latitude (ny, nx) float64 dask.array<chunksize=(199, 199), meta=np.ndarray>
Longitude (ny, nx) float64 dask.array<chunksize=(199, 199), meta=np.ndarray>
* nx (nx) int64 269 270 271 272 273 274 ... 462 463 464 465 466 467
* ny (ny) int64 167 168 169 170 171 172 ... 360 361 362 363 364 365
* ocean_time (ocean_time) datetime64[ns] 2022-08-25T11:00:00 ... 2022-08-...
* Depth (Depth) float64 0.0 2.0 4.0 6.0 8.0 ... 35.0 40.0 45.0 50.0
Data variables:
h (ny, nx) float64 dask.array<chunksize=(199, 199), meta=np.ndarray>
mask (ny, nx) float64 dask.array<chunksize=(199, 199), meta=np.ndarray>
zeta (ocean_time, ny, nx) float32 dask.array<chunksize=(1, 199, 199), meta=np.ndarray>
zetatomllw (ocean_time, ny, nx) float32 dask.array<chunksize=(1, 199, 199), meta=np.ndarray>
u_eastward (ocean_time, Depth, ny, nx) float32 dask.array<chunksize=(1, 15, 199, 100), meta=np.ndarray>
v_northward (ocean_time, Depth, ny, nx) float32 dask.array<chunksize=(1, 15, 199, 100), meta=np.ndarray>
temp (ocean_time, Depth, ny, nx) float32 dask.array<chunksize=(1, 15, 199, 100), meta=np.ndarray>
salt (ocean_time, Depth, ny, nx) float32 dask.array<chunksize=(1, 15, 199, 100), meta=np.ndarray>
Attributes: (12/36)
file: nos.cbofs.fields.nowcast.20220825.t12z_0...
format: netCDF-4/HDF5 file
Conventions: CF-1.4, SGRID-0.3
type: ROMS/TOMS history file
title: cbofs nowcast RUN in operational mode
var_info: varinfo.dat
... ...
tiling: 008x016
history: ROMS/TOMS, Version 3.9, Thursday - Augus...
ana_file: ROMS/Functionals/ana_btflux.h, ROMS/Func...
CPP_options: mode, ADD_FSOBC, ADD_M2OBC, ANA_BPFLUX, ...
bio_file: ROMS/Nonlinear/Biology/hypoxia_srm.h
DODS_EXTRA.Unlimited_Dimension: ocean_time- ny: 199
- nx: 199
- ocean_time: 4
- Depth: 15
- Latitude(ny, nx)float64dask.array<chunksize=(199, 199), meta=np.ndarray>
- long_name :
- Latitude in common grid
- units :
- degrees_north
Array Chunk Bytes 309.38 kiB 309.38 kiB Shape (199, 199) (199, 199) Count 26 Tasks 1 Chunks Type float64 numpy.ndarray 199 199 - Longitude(ny, nx)float64dask.array<chunksize=(199, 199), meta=np.ndarray>
- long_name :
- Longitude in common grid
- units :
- degrees_east
Array Chunk Bytes 309.38 kiB 309.38 kiB Shape (199, 199) (199, 199) Count 26 Tasks 1 Chunks Type float64 numpy.ndarray 199 199 - nx(nx)int64269 270 271 272 ... 464 465 466 467
- axis :
- X
array([269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467]) - ny(ny)int64167 168 169 170 ... 362 363 364 365
- axis :
- Y
array([167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365]) - ocean_time(ocean_time)datetime64[ns]2022-08-25T11:00:00 ... 2022-08-...
- long_name :
- time since initialization
- field :
- time, scalar, series
- axis :
- T
array(['2022-08-25T11:00:00.000000000', '2022-08-25T14:00:00.000000000', '2022-08-25T17:00:00.000000000', '2022-08-25T20:00:00.000000000'], dtype='datetime64[ns]') - Depth(Depth)float640.0 2.0 4.0 6.0 ... 40.0 45.0 50.0
- long_name :
- Depths of Standard Layer
- units :
- m
- positive :
- down
- axis :
- Z
array([ 0., 2., 4., 6., 8., 10., 12., 15., 20., 25., 30., 35., 40., 45., 50.])
- h(ny, nx)float64dask.array<chunksize=(199, 199), meta=np.ndarray>
- long_name :
- bathymetry
- units :
- meter
- grid :
- grid
- location :
- face
- field :
- bath, scaler
- standard_name :
- sea_floor_depth
Array Chunk Bytes 309.38 kiB 309.38 kiB Shape (199, 199) (199, 199) Count 7 Tasks 1 Chunks Type float64 numpy.ndarray 199 199 - mask(ny, nx)float64dask.array<chunksize=(199, 199), meta=np.ndarray>
- long_name :
- mask
- flag_values :
- [0. 1.]
- flag_meanings :
- land, water
- grid :
- grid
- location :
- face
Array Chunk Bytes 309.38 kiB 309.38 kiB Shape (199, 199) (199, 199) Count 7 Tasks 1 Chunks Type float64 numpy.ndarray 199 199 - zeta(ocean_time, ny, nx)float32dask.array<chunksize=(1, 199, 199), meta=np.ndarray>
- long_name :
- free-surface referenced to mean sea level
- units :
- meters
- time :
- ocean_time
- grid :
- grid
- location :
- face
- field :
- free-surface, scalar, series
- standard_name :
- sea_surface_elevation
Array Chunk Bytes 618.77 kiB 154.69 kiB Shape (4, 199, 199) (1, 199, 199) Count 263 Tasks 4 Chunks Type float32 numpy.ndarray 199 199 4 - zetatomllw(ocean_time, ny, nx)float32dask.array<chunksize=(1, 199, 199), meta=np.ndarray>
- long_name :
- free-surface referenced to mean lower low water
- units :
- meters
- time :
- ocean_time
- grid :
- grid
- location :
- face
- field :
- free-surface, scalar, series
Array Chunk Bytes 618.77 kiB 154.69 kiB Shape (4, 199, 199) (1, 199, 199) Count 263 Tasks 4 Chunks Type float32 numpy.ndarray 199 199 4 - u_eastward(ocean_time, Depth, ny, nx)float32dask.array<chunksize=(1, 15, 199, 100), meta=np.ndarray>
- long_name :
- eastward momentum component
- units :
- meters second-1
- time :
- ocean_time
- standard_name :
- eastward_sea_water_velocity
- grid :
- grid
- location :
- face
- field :
- u_eastward, scalar, series
Array Chunk Bytes 9.06 MiB 1.14 MiB Shape (4, 15, 199, 199) (1, 15, 199, 100) Count 343 Tasks 8 Chunks Type float32 numpy.ndarray 4 1 199 199 15 - v_northward(ocean_time, Depth, ny, nx)float32dask.array<chunksize=(1, 15, 199, 100), meta=np.ndarray>
- long_name :
- northward momentum component
- units :
- meters second-1
- time :
- ocean_time
- standard_name :
- northward_sea_water_velocity
- grid :
- grid
- location :
- face
- field :
- v_northward, scalar, series
Array Chunk Bytes 9.06 MiB 1.14 MiB Shape (4, 15, 199, 199) (1, 15, 199, 100) Count 343 Tasks 8 Chunks Type float32 numpy.ndarray 4 1 199 199 15 - temp(ocean_time, Depth, ny, nx)float32dask.array<chunksize=(1, 15, 199, 100), meta=np.ndarray>
- long_name :
- potential temperature
- units :
- Celsius
- time :
- ocean_time
- grid :
- grid
- location :
- face
- field :
- temperature, scalar, series
- standard_name :
- sea_water_temperature
Array Chunk Bytes 9.06 MiB 1.14 MiB Shape (4, 15, 199, 199) (1, 15, 199, 100) Count 343 Tasks 8 Chunks Type float32 numpy.ndarray 4 1 199 199 15 - salt(ocean_time, Depth, ny, nx)float32dask.array<chunksize=(1, 15, 199, 100), meta=np.ndarray>
- long_name :
- salinity
- units :
- PSU
- time :
- ocean_time
- grid :
- grid
- location :
- face
- field :
- salinity, scalar, series
- standard_name :
- sea_water_practical_salinity
Array Chunk Bytes 9.06 MiB 1.14 MiB Shape (4, 15, 199, 199) (1, 15, 199, 100) Count 343 Tasks 8 Chunks Type float32 numpy.ndarray 4 1 199 199 15
- file :
- nos.cbofs.fields.nowcast.20220825.t12z_0002.nc
- format :
- netCDF-4/HDF5 file
- Conventions :
- CF-1.4, SGRID-0.3
- type :
- ROMS/TOMS history file
- title :
- cbofs nowcast RUN in operational mode
- var_info :
- varinfo.dat
- rst_file :
- nos.cbofs.rst.nowcast.20220825.t12z.nc
- his_base :
- nos.cbofs.fields.nowcast.20220825.t12z
- sta_file :
- nos.cbofs.stations.nowcast.20220825.t12z.nc
- grd_file :
- nos.cbofs.romsgrid.nc
- ini_file :
- nos.cbofs.init.nowcast.20220825.t12z.nc
- tide_file :
- nos.cbofs.roms.tides.nc
- frc_file_01 :
- nos.cbofs.met.nowcast.20220825.t12z.nc
- frc_file_02 :
- nos.cbofs.respirate.nc
- bry_file_01 :
- nos.cbofs.obc.20220825.t12z.nc
- script_file :
- cbofs_ROMS_nowcast.in
- bpar_file :
- nos.cbofs.bio.in
- spos_file :
- nos.cbofs.stations.in
- NLM_TADV :
- ADVECTION: HORIZONTAL VERTICAL temp: HSIMT HSIMT salt: HSIMT HSIMT oxygen: HSIMT HSIMT
- NLM_LBC :
- EDGE: WEST SOUTH EAST NORTH zeta: Clo Cha Cha Clo ubar: Clo Fla Fla Clo vbar: Clo Fla Fla Clo u: Clo Rad Rad Clo v: Clo Rad Rad Clo temp: Clo RadNud RadNud Clo salt: Clo RadNud RadNud Clo oxygen: Clo RadNud RadNud Clo tke: Clo Gra Gra Clo
- svn_url :
- svn_rev :
- code_dir :
- /lfs/h1/ops/prod/packages/nosofs.v3.4.2/sorc/ROMS.fd
- header_dir :
- /lfs/h1/ops/prod/packages/nosofs.v3.4.2/sorc/ROMS.fd/ROMS/Include
- header_file :
- cbofs.h
- os :
- Linux
- cpu :
- x86_64
- compiler_system :
- ftn-intel
- compiler_command :
- /opt/cray/pe/craype/2.7.10/bin/ftn
- compiler_flags :
- -fp-model precise -ip -O2
- tiling :
- 008x016
- history :
- ROMS/TOMS, Version 3.9, Thursday - August 25, 2022 - 12:48:02 PM
- ana_file :
- ROMS/Functionals/ana_btflux.h, ROMS/Functionals/ana_rain.h, ROMS/Functionals/ana_stflux.h
- CPP_options :
- mode, ADD_FSOBC, ADD_M2OBC, ANA_BPFLUX, ANA_BSFLUX, ANA_BTFLUX, ANA_RAIN, ANA_SPFLUX, ANA_SSFLUX, ASSUMED_SHAPE, ATM_PRESS, !BOUNDARY_ALLGATHER, BULK_FLUXES, !COLLECT_ALL..., CURVGRID, DIFF_GRID, DJ_GRADPS, DOUBLE_PRECISION, EMINUSP, GLS_MIXING, HDF5, HYPOXIA_SRM, LIMIT_STFLX_COOLING, KANTHA_CLAYSON, LONGWAVE_OUT, MASKING, MIX_GEO_TS, MIX_S_UV, MPI, NONLINEAR, NONLIN_EOS, NO_LBC_ATT, N2S2_HORAVG, PERFECT_RESTART, POWER_LAW, PROFILE, K_GSCHEME, RADIATION_2D, REDUCE_ALLREDUCE, !RST_SINGLE, SALINITY, SOLAR_SOURCE, SOLVE3D, SSH_TIDES, STATIONS, SURFACE_DO_SATURATION, TS_DIF2, UV_ADV, UV_COR, UV_U3HADVECTION, UV_C4VADVECTION, UV_QDRAG, UV_TIDES, UV_VIS2, VAR_RHO_2D, VISC_GRID
- bio_file :
- ROMS/Nonlinear/Biology/hypoxia_srm.h
- DODS_EXTRA.Unlimited_Dimension :
- ocean_time
By time index¶
Use ds.cf.isel(T=slice(start_index, end_index, stride)).
[20]:
ds_cbofs_rg_ss.cf.isel(T=slice(5, 15, 2))
[20]:
<xarray.Dataset>
Dimensions: (ny: 199, nx: 199, ocean_time: 5, Depth: 15)
Coordinates:
Latitude (ny, nx) float64 dask.array<chunksize=(199, 199), meta=np.ndarray>
Longitude (ny, nx) float64 dask.array<chunksize=(199, 199), meta=np.ndarray>
* nx (nx) int64 269 270 271 272 273 274 ... 462 463 464 465 466 467
* ny (ny) int64 167 168 169 170 171 172 ... 360 361 362 363 364 365
* ocean_time (ocean_time) datetime64[ns] 2022-08-25T16:00:00 ... 2022-08-26
* Depth (Depth) float64 0.0 2.0 4.0 6.0 8.0 ... 35.0 40.0 45.0 50.0
Data variables:
h (ny, nx) float64 dask.array<chunksize=(199, 199), meta=np.ndarray>
mask (ny, nx) float64 dask.array<chunksize=(199, 199), meta=np.ndarray>
zeta (ocean_time, ny, nx) float32 dask.array<chunksize=(1, 199, 199), meta=np.ndarray>
zetatomllw (ocean_time, ny, nx) float32 dask.array<chunksize=(1, 199, 199), meta=np.ndarray>
u_eastward (ocean_time, Depth, ny, nx) float32 dask.array<chunksize=(1, 15, 199, 100), meta=np.ndarray>
v_northward (ocean_time, Depth, ny, nx) float32 dask.array<chunksize=(1, 15, 199, 100), meta=np.ndarray>
temp (ocean_time, Depth, ny, nx) float32 dask.array<chunksize=(1, 15, 199, 100), meta=np.ndarray>
salt (ocean_time, Depth, ny, nx) float32 dask.array<chunksize=(1, 15, 199, 100), meta=np.ndarray>
Attributes: (12/36)
file: nos.cbofs.fields.nowcast.20220825.t12z_0...
format: netCDF-4/HDF5 file
Conventions: CF-1.4, SGRID-0.3
type: ROMS/TOMS history file
title: cbofs nowcast RUN in operational mode
var_info: varinfo.dat
... ...
tiling: 008x016
history: ROMS/TOMS, Version 3.9, Thursday - Augus...
ana_file: ROMS/Functionals/ana_btflux.h, ROMS/Func...
CPP_options: mode, ADD_FSOBC, ADD_M2OBC, ANA_BPFLUX, ...
bio_file: ROMS/Nonlinear/Biology/hypoxia_srm.h
DODS_EXTRA.Unlimited_Dimension: ocean_time- ny: 199
- nx: 199
- ocean_time: 5
- Depth: 15
- Latitude(ny, nx)float64dask.array<chunksize=(199, 199), meta=np.ndarray>
- long_name :
- Latitude in common grid
- units :
- degrees_north
Array Chunk Bytes 309.38 kiB 309.38 kiB Shape (199, 199) (199, 199) Count 26 Tasks 1 Chunks Type float64 numpy.ndarray 199 199 - Longitude(ny, nx)float64dask.array<chunksize=(199, 199), meta=np.ndarray>
- long_name :
- Longitude in common grid
- units :
- degrees_east
Array Chunk Bytes 309.38 kiB 309.38 kiB Shape (199, 199) (199, 199) Count 26 Tasks 1 Chunks Type float64 numpy.ndarray 199 199 - nx(nx)int64269 270 271 272 ... 464 465 466 467
- axis :
- X
array([269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467]) - ny(ny)int64167 168 169 170 ... 362 363 364 365
- axis :
- Y
array([167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365]) - ocean_time(ocean_time)datetime64[ns]2022-08-25T16:00:00 ... 2022-08-26
- long_name :
- time since initialization
- field :
- time, scalar, series
- axis :
- T
array(['2022-08-25T16:00:00.000000000', '2022-08-25T18:00:00.000000000', '2022-08-25T20:00:00.000000000', '2022-08-25T22:00:00.000000000', '2022-08-26T00:00:00.000000000'], dtype='datetime64[ns]') - Depth(Depth)float640.0 2.0 4.0 6.0 ... 40.0 45.0 50.0
- long_name :
- Depths of Standard Layer
- units :
- m
- positive :
- down
- axis :
- Z
array([ 0., 2., 4., 6., 8., 10., 12., 15., 20., 25., 30., 35., 40., 45., 50.])
- h(ny, nx)float64dask.array<chunksize=(199, 199), meta=np.ndarray>
- long_name :
- bathymetry
- units :
- meter
- grid :
- grid
- location :
- face
- field :
- bath, scaler
- standard_name :
- sea_floor_depth
Array Chunk Bytes 309.38 kiB 309.38 kiB Shape (199, 199) (199, 199) Count 7 Tasks 1 Chunks Type float64 numpy.ndarray 199 199 - mask(ny, nx)float64dask.array<chunksize=(199, 199), meta=np.ndarray>
- long_name :
- mask
- flag_values :
- [0. 1.]
- flag_meanings :
- land, water
- grid :
- grid
- location :
- face
Array Chunk Bytes 309.38 kiB 309.38 kiB Shape (199, 199) (199, 199) Count 7 Tasks 1 Chunks Type float64 numpy.ndarray 199 199 - zeta(ocean_time, ny, nx)float32dask.array<chunksize=(1, 199, 199), meta=np.ndarray>
- long_name :
- free-surface referenced to mean sea level
- units :
- meters
- time :
- ocean_time
- grid :
- grid
- location :
- face
- field :
- free-surface, scalar, series
- standard_name :
- sea_surface_elevation
Array Chunk Bytes 773.46 kiB 154.69 kiB Shape (5, 199, 199) (1, 199, 199) Count 264 Tasks 5 Chunks Type float32 numpy.ndarray 199 199 5 - zetatomllw(ocean_time, ny, nx)float32dask.array<chunksize=(1, 199, 199), meta=np.ndarray>
- long_name :
- free-surface referenced to mean lower low water
- units :
- meters
- time :
- ocean_time
- grid :
- grid
- location :
- face
- field :
- free-surface, scalar, series
Array Chunk Bytes 773.46 kiB 154.69 kiB Shape (5, 199, 199) (1, 199, 199) Count 264 Tasks 5 Chunks Type float32 numpy.ndarray 199 199 5 - u_eastward(ocean_time, Depth, ny, nx)float32dask.array<chunksize=(1, 15, 199, 100), meta=np.ndarray>
- long_name :
- eastward momentum component
- units :
- meters second-1
- time :
- ocean_time
- standard_name :
- eastward_sea_water_velocity
- grid :
- grid
- location :
- face
- field :
- u_eastward, scalar, series
Array Chunk Bytes 11.33 MiB 1.14 MiB Shape (5, 15, 199, 199) (1, 15, 199, 100) Count 345 Tasks 10 Chunks Type float32 numpy.ndarray 5 1 199 199 15 - v_northward(ocean_time, Depth, ny, nx)float32dask.array<chunksize=(1, 15, 199, 100), meta=np.ndarray>
- long_name :
- northward momentum component
- units :
- meters second-1
- time :
- ocean_time
- standard_name :
- northward_sea_water_velocity
- grid :
- grid
- location :
- face
- field :
- v_northward, scalar, series
Array Chunk Bytes 11.33 MiB 1.14 MiB Shape (5, 15, 199, 199) (1, 15, 199, 100) Count 345 Tasks 10 Chunks Type float32 numpy.ndarray 5 1 199 199 15 - temp(ocean_time, Depth, ny, nx)float32dask.array<chunksize=(1, 15, 199, 100), meta=np.ndarray>
- long_name :
- potential temperature
- units :
- Celsius
- time :
- ocean_time
- grid :
- grid
- location :
- face
- field :
- temperature, scalar, series
- standard_name :
- sea_water_temperature
Array Chunk Bytes 11.33 MiB 1.14 MiB Shape (5, 15, 199, 199) (1, 15, 199, 100) Count 345 Tasks 10 Chunks Type float32 numpy.ndarray 5 1 199 199 15 - salt(ocean_time, Depth, ny, nx)float32dask.array<chunksize=(1, 15, 199, 100), meta=np.ndarray>
- long_name :
- salinity
- units :
- PSU
- time :
- ocean_time
- grid :
- grid
- location :
- face
- field :
- salinity, scalar, series
- standard_name :
- sea_water_practical_salinity
Array Chunk Bytes 11.33 MiB 1.14 MiB Shape (5, 15, 199, 199) (1, 15, 199, 100) Count 345 Tasks 10 Chunks Type float32 numpy.ndarray 5 1 199 199 15
- file :
- nos.cbofs.fields.nowcast.20220825.t12z_0002.nc
- format :
- netCDF-4/HDF5 file
- Conventions :
- CF-1.4, SGRID-0.3
- type :
- ROMS/TOMS history file
- title :
- cbofs nowcast RUN in operational mode
- var_info :
- varinfo.dat
- rst_file :
- nos.cbofs.rst.nowcast.20220825.t12z.nc
- his_base :
- nos.cbofs.fields.nowcast.20220825.t12z
- sta_file :
- nos.cbofs.stations.nowcast.20220825.t12z.nc
- grd_file :
- nos.cbofs.romsgrid.nc
- ini_file :
- nos.cbofs.init.nowcast.20220825.t12z.nc
- tide_file :
- nos.cbofs.roms.tides.nc
- frc_file_01 :
- nos.cbofs.met.nowcast.20220825.t12z.nc
- frc_file_02 :
- nos.cbofs.respirate.nc
- bry_file_01 :
- nos.cbofs.obc.20220825.t12z.nc
- script_file :
- cbofs_ROMS_nowcast.in
- bpar_file :
- nos.cbofs.bio.in
- spos_file :
- nos.cbofs.stations.in
- NLM_TADV :
- ADVECTION: HORIZONTAL VERTICAL temp: HSIMT HSIMT salt: HSIMT HSIMT oxygen: HSIMT HSIMT
- NLM_LBC :
- EDGE: WEST SOUTH EAST NORTH zeta: Clo Cha Cha Clo ubar: Clo Fla Fla Clo vbar: Clo Fla Fla Clo u: Clo Rad Rad Clo v: Clo Rad Rad Clo temp: Clo RadNud RadNud Clo salt: Clo RadNud RadNud Clo oxygen: Clo RadNud RadNud Clo tke: Clo Gra Gra Clo
- svn_url :
- svn_rev :
- code_dir :
- /lfs/h1/ops/prod/packages/nosofs.v3.4.2/sorc/ROMS.fd
- header_dir :
- /lfs/h1/ops/prod/packages/nosofs.v3.4.2/sorc/ROMS.fd/ROMS/Include
- header_file :
- cbofs.h
- os :
- Linux
- cpu :
- x86_64
- compiler_system :
- ftn-intel
- compiler_command :
- /opt/cray/pe/craype/2.7.10/bin/ftn
- compiler_flags :
- -fp-model precise -ip -O2
- tiling :
- 008x016
- history :
- ROMS/TOMS, Version 3.9, Thursday - August 25, 2022 - 12:48:02 PM
- ana_file :
- ROMS/Functionals/ana_btflux.h, ROMS/Functionals/ana_rain.h, ROMS/Functionals/ana_stflux.h
- CPP_options :
- mode, ADD_FSOBC, ADD_M2OBC, ANA_BPFLUX, ANA_BSFLUX, ANA_BTFLUX, ANA_RAIN, ANA_SPFLUX, ANA_SSFLUX, ASSUMED_SHAPE, ATM_PRESS, !BOUNDARY_ALLGATHER, BULK_FLUXES, !COLLECT_ALL..., CURVGRID, DIFF_GRID, DJ_GRADPS, DOUBLE_PRECISION, EMINUSP, GLS_MIXING, HDF5, HYPOXIA_SRM, LIMIT_STFLX_COOLING, KANTHA_CLAYSON, LONGWAVE_OUT, MASKING, MIX_GEO_TS, MIX_S_UV, MPI, NONLINEAR, NONLIN_EOS, NO_LBC_ATT, N2S2_HORAVG, PERFECT_RESTART, POWER_LAW, PROFILE, K_GSCHEME, RADIATION_2D, REDUCE_ALLREDUCE, !RST_SINGLE, SALINITY, SOLAR_SOURCE, SOLVE3D, SSH_TIDES, STATIONS, SURFACE_DO_SATURATION, TS_DIF2, UV_ADV, UV_COR, UV_U3HADVECTION, UV_C4VADVECTION, UV_QDRAG, UV_TIDES, UV_VIS2, VAR_RHO_2D, VISC_GRID
- bio_file :
- ROMS/Nonlinear/Biology/hypoxia_srm.h
- DODS_EXTRA.Unlimited_Dimension :
- ocean_time
Subset to Variables¶
Specify desired variables by standard names (in particular, those defined in the catalog files). The filter() method also retains the variables necessary to decode vertical coordinates in the future.
[21]:
Vars = ['eastward_sea_water_velocity', 'northward_sea_water_velocity']
ds_cbofs_rg_ss.em.filter(Vars)
[21]:
<xarray.Dataset>
Dimensions: (ocean_time: 24, Depth: 15, ny: 199, nx: 199)
Coordinates:
Latitude (ny, nx) float64 dask.array<chunksize=(199, 199), meta=np.ndarray>
Longitude (ny, nx) float64 dask.array<chunksize=(199, 199), meta=np.ndarray>
* nx (nx) int64 269 270 271 272 273 274 ... 462 463 464 465 466 467
* ny (ny) int64 167 168 169 170 171 172 ... 360 361 362 363 364 365
* ocean_time (ocean_time) datetime64[ns] 2022-08-25T11:00:00 ... 2022-08-...
* Depth (Depth) float64 0.0 2.0 4.0 6.0 8.0 ... 35.0 40.0 45.0 50.0
Data variables:
u_eastward (ocean_time, Depth, ny, nx) float32 dask.array<chunksize=(1, 15, 199, 100), meta=np.ndarray>
v_northward (ocean_time, Depth, ny, nx) float32 dask.array<chunksize=(1, 15, 199, 100), meta=np.ndarray>
Attributes: (12/36)
file: nos.cbofs.fields.nowcast.20220825.t12z_0...
format: netCDF-4/HDF5 file
Conventions: CF-1.4, SGRID-0.3
type: ROMS/TOMS history file
title: cbofs nowcast RUN in operational mode
var_info: varinfo.dat
... ...
tiling: 008x016
history: ROMS/TOMS, Version 3.9, Thursday - Augus...
ana_file: ROMS/Functionals/ana_btflux.h, ROMS/Func...
CPP_options: mode, ADD_FSOBC, ADD_M2OBC, ANA_BPFLUX, ...
bio_file: ROMS/Nonlinear/Biology/hypoxia_srm.h
DODS_EXTRA.Unlimited_Dimension: ocean_time- ocean_time: 24
- Depth: 15
- ny: 199
- nx: 199
- Latitude(ny, nx)float64dask.array<chunksize=(199, 199), meta=np.ndarray>
- long_name :
- Latitude in common grid
- units :
- degrees_north
Array Chunk Bytes 309.38 kiB 309.38 kiB Shape (199, 199) (199, 199) Count 26 Tasks 1 Chunks Type float64 numpy.ndarray 199 199 - Longitude(ny, nx)float64dask.array<chunksize=(199, 199), meta=np.ndarray>
- long_name :
- Longitude in common grid
- units :
- degrees_east
Array Chunk Bytes 309.38 kiB 309.38 kiB Shape (199, 199) (199, 199) Count 26 Tasks 1 Chunks Type float64 numpy.ndarray 199 199 - nx(nx)int64269 270 271 272 ... 464 465 466 467
- axis :
- X
array([269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467]) - ny(ny)int64167 168 169 170 ... 362 363 364 365
- axis :
- Y
array([167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365]) - ocean_time(ocean_time)datetime64[ns]2022-08-25T11:00:00 ... 2022-08-...
- long_name :
- time since initialization
- field :
- time, scalar, series
- axis :
- T
array(['2022-08-25T11:00:00.000000000', '2022-08-25T12:00:00.000000000', '2022-08-25T13:00:00.000000000', '2022-08-25T14:00:00.000000000', '2022-08-25T15:00:00.000000000', '2022-08-25T16:00:00.000000000', '2022-08-25T17:00:00.000000000', '2022-08-25T18:00:00.000000000', '2022-08-25T19:00:00.000000000', '2022-08-25T20:00:00.000000000', '2022-08-25T21:00:00.000000000', '2022-08-25T22:00:00.000000000', '2022-08-25T23:00:00.000000000', '2022-08-26T00:00:00.000000000', '2022-08-26T01:00:00.000000000', '2022-08-26T02:00:00.000000000', '2022-08-26T03:00:00.000000000', '2022-08-26T04:00:00.000000000', '2022-08-26T05:00:00.000000000', '2022-08-26T06:00:00.000000000', '2022-08-26T07:00:00.000000000', '2022-08-26T08:00:00.000000000', '2022-08-26T09:00:00.000000000', '2022-08-26T10:00:00.000000000'], dtype='datetime64[ns]') - Depth(Depth)float640.0 2.0 4.0 6.0 ... 40.0 45.0 50.0
- long_name :
- Depths of Standard Layer
- units :
- m
- positive :
- down
- axis :
- Z
array([ 0., 2., 4., 6., 8., 10., 12., 15., 20., 25., 30., 35., 40., 45., 50.])
- u_eastward(ocean_time, Depth, ny, nx)float32dask.array<chunksize=(1, 15, 199, 100), meta=np.ndarray>
- long_name :
- eastward momentum component
- units :
- meters second-1
- time :
- ocean_time
- standard_name :
- eastward_sea_water_velocity
- grid :
- grid
- location :
- face
- field :
- u_eastward, scalar, series
Array Chunk Bytes 54.38 MiB 1.14 MiB Shape (24, 15, 199, 199) (1, 15, 199, 100) Count 335 Tasks 48 Chunks Type float32 numpy.ndarray 24 1 199 199 15 - v_northward(ocean_time, Depth, ny, nx)float32dask.array<chunksize=(1, 15, 199, 100), meta=np.ndarray>
- long_name :
- northward momentum component
- units :
- meters second-1
- time :
- ocean_time
- standard_name :
- northward_sea_water_velocity
- grid :
- grid
- location :
- face
- field :
- v_northward, scalar, series
Array Chunk Bytes 54.38 MiB 1.14 MiB Shape (24, 15, 199, 199) (1, 15, 199, 100) Count 335 Tasks 48 Chunks Type float32 numpy.ndarray 24 1 199 199 15
- file :
- nos.cbofs.fields.nowcast.20220825.t12z_0002.nc
- format :
- netCDF-4/HDF5 file
- Conventions :
- CF-1.4, SGRID-0.3
- type :
- ROMS/TOMS history file
- title :
- cbofs nowcast RUN in operational mode
- var_info :
- varinfo.dat
- rst_file :
- nos.cbofs.rst.nowcast.20220825.t12z.nc
- his_base :
- nos.cbofs.fields.nowcast.20220825.t12z
- sta_file :
- nos.cbofs.stations.nowcast.20220825.t12z.nc
- grd_file :
- nos.cbofs.romsgrid.nc
- ini_file :
- nos.cbofs.init.nowcast.20220825.t12z.nc
- tide_file :
- nos.cbofs.roms.tides.nc
- frc_file_01 :
- nos.cbofs.met.nowcast.20220825.t12z.nc
- frc_file_02 :
- nos.cbofs.respirate.nc
- bry_file_01 :
- nos.cbofs.obc.20220825.t12z.nc
- script_file :
- cbofs_ROMS_nowcast.in
- bpar_file :
- nos.cbofs.bio.in
- spos_file :
- nos.cbofs.stations.in
- NLM_TADV :
- ADVECTION: HORIZONTAL VERTICAL temp: HSIMT HSIMT salt: HSIMT HSIMT oxygen: HSIMT HSIMT
- NLM_LBC :
- EDGE: WEST SOUTH EAST NORTH zeta: Clo Cha Cha Clo ubar: Clo Fla Fla Clo vbar: Clo Fla Fla Clo u: Clo Rad Rad Clo v: Clo Rad Rad Clo temp: Clo RadNud RadNud Clo salt: Clo RadNud RadNud Clo oxygen: Clo RadNud RadNud Clo tke: Clo Gra Gra Clo
- svn_url :
- svn_rev :
- code_dir :
- /lfs/h1/ops/prod/packages/nosofs.v3.4.2/sorc/ROMS.fd
- header_dir :
- /lfs/h1/ops/prod/packages/nosofs.v3.4.2/sorc/ROMS.fd/ROMS/Include
- header_file :
- cbofs.h
- os :
- Linux
- cpu :
- x86_64
- compiler_system :
- ftn-intel
- compiler_command :
- /opt/cray/pe/craype/2.7.10/bin/ftn
- compiler_flags :
- -fp-model precise -ip -O2
- tiling :
- 008x016
- history :
- ROMS/TOMS, Version 3.9, Thursday - August 25, 2022 - 12:48:02 PM
- ana_file :
- ROMS/Functionals/ana_btflux.h, ROMS/Functionals/ana_rain.h, ROMS/Functionals/ana_stflux.h
- CPP_options :
- mode, ADD_FSOBC, ADD_M2OBC, ANA_BPFLUX, ANA_BSFLUX, ANA_BTFLUX, ANA_RAIN, ANA_SPFLUX, ANA_SSFLUX, ASSUMED_SHAPE, ATM_PRESS, !BOUNDARY_ALLGATHER, BULK_FLUXES, !COLLECT_ALL..., CURVGRID, DIFF_GRID, DJ_GRADPS, DOUBLE_PRECISION, EMINUSP, GLS_MIXING, HDF5, HYPOXIA_SRM, LIMIT_STFLX_COOLING, KANTHA_CLAYSON, LONGWAVE_OUT, MASKING, MIX_GEO_TS, MIX_S_UV, MPI, NONLINEAR, NONLIN_EOS, NO_LBC_ATT, N2S2_HORAVG, PERFECT_RESTART, POWER_LAW, PROFILE, K_GSCHEME, RADIATION_2D, REDUCE_ALLREDUCE, !RST_SINGLE, SALINITY, SOLAR_SOURCE, SOLVE3D, SSH_TIDES, STATIONS, SURFACE_DO_SATURATION, TS_DIF2, UV_ADV, UV_COR, UV_U3HADVECTION, UV_C4VADVECTION, UV_QDRAG, UV_TIDES, UV_VIS2, VAR_RHO_2D, VISC_GRID
- bio_file :
- ROMS/Nonlinear/Biology/hypoxia_srm.h
- DODS_EXTRA.Unlimited_Dimension :
- ocean_time
Return Dataset Size¶
xarray will estimate the size of the dataset with .nbytes — divide by 1e9 to get GB, or 1e6 to get MB instead.
[22]:
ds_cbofs_rg_ss.em.filter(Vars).nbytes/1e6
[22]:
114.687992
Save to file¶
Save to file with ds.to_netcdf([filename.nc]).
Put commands together¶
Select a few variables from the ROMS curvilinear grid model, then subset the Dataset in space to a smaller box, narrow the time range, check size, then save to file. Then, read in saved file to demonstrate that the vertical coordinates have been read in and calculated only at that point.
1. Curvilinear, multiple horizontal grids¶
[23]:
%%time
standard_names = ['eastward_sea_water_velocity', 'northward_sea_water_velocity',
'sea_water_temperature', 'sea_water_practical_salinity', 'sea_floor_depth']
# Select bounding box for sub-domain
bbox = [-77, 38.5, -76, 40]
# Select time range to keep
today = pd.Timestamp.today()
later_today = today + pd.Timedelta('12 hours')
# Select out variables from Dataset
ds_small = ds_cbofs.em.filter(standard_names).em.sub_grid(bbox=bbox).cf.sel(T=slice(today, later_today))
# Size of subset
print(f'Subdomain is {ds_small.nbytes/1e6} MB')
# drop attributes for now, except need ROMS
ds_small.attrs = {}
ds_small.attrs['model'] = 'ROMS'
# Save to file
ds_small.to_netcdf('sample_roms.nc')
Subdomain is 174.493296 MB
CPU times: user 4.4 s, sys: 3.25 s, total: 7.65 s
Wall time: 1min 10s
Read in saved file with extract_model to get vertical coord decoding back in!
[24]:
ds_small2 = xr.open_mfdataset(['sample_roms.nc'], preprocess=em.preprocess)
print(ds_small2.nbytes/1e6)
ds_small2
346.98456
[24]:
<xarray.Dataset>
Dimensions: (s_rho: 20, s_w: 21, eta_rho: 132, xi_rho: 332, ocean_time: 12,
eta_u: 132, xi_u: 331, eta_v: 131, xi_v: 332, eta_psi: 131,
xi_psi: 331)
Coordinates: (12/21)
* s_rho (s_rho) float64 -0.975 -0.925 -0.875 ... -0.125 -0.075 -0.025
* s_w (s_w) float64 -1.0 -0.95 -0.9 -0.85 ... -0.15 -0.1 -0.05 0.0
lon_rho (eta_rho, xi_rho) float64 dask.array<chunksize=(132, 332), meta=np.ndarray>
lat_rho (eta_rho, xi_rho) float64 dask.array<chunksize=(132, 332), meta=np.ndarray>
* ocean_time (ocean_time) datetime64[ns] 2022-08-25T11:00:00 ... 2022-08-2...
* xi_rho (xi_rho) int64 0 1 2 3 4 5 6 7 ... 325 326 327 328 329 330 331
... ...
* xi_psi (xi_psi) int64 0 1 2 3 4 5 6 7 ... 324 325 326 327 328 329 330
* eta_u (eta_u) int64 0 1 2 3 4 5 6 7 ... 125 126 127 128 129 130 131
* eta_v (eta_v) int64 0 1 2 3 4 5 6 7 ... 124 125 126 127 128 129 130
* eta_psi (eta_psi) int64 0 1 2 3 4 5 6 7 ... 124 125 126 127 128 129 130
z_rho (ocean_time, s_rho, eta_rho, xi_rho) float64 dask.array<chunksize=(12, 20, 132, 332), meta=np.ndarray>
z_w (ocean_time, s_w, eta_rho, xi_rho) float64 dask.array<chunksize=(12, 21, 132, 332), meta=np.ndarray>
Data variables: (12/13)
h (eta_rho, xi_rho) float64 dask.array<chunksize=(132, 332), meta=np.ndarray>
zeta (ocean_time, eta_rho, xi_rho) float32 dask.array<chunksize=(12, 132, 332), meta=np.ndarray>
hc float64 ...
Cs_r (s_rho) float64 dask.array<chunksize=(20,), meta=np.ndarray>
Cs_w (s_w) float64 dask.array<chunksize=(21,), meta=np.ndarray>
mask_rho (eta_rho, xi_rho) float64 dask.array<chunksize=(132, 332), meta=np.ndarray>
... ...
mask_v (eta_v, xi_v) float64 dask.array<chunksize=(131, 332), meta=np.ndarray>
mask_psi (eta_psi, xi_psi) float64 dask.array<chunksize=(131, 331), meta=np.ndarray>
u (ocean_time, s_rho, eta_u, xi_u) float32 dask.array<chunksize=(12, 20, 132, 331), meta=np.ndarray>
v (ocean_time, s_rho, eta_v, xi_v) float32 dask.array<chunksize=(12, 20, 131, 332), meta=np.ndarray>
temp (ocean_time, s_rho, eta_rho, xi_rho) float32 dask.array<chunksize=(12, 20, 132, 332), meta=np.ndarray>
salt (ocean_time, s_rho, eta_rho, xi_rho) float32 dask.array<chunksize=(12, 20, 132, 332), meta=np.ndarray>
Attributes:
model: ROMS- s_rho: 20
- s_w: 21
- eta_rho: 132
- xi_rho: 332
- ocean_time: 12
- eta_u: 132
- xi_u: 331
- eta_v: 131
- xi_v: 332
- eta_psi: 131
- xi_psi: 331
- s_rho(s_rho)float64-0.975 -0.925 ... -0.075 -0.025
- 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.975, -0.925, -0.875, -0.825, -0.775, -0.725, -0.675, -0.625, -0.575, -0.525, -0.475, -0.425, -0.375, -0.325, -0.275, -0.225, -0.175, -0.125, -0.075, -0.025]) - s_w(s_w)float64-1.0 -0.95 -0.9 ... -0.1 -0.05 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.95, -0.9 , -0.85, -0.8 , -0.75, -0.7 , -0.65, -0.6 , -0.55, -0.5 , -0.45, -0.4 , -0.35, -0.3 , -0.25, -0.2 , -0.15, -0.1 , -0.05, 0. ]) - lon_rho(eta_rho, xi_rho)float64dask.array<chunksize=(132, 332), meta=np.ndarray>
- long_name :
- longitude of RHO-points
- units :
- degree_east
- standard_name :
- longitude
- field :
- lon_rho, scalar
Array Chunk Bytes 342.38 kiB 342.38 kiB Shape (132, 332) (132, 332) Count 2 Tasks 1 Chunks Type float64 numpy.ndarray 332 132 - lat_rho(eta_rho, xi_rho)float64dask.array<chunksize=(132, 332), meta=np.ndarray>
- long_name :
- latitude of RHO-points
- units :
- degree_north
- standard_name :
- latitude
- field :
- lat_rho, scalar
Array Chunk Bytes 342.38 kiB 342.38 kiB Shape (132, 332) (132, 332) Count 2 Tasks 1 Chunks Type float64 numpy.ndarray 332 132 - ocean_time(ocean_time)datetime64[ns]2022-08-25T11:00:00 ... 2022-08-...
- long_name :
- time since initialization
- field :
- time, scalar, series
- _ChunkSizes :
- 512
- axis :
- T
- standard_name :
- time
array(['2022-08-25T11:00:00.000000000', '2022-08-25T12:00:00.000000000', '2022-08-25T13:00:00.000000000', '2022-08-25T14:00:00.000000000', '2022-08-25T15:00:00.000000000', '2022-08-25T16:00:00.000000000', '2022-08-25T17:00:00.000000000', '2022-08-25T18:00:00.000000000', '2022-08-25T19:00:00.000000000', '2022-08-25T20:00:00.000000000', '2022-08-25T21:00:00.000000000', '2022-08-25T22:00:00.000000000'], dtype='datetime64[ns]') - xi_rho(xi_rho)int640 1 2 3 4 5 ... 327 328 329 330 331
- axis :
- X
array([ 0, 1, 2, ..., 329, 330, 331])
- eta_rho(eta_rho)int640 1 2 3 4 5 ... 127 128 129 130 131
- 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]) - lon_u(eta_u, xi_u)float64dask.array<chunksize=(132, 331), meta=np.ndarray>
- long_name :
- longitude of U-points
- units :
- degree_east
- standard_name :
- longitude
- field :
- lon_u, scalar
Array Chunk Bytes 341.34 kiB 341.34 kiB Shape (132, 331) (132, 331) Count 2 Tasks 1 Chunks Type float64 numpy.ndarray 331 132 - lat_u(eta_u, xi_u)float64dask.array<chunksize=(132, 331), meta=np.ndarray>
- long_name :
- latitude of U-points
- units :
- degree_north
- standard_name :
- latitude
- field :
- lat_u, scalar
Array Chunk Bytes 341.34 kiB 341.34 kiB Shape (132, 331) (132, 331) Count 2 Tasks 1 Chunks Type float64 numpy.ndarray 331 132 - lon_v(eta_v, xi_v)float64dask.array<chunksize=(131, 332), meta=np.ndarray>
- long_name :
- longitude of V-points
- units :
- degree_east
- standard_name :
- longitude
- field :
- lon_v, scalar
Array Chunk Bytes 339.78 kiB 339.78 kiB Shape (131, 332) (131, 332) Count 2 Tasks 1 Chunks Type float64 numpy.ndarray 332 131 - lat_v(eta_v, xi_v)float64dask.array<chunksize=(131, 332), meta=np.ndarray>
- long_name :
- latitude of V-points
- units :
- degree_north
- standard_name :
- latitude
- field :
- lat_v, scalar
Array Chunk Bytes 339.78 kiB 339.78 kiB Shape (131, 332) (131, 332) Count 2 Tasks 1 Chunks Type float64 numpy.ndarray 332 131 - lon_psi(eta_psi, xi_psi)float64dask.array<chunksize=(131, 331), meta=np.ndarray>
- long_name :
- longitude of PSI-points
- units :
- degree_east
- standard_name :
- longitude
- field :
- lon_psi, scalar
Array Chunk Bytes 338.76 kiB 338.76 kiB Shape (131, 331) (131, 331) Count 2 Tasks 1 Chunks Type float64 numpy.ndarray 331 131 - lat_psi(eta_psi, xi_psi)float64dask.array<chunksize=(131, 331), meta=np.ndarray>
- long_name :
- latitude of PSI-points
- units :
- degree_north
- standard_name :
- latitude
- field :
- lat_psi, scalar
Array Chunk Bytes 338.76 kiB 338.76 kiB Shape (131, 331) (131, 331) Count 2 Tasks 1 Chunks Type float64 numpy.ndarray 331 131 - xi_u(xi_u)int640 1 2 3 4 5 ... 326 327 328 329 330
- axis :
- X
array([ 0, 1, 2, ..., 328, 329, 330])
- xi_v(xi_v)int640 1 2 3 4 5 ... 327 328 329 330 331
- axis :
- X
array([ 0, 1, 2, ..., 329, 330, 331])
- xi_psi(xi_psi)int640 1 2 3 4 5 ... 326 327 328 329 330
- axis :
- X
array([ 0, 1, 2, ..., 328, 329, 330])
- eta_u(eta_u)int640 1 2 3 4 5 ... 127 128 129 130 131
- 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]) - eta_v(eta_v)int640 1 2 3 4 5 ... 126 127 128 129 130
- 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]) - eta_psi(eta_psi)int640 1 2 3 4 5 ... 126 127 128 129 130
- 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]) - z_rho(ocean_time, s_rho, eta_rho, xi_rho)float64dask.array<chunksize=(12, 20, 132, 332), meta=np.ndarray>
- positive :
- up
- units :
- m
Array Chunk Bytes 80.24 MiB 80.24 MiB Shape (12, 20, 132, 332) (12, 20, 132, 332) Count 28 Tasks 1 Chunks Type float64 numpy.ndarray 12 1 332 132 20 - z_w(ocean_time, s_w, eta_rho, xi_rho)float64dask.array<chunksize=(12, 21, 132, 332), meta=np.ndarray>
- positive :
- up
- units :
- m
Array Chunk Bytes 84.26 MiB 84.26 MiB Shape (12, 21, 132, 332) (12, 21, 132, 332) Count 28 Tasks 1 Chunks Type float64 numpy.ndarray 12 1 332 132 21
- h(eta_rho, xi_rho)float64dask.array<chunksize=(132, 332), meta=np.ndarray>
- long_name :
- bathymetry at RHO-points
- units :
- meter
- grid :
- grid
- location :
- face
- field :
- bath, scalar
- standard_name :
- sea_floor_depth
Array Chunk Bytes 342.38 kiB 342.38 kiB Shape (132, 332) (132, 332) Count 2 Tasks 1 Chunks Type float64 numpy.ndarray 332 132 - zeta(ocean_time, eta_rho, xi_rho)float32dask.array<chunksize=(12, 132, 332), meta=np.ndarray>
- long_name :
- free-surface
- units :
- meter
- time :
- ocean_time
- grid :
- grid
- location :
- face
- field :
- free-surface, scalar, series
- _ChunkSizes :
- [ 1 291 332]
- standard_name :
- sea_surface_elevation
Array Chunk Bytes 2.01 MiB 2.01 MiB Shape (12, 132, 332) (12, 132, 332) Count 2 Tasks 1 Chunks Type float32 numpy.ndarray 332 132 12 - hc()float64...
- long_name :
- S-coordinate parameter, critical depth
- units :
- meter
array(2.)
- Cs_r(s_rho)float64dask.array<chunksize=(20,), 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 160 B 160 B Shape (20,) (20,) Count 2 Tasks 1 Chunks Type float64 numpy.ndarray 20 1 - Cs_w(s_w)float64dask.array<chunksize=(21,), 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 168 B 168 B Shape (21,) (21,) Count 2 Tasks 1 Chunks Type float64 numpy.ndarray 21 1 - mask_rho(eta_rho, xi_rho)float64dask.array<chunksize=(132, 332), meta=np.ndarray>
- long_name :
- mask on RHO-points
- flag_values :
- [0. 1.]
- flag_meanings :
- land water
- grid :
- grid
- location :
- face
Array Chunk Bytes 342.38 kiB 342.38 kiB Shape (132, 332) (132, 332) Count 2 Tasks 1 Chunks Type float64 numpy.ndarray 332 132 - mask_u(eta_u, xi_u)float64dask.array<chunksize=(132, 331), meta=np.ndarray>
- long_name :
- mask on U-points
- flag_values :
- [0. 1.]
- flag_meanings :
- land water
- grid :
- grid
- location :
- edge1
Array Chunk Bytes 341.34 kiB 341.34 kiB Shape (132, 331) (132, 331) Count 2 Tasks 1 Chunks Type float64 numpy.ndarray 331 132 - mask_v(eta_v, xi_v)float64dask.array<chunksize=(131, 332), meta=np.ndarray>
- long_name :
- mask on V-points
- flag_values :
- [0. 1.]
- flag_meanings :
- land water
- grid :
- grid
- location :
- edge2
Array Chunk Bytes 339.78 kiB 339.78 kiB Shape (131, 332) (131, 332) Count 2 Tasks 1 Chunks Type float64 numpy.ndarray 332 131 - mask_psi(eta_psi, xi_psi)float64dask.array<chunksize=(131, 331), meta=np.ndarray>
- long_name :
- mask on psi-points
- flag_values :
- [0. 1.]
- flag_meanings :
- land water
- grid :
- grid
- location :
- node
Array Chunk Bytes 338.76 kiB 338.76 kiB Shape (131, 331) (131, 331) Count 2 Tasks 1 Chunks Type float64 numpy.ndarray 331 131 - u(ocean_time, s_rho, eta_u, xi_u)float32dask.array<chunksize=(12, 20, 132, 331), meta=np.ndarray>
- long_name :
- u-momentum component
- units :
- meter second-1
- time :
- ocean_time
- grid :
- grid
- location :
- edge1
- field :
- u-velocity, scalar, series
- _ChunkSizes :
- [ 1 10 146 166]
- standard_name :
- eastward_sea_water_velocity
Array Chunk Bytes 40.00 MiB 40.00 MiB Shape (12, 20, 132, 331) (12, 20, 132, 331) Count 2 Tasks 1 Chunks Type float32 numpy.ndarray 12 1 331 132 20 - v(ocean_time, s_rho, eta_v, xi_v)float32dask.array<chunksize=(12, 20, 131, 332), meta=np.ndarray>
- long_name :
- v-momentum component
- units :
- meter second-1
- time :
- ocean_time
- grid :
- grid
- location :
- edge2
- field :
- v-velocity, scalar, series
- _ChunkSizes :
- [ 1 10 145 166]
- standard_name :
- northward_sea_water_velocity
Array Chunk Bytes 39.82 MiB 39.82 MiB Shape (12, 20, 131, 332) (12, 20, 131, 332) Count 2 Tasks 1 Chunks Type float32 numpy.ndarray 12 1 332 131 20 - temp(ocean_time, s_rho, eta_rho, xi_rho)float32dask.array<chunksize=(12, 20, 132, 332), meta=np.ndarray>
- long_name :
- potential temperature
- units :
- Celsius
- time :
- ocean_time
- grid :
- grid
- location :
- face
- field :
- temperature, scalar, series
- _ChunkSizes :
- [ 1 10 146 166]
- standard_name :
- sea_water_temperature
Array Chunk Bytes 40.12 MiB 40.12 MiB Shape (12, 20, 132, 332) (12, 20, 132, 332) Count 2 Tasks 1 Chunks Type float32 numpy.ndarray 12 1 332 132 20 - salt(ocean_time, s_rho, eta_rho, xi_rho)float32dask.array<chunksize=(12, 20, 132, 332), meta=np.ndarray>
- long_name :
- salinity
- time :
- ocean_time
- grid :
- grid
- location :
- face
- field :
- salinity, scalar, series
- _ChunkSizes :
- [ 1 10 146 166]
- standard_name :
- sea_water_practical_salinity
Array Chunk Bytes 40.12 MiB 40.12 MiB Shape (12, 20, 132, 332) (12, 20, 132, 332) Count 2 Tasks 1 Chunks Type float32 numpy.ndarray 12 1 332 132 20
- model :
- ROMS
[25]:
ds_small2[['z_rho','z_w']].nbytes/1e6
[25]:
173.196584
2. Rectilinear grid¶
[26]:
%%time
standard_names = ['eastward_sea_water_velocity', 'northward_sea_water_velocity',
'sea_water_temperature', 'sea_water_practical_salinity', 'sea_floor_depth']
# Select bounding box for sub-domain
bbox = [-77, 38.5, -76, 40]
# Select time range to keep
today = pd.Timestamp.today()
later_today = today + pd.Timedelta('12 hours')
# Select out variables from Dataset
ds_small_rg = ds_cbofs_rg.em.filter(standard_names).em.sub_grid(bbox=bbox).cf.sel(T=slice(today, later_today))
# Size of subset
print(f'Subdomain is {ds_small_rg.nbytes/1e6} MB')
# Save to file
ds_small_rg.to_netcdf('sample_roms_rg.nc')
Subdomain is 130.608112 MB
CPU times: user 9.7 s, sys: 8.77 s, total: 18.5 s
Wall time: 2min 48s
Read in saved file with extract_model to get vertical coord decoding back in!
[27]:
ds_small_rg2 = xr.open_mfdataset(['sample_roms_rg.nc'], preprocess=em.preprocess)
print(ds_small_rg2.nbytes/1e6)
ds_small_rg2
130.608112
[27]:
<xarray.Dataset>
Dimensions: (ny: 226, nx: 199, ocean_time: 12, Depth: 15)
Coordinates:
* Depth (Depth) float64 0.0 2.0 4.0 6.0 8.0 ... 35.0 40.0 45.0 50.0
Latitude (ny, nx) float64 dask.array<chunksize=(226, 199), meta=np.ndarray>
Longitude (ny, nx) float64 dask.array<chunksize=(226, 199), meta=np.ndarray>
* ocean_time (ocean_time) datetime64[ns] 2022-08-25T11:00:00 ... 2022-08-...
* nx (nx) int64 69 70 71 72 73 74 75 ... 261 262 263 264 265 266 267
* ny (ny) int64 467 468 469 470 471 472 ... 687 688 689 690 691 692
Data variables:
h (ny, nx) float64 dask.array<chunksize=(226, 199), meta=np.ndarray>
u_eastward (ocean_time, Depth, ny, nx) float32 dask.array<chunksize=(12, 15, 226, 199), meta=np.ndarray>
v_northward (ocean_time, Depth, ny, nx) float32 dask.array<chunksize=(12, 15, 226, 199), meta=np.ndarray>
temp (ocean_time, Depth, ny, nx) float32 dask.array<chunksize=(12, 15, 226, 199), meta=np.ndarray>
salt (ocean_time, Depth, ny, nx) float32 dask.array<chunksize=(12, 15, 226, 199), meta=np.ndarray>
Attributes: (12/36)
file: nos.cbofs.fields.nowcast.20220825.t12z_0...
format: netCDF-4/HDF5 file
Conventions: CF-1.4, SGRID-0.3
type: ROMS/TOMS history file
title: cbofs nowcast RUN in operational mode
var_info: varinfo.dat
... ...
tiling: 008x016
history: ROMS/TOMS, Version 3.9, Thursday - Augus...
ana_file: ROMS/Functionals/ana_btflux.h, ROMS/Func...
CPP_options: mode, ADD_FSOBC, ADD_M2OBC, ANA_BPFLUX, ...
bio_file: ROMS/Nonlinear/Biology/hypoxia_srm.h
DODS_EXTRA.Unlimited_Dimension: ocean_time- ny: 226
- nx: 199
- ocean_time: 12
- Depth: 15
- Depth(Depth)float640.0 2.0 4.0 6.0 ... 40.0 45.0 50.0
- long_name :
- Depths of Standard Layer
- units :
- m
- positive :
- down
- axis :
- Z
array([ 0., 2., 4., 6., 8., 10., 12., 15., 20., 25., 30., 35., 40., 45., 50.]) - Latitude(ny, nx)float64dask.array<chunksize=(226, 199), meta=np.ndarray>
- long_name :
- Latitude in common grid
- units :
- degrees_north
Array Chunk Bytes 351.36 kiB 351.36 kiB Shape (226, 199) (226, 199) Count 2 Tasks 1 Chunks Type float64 numpy.ndarray 199 226 - Longitude(ny, nx)float64dask.array<chunksize=(226, 199), meta=np.ndarray>
- long_name :
- Longitude in common grid
- units :
- degrees_east
Array Chunk Bytes 351.36 kiB 351.36 kiB Shape (226, 199) (226, 199) Count 2 Tasks 1 Chunks Type float64 numpy.ndarray 199 226 - ocean_time(ocean_time)datetime64[ns]2022-08-25T11:00:00 ... 2022-08-...
- long_name :
- time since initialization
- field :
- time, scalar, series
- axis :
- T
- standard_name :
- time
array(['2022-08-25T11:00:00.000000000', '2022-08-25T12:00:00.000000000', '2022-08-25T13:00:00.000000000', '2022-08-25T14:00:00.000000000', '2022-08-25T15:00:00.000000000', '2022-08-25T16:00:00.000000000', '2022-08-25T17:00:00.000000000', '2022-08-25T18:00:00.000000000', '2022-08-25T19:00:00.000000000', '2022-08-25T20:00:00.000000000', '2022-08-25T21:00:00.000000000', '2022-08-25T22:00:00.000000000'], dtype='datetime64[ns]') - nx(nx)int6469 70 71 72 73 ... 264 265 266 267
- axis :
- X
array([ 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, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267]) - ny(ny)int64467 468 469 470 ... 689 690 691 692
- axis :
- Y
array([467, 468, 469, ..., 690, 691, 692])
- h(ny, nx)float64dask.array<chunksize=(226, 199), meta=np.ndarray>
- long_name :
- bathymetry
- units :
- meter
- grid :
- grid
- location :
- face
- field :
- bath, scaler
- standard_name :
- sea_floor_depth
Array Chunk Bytes 351.36 kiB 351.36 kiB Shape (226, 199) (226, 199) Count 2 Tasks 1 Chunks Type float64 numpy.ndarray 199 226 - u_eastward(ocean_time, Depth, ny, nx)float32dask.array<chunksize=(12, 15, 226, 199), meta=np.ndarray>
- long_name :
- eastward momentum component
- units :
- meters second-1
- time :
- ocean_time
- standard_name :
- eastward_sea_water_velocity
- grid :
- grid
- location :
- face
- field :
- u_eastward, scalar, series
Array Chunk Bytes 30.88 MiB 30.88 MiB Shape (12, 15, 226, 199) (12, 15, 226, 199) Count 2 Tasks 1 Chunks Type float32 numpy.ndarray 12 1 199 226 15 - v_northward(ocean_time, Depth, ny, nx)float32dask.array<chunksize=(12, 15, 226, 199), meta=np.ndarray>
- long_name :
- northward momentum component
- units :
- meters second-1
- time :
- ocean_time
- standard_name :
- northward_sea_water_velocity
- grid :
- grid
- location :
- face
- field :
- v_northward, scalar, series
Array Chunk Bytes 30.88 MiB 30.88 MiB Shape (12, 15, 226, 199) (12, 15, 226, 199) Count 2 Tasks 1 Chunks Type float32 numpy.ndarray 12 1 199 226 15 - temp(ocean_time, Depth, ny, nx)float32dask.array<chunksize=(12, 15, 226, 199), meta=np.ndarray>
- long_name :
- potential temperature
- units :
- Celsius
- time :
- ocean_time
- grid :
- grid
- location :
- face
- field :
- temperature, scalar, series
- standard_name :
- sea_water_temperature
Array Chunk Bytes 30.88 MiB 30.88 MiB Shape (12, 15, 226, 199) (12, 15, 226, 199) Count 2 Tasks 1 Chunks Type float32 numpy.ndarray 12 1 199 226 15 - salt(ocean_time, Depth, ny, nx)float32dask.array<chunksize=(12, 15, 226, 199), meta=np.ndarray>
- long_name :
- salinity
- units :
- PSU
- time :
- ocean_time
- grid :
- grid
- location :
- face
- field :
- salinity, scalar, series
- standard_name :
- sea_water_practical_salinity
Array Chunk Bytes 30.88 MiB 30.88 MiB Shape (12, 15, 226, 199) (12, 15, 226, 199) Count 2 Tasks 1 Chunks Type float32 numpy.ndarray 12 1 199 226 15
- file :
- nos.cbofs.fields.nowcast.20220825.t12z_0002.nc
- format :
- netCDF-4/HDF5 file
- Conventions :
- CF-1.4, SGRID-0.3
- type :
- ROMS/TOMS history file
- title :
- cbofs nowcast RUN in operational mode
- var_info :
- varinfo.dat
- rst_file :
- nos.cbofs.rst.nowcast.20220825.t12z.nc
- his_base :
- nos.cbofs.fields.nowcast.20220825.t12z
- sta_file :
- nos.cbofs.stations.nowcast.20220825.t12z.nc
- grd_file :
- nos.cbofs.romsgrid.nc
- ini_file :
- nos.cbofs.init.nowcast.20220825.t12z.nc
- tide_file :
- nos.cbofs.roms.tides.nc
- frc_file_01 :
- nos.cbofs.met.nowcast.20220825.t12z.nc
- frc_file_02 :
- nos.cbofs.respirate.nc
- bry_file_01 :
- nos.cbofs.obc.20220825.t12z.nc
- script_file :
- cbofs_ROMS_nowcast.in
- bpar_file :
- nos.cbofs.bio.in
- spos_file :
- nos.cbofs.stations.in
- NLM_TADV :
- ADVECTION: HORIZONTAL VERTICAL temp: HSIMT HSIMT salt: HSIMT HSIMT oxygen: HSIMT HSIMT
- NLM_LBC :
- EDGE: WEST SOUTH EAST NORTH zeta: Clo Cha Cha Clo ubar: Clo Fla Fla Clo vbar: Clo Fla Fla Clo u: Clo Rad Rad Clo v: Clo Rad Rad Clo temp: Clo RadNud RadNud Clo salt: Clo RadNud RadNud Clo oxygen: Clo RadNud RadNud Clo tke: Clo Gra Gra Clo
- svn_url :
- svn_rev :
- code_dir :
- /lfs/h1/ops/prod/packages/nosofs.v3.4.2/sorc/ROMS.fd
- header_dir :
- /lfs/h1/ops/prod/packages/nosofs.v3.4.2/sorc/ROMS.fd/ROMS/Include
- header_file :
- cbofs.h
- os :
- Linux
- cpu :
- x86_64
- compiler_system :
- ftn-intel
- compiler_command :
- /opt/cray/pe/craype/2.7.10/bin/ftn
- compiler_flags :
- -fp-model precise -ip -O2
- tiling :
- 008x016
- history :
- ROMS/TOMS, Version 3.9, Thursday - August 25, 2022 - 12:48:02 PM
- ana_file :
- ROMS/Functionals/ana_btflux.h, ROMS/Functionals/ana_rain.h, ROMS/Functionals/ana_stflux.h
- CPP_options :
- mode, ADD_FSOBC, ADD_M2OBC, ANA_BPFLUX, ANA_BSFLUX, ANA_BTFLUX, ANA_RAIN, ANA_SPFLUX, ANA_SSFLUX, ASSUMED_SHAPE, ATM_PRESS, !BOUNDARY_ALLGATHER, BULK_FLUXES, !COLLECT_ALL..., CURVGRID, DIFF_GRID, DJ_GRADPS, DOUBLE_PRECISION, EMINUSP, GLS_MIXING, HDF5, HYPOXIA_SRM, LIMIT_STFLX_COOLING, KANTHA_CLAYSON, LONGWAVE_OUT, MASKING, MIX_GEO_TS, MIX_S_UV, MPI, NONLINEAR, NONLIN_EOS, NO_LBC_ATT, N2S2_HORAVG, PERFECT_RESTART, POWER_LAW, PROFILE, K_GSCHEME, RADIATION_2D, REDUCE_ALLREDUCE, !RST_SINGLE, SALINITY, SOLAR_SOURCE, SOLVE3D, SSH_TIDES, STATIONS, SURFACE_DO_SATURATION, TS_DIF2, UV_ADV, UV_COR, UV_U3HADVECTION, UV_C4VADVECTION, UV_QDRAG, UV_TIDES, UV_VIS2, VAR_RHO_2D, VISC_GRID
- bio_file :
- ROMS/Nonlinear/Biology/hypoxia_srm.h
- DODS_EXTRA.Unlimited_Dimension :
- ocean_time
3. Curvilinear, single horizontal grid¶
[28]:
%%time
standard_names = ['eastward_sea_water_velocity', 'northward_sea_water_velocity',
'sea_water_temperature', 'sea_water_practical_salinity', 'sea_floor_depth']
# Select bounding box for sub-domain
bbox = [-78.8, 43.5, -77.5, 43.8]
# Select time range to keep
today = pd.Timestamp.today()
later_today = today + pd.Timedelta('12 hours')
# Select out variables from Dataset
ds_small_loofs = ds_loofs.em.filter(standard_names).em.sub_grid(bbox=bbox).cf.sel(T=slice(today, later_today))
# Size of subset
print(f'Subdomain is {ds_small_loofs.nbytes/1e6} MB')
# Save to file
ds_small_loofs.to_netcdf('sample_loofs.nc')
Subdomain is 0.43258 MB
CPU times: user 437 ms, sys: 99.2 ms, total: 536 ms
Wall time: 3.78 s
Read in saved file with extract_model to get vertical coord decoding back in!
[29]:
ds_small_loofs2 = xr.open_mfdataset(['sample_loofs.nc'], preprocess=em.preprocess)
print(ds_small_loofs2.nbytes/1e6)
ds_small_loofs2
0.5737
[29]:
<xarray.Dataset>
Dimensions: (time: 12, ny: 7, nx: 21, sigma: 20)
Coordinates:
* sigma (sigma) float32 0.0 0.0227 0.0454 0.0681 ... 0.8853 0.9534 1.0
* time (time) datetime64[ns] 2022-08-25T11:00:14.062499968 ... 2022-08-...
lon (ny, nx) float32 dask.array<chunksize=(7, 21), meta=np.ndarray>
lat (ny, nx) float32 dask.array<chunksize=(7, 21), meta=np.ndarray>
* nx (nx) int64 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
* ny (ny) int64 0 1 2 3 4 5 6
z (time, sigma, ny, nx) float32 dask.array<chunksize=(12, 20, 7, 21), meta=np.ndarray>
Data variables:
zeta (time, ny, nx) float32 dask.array<chunksize=(12, 7, 21), meta=np.ndarray>
depth (ny, nx) float32 dask.array<chunksize=(7, 21), meta=np.ndarray>
u (time, sigma, ny, nx) float32 dask.array<chunksize=(12, 20, 7, 21), meta=np.ndarray>
v (time, sigma, ny, nx) float32 dask.array<chunksize=(12, 20, 7, 21), meta=np.ndarray>
temp (time, sigma, ny, nx) float32 dask.array<chunksize=(12, 20, 7, 21), meta=np.ndarray>
Attributes: (12/17)
datum1: reference to LWD=zeta
datum2: reference to IGLD85=zeta - IGLD85
file_type: Full_Grid
Conventions: COARDS
grid_type: rectilinear
z_type: 2-D
... ...
history: Operation-CO-OPS
references: greg.mott@noaa.gov
creation_date: 2022-08-25 12:50:16 00:00
DODS.strlen: 19
DODS.dimName: validtime_len
DODS_EXTRA.Unlimited_Dimension: time- time: 12
- ny: 7
- nx: 21
- sigma: 20
- sigma(sigma)float320.0 0.0227 0.0454 ... 0.9534 1.0
- long_name :
- Sigma Stretched Vertical Coordinate at Nodes
- units :
- sigma_level
- standard_name :
- ocean_sigma_coordinate
- formula_terms :
- sigma: sigma eta: zeta depth: depth
- axis :
- Z
array([0. , 0.0227, 0.0454, 0.0681, 0.0908, 0.1135, 0.1362, 0.1589, 0.1816, 0.2043, 0.227 , 0.2724, 0.3405, 0.4313, 0.5448, 0.681 , 0.7945, 0.8853, 0.9534, 1. ], dtype=float32) - time(time)datetime64[ns]2022-08-25T11:00:14.062499968 .....
- long_name :
- Time
- base_date :
- [2006 1 1 0]
- standard_name :
- time
- axis :
- T
array(['2022-08-25T11:00:14.062499968', '2022-08-25T12:00:00.000000000', '2022-08-25T12:59:45.937500032', '2022-08-25T14:00:14.062499968', '2022-08-25T15:00:00.000000000', '2022-08-25T15:59:45.937500032', '2022-08-25T17:00:14.062499968', '2022-08-25T18:00:00.000000000', '2022-08-25T18:59:45.937500032', '2022-08-25T20:00:14.062499968', '2022-08-25T21:00:00.000000000', '2022-08-25T21:59:45.937500032'], dtype='datetime64[ns]') - lon(ny, nx)float32dask.array<chunksize=(7, 21), meta=np.ndarray>
- long_name :
- Longitude
- units :
- degrees_east
- standard_name :
- longitude
Array Chunk Bytes 588 B 588 B Shape (7, 21) (7, 21) Count 2 Tasks 1 Chunks Type float32 numpy.ndarray 21 7 - lat(ny, nx)float32dask.array<chunksize=(7, 21), meta=np.ndarray>
- long_name :
- Latitude
- units :
- degrees_north
- standard_name :
- latitude
Array Chunk Bytes 588 B 588 B Shape (7, 21) (7, 21) Count 2 Tasks 1 Chunks Type float32 numpy.ndarray 21 7 - nx(nx)int640 1 2 3 4 5 6 ... 15 16 17 18 19 20
- axis :
- X
array([ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20]) - ny(ny)int640 1 2 3 4 5 6
- axis :
- Y
array([0, 1, 2, 3, 4, 5, 6])
- z(time, sigma, ny, nx)float32dask.array<chunksize=(12, 20, 7, 21), meta=np.ndarray>
- positive :
- up
- units :
- m
Array Chunk Bytes 137.81 kiB 137.81 kiB Shape (12, 20, 7, 21) (12, 20, 7, 21) Count 16 Tasks 1 Chunks Type float32 numpy.ndarray 12 1 21 7 20
- zeta(time, ny, nx)float32dask.array<chunksize=(12, 7, 21), meta=np.ndarray>
- reference :
- model_sea_level
- long_name :
- Height Above Model Sea Level
- units :
- meters
- positive :
- up
- standard_name :
- sea_surface_elevation
Array Chunk Bytes 6.89 kiB 6.89 kiB Shape (12, 7, 21) (12, 7, 21) Count 2 Tasks 1 Chunks Type float32 numpy.ndarray 21 7 12 - depth(ny, nx)float32dask.array<chunksize=(7, 21), meta=np.ndarray>
- long_name :
- Bathymetry
- units :
- meters
- positive :
- down
- standard_name :
- sea_floor_depth
Array Chunk Bytes 588 B 588 B Shape (7, 21) (7, 21) Count 2 Tasks 1 Chunks Type float32 numpy.ndarray 21 7 - u(time, sigma, ny, nx)float32dask.array<chunksize=(12, 20, 7, 21), meta=np.ndarray>
- long_name :
- Eastward Water Velocity
- units :
- m/s
- standard_name :
- eastward_sea_water_velocity
Array Chunk Bytes 137.81 kiB 137.81 kiB Shape (12, 20, 7, 21) (12, 20, 7, 21) Count 2 Tasks 1 Chunks Type float32 numpy.ndarray 12 1 21 7 20 - v(time, sigma, ny, nx)float32dask.array<chunksize=(12, 20, 7, 21), meta=np.ndarray>
- long_name :
- Northward Water Velocity
- units :
- m/s
- standard_name :
- northward_sea_water_velocity
Array Chunk Bytes 137.81 kiB 137.81 kiB Shape (12, 20, 7, 21) (12, 20, 7, 21) Count 2 Tasks 1 Chunks Type float32 numpy.ndarray 12 1 21 7 20 - temp(time, sigma, ny, nx)float32dask.array<chunksize=(12, 20, 7, 21), meta=np.ndarray>
- long_name :
- Temperature
- units :
- Celsius
- standard_name :
- sea_water_temperature
Array Chunk Bytes 137.81 kiB 137.81 kiB Shape (12, 20, 7, 21) (12, 20, 7, 21) Count 2 Tasks 1 Chunks Type float32 numpy.ndarray 12 1 21 7 20
- datum1 :
- reference to LWD=zeta
- datum2 :
- reference to IGLD85=zeta - IGLD85
- file_type :
- Full_Grid
- Conventions :
- COARDS
- grid_type :
- rectilinear
- z_type :
- 2-D
- model :
- POMGL
- title :
- ofs4:/comf/operations/ohms
- comment :
- Linux
- source :
- current,zeta,temp,wind
- institution :
- NOAA/NOS/CO-OPS
- history :
- Operation-CO-OPS
- references :
- greg.mott@noaa.gov
- creation_date :
- 2022-08-25 12:50:16 00:00
- DODS.strlen :
- 19
- DODS.dimName :
- validtime_len
- DODS_EXTRA.Unlimited_Dimension :
- time
[30]:
ds_small_loofs2['z'].nbytes/1e6
[30]:
0.14112
4. Unstructured grid¶
[31]:
%%time
standard_names = ['eastward_sea_water_velocity', 'northward_sea_water_velocity',
'sea_water_temperature', 'sea_water_practical_salinity', 'sea_floor_depth']
# Select bounding box for sub-domain
bbox = [-98+360, 27, -97+360, 28]
# Select time range to keep
today = pd.Timestamp.today()
later_today = today + pd.Timedelta('12 hours')
# Select out variables from Dataset
ds_small_ngofs2 = ds_ngofs2.em.filter(standard_names).em.sub_grid(bbox=bbox).cf.sel(T=slice(today, later_today))
# Size of subset
print(f'Subdomain is {ds_small_ngofs2.nbytes/1e6} MB')
# Save to file
ds_small_ngofs2.to_netcdf('sample_ngofs2.nc')
Subdomain is 69.865408 MB
CPU times: user 10.5 s, sys: 9.49 s, total: 20 s
Wall time: 3min 7s
Read in saved file with extract_model to get vertical coord decoding back in!
[32]:
ds_small_ngofs22 = xr.open_mfdataset(['sample_ngofs2.nc'], preprocess=em.preprocess)
print(ds_small_ngofs22.nbytes/1e6)
ds_small_ngofs22
69.865408
[32]:
<xarray.Dataset>
Dimensions: (node: 16604, nele: 30734, siglay: 40, siglev: 41, time: 4,
three: 3, maxnode: 10, maxelem: 8)
Coordinates:
lat (node) float32 dask.array<chunksize=(16604,), meta=np.ndarray>
lon (node) float32 dask.array<chunksize=(16604,), meta=np.ndarray>
latc (nele) float32 dask.array<chunksize=(30734,), meta=np.ndarray>
lonc (nele) float32 dask.array<chunksize=(30734,), meta=np.ndarray>
sigma_layers (siglay, node) float32 dask.array<chunksize=(40, 16604), meta=np.ndarray>
* time (time) datetime64[ns] 2022-08-25T12:00:00 ... 2022-08-25T21...
Dimensions without coordinates: node, nele, siglay, siglev, three, maxnode,
maxelem
Data variables: (12/17)
sigma_levels (siglev, node) float32 dask.array<chunksize=(41, 16604), meta=np.ndarray>
h (node) float32 dask.array<chunksize=(16604,), meta=np.ndarray>
zeta (time, node) float32 dask.array<chunksize=(4, 16604), meta=np.ndarray>
x (node) float32 dask.array<chunksize=(16604,), meta=np.ndarray>
y (node) float32 dask.array<chunksize=(16604,), meta=np.ndarray>
xc (nele) float32 dask.array<chunksize=(30734,), meta=np.ndarray>
... ...
nv (three, nele) int64 dask.array<chunksize=(3, 30734), meta=np.ndarray>
nbe (three, nele) int64 dask.array<chunksize=(3, 30734), meta=np.ndarray>
nbsn (maxnode, node) int32 dask.array<chunksize=(10, 16604), meta=np.ndarray>
ntsn (node) int32 dask.array<chunksize=(16604,), meta=np.ndarray>
nbve (maxelem, node) int32 dask.array<chunksize=(8, 16604), meta=np.ndarray>
ntve (node) int32 dask.array<chunksize=(16604,), meta=np.ndarray>
Attributes: (12/17)
title: NGOFS2
institution: School for Marine Science and Technology
source: FVCOM_4.3
history: model started at: 25/08/2022 09:05
references: http://fvcom.smast.umassd.edu, http://co...
Conventions: CF-1.0
... ...
Surface_Heat_Forcing: FVCOM variable surface heat forcing file...
Surface_Wind_Forcing: FVCOM variable surface Wind forcing:\nFI...
Surface_PrecipEvap_Forcing: SURFACE PRECIPITATION FORCING IS OFF
DODS.strlen: 26
DODS.dimName: DateStrLen
DODS_EXTRA.Unlimited_Dimension: time- node: 16604
- nele: 30734
- siglay: 40
- siglev: 41
- time: 4
- three: 3
- maxnode: 10
- maxelem: 8
- lat(node)float32dask.array<chunksize=(16604,), meta=np.ndarray>
- long_name :
- nodal latitude
- standard_name :
- latitude
- units :
- degrees_north
Array Chunk Bytes 64.86 kiB 64.86 kiB Shape (16604,) (16604,) Count 2 Tasks 1 Chunks Type float32 numpy.ndarray 16604 1 - lon(node)float32dask.array<chunksize=(16604,), meta=np.ndarray>
- long_name :
- nodal longitude
- standard_name :
- longitude
- units :
- degrees_east
Array Chunk Bytes 64.86 kiB 64.86 kiB Shape (16604,) (16604,) Count 2 Tasks 1 Chunks Type float32 numpy.ndarray 16604 1 - latc(nele)float32dask.array<chunksize=(30734,), meta=np.ndarray>
- long_name :
- zonal latitude
- standard_name :
- latitude
- units :
- degrees_north
Array Chunk Bytes 120.05 kiB 120.05 kiB Shape (30734,) (30734,) Count 2 Tasks 1 Chunks Type float32 numpy.ndarray 30734 1 - lonc(nele)float32dask.array<chunksize=(30734,), meta=np.ndarray>
- long_name :
- zonal longitude
- standard_name :
- longitude
- units :
- degrees_east
Array Chunk Bytes 120.05 kiB 120.05 kiB Shape (30734,) (30734,) Count 2 Tasks 1 Chunks Type float32 numpy.ndarray 30734 1 - sigma_layers(siglay, node)float32dask.array<chunksize=(40, 16604), meta=np.ndarray>
- long_name :
- Sigma Layers
- standard_name :
- ocean_sigma_coordinate
- positive :
- up
- valid_min :
- -1.0
- valid_max :
- 0.0
- formula_terms :
- sigma: sigma_layers eta: zeta depth: h
Array Chunk Bytes 2.53 MiB 2.53 MiB Shape (40, 16604) (40, 16604) Count 2 Tasks 1 Chunks Type float32 numpy.ndarray 16604 40 - time(time)datetime64[ns]2022-08-25T12:00:00 ... 2022-08-...
- long_name :
- time
- format :
- defined reference date
- time_zone :
- UTC
- axis :
- T
array(['2022-08-25T12:00:00.000000000', '2022-08-25T15:00:00.000000000', '2022-08-25T18:00:00.000000000', '2022-08-25T21:00:00.000000000'], dtype='datetime64[ns]')
- sigma_levels(siglev, node)float32dask.array<chunksize=(41, 16604), meta=np.ndarray>
- long_name :
- Sigma Levels
- standard_name :
- ocean_sigma_coordinate
- positive :
- up
- valid_min :
- -1.0
- valid_max :
- 0.0
- formula_terms :
- sigma: sigma_levels eta: zeta depth: h
Array Chunk Bytes 2.60 MiB 2.60 MiB Shape (41, 16604) (41, 16604) Count 2 Tasks 1 Chunks Type float32 numpy.ndarray 16604 41 - h(node)float32dask.array<chunksize=(16604,), meta=np.ndarray>
- long_name :
- Bathymetry
- standard_name :
- sea_floor_depth
- units :
- m
- positive :
- down
- grid :
- Bathymetry_Mesh
- type :
- data
Array Chunk Bytes 64.86 kiB 64.86 kiB Shape (16604,) (16604,) Count 2 Tasks 1 Chunks Type float32 numpy.ndarray 16604 1 - zeta(time, node)float32dask.array<chunksize=(4, 16604), meta=np.ndarray>
- long_name :
- Water Surface Elevation
- units :
- meters
- positive :
- up
- standard_name :
- sea_surface_elevation
- grid :
- Bathymetry_Mesh
- type :
- data
- location :
- node
Array Chunk Bytes 259.44 kiB 259.44 kiB Shape (4, 16604) (4, 16604) Count 2 Tasks 1 Chunks Type float32 numpy.ndarray 16604 4 - x(node)float32dask.array<chunksize=(16604,), meta=np.ndarray>
- long_name :
- nodal x-coordinate
- units :
- meters
Array Chunk Bytes 64.86 kiB 64.86 kiB Shape (16604,) (16604,) Count 2 Tasks 1 Chunks Type float32 numpy.ndarray 16604 1 - y(node)float32dask.array<chunksize=(16604,), meta=np.ndarray>
- long_name :
- nodal y-coordinate
- units :
- meters
Array Chunk Bytes 64.86 kiB 64.86 kiB Shape (16604,) (16604,) Count 2 Tasks 1 Chunks Type float32 numpy.ndarray 16604 1 - xc(nele)float32dask.array<chunksize=(30734,), meta=np.ndarray>
- long_name :
- zonal x-coordinate
- units :
- meters
Array Chunk Bytes 120.05 kiB 120.05 kiB Shape (30734,) (30734,) Count 2 Tasks 1 Chunks Type float32 numpy.ndarray 30734 1 - yc(nele)float32dask.array<chunksize=(30734,), meta=np.ndarray>
- long_name :
- zonal y-coordinate
- units :
- meters
Array Chunk Bytes 120.05 kiB 120.05 kiB Shape (30734,) (30734,) Count 2 Tasks 1 Chunks Type float32 numpy.ndarray 30734 1 - u(time, siglay, nele)float32dask.array<chunksize=(4, 40, 30734), meta=np.ndarray>
- long_name :
- Eastward Water Velocity
- standard_name :
- eastward_sea_water_velocity
- units :
- meters s-1
- grid :
- fvcom_grid
- type :
- data
- mesh :
- fvcom_mesh
- location :
- face
Array Chunk Bytes 18.76 MiB 18.76 MiB Shape (4, 40, 30734) (4, 40, 30734) Count 2 Tasks 1 Chunks Type float32 numpy.ndarray 30734 40 4 - v(time, siglay, nele)float32dask.array<chunksize=(4, 40, 30734), meta=np.ndarray>
- long_name :
- Northward Water Velocity
- standard_name :
- northward_sea_water_velocity
- units :
- meters s-1
- grid :
- fvcom_grid
- type :
- data
- mesh :
- fvcom_mesh
- location :
- face
Array Chunk Bytes 18.76 MiB 18.76 MiB Shape (4, 40, 30734) (4, 40, 30734) Count 2 Tasks 1 Chunks Type float32 numpy.ndarray 30734 40 4 - temp(time, siglay, node)float32dask.array<chunksize=(4, 40, 16604), meta=np.ndarray>
- long_name :
- temperature
- standard_name :
- sea_water_temperature
- units :
- degrees_C
- grid :
- fvcom_grid
- type :
- data
- mesh :
- fvcom_mesh
- location :
- node
Array Chunk Bytes 10.13 MiB 10.13 MiB Shape (4, 40, 16604) (4, 40, 16604) Count 2 Tasks 1 Chunks Type float32 numpy.ndarray 16604 40 4 - salinity(time, siglay, node)float32dask.array<chunksize=(4, 40, 16604), meta=np.ndarray>
- long_name :
- salinity
- standard_name :
- sea_water_practical_salinity
- units :
- 1e-3
- grid :
- fvcom_grid
- type :
- data
- mesh :
- fvcom_mesh
- location :
- node
Array Chunk Bytes 10.13 MiB 10.13 MiB Shape (4, 40, 16604) (4, 40, 16604) Count 2 Tasks 1 Chunks Type float32 numpy.ndarray 16604 40 4 - nv(three, nele)int64dask.array<chunksize=(3, 30734), meta=np.ndarray>
- long_name :
- nodes surrounding element
Array Chunk Bytes 720.33 kiB 720.33 kiB Shape (3, 30734) (3, 30734) Count 2 Tasks 1 Chunks Type int64 numpy.ndarray 30734 3 - nbe(three, nele)int64dask.array<chunksize=(3, 30734), meta=np.ndarray>
- long_name :
- elements surrounding each element
Array Chunk Bytes 720.33 kiB 720.33 kiB Shape (3, 30734) (3, 30734) Count 2 Tasks 1 Chunks Type int64 numpy.ndarray 30734 3 - nbsn(maxnode, node)int32dask.array<chunksize=(10, 16604), meta=np.ndarray>
- long_name :
- nodes surrounding each node
Array Chunk Bytes 648.59 kiB 648.59 kiB Shape (10, 16604) (10, 16604) Count 2 Tasks 1 Chunks Type int32 numpy.ndarray 16604 10 - ntsn(node)int32dask.array<chunksize=(16604,), meta=np.ndarray>
- long_name :
- #nodes surrounding each node
Array Chunk Bytes 64.86 kiB 64.86 kiB Shape (16604,) (16604,) Count 2 Tasks 1 Chunks Type int32 numpy.ndarray 16604 1 - nbve(maxelem, node)int32dask.array<chunksize=(8, 16604), meta=np.ndarray>
- long_name :
- elems surrounding each node
Array Chunk Bytes 518.88 kiB 518.88 kiB Shape (8, 16604) (8, 16604) Count 2 Tasks 1 Chunks Type int32 numpy.ndarray 16604 8 - ntve(node)int32dask.array<chunksize=(16604,), meta=np.ndarray>
- long_name :
- #elems surrounding each node
Array Chunk Bytes 64.86 kiB 64.86 kiB Shape (16604,) (16604,) Count 2 Tasks 1 Chunks Type int32 numpy.ndarray 16604 1
- title :
- NGOFS2
- institution :
- School for Marine Science and Technology
- source :
- FVCOM_4.3
- history :
- model started at: 25/08/2022 09:05
- references :
- http://fvcom.smast.umassd.edu, http://codfish.smast.umassd.edu
- Conventions :
- CF-1.0
- CoordinateSystem :
- GeoReferenced
- CoordinateProjection :
- init=nad83:4205
- Tidal_Forcing :
- TIDAL ELEVATION FORCING IS OFF!
- River_Forcing :
- THERE ARE 63 RIVERS IN THIS MODEL. RIVER INFLOW IS ON THE nodes WHERE TEMPERATURE AND SALINITY ARE calculated IN THE MODEL. THE FOLLOWING RIVER NAMES ARE USED: 08012000 02365500 02375500 02489500 02492000 08211200 08211200 08211200 02481510 02481510 02481510 02479000 02479000 02479000 02479000 08164800 08164800 08164000 08164000 08188800 08188800 08188800 08066500 08066500 02479560 02479560 02479560 02479560 07375500 07375500 08030500 08030500 08069000 08069000 08069000 07381600 07381600 07381600 07381600 02470629 02470629 02470629 02470629 02471019 02471019 02471019 02471019 02471019 08076000 08076000 08075400 08041780 08015500 08075000 08075000 07374000 07374000 07374000 07374000 08162500 08116650 02376500 02368000
- GroundWater_Forcing :
- GROUND WATER FORCING IS OFF!
- Surface_Heat_Forcing :
- FVCOM variable surface heat forcing file: FILE NAME:nos.ngofs2.hflux.nowcast.20220825.t09z.nc SOURCE:FVCOM grid (unstructured) surface forcing Unknown start date meta data format
- Surface_Wind_Forcing :
- FVCOM variable surface Wind forcing: FILE NAME:nos.ngofs2.met.nowcast.20220825.t09z.nc SOURCE:FVCOM grid (unstructured) surface forcing Unknown start date meta data format
- Surface_PrecipEvap_Forcing :
- SURFACE PRECIPITATION FORCING IS OFF
- DODS.strlen :
- 26
- DODS.dimName :
- DateStrLen
- DODS_EXTRA.Unlimited_Dimension :
- time