import numpy as np
import xarray as xr
%matplotlib inline
mesh_mask = xr.open_dataset('/home/vdo/MEOPAR/NEMO-forcing/grid/mesh_mask201702.nc')
mesh_mask
<xarray.Dataset> Dimensions: (t: 1, x: 398, y: 898, z: 40) Dimensions without coordinates: t, x, y, z Data variables: nav_lon (y, x) float32 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 ... nav_lat (y, x) float32 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 ... nav_lev (z) float32 0.5 1.5 2.50001 3.50003 4.50007 5.50015 ... time_counter (t) float64 0.0 tmask (t, z, y, x) int8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ... umask (t, z, y, x) int8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ... vmask (t, z, y, x) int8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ... fmask (t, z, y, x) int8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ... tmaskutil (t, y, x) int8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ... umaskutil (t, y, x) int8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ... vmaskutil (t, y, x) int8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ... fmaskutil (t, y, x) int8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ... glamt (t, y, x) float32 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 ... glamu (t, y, x) float32 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 ... glamv (t, y, x) float32 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 ... glamf (t, y, x) float32 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 ... gphit (t, y, x) float32 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 ... gphiu (t, y, x) float32 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 ... gphiv (t, y, x) float32 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 ... gphif (t, y, x) float32 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 ... e1t (t, y, x) float64 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 ... e1u (t, y, x) float64 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 ... e1v (t, y, x) float64 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 ... e1f (t, y, x) float64 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 ... e2t (t, y, x) float64 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 ... e2u (t, y, x) float64 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 ... e2v (t, y, x) float64 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 ... e2f (t, y, x) float64 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 ... ff (t, y, x) float64 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 ... mbathy (t, y, x) int16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ... misf (t, y, x) int16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ... isfdraft (t, y, x) float32 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 ... e3t_0 (t, z, y, x) float64 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 ... e3u_0 (t, z, y, x) float64 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 ... e3v_0 (t, z, y, x) float64 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 ... e3w_0 (t, z, y, x) float64 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 ... gdept_0 (t, z, y, x) float32 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 ... gdepu (t, z, y, x) float32 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 ... gdepv (t, z, y, x) float32 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 ... gdepw_0 (t, z, y, x) float32 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 ... gdept_1d (t, z) float64 0.5 1.5 2.5 3.5 4.5 5.5 6.5 7.501 8.501 ... gdepw_1d (t, z) float64 0.0 1.0 2.0 3.0 4.0 5.0 6.0 7.0 8.001 9.002 ... e3t_1d (t, z) float64 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.001 1.002 ... e3w_1d (t, z) float64 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.001 1.001 ... Attributes: file_name: mesh_mask.nc TimeStamp: 13/04/2017 22:37:31 -0700
t_mask = mesh_mask.tmask
u_mask = mesh_mask.umask
v_mask = mesh_mask.vmask
u_mask
<xarray.DataArray 'umask' (t: 1, z: 40, y: 898, x: 398)> [14296160 values with dtype=int8] Dimensions without coordinates: t, z, y, x
delta_x = mesh_mask.e1u
delta_x
<xarray.DataArray 'e1u' (t: 1, y: 898, x: 398)> array([[[ 0. , 0. , ..., 0. , 0. ], [ 0. , 0. , ..., 0. , 0. ], ..., [ 464.063552, 463.358206, ..., 0. , 0. ], [ 467.052857, 465.852574, ..., 0. , 0. ]]]) Dimensions without coordinates: t, y, x
delta_y = mesh_mask.e2v
delta_y
<xarray.DataArray 'e2v' (t: 1, y: 898, x: 398)> [357404 values with dtype=float64] Dimensions without coordinates: t, y, x
delta_z = mesh_mask.e3w_1d
delta_z.max(dim ='z')
<xarray.DataArray 'e3w_1d' (t: 1)> array([ 26.932043]) Dimensions without coordinates: t
delta_y
<xarray.DataArray 'e2v' (t: 1, y: 898, x: 398)> array([[[ 0. , 0. , ..., 0. , 0. ], [ 0. , 0. , ..., 0. , 0. ], ..., [ 510.000316, 509.775776, ..., 0. , 0. ], [ 511.836224, 511.358482, ..., 0. , 0. ]]]) Dimensions without coordinates: t, y, x
delta_x
<xarray.DataArray 'e1u' (t: 1, y: 898, x: 398)> array([[[ 0. , 0. , ..., 0. , 0. ], [ 0. , 0. , ..., 0. , 0. ], ..., [ 464.063552, 463.358206, ..., 0. , 0. ], [ 467.052857, 465.852574, ..., 0. , 0. ]]]) Dimensions without coordinates: t, y, x
day1u = xr.open_dataset('/home/vdo/MEOPAR/completed-runs/18dec14/SalishSea_1h_20141218_20141225_grid_U_20141218-20141218.nc')
day2u = xr.open_dataset('/home/vdo/MEOPAR/completed-runs/18dec14/SalishSea_1h_20141218_20141225_grid_U_20141219-20141219.nc')
day3u = xr.open_dataset('/home/vdo/MEOPAR/completed-runs/18dec14/SalishSea_1h_20141218_20141225_grid_U_20141220-20141220.nc')
day4u = xr.open_dataset('/home/vdo/MEOPAR/completed-runs/18dec14/SalishSea_1h_20141218_20141225_grid_U_20141221-20141221.nc')
day5u = xr.open_dataset('/home/vdo/MEOPAR/completed-runs/18dec14/SalishSea_1h_20141218_20141225_grid_U_20141222-20141222.nc')
day6u = xr.open_dataset('/home/vdo/MEOPAR/completed-runs/18dec14/SalishSea_1h_20141218_20141225_grid_U_20141223-20141223.nc')
day7u = xr.open_dataset('/home/vdo/MEOPAR/completed-runs/18dec14/SalishSea_1h_20141218_20141225_grid_U_20141224-20141224.nc')
day8u = xr.open_dataset('/home/vdo/MEOPAR/completed-runs/18dec14/SalishSea_1h_20141218_20141225_grid_U_20141225-20141225.nc')
day1u.vozocrtx.max()
<xarray.DataArray 'vozocrtx' ()> array(3.8961966037750244)
day2u.vozocrtx.max()
<xarray.DataArray 'vozocrtx' ()> array(4.170475959777832)
print(day3u.vozocrtx.max())
print(day4u.vozocrtx.max())
print(day5u.vozocrtx.max())
print(day6u.vozocrtx.max())
print(day7u.vozocrtx.max())
day8u.vozocrtx.max()
<xarray.DataArray 'vozocrtx' ()> array(4.646048069000244) <xarray.DataArray 'vozocrtx' ()> array(4.824367046356201) <xarray.DataArray 'vozocrtx' ()> array(5.15034294128418) <xarray.DataArray 'vozocrtx' ()> array(5.489227294921875) <xarray.DataArray 'vozocrtx' ()> array(5.432424545288086)
<xarray.DataArray 'vozocrtx' ()> array(5.360359191894531)
day1v = xr.open_dataset('/home/vdo/MEOPAR/completed-runs/18dec14/SalishSea_1h_20141218_20141225_grid_V_20141218-20141218.nc')
day2v = xr.open_dataset('/home/vdo/MEOPAR/completed-runs/18dec14/SalishSea_1h_20141218_20141225_grid_V_20141219-20141219.nc')
day3v = xr.open_dataset('/home/vdo/MEOPAR/completed-runs/18dec14/SalishSea_1h_20141218_20141225_grid_V_20141220-20141220.nc')
day4v = xr.open_dataset('/home/vdo/MEOPAR/completed-runs/18dec14/SalishSea_1h_20141218_20141225_grid_V_20141221-20141221.nc')
day5v = xr.open_dataset('/home/vdo/MEOPAR/completed-runs/18dec14/SalishSea_1h_20141218_20141225_grid_V_20141222-20141222.nc')
day6v = xr.open_dataset('/home/vdo/MEOPAR/completed-runs/18dec14/SalishSea_1h_20141218_20141225_grid_V_20141223-20141223.nc')
day7v = xr.open_dataset('/home/vdo/MEOPAR/completed-runs/18dec14/SalishSea_1h_20141218_20141225_grid_V_20141224-20141224.nc')
day8v = xr.open_dataset('/home/vdo/MEOPAR/completed-runs/18dec14/SalishSea_1h_20141218_20141225_grid_V_20141225-20141225.nc')
print(day1v.vomecrty.max())
print(day2v.vomecrty.max())
print(day3v.vomecrty.max())
print(day4v.vomecrty.max())
print(day5v.vomecrty.max())
print(day6v.vomecrty.max())
print(day7v.vomecrty.max())
day8v.vomecrty.max()
<xarray.DataArray 'vomecrty' ()> array(3.225706100463867) <xarray.DataArray 'vomecrty' ()> array(3.4456632137298584) <xarray.DataArray 'vomecrty' ()> array(3.508251905441284) <xarray.DataArray 'vomecrty' ()> array(3.7685163021087646) <xarray.DataArray 'vomecrty' ()> array(3.799029588699341) <xarray.DataArray 'vomecrty' ()> array(3.836238145828247) <xarray.DataArray 'vomecrty' ()> array(3.8642184734344482)
<xarray.DataArray 'vomecrty' ()> array(3.7620952129364014)
day1w = xr.open_dataset('/home/vdo/MEOPAR/completed-runs/18dec14/SalishSea_1h_20141218_20141225_grid_W_20141218-20141218.nc')
day2w = xr.open_dataset('/home/vdo/MEOPAR/completed-runs/18dec14/SalishSea_1h_20141218_20141225_grid_W_20141219-20141219.nc')
day3w = xr.open_dataset('/home/vdo/MEOPAR/completed-runs/18dec14/SalishSea_1h_20141218_20141225_grid_W_20141220-20141220.nc')
day4w = xr.open_dataset('/home/vdo/MEOPAR/completed-runs/18dec14/SalishSea_1h_20141218_20141225_grid_W_20141221-20141221.nc')
day5w = xr.open_dataset('/home/vdo/MEOPAR/completed-runs/18dec14/SalishSea_1h_20141218_20141225_grid_W_20141222-20141222.nc')
day6w = xr.open_dataset('/home/vdo/MEOPAR/completed-runs/18dec14/SalishSea_1h_20141218_20141225_grid_W_20141223-20141223.nc')
day7w = xr.open_dataset('/home/vdo/MEOPAR/completed-runs/18dec14/SalishSea_1h_20141218_20141225_grid_W_20141224-20141224.nc')
day8w = xr.open_dataset('/home/vdo/MEOPAR/completed-runs/18dec14/SalishSea_1h_20141218_20141225_grid_W_20141225-20141225.nc')
print(day1w.vovecrtz.max())
print(day2w.vovecrtz.max())
print(day3w.vovecrtz.max())
print(day4w.vovecrtz.max())
print(day5w.vovecrtz.max())
print(day6w.vovecrtz.max())
print(day7w.vovecrtz.max())
day8w.vovecrtz.max()
<xarray.DataArray 'vovecrtz' ()> array(0.26176151633262634) <xarray.DataArray 'vovecrtz' ()> array(0.29542315006256104) <xarray.DataArray 'vovecrtz' ()> array(0.31952086091041565) <xarray.DataArray 'vovecrtz' ()> array(0.34712982177734375) <xarray.DataArray 'vovecrtz' ()> array(0.3278588056564331) <xarray.DataArray 'vovecrtz' ()> array(0.3569972515106201) <xarray.DataArray 'vovecrtz' ()> array(0.3380794823169708)
<xarray.DataArray 'vovecrtz' ()> array(0.32365018129348755)
ans1 = day1u.vozocrtx / delta_x
ans1.max()
/home/vdo/anaconda3/lib/python3.6/site-packages/xarray/core/variable.py:1143: RuntimeWarning: invalid value encountered in true_divide if not reflexive
<xarray.DataArray ()> array(0.009276557508167233)
3.5/8*7
3.0625
day1u.vozocrtx
<xarray.DataArray 'vozocrtx' (time_counter: 24, depthu: 40, y: 898, x: 398)> array([[[[ nan, ..., nan], ..., [ 0., ..., nan]], ..., [[ nan, ..., nan], ..., [ 0., ..., nan]]], ..., [[[ nan, ..., nan], ..., [ 0., ..., nan]], ..., [[ nan, ..., nan], ..., [ 0., ..., nan]]]]) Coordinates: * depthu (depthu) float32 0.5 1.5 2.50001 3.50003 4.50007 5.50015 ... nav_lat (y, x) float32 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 ... nav_lon (y, x) float32 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 ... time_centered (time_counter) datetime64[ns] 2014-12-18T00:30:00 ... * time_counter (time_counter) datetime64[ns] 2014-12-18T00:30:00 ... Dimensions without coordinates: y, x Attributes: standard_name: sea_water_x_velocity long_name: ocean current along i-axis units: m/s online_operation: average interval_operation: 40 s interval_write: 1 h cell_methods: time: mean (interval: 40 s) cell_measures: area: area
delta_x
<xarray.DataArray 'e1u' (t: 1, y: 898, x: 398)> array([[[ 0. , 0. , ..., 0. , 0. ], [ 0. , 0. , ..., 0. , 0. ], ..., [ 464.063552, 463.358206, ..., 0. , 0. ], [ 467.052857, 465.852574, ..., 0. , 0. ]]]) Dimensions without coordinates: t, y, x
ans1 = day1u.vozocrtx / delta_x
type(ans1)
/home/vdo/anaconda3/lib/python3.6/site-packages/xarray/core/variable.py:1143: RuntimeWarning: invalid value encountered in true_divide if not reflexive
xarray.core.dataarray.DataArray
day1u.vozocrtx.isel(time_counter=1) / delta_x
/home/vdo/anaconda3/lib/python3.6/site-packages/xarray/core/variable.py:1143: RuntimeWarning: invalid value encountered in true_divide if not reflexive
<xarray.DataArray (depthu: 40, y: 898, x: 398, t: 1)> array([[[[ nan], ..., [ nan]], ..., [[ 0.], ..., [ nan]]], ..., [[[ nan], ..., [ nan]], ..., [[ 0.], ..., [ nan]]]]) Coordinates: * depthu (depthu) float32 0.5 1.5 2.50001 3.50003 4.50007 5.50015 ... nav_lat (y, x) float32 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 ... nav_lon (y, x) float32 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 ... time_centered datetime64[ns] 2014-12-18T01:30:00 time_counter datetime64[ns] 2014-12-18T01:30:00 Dimensions without coordinates: y, x, t
24*60*7 + 511921
522001
2/6*7
2.333333333333333
3.5/8*7
3.0625