Some first SMT-WAVE diagnostics#
[1]:
# if this line is not separated from the line below this cell has to be executed twice
%matplotlib notebook
#%matplotlib inline
%load_ext autoreload
%autoreload 2
[2]:
import pyicon as pyic
import numpy as np
from netCDF4 import Dataset
import matplotlib.pyplot as plt
import matplotlib.dates as mdates
import cartopy.crs as ccrs
import xarray as xr
import glob
import pandas as pd
import seawater as sw
import matplotlib.transforms as transforms
import matplotlib
import os
import cmocean
-----calc
sys glob os
numpy
netcdf
Done modules calc.
-----calc_xr
sys glob os
numpy
netcdf
xarray
Done modules calc.
-----tb
sys
json
numpy
scipy
netcdf datetime
matplotlib
mybreak
pnadas
xarray
done xarray
-----IconData
-----plotting
-----view
-----calc
-----calc_xr
-----tb
-----IconData
-----plotting
-----view
-----quickplots
-----quickplots
[3]:
from dask.distributed import Client, LocalCluster
cluster = LocalCluster()
client = Client(cluster)
[4]:
client
[4]:
Client
Client-3529a70a-8f20-11ec-93c4-0cc47a166b54
Connection method: Cluster object | Cluster type: LocalCluster |
Dashboard: http://127.0.0.1:8787/status |
Cluster Info
LocalCluster
96e3780d
Status: running | Using processes: True |
Dashboard: http://127.0.0.1:8787/status | Workers: 8 |
Total threads: 48 | Total memory: 251.99 GiB |
Scheduler Info
Scheduler
Scheduler-c2eb6381-ae84-465e-94ec-4c6957ca1641
Comm: tcp://127.0.0.1:38653 | Workers: 8 |
Dashboard: http://127.0.0.1:8787/status | Total threads: 48 |
Started: Just now | Total memory: 251.99 GiB |
Workers
Worker: 0
Comm: tcp://127.0.0.1:41360 | Total threads: 6 |
Dashboard: http://127.0.0.1:43693/status | Memory: 31.50 GiB |
Nanny: tcp://127.0.0.1:42089 | |
Local directory: /mnt/lustre01/pf/zmaw/m300602/proj_smtwv/python/dask-worker-space/worker-116lkwuz |
Worker: 1
Comm: tcp://127.0.0.1:37744 | Total threads: 6 |
Dashboard: http://127.0.0.1:43506/status | Memory: 31.50 GiB |
Nanny: tcp://127.0.0.1:39318 | |
Local directory: /mnt/lustre01/pf/zmaw/m300602/proj_smtwv/python/dask-worker-space/worker-cyedh0tr |
Worker: 2
Comm: tcp://127.0.0.1:32783 | Total threads: 6 |
Dashboard: http://127.0.0.1:37345/status | Memory: 31.50 GiB |
Nanny: tcp://127.0.0.1:37472 | |
Local directory: /mnt/lustre01/pf/zmaw/m300602/proj_smtwv/python/dask-worker-space/worker-rplaeugu |
Worker: 3
Comm: tcp://127.0.0.1:45430 | Total threads: 6 |
Dashboard: http://127.0.0.1:43363/status | Memory: 31.50 GiB |
Nanny: tcp://127.0.0.1:41984 | |
Local directory: /mnt/lustre01/pf/zmaw/m300602/proj_smtwv/python/dask-worker-space/worker-546r5u13 |
Worker: 4
Comm: tcp://127.0.0.1:39444 | Total threads: 6 |
Dashboard: http://127.0.0.1:46548/status | Memory: 31.50 GiB |
Nanny: tcp://127.0.0.1:44035 | |
Local directory: /mnt/lustre01/pf/zmaw/m300602/proj_smtwv/python/dask-worker-space/worker-msj7qoju |
Worker: 5
Comm: tcp://127.0.0.1:35429 | Total threads: 6 |
Dashboard: http://127.0.0.1:45221/status | Memory: 31.50 GiB |
Nanny: tcp://127.0.0.1:41292 | |
Local directory: /mnt/lustre01/pf/zmaw/m300602/proj_smtwv/python/dask-worker-space/worker-4idjvnl0 |
Worker: 6
Comm: tcp://127.0.0.1:35466 | Total threads: 6 |
Dashboard: http://127.0.0.1:46135/status | Memory: 31.50 GiB |
Nanny: tcp://127.0.0.1:45572 | |
Local directory: /mnt/lustre01/pf/zmaw/m300602/proj_smtwv/python/dask-worker-space/worker-gau8pqsp |
Worker: 7
Comm: tcp://127.0.0.1:45608 | Total threads: 6 |
Dashboard: http://127.0.0.1:38602/status | Memory: 31.50 GiB |
Nanny: tcp://127.0.0.1:36296 | |
Local directory: /mnt/lustre01/pf/zmaw/m300602/proj_smtwv/python/dask-worker-space/worker-zxu787h4 |
[3]:
def savefig(prfx):
fpath = f'../pics/smtwv_diagnose_smtwv0002_{prfx}.pdf'
print(f'Saving figure {fpath}')
plt.savefig(fpath)
return
[4]:
lon_s2 = [-12, -7]
lat_s2 = [-37.5, -34.5]
lon_s1 = [1, 10]
lat_s1 = [-35, -30]
from matplotlib.patches import Rectangle
def add_sonett(ax, color='k'):
rectprop = dict(facecolor='none', edgecolor=color, lw=2)
ax.add_patch(Rectangle((-12,-37.5), 5, 4, **rectprop))
ax.text(-9.5, -33.5, 'SONETT II', ha='center', va='bottom', fontsize=8, color=color)
rectprop = dict(facecolor='none', edgecolor=color, lw=2)
ax.add_patch(Rectangle((1,-35), 9, 5, **rectprop))
ax.text(5.5, -30., 'SONETT I', ha='center', va='bottom', fontsize=8, color=color)
ax.text(-2.5, -35, 'Walvis Ridge', va='center', ha='center', rotation=45, fontsize=8, color=color)
return
Load data#
[5]:
gname = 'smtwv_oce_2018'
path_grid = f'/mnt/lustre01/work/mh0033/m300602/icon/grids/{gname}/'
fpath_tgrid = f'{path_grid}{gname}_tgrid.nc'
fpath_ckdtree = f'{path_grid}ckdtree/rectgrids/{gname}_res0.10_180W-180E_90S-90N.nc'
# fpath_ckdtree = f'{path_grid}ckdtree/rectgrids/{gname}_res0.30_180W-180E_90S-90N.npz'
[6]:
mfdset_kwargs = dict(data_vars='minimal', coords='minimal', compat='override', combine='nested', concat_dim='time')
[7]:
run = 'smtwv0002'
path_data = f'/mnt/lustre02/work/bm1102/m300602/proj_smtwv/icon-oes-smt_zstar/experiments/{run}/'
[8]:
flist = glob.glob(f'{path_data}/{run}_oce_3d_PT2H_*.nc')
flist.sort()
flist = flist[:-1]
flist[-1]
[8]:
'/mnt/lustre02/work/bm1102/m300602/proj_smtwv/icon-oes-smt_zstar/experiments/smtwv0002/smtwv0002_oce_3d_PT2H_20190725T001500Z.nc'
[9]:
ds_3d = xr.open_mfdataset(flist, **mfdset_kwargs, chunks=dict(time=1, depth=1, depth_2=1))
[10]:
flist = glob.glob(f'{path_data}/{run}_oce_2d_PT2H_*.nc')
flist.sort()
flist = flist[:-1]
flist[-1]
[10]:
'/mnt/lustre02/work/bm1102/m300602/proj_smtwv/icon-oes-smt_zstar/experiments/smtwv0002/smtwv0002_oce_2d_PT2H_20190725T001500Z.nc'
[11]:
ds_2d = xr.open_mfdataset(flist, **mfdset_kwargs, chunks=dict(time=1, depth=1, depth_2=1))
[12]:
%%time
ds_tg = xr.open_mfdataset(fpath_tgrid, **mfdset_kwargs)
# tgrid = tgrid.rename(dict(ncells='cell'))
ds_tg['dtype'] = 'float32'
# ds_tg['clon'] *= 180./np.pi
# ds_tg['clat'] *= 180./np.pi
# ds_tg['elon'] *= 180./np.pi
# ds_tg['elat'] *= 180./np.pi
# ds_tg['vlon'] *= 180./np.pi
# ds_tg['vlat'] *= 180./np.pi
ds_tg
CPU times: user 85 ms, sys: 10 ms, total: 95 ms
Wall time: 185 ms
[12]:
<xarray.Dataset> Dimensions: (cell: 66859144, cell_grf: 14, edge: 100336073, edge_grf: 24, max_chdom: 1, nc: 2, ne: 6, no: 4, nv: 3, two_grf: 2, vert_grf: 13, vertex: 33474921) Coordinates: clon (cell) float64 dask.array<chunksize=(66859144,), meta=np.ndarray> clat (cell) float64 dask.array<chunksize=(66859144,), meta=np.ndarray> vlon (vertex) float64 dask.array<chunksize=(33474921,), meta=np.ndarray> vlat (vertex) float64 dask.array<chunksize=(33474921,), meta=np.ndarray> elon (edge) float64 dask.array<chunksize=(100336073,), meta=np.ndarray> elat (edge) float64 dask.array<chunksize=(100336073,), meta=np.ndarray> Dimensions without coordinates: cell, cell_grf, edge, edge_grf, max_chdom, nc, ne, no, nv, two_grf, vert_grf, vertex Data variables: (12/88) clon_vertices (cell, nv) float64 dask.array<chunksize=(66859144, 3), meta=np.ndarray> clat_vertices (cell, nv) float64 dask.array<chunksize=(66859144, 3), meta=np.ndarray> vlon_vertices (vertex, ne) float64 dask.array<chunksize=(33474921, 6), meta=np.ndarray> vlat_vertices (vertex, ne) float64 dask.array<chunksize=(33474921, 6), meta=np.ndarray> elon_vertices (edge, no) float64 dask.array<chunksize=(100336073, 4), meta=np.ndarray> elat_vertices (edge, no) float64 dask.array<chunksize=(100336073, 4), meta=np.ndarray> ... ... edge_dual_normal_cartesian_y (edge) float64 dask.array<chunksize=(100336073,), meta=np.ndarray> edge_dual_normal_cartesian_z (edge) float64 dask.array<chunksize=(100336073,), meta=np.ndarray> cell_circumcenter_cartesian_x (cell) float64 dask.array<chunksize=(66859144,), meta=np.ndarray> cell_circumcenter_cartesian_y (cell) float64 dask.array<chunksize=(66859144,), meta=np.ndarray> cell_circumcenter_cartesian_z (cell) float64 dask.array<chunksize=(66859144,), meta=np.ndarray> dtype <U7 'float32' Attributes: (12/34) title: ICON grid description institution: Max Planck Institute for Meteorology/Deutscher ... source: git@git.mpimet.mpg.de:GridGenerator.git revision: e11a6000e72724d0e4670f87f18314ece947122b history: /work/mh0287/users/leonidas/icon/GridGenerator_... date: 20200913 at 212150 ... ... mean_cell_area: 6080879.452321341 mean_dual_cell_area: 12161758.324725308 domain_length: 40031612.44147649 domain_height: 40031612.44147649 sphere_radius: 6371229.0 domain_cartesian_center: [0. 0. 0.]
xarray.Dataset
- cell: 66859144
- cell_grf: 14
- edge: 100336073
- edge_grf: 24
- max_chdom: 1
- nc: 2
- ne: 6
- no: 4
- nv: 3
- two_grf: 2
- vert_grf: 13
- vertex: 33474921
- clon(cell)float64dask.array<chunksize=(66859144,), meta=np.ndarray>
- long_name :
- center longitude
- units :
- radian
- standard_name :
- grid_longitude
- bounds :
- clon_vertices
Array Chunk Bytes 510.09 MiB 510.09 MiB Shape (66859144,) (66859144,) Count 2 Tasks 1 Chunks Type float64 numpy.ndarray - clat(cell)float64dask.array<chunksize=(66859144,), meta=np.ndarray>
- long_name :
- center latitude
- units :
- radian
- standard_name :
- grid_latitude
- bounds :
- clat_vertices
Array Chunk Bytes 510.09 MiB 510.09 MiB Shape (66859144,) (66859144,) Count 2 Tasks 1 Chunks Type float64 numpy.ndarray - vlon(vertex)float64dask.array<chunksize=(33474921,), meta=np.ndarray>
- long_name :
- vertex longitude
- units :
- radian
- standard_name :
- grid_longitude
- bounds :
- vlon_vertices
Array Chunk Bytes 255.39 MiB 255.39 MiB Shape (33474921,) (33474921,) Count 2 Tasks 1 Chunks Type float64 numpy.ndarray - vlat(vertex)float64dask.array<chunksize=(33474921,), meta=np.ndarray>
- long_name :
- vertex latitude
- units :
- radian
- standard_name :
- grid_latitude
- bounds :
- vlat_vertices
Array Chunk Bytes 255.39 MiB 255.39 MiB Shape (33474921,) (33474921,) Count 2 Tasks 1 Chunks Type float64 numpy.ndarray - elon(edge)float64dask.array<chunksize=(100336073,), meta=np.ndarray>
- long_name :
- edge midpoint longitude
- units :
- radian
- standard_name :
- grid_longitude
- bounds :
- elon_vertices
Array Chunk Bytes 765.50 MiB 765.50 MiB Shape (100336073,) (100336073,) Count 2 Tasks 1 Chunks Type float64 numpy.ndarray - elat(edge)float64dask.array<chunksize=(100336073,), meta=np.ndarray>
- long_name :
- edge midpoint latitude
- units :
- radian
- standard_name :
- grid_latitude
- bounds :
- elat_vertices
Array Chunk Bytes 765.50 MiB 765.50 MiB Shape (100336073,) (100336073,) Count 2 Tasks 1 Chunks Type float64 numpy.ndarray
- clon_vertices(cell, nv)float64dask.array<chunksize=(66859144, 3), meta=np.ndarray>
- units :
- radian
Array Chunk Bytes 1.49 GiB 1.49 GiB Shape (66859144, 3) (66859144, 3) Count 2 Tasks 1 Chunks Type float64 numpy.ndarray - clat_vertices(cell, nv)float64dask.array<chunksize=(66859144, 3), meta=np.ndarray>
- units :
- radian
Array Chunk Bytes 1.49 GiB 1.49 GiB Shape (66859144, 3) (66859144, 3) Count 2 Tasks 1 Chunks Type float64 numpy.ndarray - vlon_vertices(vertex, ne)float64dask.array<chunksize=(33474921, 6), meta=np.ndarray>
- units :
- radian
Array Chunk Bytes 1.50 GiB 1.50 GiB Shape (33474921, 6) (33474921, 6) Count 2 Tasks 1 Chunks Type float64 numpy.ndarray - vlat_vertices(vertex, ne)float64dask.array<chunksize=(33474921, 6), meta=np.ndarray>
- units :
- radian
Array Chunk Bytes 1.50 GiB 1.50 GiB Shape (33474921, 6) (33474921, 6) Count 2 Tasks 1 Chunks Type float64 numpy.ndarray - elon_vertices(edge, no)float64dask.array<chunksize=(100336073, 4), meta=np.ndarray>
- units :
- radian
Array Chunk Bytes 2.99 GiB 2.99 GiB Shape (100336073, 4) (100336073, 4) Count 2 Tasks 1 Chunks Type float64 numpy.ndarray - elat_vertices(edge, no)float64dask.array<chunksize=(100336073, 4), meta=np.ndarray>
- units :
- radian
Array Chunk Bytes 2.99 GiB 2.99 GiB Shape (100336073, 4) (100336073, 4) Count 2 Tasks 1 Chunks Type float64 numpy.ndarray - ifs2icon_cell_grid(cell)float64dask.array<chunksize=(66859144,), meta=np.ndarray>
- long_name :
- ifs to icon cells
Array Chunk Bytes 510.09 MiB 510.09 MiB Shape (66859144,) (66859144,) Count 2 Tasks 1 Chunks Type float64 numpy.ndarray - ifs2icon_edge_grid(edge)float64dask.array<chunksize=(100336073,), meta=np.ndarray>
- long_name :
- ifs to icon edge
Array Chunk Bytes 765.50 MiB 765.50 MiB Shape (100336073,) (100336073,) Count 2 Tasks 1 Chunks Type float64 numpy.ndarray - ifs2icon_vertex_grid(vertex)float64dask.array<chunksize=(33474921,), meta=np.ndarray>
- long_name :
- ifs to icon vertex
Array Chunk Bytes 255.39 MiB 255.39 MiB Shape (33474921,) (33474921,) Count 2 Tasks 1 Chunks Type float64 numpy.ndarray - cell_area(cell)float64dask.array<chunksize=(66859144,), meta=np.ndarray>
- long_name :
- area of grid cell
- units :
- m2
- standard_name :
- area
- grid_type :
- unstructured
- number_of_grid_in_reference :
- 1
Array Chunk Bytes 510.09 MiB 510.09 MiB Shape (66859144,) (66859144,) Count 2 Tasks 1 Chunks Type float64 numpy.ndarray - dual_area(vertex)float64dask.array<chunksize=(33474921,), meta=np.ndarray>
- long_name :
- areas of dual hexagonal/pentagonal cells
- units :
- m2
- standard_name :
- area
Array Chunk Bytes 255.39 MiB 255.39 MiB Shape (33474921,) (33474921,) Count 2 Tasks 1 Chunks Type float64 numpy.ndarray - phys_cell_id(cell)int32dask.array<chunksize=(66859144,), meta=np.ndarray>
- long_name :
- physical domain ID of cell
- grid_type :
- unstructured
- number_of_grid_in_reference :
- 1
Array Chunk Bytes 255.05 MiB 255.05 MiB Shape (66859144,) (66859144,) Count 2 Tasks 1 Chunks Type int32 numpy.ndarray - phys_edge_id(edge)int32dask.array<chunksize=(100336073,), meta=np.ndarray>
- long_name :
- physical domain ID of edge
Array Chunk Bytes 382.75 MiB 382.75 MiB Shape (100336073,) (100336073,) Count 2 Tasks 1 Chunks Type int32 numpy.ndarray - lon_cell_centre(cell)float64dask.array<chunksize=(66859144,), meta=np.ndarray>
- long_name :
- longitude of cell centre
- units :
- radian
- grid_type :
- unstructured
- number_of_grid_in_reference :
- 1
Array Chunk Bytes 510.09 MiB 510.09 MiB Shape (66859144,) (66859144,) Count 2 Tasks 1 Chunks Type float64 numpy.ndarray - lat_cell_centre(cell)float64dask.array<chunksize=(66859144,), meta=np.ndarray>
- long_name :
- latitude of cell centre
- units :
- radian
- grid_type :
- unstructured
- number_of_grid_in_reference :
- 1
Array Chunk Bytes 510.09 MiB 510.09 MiB Shape (66859144,) (66859144,) Count 2 Tasks 1 Chunks Type float64 numpy.ndarray - longitude_vertices(vertex)float64dask.array<chunksize=(33474921,), meta=np.ndarray>
- long_name :
- longitude of vertices
- units :
- radian
Array Chunk Bytes 255.39 MiB 255.39 MiB Shape (33474921,) (33474921,) Count 2 Tasks 1 Chunks Type float64 numpy.ndarray - latitude_vertices(vertex)float64dask.array<chunksize=(33474921,), meta=np.ndarray>
- long_name :
- latitude of vertices
- units :
- radian
Array Chunk Bytes 255.39 MiB 255.39 MiB Shape (33474921,) (33474921,) Count 2 Tasks 1 Chunks Type float64 numpy.ndarray - lon_edge_centre(edge)float64dask.array<chunksize=(100336073,), meta=np.ndarray>
- long_name :
- longitudes of edge midpoints
- units :
- radian
Array Chunk Bytes 765.50 MiB 765.50 MiB Shape (100336073,) (100336073,) Count 2 Tasks 1 Chunks Type float64 numpy.ndarray - lat_edge_centre(edge)float64dask.array<chunksize=(100336073,), meta=np.ndarray>
- long_name :
- latitudes of edge midpoints
- units :
- radian
Array Chunk Bytes 765.50 MiB 765.50 MiB Shape (100336073,) (100336073,) Count 2 Tasks 1 Chunks Type float64 numpy.ndarray - edge_of_cell(nv, cell)int32dask.array<chunksize=(3, 66859144), meta=np.ndarray>
- long_name :
- edges of each cellvertices
Array Chunk Bytes 765.14 MiB 765.14 MiB Shape (3, 66859144) (3, 66859144) Count 2 Tasks 1 Chunks Type int32 numpy.ndarray - vertex_of_cell(nv, cell)int32dask.array<chunksize=(3, 66859144), meta=np.ndarray>
- long_name :
- vertices of each cellcells ad
Array Chunk Bytes 765.14 MiB 765.14 MiB Shape (3, 66859144) (3, 66859144) Count 2 Tasks 1 Chunks Type int32 numpy.ndarray - adjacent_cell_of_edge(nc, edge)int32dask.array<chunksize=(2, 100336073), meta=np.ndarray>
- long_name :
- cells adjacent to each edge
Array Chunk Bytes 765.50 MiB 765.50 MiB Shape (2, 100336073) (2, 100336073) Count 2 Tasks 1 Chunks Type int32 numpy.ndarray - edge_vertices(nc, edge)int32dask.array<chunksize=(2, 100336073), meta=np.ndarray>
- long_name :
- vertices at the end of of each edge
Array Chunk Bytes 765.50 MiB 765.50 MiB Shape (2, 100336073) (2, 100336073) Count 2 Tasks 1 Chunks Type int32 numpy.ndarray - cells_of_vertex(ne, vertex)int32dask.array<chunksize=(6, 33474921), meta=np.ndarray>
- long_name :
- cells around each vertex
Array Chunk Bytes 766.18 MiB 766.18 MiB Shape (6, 33474921) (6, 33474921) Count 2 Tasks 1 Chunks Type int32 numpy.ndarray - edges_of_vertex(ne, vertex)int32dask.array<chunksize=(6, 33474921), meta=np.ndarray>
- long_name :
- edges around each vertex
Array Chunk Bytes 766.18 MiB 766.18 MiB Shape (6, 33474921) (6, 33474921) Count 2 Tasks 1 Chunks Type int32 numpy.ndarray - vertices_of_vertex(ne, vertex)int32dask.array<chunksize=(6, 33474921), meta=np.ndarray>
- long_name :
- vertices around each vertex
Array Chunk Bytes 766.18 MiB 766.18 MiB Shape (6, 33474921) (6, 33474921) Count 2 Tasks 1 Chunks Type int32 numpy.ndarray - cell_area_p(cell)float64dask.array<chunksize=(66859144,), meta=np.ndarray>
- long_name :
- area of grid cell
- units :
- m2
- grid_type :
- unstructured
- number_of_grid_in_reference :
- 1
Array Chunk Bytes 510.09 MiB 510.09 MiB Shape (66859144,) (66859144,) Count 2 Tasks 1 Chunks Type float64 numpy.ndarray - cell_elevation(cell)float64dask.array<chunksize=(66859144,), meta=np.ndarray>
- long_name :
- elevation at the cell centers
- units :
- m
- grid_type :
- unstructured
- number_of_grid_in_reference :
- 1
Array Chunk Bytes 510.09 MiB 510.09 MiB Shape (66859144,) (66859144,) Count 2 Tasks 1 Chunks Type float64 numpy.ndarray - cell_sea_land_mask(cell)int32dask.array<chunksize=(66859144,), meta=np.ndarray>
- long_name :
- sea (-2 inner, -1 boundary) land (2 inner, 1 boundary) mask for the cell
- units :
- 2,1,-1,-
- grid_type :
- unstructured
- number_of_grid_in_reference :
- 1
Array Chunk Bytes 255.05 MiB 255.05 MiB Shape (66859144,) (66859144,) Count 2 Tasks 1 Chunks Type int32 numpy.ndarray - dual_area_p(vertex)float64dask.array<chunksize=(33474921,), meta=np.ndarray>
- long_name :
- areas of dual hexagonal/pentagonal cells
- units :
- m2
Array Chunk Bytes 255.39 MiB 255.39 MiB Shape (33474921,) (33474921,) Count 2 Tasks 1 Chunks Type float64 numpy.ndarray - edge_length(edge)float64dask.array<chunksize=(100336073,), meta=np.ndarray>
- long_name :
- lengths of edges of triangular cells
- units :
- m
Array Chunk Bytes 765.50 MiB 765.50 MiB Shape (100336073,) (100336073,) Count 2 Tasks 1 Chunks Type float64 numpy.ndarray - edge_cell_distance(nc, edge)float64dask.array<chunksize=(2, 100336073), meta=np.ndarray>
- long_name :
- distances between edge midpoint and adjacent triangle midpoints
- units :
- m
Array Chunk Bytes 1.50 GiB 1.50 GiB Shape (2, 100336073) (2, 100336073) Count 2 Tasks 1 Chunks Type float64 numpy.ndarray - dual_edge_length(edge)float64dask.array<chunksize=(100336073,), meta=np.ndarray>
- long_name :
- lengths of dual edges (distances between triangular cell circumcenters)
- units :
- m
Array Chunk Bytes 765.50 MiB 765.50 MiB Shape (100336073,) (100336073,) Count 2 Tasks 1 Chunks Type float64 numpy.ndarray - edgequad_area(edge)float64dask.array<chunksize=(100336073,), meta=np.ndarray>
- long_name :
- area around the edge formed by the two adjacent triangles
- units :
- m2
Array Chunk Bytes 765.50 MiB 765.50 MiB Shape (100336073,) (100336073,) Count 2 Tasks 1 Chunks Type float64 numpy.ndarray - edge_elevation(edge)float64dask.array<chunksize=(100336073,), meta=np.ndarray>
- long_name :
- elevation at the edge centers
- units :
- m
Array Chunk Bytes 765.50 MiB 765.50 MiB Shape (100336073,) (100336073,) Count 2 Tasks 1 Chunks Type float64 numpy.ndarray - edge_sea_land_mask(edge)int32dask.array<chunksize=(100336073,), meta=np.ndarray>
- long_name :
- sea (-2 inner, -1 boundary) land (2 inner, 1 boundary) mask for the cell
- units :
- 2,1,-1,-
Array Chunk Bytes 382.75 MiB 382.75 MiB Shape (100336073,) (100336073,) Count 2 Tasks 1 Chunks Type int32 numpy.ndarray - edge_vert_distance(nc, edge)float64dask.array<chunksize=(2, 100336073), meta=np.ndarray>
- long_name :
- distances between edge midpoint and vertices of that edge
- units :
- m
Array Chunk Bytes 1.50 GiB 1.50 GiB Shape (2, 100336073) (2, 100336073) Count 2 Tasks 1 Chunks Type float64 numpy.ndarray - zonal_normal_primal_edge(edge)float64dask.array<chunksize=(100336073,), meta=np.ndarray>
- long_name :
- zonal component of normal to primal edge
- units :
- radian
Array Chunk Bytes 765.50 MiB 765.50 MiB Shape (100336073,) (100336073,) Count 2 Tasks 1 Chunks Type float64 numpy.ndarray - meridional_normal_primal_edge(edge)float64dask.array<chunksize=(100336073,), meta=np.ndarray>
- long_name :
- meridional component of normal to primal edge
- units :
- radian
Array Chunk Bytes 765.50 MiB 765.50 MiB Shape (100336073,) (100336073,) Count 2 Tasks 1 Chunks Type float64 numpy.ndarray - zonal_normal_dual_edge(edge)float64dask.array<chunksize=(100336073,), meta=np.ndarray>
- long_name :
- zonal component of normal to dual edge
- units :
- radian
Array Chunk Bytes 765.50 MiB 765.50 MiB Shape (100336073,) (100336073,) Count 2 Tasks 1 Chunks Type float64 numpy.ndarray - meridional_normal_dual_edge(edge)float64dask.array<chunksize=(100336073,), meta=np.ndarray>
- long_name :
- meridional component of normal to dual edge
- units :
- radian
Array Chunk Bytes 765.50 MiB 765.50 MiB Shape (100336073,) (100336073,) Count 2 Tasks 1 Chunks Type float64 numpy.ndarray - orientation_of_normal(nv, cell)int32dask.array<chunksize=(3, 66859144), meta=np.ndarray>
- long_name :
- orientations of normals to triangular cell edges
Array Chunk Bytes 765.14 MiB 765.14 MiB Shape (3, 66859144) (3, 66859144) Count 2 Tasks 1 Chunks Type int32 numpy.ndarray - cell_index(cell)int32dask.array<chunksize=(66859144,), meta=np.ndarray>
- long_name :
- cell index
Array Chunk Bytes 255.05 MiB 255.05 MiB Shape (66859144,) (66859144,) Count 2 Tasks 1 Chunks Type int32 numpy.ndarray - parent_cell_index(cell)int32dask.array<chunksize=(66859144,), meta=np.ndarray>
- long_name :
- parent cell index
Array Chunk Bytes 255.05 MiB 255.05 MiB Shape (66859144,) (66859144,) Count 2 Tasks 1 Chunks Type int32 numpy.ndarray - parent_cell_type(cell)int32dask.array<chunksize=(66859144,), meta=np.ndarray>
- long_name :
- parent cell type
Array Chunk Bytes 255.05 MiB 255.05 MiB Shape (66859144,) (66859144,) Count 2 Tasks 1 Chunks Type int32 numpy.ndarray - neighbor_cell_index(nv, cell)int32dask.array<chunksize=(3, 66859144), meta=np.ndarray>
- long_name :
- cell neighbor index
Array Chunk Bytes 765.14 MiB 765.14 MiB Shape (3, 66859144) (3, 66859144) Count 2 Tasks 1 Chunks Type int32 numpy.ndarray - child_cell_index(no, cell)int32dask.array<chunksize=(4, 66859144), meta=np.ndarray>
- long_name :
- child cell index
Array Chunk Bytes 1.00 GiB 1.00 GiB Shape (4, 66859144) (4, 66859144) Count 2 Tasks 1 Chunks Type int32 numpy.ndarray - child_cell_id(cell)int32dask.array<chunksize=(66859144,), meta=np.ndarray>
- long_name :
- domain ID of child cell
Array Chunk Bytes 255.05 MiB 255.05 MiB Shape (66859144,) (66859144,) Count 2 Tasks 1 Chunks Type int32 numpy.ndarray - edge_index(edge)int32dask.array<chunksize=(100336073,), meta=np.ndarray>
- long_name :
- edge index
Array Chunk Bytes 382.75 MiB 382.75 MiB Shape (100336073,) (100336073,) Count 2 Tasks 1 Chunks Type int32 numpy.ndarray - edge_parent_type(edge)int32dask.array<chunksize=(100336073,), meta=np.ndarray>
- long_name :
- edge paren
Array Chunk Bytes 382.75 MiB 382.75 MiB Shape (100336073,) (100336073,) Count 2 Tasks 1 Chunks Type int32 numpy.ndarray - vertex_index(vertex)int32dask.array<chunksize=(33474921,), meta=np.ndarray>
- long_name :
- vertices index
Array Chunk Bytes 127.70 MiB 127.70 MiB Shape (33474921,) (33474921,) Count 2 Tasks 1 Chunks Type int32 numpy.ndarray - edge_orientation(ne, vertex)int32dask.array<chunksize=(6, 33474921), meta=np.ndarray>
- long_name :
- edge orientation
Array Chunk Bytes 766.18 MiB 766.18 MiB Shape (6, 33474921) (6, 33474921) Count 2 Tasks 1 Chunks Type int32 numpy.ndarray - edge_system_orientation(edge)int32dask.array<chunksize=(100336073,), meta=np.ndarray>
- long_name :
- edge system orientation
Array Chunk Bytes 382.75 MiB 382.75 MiB Shape (100336073,) (100336073,) Count 2 Tasks 1 Chunks Type int32 numpy.ndarray - refin_c_ctrl(cell)int32dask.array<chunksize=(66859144,), meta=np.ndarray>
- long_name :
- refinement control flag for cells
Array Chunk Bytes 255.05 MiB 255.05 MiB Shape (66859144,) (66859144,) Count 2 Tasks 1 Chunks Type int32 numpy.ndarray - index_c_list(two_grf, cell_grf)int32dask.array<chunksize=(2, 14), meta=np.ndarray>
- long_name :
- list of start and end indices for each refinement control level for cells
Array Chunk Bytes 112 B 112 B Shape (2, 14) (2, 14) Count 2 Tasks 1 Chunks Type int32 numpy.ndarray - start_idx_c(max_chdom, cell_grf)int32dask.array<chunksize=(1, 14), meta=np.ndarray>
- long_name :
- list of start indices for each refinement control level for cells
Array Chunk Bytes 56 B 56 B Shape (1, 14) (1, 14) Count 2 Tasks 1 Chunks Type int32 numpy.ndarray - end_idx_c(max_chdom, cell_grf)int32dask.array<chunksize=(1, 14), meta=np.ndarray>
- long_name :
- list of end indices for each refinement control level for cells
Array Chunk Bytes 56 B 56 B Shape (1, 14) (1, 14) Count 2 Tasks 1 Chunks Type int32 numpy.ndarray - refin_e_ctrl(edge)int32dask.array<chunksize=(100336073,), meta=np.ndarray>
- long_name :
- refinement control flag for edges
Array Chunk Bytes 382.75 MiB 382.75 MiB Shape (100336073,) (100336073,) Count 2 Tasks 1 Chunks Type int32 numpy.ndarray - index_e_list(two_grf, edge_grf)int32dask.array<chunksize=(2, 24), meta=np.ndarray>
- long_name :
- list of start and end indices for each refinement control level for edges
Array Chunk Bytes 192 B 192 B Shape (2, 24) (2, 24) Count 2 Tasks 1 Chunks Type int32 numpy.ndarray - start_idx_e(max_chdom, edge_grf)int32dask.array<chunksize=(1, 24), meta=np.ndarray>
- long_name :
- list of start indices for each refinement control level for edges
Array Chunk Bytes 96 B 96 B Shape (1, 24) (1, 24) Count 2 Tasks 1 Chunks Type int32 numpy.ndarray - end_idx_e(max_chdom, edge_grf)int32dask.array<chunksize=(1, 24), meta=np.ndarray>
- long_name :
- list of end indices for each refinement control level for edges
Array Chunk Bytes 96 B 96 B Shape (1, 24) (1, 24) Count 2 Tasks 1 Chunks Type int32 numpy.ndarray - refin_v_ctrl(vertex)int32dask.array<chunksize=(33474921,), meta=np.ndarray>
- long_name :
- refinement control flag for vertices
Array Chunk Bytes 127.70 MiB 127.70 MiB Shape (33474921,) (33474921,) Count 2 Tasks 1 Chunks Type int32 numpy.ndarray - index_v_list(two_grf, vert_grf)int32dask.array<chunksize=(2, 13), meta=np.ndarray>
- long_name :
- list of start and end indices for each refinement control level for vertices
Array Chunk Bytes 104 B 104 B Shape (2, 13) (2, 13) Count 2 Tasks 1 Chunks Type int32 numpy.ndarray - start_idx_v(max_chdom, vert_grf)int32dask.array<chunksize=(1, 13), meta=np.ndarray>
- long_name :
- list of start indices for each refinement control level for vertices
Array Chunk Bytes 52 B 52 B Shape (1, 13) (1, 13) Count 2 Tasks 1 Chunks Type int32 numpy.ndarray - end_idx_v(max_chdom, vert_grf)int32dask.array<chunksize=(1, 13), meta=np.ndarray>
- long_name :
- list of end indices for each refinement control level for vertices
Array Chunk Bytes 52 B 52 B Shape (1, 13) (1, 13) Count 2 Tasks 1 Chunks Type int32 numpy.ndarray - parent_edge_index(edge)int32dask.array<chunksize=(100336073,), meta=np.ndarray>
- long_name :
- parent edge index
Array Chunk Bytes 382.75 MiB 382.75 MiB Shape (100336073,) (100336073,) Count 2 Tasks 1 Chunks Type int32 numpy.ndarray - child_edge_index(no, edge)int32dask.array<chunksize=(4, 100336073), meta=np.ndarray>
- long_name :
- child edge index
Array Chunk Bytes 1.50 GiB 1.50 GiB Shape (4, 100336073) (4, 100336073) Count 2 Tasks 1 Chunks Type int32 numpy.ndarray - child_edge_id(edge)int32dask.array<chunksize=(100336073,), meta=np.ndarray>
- long_name :
- domain ID of child edge
Array Chunk Bytes 382.75 MiB 382.75 MiB Shape (100336073,) (100336073,) Count 2 Tasks 1 Chunks Type int32 numpy.ndarray - parent_vertex_index(vertex)int32dask.array<chunksize=(33474921,), meta=np.ndarray>
- long_name :
- parent vertex index
Array Chunk Bytes 127.70 MiB 127.70 MiB Shape (33474921,) (33474921,) Count 2 Tasks 1 Chunks Type int32 numpy.ndarray - cartesian_x_vertices(vertex)float64dask.array<chunksize=(33474921,), meta=np.ndarray>
- long_name :
- vertex cartesian coordinate x on unit sp
- units :
- meters
Array Chunk Bytes 255.39 MiB 255.39 MiB Shape (33474921,) (33474921,) Count 2 Tasks 1 Chunks Type float64 numpy.ndarray - cartesian_y_vertices(vertex)float64dask.array<chunksize=(33474921,), meta=np.ndarray>
- long_name :
- vertex cartesian coordinate y on unit sp
- units :
- meters
Array Chunk Bytes 255.39 MiB 255.39 MiB Shape (33474921,) (33474921,) Count 2 Tasks 1 Chunks Type float64 numpy.ndarray - cartesian_z_vertices(vertex)float64dask.array<chunksize=(33474921,), meta=np.ndarray>
- long_name :
- vertex cartesian coordinate z on unit sp
- units :
- meters
Array Chunk Bytes 255.39 MiB 255.39 MiB Shape (33474921,) (33474921,) Count 2 Tasks 1 Chunks Type float64 numpy.ndarray - edge_middle_cartesian_x(edge)float64dask.array<chunksize=(100336073,), meta=np.ndarray>
- long_name :
- prime edge center cartesian coordinate x on unit sphere
- units :
- meters
Array Chunk Bytes 765.50 MiB 765.50 MiB Shape (100336073,) (100336073,) Count 2 Tasks 1 Chunks Type float64 numpy.ndarray - edge_middle_cartesian_y(edge)float64dask.array<chunksize=(100336073,), meta=np.ndarray>
- long_name :
- prime edge center cartesian coordinate y on unit sphere
- units :
- meters
Array Chunk Bytes 765.50 MiB 765.50 MiB Shape (100336073,) (100336073,) Count 2 Tasks 1 Chunks Type float64 numpy.ndarray - edge_middle_cartesian_z(edge)float64dask.array<chunksize=(100336073,), meta=np.ndarray>
- long_name :
- prime edge center cartesian coordinate z on unit sphere
- units :
- meters
Array Chunk Bytes 765.50 MiB 765.50 MiB Shape (100336073,) (100336073,) Count 2 Tasks 1 Chunks Type float64 numpy.ndarray - edge_dual_middle_cartesian_x(edge)float64dask.array<chunksize=(100336073,), meta=np.ndarray>
- long_name :
- dual edge center cartesian coordinate x on unit sphere
- units :
- meters
Array Chunk Bytes 765.50 MiB 765.50 MiB Shape (100336073,) (100336073,) Count 2 Tasks 1 Chunks Type float64 numpy.ndarray - edge_dual_middle_cartesian_y(edge)float64dask.array<chunksize=(100336073,), meta=np.ndarray>
- long_name :
- dual edge center cartesian coordinate y on unit sphere
- units :
- meters
Array Chunk Bytes 765.50 MiB 765.50 MiB Shape (100336073,) (100336073,) Count 2 Tasks 1 Chunks Type float64 numpy.ndarray - edge_dual_middle_cartesian_z(edge)float64dask.array<chunksize=(100336073,), meta=np.ndarray>
- long_name :
- dual edge center cartesian coordinate z on unit sphere
- units :
- meters
Array Chunk Bytes 765.50 MiB 765.50 MiB Shape (100336073,) (100336073,) Count 2 Tasks 1 Chunks Type float64 numpy.ndarray - edge_primal_normal_cartesian_x(edge)float64dask.array<chunksize=(100336073,), meta=np.ndarray>
- long_name :
- unit normal to the prime edge 3D vector, coordinate x
- units :
- meters
Array Chunk Bytes 765.50 MiB 765.50 MiB Shape (100336073,) (100336073,) Count 2 Tasks 1 Chunks Type float64 numpy.ndarray - edge_primal_normal_cartesian_y(edge)float64dask.array<chunksize=(100336073,), meta=np.ndarray>
- long_name :
- unit normal to the prime edge 3D vector, coordinate y
- units :
- meters
Array Chunk Bytes 765.50 MiB 765.50 MiB Shape (100336073,) (100336073,) Count 2 Tasks 1 Chunks Type float64 numpy.ndarray - edge_primal_normal_cartesian_z(edge)float64dask.array<chunksize=(100336073,), meta=np.ndarray>
- long_name :
- unit normal to the prime edge 3D vector, coordinate z
- units :
- meters
Array Chunk Bytes 765.50 MiB 765.50 MiB Shape (100336073,) (100336073,) Count 2 Tasks 1 Chunks Type float64 numpy.ndarray - edge_dual_normal_cartesian_x(edge)float64dask.array<chunksize=(100336073,), meta=np.ndarray>
- long_name :
- unit normal to the dual edge 3D vector, coordinate x
- units :
- meters
Array Chunk Bytes 765.50 MiB 765.50 MiB Shape (100336073,) (100336073,) Count 2 Tasks 1 Chunks Type float64 numpy.ndarray - edge_dual_normal_cartesian_y(edge)float64dask.array<chunksize=(100336073,), meta=np.ndarray>
- long_name :
- unit normal to the dual edge 3D vector, coordinate y
- units :
- meters
Array Chunk Bytes 765.50 MiB 765.50 MiB Shape (100336073,) (100336073,) Count 2 Tasks 1 Chunks Type float64 numpy.ndarray - edge_dual_normal_cartesian_z(edge)float64dask.array<chunksize=(100336073,), meta=np.ndarray>
- long_name :
- unit normal to the dual edge 3D vector, coordinate z
- units :
- meters
Array Chunk Bytes 765.50 MiB 765.50 MiB Shape (100336073,) (100336073,) Count 2 Tasks 1 Chunks Type float64 numpy.ndarray - cell_circumcenter_cartesian_x(cell)float64dask.array<chunksize=(66859144,), meta=np.ndarray>
- long_name :
- cartesian position of the prime cell circumcenter on the unit sphere, coordinate x
- units :
- meters
Array Chunk Bytes 510.09 MiB 510.09 MiB Shape (66859144,) (66859144,) Count 2 Tasks 1 Chunks Type float64 numpy.ndarray - cell_circumcenter_cartesian_y(cell)float64dask.array<chunksize=(66859144,), meta=np.ndarray>
- long_name :
- cartesian position of the prime cell circumcenter on the unit sphere, coordinate y
- units :
- meters
Array Chunk Bytes 510.09 MiB 510.09 MiB Shape (66859144,) (66859144,) Count 2 Tasks 1 Chunks Type float64 numpy.ndarray - cell_circumcenter_cartesian_z(cell)float64dask.array<chunksize=(66859144,), meta=np.ndarray>
- long_name :
- cartesian position of the prime cell circumcenter on the unit sphere, coordinate z
- units :
- meters
Array Chunk Bytes 510.09 MiB 510.09 MiB Shape (66859144,) (66859144,) Count 2 Tasks 1 Chunks Type float64 numpy.ndarray - dtype()<U7'float32'
array('float32', dtype='<U7')
- title :
- ICON grid description
- institution :
- Max Planck Institute for Meteorology/Deutscher Wetterdienst
- source :
- git@git.mpimet.mpg.de:GridGenerator.git
- revision :
- e11a6000e72724d0e4670f87f18314ece947122b
- history :
- /work/mh0287/users/leonidas/icon/GridGenerator_reduced_memory/intel/bin/grid_command
- date :
- 20200913 at 212150
- user_name :
- Leonidas Linardakis (m300056)
- os_name :
- Linux 2.6.32-754.29.2.el6.x86_64 x86_64
- uuidOfHGrid :
- 5fddbc64-f5f6-11ea-9c0e-836c062a670a
- grid_mapping_name :
- lat_long_on_sphere
- crs_id :
- urn:ogc:def:cs:EPSG:6.0:6422
- crs_name :
- Spherical 2D Coordinate System
- ellipsoid_name :
- Sphere
- semi_major_axis :
- 6371229.0
- inverse_flattening :
- 0.0
- grid_level :
- 10
- grid_root :
- 2
- grid_ID :
- 1
- parent_grid_ID :
- 0
- no_of_subgrids :
- 1
- start_subgrid_id :
- 1
- max_childdom :
- 1
- boundary_depth_index :
- 0
- rotation_vector :
- [0. 0. 0.]
- grid_geometry :
- 1
- grid_cell_type :
- 3
- mean_edge_length :
- 2629.586037173805
- mean_dual_edge_length :
- 1518.203462543614
- mean_cell_area :
- 6080879.452321341
- mean_dual_cell_area :
- 12161758.324725308
- domain_length :
- 40031612.44147649
- domain_height :
- 40031612.44147649
- sphere_radius :
- 6371229.0
- domain_cartesian_center :
- [0. 0. 0.]
Prepare plotting on original grid#
[13]:
lon_reg = [3.5, 9.5]
lat_reg = [-31.5, -28.5]
[14]:
%%time
clon = ds_tg.clon.compute().data * 180./np.pi
clat = ds_tg.clat.compute().data * 180./np.pi
vlon = ds_tg.vlon.compute().data * 180./np.pi
vlat = ds_tg.vlat.compute().data * 180./np.pi
ireg_c = np.where(
(clon>lon_reg[0]) & (clon<=lon_reg[1]) & (clat>lat_reg[0]) & (clat<=lat_reg[1])
)[0]
ireg_v = np.where(
(vlon>lon_reg[0]) & (vlon<=lon_reg[1]) & (vlat>lat_reg[0]) & (vlat<=lat_reg[1])
)[0]
CPU times: user 1.1 s, sys: 3.71 s, total: 4.81 s
Wall time: 5.27 s
[15]:
%%time
# clon = ds_tg.clon.compute().data * 180./np.pi
# clat = ds_tg.clat.compute().data * 180./np.pi
# ireg_c = np.where(
# (clon>lon_reg[0]) & (clon<=lon_reg[1]) & (clat>lat_reg[0]) & (clat<=lat_reg[1])
# )[0]
ds_tg_cut = pyic.xr_crop_tgrid(ds_tg, ireg_c)
ireg_v = ds_tg_cut['ireg_v'].data
CPU times: user 13.5 s, sys: 37.1 s, total: 50.6 s
Wall time: 51.1 s
[ ]:
%%time
clon_bnds, clat_bnds, vlon_bnds, vlat_bnds, cells_of_vertex = pyic.patch_plot_derive_bnds(ds_tg_cut)
patches_c, patches_v = pyic.patch_plot_patches_from_bnds(
clon_bnds.compute(), clat_bnds.compute(),
vlon_bnds.compute(), vlat_bnds.compute(),
cells_of_vertex#.compute()
)
[57]:
%%time
ireg_c_triang, Tri = pyic.triangulation(ds_tg, lon_reg=lon_reg, lat_reg=lat_reg)
/work/mh0033/m300602/miniconda3/envs/pyicon_py39/lib/python3.9/site-packages/distributed/worker.py:3871: UserWarning: Large object of size 4.63 MiB detected in task graph:
("('truediv-66d4d8bf90621c329810dbacfd95fcf3', 0)" ... , 10426289]),))
Consider scattering large objects ahead of time
with client.scatter to reduce scheduler burden and
keep data on workers
future = client.submit(func, big_data) # bad
big_future = client.scatter(big_data) # good
future = client.submit(func, big_future) # good
warnings.warn(
CPU times: user 6.9 s, sys: 4.42 s, total: 11.3 s
Wall time: 25.4 s
First plots#
[52]:
its = -1
iz = 0
[21]:
%%time
toi = pyic.interp_to_rectgrid_xr(ds_2d.to[its,iz,:].rename(ncells_2='ncells'), fpath_ckdtree, lon_reg=lon_reg, lat_reg=lat_reg)
soi = pyic.interp_to_rectgrid_xr(ds_2d.so[its,iz,:].rename(ncells_2='ncells'), fpath_ckdtree, lon_reg=lon_reg, lat_reg=lat_reg)
kini = pyic.interp_to_rectgrid_xr(ds_2d.kin[its,iz,:].rename(ncells_2='ncells'), fpath_ckdtree, lon_reg=lon_reg, lat_reg=lat_reg)
vorti = pyic.interp_to_rectgrid_xr(ds_2d.vort[its,iz,:], fpath_ckdtree, lon_reg=lon_reg, lat_reg=lat_reg, coordinates='vlat vlon')
CPU times: user 2.76 s, sys: 2.7 s, total: 5.45 s
Wall time: 12.4 s
[22]:
lon = toi.lon
lat = toi.lat
[23]:
projection = ccrs.PlateCarree()
hca, hcb = pyic.arrange_axes(2,2, plot_cb=True, asp=0.5, fig_size_fac=2,
sharex=True, sharey=True, xlabel="", ylabel="",
projection=projection,
)
ii=-1
ii+=1; ax=hca[ii]; cax=hcb[ii]
hm = pyic.shade(lon, lat, toi, ax=ax, cax=cax, clim=[15.5, 18.5], projection=projection)
ax.set_title(f'temperature')
ii+=1; ax=hca[ii]; cax=hcb[ii]
hm = pyic.shade(lon, lat, soi, ax=ax, cax=cax, clim=[35.1, 35.8], projection=projection,
cmap=cmocean.cm.haline)
ax.set_title(f'salinity')
ii+=1; ax=hca[ii]; cax=hcb[ii]
hm = pyic.shade(lon, lat, kini.data, ax=ax, cax=cax, clim=[-4,0], logplot=True, projection=projection)
ax.set_title('log$_{10}$(kin. energy) [m$^2$/s$^2$]')
ii+=1; ax=hca[ii]; cax=hcb[ii]
hm = pyic.shade(lon, lat, vorti, ax=ax, cax=cax, clim=1e-4, projection=projection)
ax.set_title(f'temperature')
for ax in hca:
pyic.plot_settings(ax, xlim=lon_reg, ylim=lat_reg)
# add_sonett(ax)
# savefig('mld')
Plot on original grid#
[53]:
%%time
to_rg = ds_2d.to.isel(depth=0, time=-1, ncells_2=ireg_c).compute()
so_rg = ds_2d.so.isel(depth=0, time=-1, ncells_2=ireg_c).compute()
kin_rg = ds_2d.kin.isel(depth=0, time=-1, ncells_2=ireg_c).compute()
vort_rg = ds_2d.vort.isel(depth=0, time=-1, ncells=ireg_v).compute()
CPU times: user 3.18 s, sys: 2.7 s, total: 5.89 s
Wall time: 10.1 s
[54]:
%%time
clon_rg = clon[ireg_c]
clat_rg = clat[ireg_c]
vlon_rg = vlon[ireg_v]
vlat_rg = vlat[ireg_v]
CPU times: user 8 ms, sys: 3 ms, total: 11 ms
Wall time: 6.9 ms
[55]:
# projection = ccrs.PlateCarree()
# hca, hcb = pyic.arrange_axes(2,2, plot_cb=True, asp=0.5, fig_size_fac=2,
# sharex=True, sharey=True, xlabel="", ylabel="",
# projection=projection,
# )
# ii=-1
# ns = 10
# ii+=1; ax=hca[ii]; cax=hcb[ii]
# ax.scatter(clon_rg[::ns], clat_rg[::ns], c=to_rg[::ns], s=2, vmin=15.5, vmax=18.5, cmap='RdYlBu_r')
# ax.set_title(f'temperature [$^o$C]')
# # ii+=1; ax=hca[ii]; cax=hcb[ii]
# # hm = pyic.shade(Tri, so_rg, ax=ax, cax=cax, clim=[35.1, 35.8], projection=projection)
# # ax.set_title(f'salinity [kg/m$^3$]')
# # ii+=1; ax=hca[ii]; cax=hcb[ii]
# # hm = pyic.shade(Tri, kin_rg.data, ax=ax, cax=cax, clim=[-4,0], logplot=True, projection=projection)
# # ax.set_title('log$_{10}$(kin. energy) [m$^2$/s$^2$]')
# # ii+=1; ax=hca[ii]; cax=hcb[ii]
# # hm3 = pyic.patch_plot_shade(patches_v, vort_rg, ax=ax, cax=cax, clim=1e-4)
# # ax.set_title(f'vorticity')
# for ax in hca:
# pyic.plot_settings(ax, xlim=lon_reg, ylim=lat_reg)
# # add_sonett(ax)
# savefig('overview')
[58]:
projection = ccrs.PlateCarree()
hca, hcb = pyic.arrange_axes(2,2, plot_cb=True, asp=0.5, fig_size_fac=2,
sharex=True, sharey=True, xlabel="", ylabel="",
projection=projection,
)
ii=-1
ii+=1; ax=hca[ii]; cax=hcb[ii]
hm = pyic.shade(Tri, to_rg, ax=ax, cax=cax, clim=[15.5, 18.5], projection=projection)
ax.set_title(f'temperature [$^o$C]')
ii+=1; ax=hca[ii]; cax=hcb[ii]
hm = pyic.shade(Tri, so_rg, ax=ax, cax=cax, clim=[35.1, 35.8], projection=projection)
ax.set_title(f'salinity [kg/m$^3$]')
ii+=1; ax=hca[ii]; cax=hcb[ii]
hm = pyic.shade(Tri, kin_rg.data, ax=ax, cax=cax, clim=[-4,0], logplot=True, projection=projection)
ax.set_title('log$_{10}$(kin. energy) [m$^2$/s$^2$]')
ii+=1; ax=hca[ii]; cax=hcb[ii]
hm3 = pyic.patch_plot_shade(patches_v, vort_rg, ax=ax, cax=cax, clim=1e-4)
ax.set_title(f'vorticity')
for ax in hca:
pyic.plot_settings(ax, xlim=lon_reg, ylim=lat_reg)
# add_sonett(ax)
savefig('overview')
distributed.utils_perf - WARNING - full garbage collections took 12% CPU time recently (threshold: 10%)
Saving figure ../pics/smtwv_diagnose_smtwv0002_overview.pdf
Vertical velocity#
[78]:
%%time
wvel_rg = ds_3d.w.isel(time=-1, ncells=ireg_c).sel(depth_2=[50, 100, 1000, 2000], method='nearest').compute()
CPU times: user 232 ms, sys: 2.81 s, total: 3.04 s
Wall time: 3.28 s
[79]:
wvel_rg
[79]:
<xarray.DataArray 'w' (depth_2: 4, ncells: 265943)> array([[ 0.00047756, 0.00036307, 0.00062074, ..., -0.00162562, -0.00107059, -0.00150702], [ 0.00053502, 0.00038434, 0.00084729, ..., -0.00240545, -0.00203855, -0.00197635], [ 0.00070504, 0.0005771 , 0.00093624, ..., 0.00079223, 0.00099528, 0.00043519], [ 0.00132668, 0.00137925, 0.00134183, ..., 0.00304148, 0.00283049, 0.00320326]], dtype=float32) Coordinates: time datetime64[ns] 2019-07-25T22:15:00 clon (ncells) float32 0.1346 0.1346 0.1347 ... 0.102 0.1019 0.1021 clat (ncells) float32 -0.5521 -0.5522 -0.5521 ... -0.5237 -0.5236 * depth_2 (depth_2) float64 49.4 101.3 990.3 2.025e+03 Dimensions without coordinates: ncells Attributes: standard_name: w long_name: vertical velocity at cells units: m/s code: 255 CDI_grid_type: unstructured number_of_grid_in_reference: 1
xarray.DataArray
'w'
- depth_2: 4
- ncells: 265943
- 0.0004776 0.0003631 0.0006207 0.0003 ... 0.003041 0.00283 0.003203
array([[ 0.00047756, 0.00036307, 0.00062074, ..., -0.00162562, -0.00107059, -0.00150702], [ 0.00053502, 0.00038434, 0.00084729, ..., -0.00240545, -0.00203855, -0.00197635], [ 0.00070504, 0.0005771 , 0.00093624, ..., 0.00079223, 0.00099528, 0.00043519], [ 0.00132668, 0.00137925, 0.00134183, ..., 0.00304148, 0.00283049, 0.00320326]], dtype=float32)
- time()datetime64[ns]2019-07-25T22:15:00
- standard_name :
- time
- units :
- aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
- calendar :
- proleptic_gregorian
- axis :
- T
array('2019-07-25T22:15:00.000000000', dtype='datetime64[ns]')
- clon(ncells)float320.1346 0.1346 ... 0.1019 0.1021
- standard_name :
- longitude
- long_name :
- center longitude
- units :
- radian
- bounds :
- clon_bnds
array([0.1345952 , 0.13455328, 0.13468698, ..., 0.10198068, 0.10194211, 0.10207573], dtype=float32)
- clat(ncells)float32-0.5521 -0.5522 ... -0.5237 -0.5236
- standard_name :
- latitude
- long_name :
- center latitude
- units :
- radian
- bounds :
- clat_bnds
array([-0.552108 , -0.5521776 , -0.55210406, ..., -0.52360636, -0.5236784 , -0.52360374], dtype=float32)
- depth_2(depth_2)float6449.4 101.3 990.3 2.025e+03
- standard_name :
- depth
- long_name :
- depth_below_sea
- units :
- m
- positive :
- down
- axis :
- Z
array([ 49.4, 101.3, 990.3, 2025.1])
- standard_name :
- w
- long_name :
- vertical velocity at cells
- units :
- m/s
- code :
- 255
- CDI_grid_type :
- unstructured
- number_of_grid_in_reference :
- 1
[80]:
projection = ccrs.PlateCarree()
hca, hcb = pyic.arrange_axes(2,2, plot_cb=True, asp=0.5, fig_size_fac=2,
sharex=True, sharey=True, xlabel="", ylabel="",
projection=projection,
)
ii=-1
for kk in range(wvel_rg.depth_2.size):
ii+=1; ax=hca[ii]; cax=hcb[ii]
hm = pyic.shade(Tri, wvel_rg[kk,:], ax=ax, cax=cax, clim=2.5e-3, projection=projection)
ax.set_title(f'depth = {wvel_rg.depth_2[kk].data:.1f}m', loc='right')
ax.set_title('vert. vel. [m/s]')
for ax in hca:
pyic.plot_settings(ax, xlim=lon_reg, ylim=lat_reg)
Plotting a section#
[59]:
lon_reg, lat_reg
[59]:
([3.5, 9.5], [-31.5, -28.5])
[60]:
%%time
p1 = [3.5, -31.5]
p2 = [9.5, -28.5]
# p1 = [-13.5, -39]
# p2 = [15, -28]
lon_sec, lat_sec, dist_sec = pyic.derive_section_points(p1, p2, 101)
dist, inds = pyic.calc_ckdtree(clon, clat, lon_sec, lat_sec, use_npconcatenate=True)
# if False:
# dist, inds = pyic.calc_ckdtree(ds_tg.clon.compute().data, ds_tg.clat.compute().data, lon_sec, lat_sec, use_npconcatenate=True)
# np.savez('tmp_smtwave_section_points.npz', dist=dist, inds=inds)
# else:
# ddnpz = np.load('tmp_smtwave_section_points.npz')
# dist = ddnpz['dist']
# inds = ddnpz['inds']
CPU times: user 47.1 s, sys: 4.46 s, total: 51.6 s
Wall time: 44.1 s
[61]:
projection = ccrs.PlateCarree()
hca, hcb = pyic.arrange_axes(1,1, plot_cb=True, asp=0.5, fig_size_fac=2,
sharex=True, sharey=True, xlabel="", ylabel="",
projection=projection,
)
ii=-1
ii+=1; ax=hca[ii]; cax=hcb[ii]
hm = pyic.shade(lon, lat, toi, ax=ax, cax=cax, clim=[10, 25], projection=projection)
ax.plot(lon_sec, lat_sec)
ax.set_title(f'section')
for ax in hca:
pyic.plot_settings(ax, xlim=[-20,30], ylim=[-45,-20])
add_sonett(ax)
# savefig('mld')
[62]:
ds_sec = ds_3d[['to', 'tke', 'w']]
[41]:
%%time
ds_sec = ds_sec.isel(ncells=inds, time=-1)#.compute()
CPU times: user 434 ms, sys: 1.1 s, total: 1.53 s
Wall time: 1.33 s
[68]:
ds_3d.depth_2[96]
[68]:
<xarray.DataArray 'depth_2' ()> array(2025.1) Coordinates: depth_2 float64 2.025e+03 Attributes: standard_name: depth long_name: depth_below_sea units: m positive: down axis: Z
xarray.DataArray
'depth_2'
- 2.025e+03
array(2025.1)
- depth_2()float642.025e+03
- standard_name :
- depth
- long_name :
- depth_below_sea
- units :
- m
- positive :
- down
- axis :
- Z
array(2025.1)
- standard_name :
- depth
- long_name :
- depth_below_sea
- units :
- m
- positive :
- down
- axis :
- Z
[63]:
%%time
ds_sec = ds_sec.compute()
ERROR! Session/line number was not unique in database. History logging moved to new session 1112
distributed.nanny - WARNING - Worker process still alive after 3 seconds, killing
distributed.nanny - WARNING - Worker process still alive after 3 seconds, killing
distributed.nanny - WARNING - Worker process still alive after 3 seconds, killing
distributed.nanny - WARNING - Worker process still alive after 3 seconds, killing
distributed.nanny - WARNING - Worker process still alive after 3 seconds, killing
distributed.nanny - WARNING - Worker process still alive after 3 seconds, killing
distributed.nanny - WARNING - Worker process still alive after 3 seconds, killing
distributed.comm.tcp - WARNING - Closing dangling stream in <TCP local=tcp://127.0.0.1:60430 remote=tcp://127.0.0.1:38653>
ERROR:root:Internal Python error in the inspect module.
Below is the traceback from this internal error.
Traceback (most recent call last):
File "/work/mh0033/m300602/miniconda3/envs/pyicon_py39/lib/python3.9/site-packages/distributed/client.py", line 2707, in get
results = self.gather(packed, asynchronous=asynchronous, direct=direct)
File "/work/mh0033/m300602/miniconda3/envs/pyicon_py39/lib/python3.9/site-packages/distributed/client.py", line 2021, in gather
return self.sync(
File "/work/mh0033/m300602/miniconda3/envs/pyicon_py39/lib/python3.9/site-packages/distributed/client.py", line 862, in sync
return sync(
File "/work/mh0033/m300602/miniconda3/envs/pyicon_py39/lib/python3.9/site-packages/distributed/utils.py", line 335, in sync
e.wait(10)
File "/work/mh0033/m300602/miniconda3/envs/pyicon_py39/lib/python3.9/threading.py", line 574, in wait
signaled = self._cond.wait(timeout)
File "/work/mh0033/m300602/miniconda3/envs/pyicon_py39/lib/python3.9/threading.py", line 316, in wait
gotit = waiter.acquire(True, timeout)
KeyboardInterrupt
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/work/mh0033/m300602/miniconda3/envs/pyicon_py39/lib/python3.9/asyncio/selector_events.py", line 140, in _write_to_self
csock.send(b'\0')
BlockingIOError: [Errno 11] Resource temporarily unavailable
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/work/mh0033/m300602/miniconda3/envs/pyicon_py39/lib/python3.9/site-packages/IPython/core/magics/execution.py", line 1321, in time
exec(code, glob, local_ns)
File "<timed exec>", line 1, in <module>
File "/work/mh0033/m300602/miniconda3/envs/pyicon_py39/lib/python3.9/site-packages/xarray/core/dataset.py", line 1016, in compute
return new.load(**kwargs)
File "/work/mh0033/m300602/miniconda3/envs/pyicon_py39/lib/python3.9/site-packages/xarray/core/dataset.py", line 850, in load
evaluated_data = da.compute(*lazy_data.values(), **kwargs)
File "/work/mh0033/m300602/miniconda3/envs/pyicon_py39/lib/python3.9/site-packages/dask/base.py", line 567, in compute
results = schedule(dsk, keys, **kwargs)
File "/work/mh0033/m300602/miniconda3/envs/pyicon_py39/lib/python3.9/site-packages/distributed/client.py", line 2710, in get
f.release()
File "/work/mh0033/m300602/miniconda3/envs/pyicon_py39/lib/python3.9/site-packages/distributed/client.py", line 362, in release
self.client.loop.add_callback(self.client._dec_ref, stringify(self.key))
File "/work/mh0033/m300602/miniconda3/envs/pyicon_py39/lib/python3.9/site-packages/tornado/platform/asyncio.py", line 227, in add_callback
call_soon(self._run_callback, functools.partial(callback, *args, **kwargs))
File "/work/mh0033/m300602/miniconda3/envs/pyicon_py39/lib/python3.9/asyncio/base_events.py", line 797, in call_soon_threadsafe
self._write_to_self()
File "/work/mh0033/m300602/miniconda3/envs/pyicon_py39/lib/python3.9/asyncio/selector_events.py", line 140, in _write_to_self
csock.send(b'\0')
KeyboardInterrupt
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/work/mh0033/m300602/miniconda3/envs/pyicon_py39/lib/python3.9/site-packages/IPython/core/interactiveshell.py", line 2061, in showtraceback
stb = value._render_traceback_()
AttributeError: 'KeyboardInterrupt' object has no attribute '_render_traceback_'
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/work/mh0033/m300602/miniconda3/envs/pyicon_py39/lib/python3.9/site-packages/IPython/core/ultratb.py", line 1101, in get_records
return _fixed_getinnerframes(etb, number_of_lines_of_context, tb_offset)
File "/work/mh0033/m300602/miniconda3/envs/pyicon_py39/lib/python3.9/site-packages/IPython/core/ultratb.py", line 248, in wrapped
return f(*args, **kwargs)
File "/work/mh0033/m300602/miniconda3/envs/pyicon_py39/lib/python3.9/site-packages/IPython/core/ultratb.py", line 281, in _fixed_getinnerframes
records = fix_frame_records_filenames(inspect.getinnerframes(etb, context))
File "/work/mh0033/m300602/miniconda3/envs/pyicon_py39/lib/python3.9/inspect.py", line 1541, in getinnerframes
frameinfo = (tb.tb_frame,) + getframeinfo(tb, context)
File "/work/mh0033/m300602/miniconda3/envs/pyicon_py39/lib/python3.9/inspect.py", line 1503, in getframeinfo
lines, lnum = findsource(frame)
File "/work/mh0033/m300602/miniconda3/envs/pyicon_py39/lib/python3.9/site-packages/IPython/core/ultratb.py", line 182, in findsource
lines = linecache.getlines(file, globals_dict)
File "/work/mh0033/m300602/miniconda3/envs/pyicon_py39/lib/python3.9/linecache.py", line 46, in getlines
return updatecache(filename, module_globals)
File "/work/mh0033/m300602/miniconda3/envs/pyicon_py39/lib/python3.9/linecache.py", line 137, in updatecache
lines = fp.readlines()
KeyboardInterrupt
---------------------------------------------------------------------------
KeyboardInterrupt Traceback (most recent call last)
/work/mh0033/m300602/miniconda3/envs/pyicon_py39/lib/python3.9/site-packages/distributed/client.py in get(self, dsk, keys, workers, allow_other_workers, resources, sync, asynchronous, direct, retries, priority, fifo_timeout, actors, **kwargs)
2706 try:
-> 2707 results = self.gather(packed, asynchronous=asynchronous, direct=direct)
2708 finally:
/work/mh0033/m300602/miniconda3/envs/pyicon_py39/lib/python3.9/site-packages/distributed/client.py in gather(self, futures, errors, direct, asynchronous)
2020 local_worker = None
-> 2021 return self.sync(
2022 self._gather,
/work/mh0033/m300602/miniconda3/envs/pyicon_py39/lib/python3.9/site-packages/distributed/client.py in sync(self, func, asynchronous, callback_timeout, *args, **kwargs)
861 else:
--> 862 return sync(
863 self.loop, func, *args, callback_timeout=callback_timeout, **kwargs
/work/mh0033/m300602/miniconda3/envs/pyicon_py39/lib/python3.9/site-packages/distributed/utils.py in sync(loop, func, callback_timeout, *args, **kwargs)
334 while not e.is_set():
--> 335 e.wait(10)
336 if error[0]:
/work/mh0033/m300602/miniconda3/envs/pyicon_py39/lib/python3.9/threading.py in wait(self, timeout)
573 if not signaled:
--> 574 signaled = self._cond.wait(timeout)
575 return signaled
/work/mh0033/m300602/miniconda3/envs/pyicon_py39/lib/python3.9/threading.py in wait(self, timeout)
315 if timeout > 0:
--> 316 gotit = waiter.acquire(True, timeout)
317 else:
KeyboardInterrupt:
During handling of the above exception, another exception occurred:
BlockingIOError Traceback (most recent call last)
/work/mh0033/m300602/miniconda3/envs/pyicon_py39/lib/python3.9/asyncio/selector_events.py in _write_to_self(self)
139 try:
--> 140 csock.send(b'\0')
141 except OSError:
BlockingIOError: [Errno 11] Resource temporarily unavailable
During handling of the above exception, another exception occurred:
KeyboardInterrupt Traceback (most recent call last)
/work/mh0033/m300602/miniconda3/envs/pyicon_py39/lib/python3.9/site-packages/IPython/core/magics/execution.py in time(self, line, cell, local_ns)
1320 try:
-> 1321 exec(code, glob, local_ns)
1322 out=None
<timed exec> in <module>
/work/mh0033/m300602/miniconda3/envs/pyicon_py39/lib/python3.9/site-packages/xarray/core/dataset.py in compute(self, **kwargs)
1015 new = self.copy(deep=False)
-> 1016 return new.load(**kwargs)
1017
/work/mh0033/m300602/miniconda3/envs/pyicon_py39/lib/python3.9/site-packages/xarray/core/dataset.py in load(self, **kwargs)
849 # evaluate all the dask arrays simultaneously
--> 850 evaluated_data = da.compute(*lazy_data.values(), **kwargs)
851
/work/mh0033/m300602/miniconda3/envs/pyicon_py39/lib/python3.9/site-packages/dask/base.py in compute(*args, **kwargs)
566
--> 567 results = schedule(dsk, keys, **kwargs)
568 return repack([f(r, *a) for r, (f, a) in zip(results, postcomputes)])
/work/mh0033/m300602/miniconda3/envs/pyicon_py39/lib/python3.9/site-packages/distributed/client.py in get(self, dsk, keys, workers, allow_other_workers, resources, sync, asynchronous, direct, retries, priority, fifo_timeout, actors, **kwargs)
2709 for f in futures.values():
-> 2710 f.release()
2711 if getattr(thread_state, "key", False) and should_rejoin:
/work/mh0033/m300602/miniconda3/envs/pyicon_py39/lib/python3.9/site-packages/distributed/client.py in release(self, _in_destructor)
361 try:
--> 362 self.client.loop.add_callback(self.client._dec_ref, stringify(self.key))
363 except TypeError:
/work/mh0033/m300602/miniconda3/envs/pyicon_py39/lib/python3.9/site-packages/tornado/platform/asyncio.py in add_callback(self, callback, *args, **kwargs)
226 try:
--> 227 call_soon(self._run_callback, functools.partial(callback, *args, **kwargs))
228 except RuntimeError:
/work/mh0033/m300602/miniconda3/envs/pyicon_py39/lib/python3.9/asyncio/base_events.py in call_soon_threadsafe(self, callback, context, *args)
796 del handle._source_traceback[-1]
--> 797 self._write_to_self()
798 return handle
/work/mh0033/m300602/miniconda3/envs/pyicon_py39/lib/python3.9/asyncio/selector_events.py in _write_to_self(self)
139 try:
--> 140 csock.send(b'\0')
141 except OSError:
KeyboardInterrupt:
During handling of the above exception, another exception occurred:
AttributeError Traceback (most recent call last)
/work/mh0033/m300602/miniconda3/envs/pyicon_py39/lib/python3.9/site-packages/IPython/core/interactiveshell.py in showtraceback(self, exc_tuple, filename, tb_offset, exception_only, running_compiled_code)
2060 # in the engines. This should return a list of strings.
-> 2061 stb = value._render_traceback_()
2062 except Exception:
AttributeError: 'KeyboardInterrupt' object has no attribute '_render_traceback_'
During handling of the above exception, another exception occurred:
TypeError Traceback (most recent call last)
/tmp/ipykernel_21444/2422761924.py in <module>
----> 1 get_ipython().run_cell_magic('time', '', 'ds_sec = ds_sec.compute()\n')
/work/mh0033/m300602/miniconda3/envs/pyicon_py39/lib/python3.9/site-packages/IPython/core/interactiveshell.py in run_cell_magic(self, magic_name, line, cell)
2401 with self.builtin_trap:
2402 args = (magic_arg_s, cell)
-> 2403 result = fn(*args, **kwargs)
2404 return result
2405
/work/mh0033/m300602/miniconda3/envs/pyicon_py39/lib/python3.9/site-packages/decorator.py in fun(*args, **kw)
230 if not kwsyntax:
231 args, kw = fix(args, kw, sig)
--> 232 return caller(func, *(extras + args), **kw)
233 fun.__name__ = func.__name__
234 fun.__doc__ = func.__doc__
/work/mh0033/m300602/miniconda3/envs/pyicon_py39/lib/python3.9/site-packages/IPython/core/magic.py in <lambda>(f, *a, **k)
185 # but it's overkill for just that one bit of state.
186 def magic_deco(arg):
--> 187 call = lambda f, *a, **k: f(*a, **k)
188
189 if callable(arg):
/work/mh0033/m300602/miniconda3/envs/pyicon_py39/lib/python3.9/site-packages/IPython/core/magics/execution.py in time(self, line, cell, local_ns)
1326 out = eval(code_2, glob, local_ns)
1327 except:
-> 1328 self.shell.showtraceback()
1329 return
1330 end = clock2()
/work/mh0033/m300602/miniconda3/envs/pyicon_py39/lib/python3.9/site-packages/IPython/core/interactiveshell.py in showtraceback(self, exc_tuple, filename, tb_offset, exception_only, running_compiled_code)
2061 stb = value._render_traceback_()
2062 except Exception:
-> 2063 stb = self.InteractiveTB.structured_traceback(etype,
2064 value, tb, tb_offset=tb_offset)
2065
/work/mh0033/m300602/miniconda3/envs/pyicon_py39/lib/python3.9/site-packages/IPython/core/ultratb.py in structured_traceback(self, etype, value, tb, tb_offset, number_of_lines_of_context)
1365 else:
1366 self.tb = tb
-> 1367 return FormattedTB.structured_traceback(
1368 self, etype, value, tb, tb_offset, number_of_lines_of_context)
1369
/work/mh0033/m300602/miniconda3/envs/pyicon_py39/lib/python3.9/site-packages/IPython/core/ultratb.py in structured_traceback(self, etype, value, tb, tb_offset, number_of_lines_of_context)
1265 if mode in self.verbose_modes:
1266 # Verbose modes need a full traceback
-> 1267 return VerboseTB.structured_traceback(
1268 self, etype, value, tb, tb_offset, number_of_lines_of_context
1269 )
/work/mh0033/m300602/miniconda3/envs/pyicon_py39/lib/python3.9/site-packages/IPython/core/ultratb.py in structured_traceback(self, etype, evalue, etb, tb_offset, number_of_lines_of_context)
1122 """Return a nice text document describing the traceback."""
1123
-> 1124 formatted_exception = self.format_exception_as_a_whole(etype, evalue, etb, number_of_lines_of_context,
1125 tb_offset)
1126
/work/mh0033/m300602/miniconda3/envs/pyicon_py39/lib/python3.9/site-packages/IPython/core/ultratb.py in format_exception_as_a_whole(self, etype, evalue, etb, number_of_lines_of_context, tb_offset)
1080
1081
-> 1082 last_unique, recursion_repeat = find_recursion(orig_etype, evalue, records)
1083
1084 frames = self.format_records(records, last_unique, recursion_repeat)
/work/mh0033/m300602/miniconda3/envs/pyicon_py39/lib/python3.9/site-packages/IPython/core/ultratb.py in find_recursion(etype, value, records)
380 # first frame (from in to out) that looks different.
381 if not is_recursion_error(etype, value, records):
--> 382 return len(records), 0
383
384 # Select filename, lineno, func_name to track frames with
TypeError: object of type 'NoneType' has no len()
[43]:
# to_sec = to_sec.where(to_sec!=0)
[62]:
hca, hcb = pyic.arrange_axes(1,3, plot_cb=True, asp=0.5, fig_size_fac=2,
sharex=True, sharey=True, xlabel="longitude", ylabel="depth [m]",
)
ii=-1
ii+=1; ax=hca[ii]; cax=hcb[ii]
da = ds_sec['to']
pyic.shade(lon_sec, ds_sec.depth, da, ax=ax, cax=cax, clim=[4,18.5])
ax.set_title(f'{da.long_name} [{da.units}]')
ii+=1; ax=hca[ii]; cax=hcb[ii]
da = ds_sec['tke']
pyic.shade(lon_sec, ds_sec.depth_2, da.data, ax=ax, cax=cax, clim=[-6,-2], logplot=True)
ax.set_title(f'{da.long_name} [{da.units}]')
ii+=1; ax=hca[ii]; cax=hcb[ii]
da = ds_sec['w']
pyic.shade(lon_sec, ds_sec.depth_2, da, ax=ax, cax=cax, clim=5e-3)
ax.set_title(f'{da.long_name} [{da.units}]')
for ax in hca:
ax.set_ylim(1000,0)
distributed.utils_perf - WARNING - full garbage collections took 12% CPU time recently (threshold: 10%)
Process Dask Worker process (from Nanny):
Traceback (most recent call last):
File "/work/mh0033/m300602/miniconda3/envs/pyicon_py39/lib/python3.9/multiprocessing/process.py", line 315, in _bootstrap
self.run()
File "/work/mh0033/m300602/miniconda3/envs/pyicon_py39/lib/python3.9/multiprocessing/process.py", line 108, in run
self._target(*self._args, **self._kwargs)
File "/work/mh0033/m300602/miniconda3/envs/pyicon_py39/lib/python3.9/site-packages/distributed/process.py", line 191, in _run
target(*args, **kwargs)
File "/work/mh0033/m300602/miniconda3/envs/pyicon_py39/lib/python3.9/site-packages/distributed/nanny.py", line 835, in _run
loop.run_sync(do_stop)
File "/work/mh0033/m300602/miniconda3/envs/pyicon_py39/lib/python3.9/site-packages/tornado/ioloop.py", line 524, in run_sync
self.start()
File "/work/mh0033/m300602/miniconda3/envs/pyicon_py39/lib/python3.9/site-packages/tornado/platform/asyncio.py", line 199, in start
self.asyncio_loop.run_forever()
File "/work/mh0033/m300602/miniconda3/envs/pyicon_py39/lib/python3.9/asyncio/base_events.py", line 596, in run_forever
self._run_once()
File "/work/mh0033/m300602/miniconda3/envs/pyicon_py39/lib/python3.9/asyncio/base_events.py", line 1890, in _run_once
handle._run()
File "/work/mh0033/m300602/miniconda3/envs/pyicon_py39/lib/python3.9/asyncio/events.py", line 80, in _run
self._context.run(self._callback, *self._args)
File "/work/mh0033/m300602/miniconda3/envs/pyicon_py39/lib/python3.9/site-packages/tornado/ioloop.py", line 688, in <lambda>
lambda f: self._run_callback(functools.partial(callback, future))
File "/work/mh0033/m300602/miniconda3/envs/pyicon_py39/lib/python3.9/site-packages/tornado/ioloop.py", line 741, in _run_callback
ret = callback()
File "/work/mh0033/m300602/miniconda3/envs/pyicon_py39/lib/python3.9/site-packages/tornado/ioloop.py", line 765, in _discard_future_result
future.result()
File "/work/mh0033/m300602/miniconda3/envs/pyicon_py39/lib/python3.9/site-packages/distributed/nanny.py", line 828, in _run
loop.run_sync(run)
File "/work/mh0033/m300602/miniconda3/envs/pyicon_py39/lib/python3.9/site-packages/tornado/ioloop.py", line 524, in run_sync
self.start()
File "/work/mh0033/m300602/miniconda3/envs/pyicon_py39/lib/python3.9/site-packages/tornado/platform/asyncio.py", line 199, in start
self.asyncio_loop.run_forever()
File "/work/mh0033/m300602/miniconda3/envs/pyicon_py39/lib/python3.9/asyncio/base_events.py", line 596, in run_forever
self._run_once()
File "/work/mh0033/m300602/miniconda3/envs/pyicon_py39/lib/python3.9/asyncio/base_events.py", line 1890, in _run_once
handle._run()
File "/work/mh0033/m300602/miniconda3/envs/pyicon_py39/lib/python3.9/asyncio/events.py", line 80, in _run
self._context.run(self._callback, *self._args)
File "/work/mh0033/m300602/miniconda3/envs/pyicon_py39/lib/python3.9/site-packages/distributed/worker.py", line 3042, in execute
self.transition(ts, "memory", value=value)
File "/work/mh0033/m300602/miniconda3/envs/pyicon_py39/lib/python3.9/site-packages/distributed/worker.py", line 1702, in transition
state = func(ts, **kwargs)
File "/work/mh0033/m300602/miniconda3/envs/pyicon_py39/lib/python3.9/site-packages/distributed/worker.py", line 1988, in transition_executing_done
self.put_key_in_memory(ts, value, transition=False)
File "/work/mh0033/m300602/miniconda3/envs/pyicon_py39/lib/python3.9/site-packages/distributed/worker.py", line 2241, in put_key_in_memory
self.data[ts.key] = value
File "/work/mh0033/m300602/miniconda3/envs/pyicon_py39/lib/python3.9/site-packages/distributed/spill.py", line 69, in __setitem__
super().__setitem__(key, value)
File "/work/mh0033/m300602/miniconda3/envs/pyicon_py39/lib/python3.9/site-packages/zict/buffer.py", line 87, in __setitem__
self.fast[key] = value
File "/work/mh0033/m300602/miniconda3/envs/pyicon_py39/lib/python3.9/site-packages/zict/lru.py", line 70, in __setitem__
self.evict()
File "/work/mh0033/m300602/miniconda3/envs/pyicon_py39/lib/python3.9/site-packages/zict/lru.py", line 89, in evict
cb(k, v)
File "/work/mh0033/m300602/miniconda3/envs/pyicon_py39/lib/python3.9/site-packages/zict/buffer.py", line 60, in fast_to_slow
self.slow[key] = value
File "/work/mh0033/m300602/miniconda3/envs/pyicon_py39/lib/python3.9/site-packages/zict/func.py", line 41, in __setitem__
self.d[key] = self.dump(value)
File "/work/mh0033/m300602/miniconda3/envs/pyicon_py39/lib/python3.9/site-packages/zict/file.py", line 82, in __setitem__
f.write(v)
KeyboardInterrupt
Process Dask Worker process (from Nanny):
Process Dask Worker process (from Nanny):
Process Dask Worker process (from Nanny):
Traceback (most recent call last):
Traceback (most recent call last):
File "/work/mh0033/m300602/miniconda3/envs/pyicon_py39/lib/python3.9/site-packages/distributed/nanny.py", line 828, in _run
loop.run_sync(run)
File "/work/mh0033/m300602/miniconda3/envs/pyicon_py39/lib/python3.9/site-packages/distributed/nanny.py", line 828, in _run
loop.run_sync(run)
File "/work/mh0033/m300602/miniconda3/envs/pyicon_py39/lib/python3.9/site-packages/tornado/ioloop.py", line 524, in run_sync
self.start()
File "/work/mh0033/m300602/miniconda3/envs/pyicon_py39/lib/python3.9/site-packages/tornado/ioloop.py", line 524, in run_sync
self.start()
File "/work/mh0033/m300602/miniconda3/envs/pyicon_py39/lib/python3.9/site-packages/tornado/platform/asyncio.py", line 199, in start
self.asyncio_loop.run_forever()
File "/work/mh0033/m300602/miniconda3/envs/pyicon_py39/lib/python3.9/site-packages/tornado/platform/asyncio.py", line 199, in start
self.asyncio_loop.run_forever()
File "/work/mh0033/m300602/miniconda3/envs/pyicon_py39/lib/python3.9/asyncio/base_events.py", line 596, in run_forever
self._run_once()
File "/work/mh0033/m300602/miniconda3/envs/pyicon_py39/lib/python3.9/asyncio/base_events.py", line 596, in run_forever
self._run_once()
File "/work/mh0033/m300602/miniconda3/envs/pyicon_py39/lib/python3.9/asyncio/base_events.py", line 1854, in _run_once
event_list = self._selector.select(timeout)
File "/work/mh0033/m300602/miniconda3/envs/pyicon_py39/lib/python3.9/asyncio/base_events.py", line 1854, in _run_once
event_list = self._selector.select(timeout)
File "/work/mh0033/m300602/miniconda3/envs/pyicon_py39/lib/python3.9/selectors.py", line 469, in select
fd_event_list = self._selector.poll(timeout, max_ev)
File "/work/mh0033/m300602/miniconda3/envs/pyicon_py39/lib/python3.9/selectors.py", line 469, in select
fd_event_list = self._selecERROR:root:Internal Python error in the inspect module.
Below is the traceback from this internal error.
tor.poll(timeout, max_ev)
KeyboardInterrupt
KeyboardInterrupt
During handling of the above exception, another exception occurred:
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
Traceback (most recent call last):
File "/work/mh0033/m300602/miniconda3/envs/pyicon_py39/lib/python3.9/multiprocessing/process.py", line 315, in _bootstrap
self.run()
File "/work/mh0033/m300602/miniconda3/envs/pyicon_py39/lib/python3.9/multiprocessing/process.py", line 315, in _bootstrap
self.run()
File "/work/mh0033/m300602/miniconda3/envs/pyicon_py39/lib/python3.9/multiprocessing/process.py", line 108, in run
self._target(*self._args, **self._kwargs)
File "/work/mh0033/m300602/miniconda3/envs/pyicon_py39/lib/python3.9/multiprocessing/process.py", line 108, in run
self._target(*self._args, **self._kwargs)
File "/work/mh0033/m300602/miniconda3/envs/pyicon_py39/lib/python3.9/site-packages/distributed/process.py", line 191, in _run
target(*args, **kwargs)
File "/work/mh0033/m300602/miniconda3/envs/pyicon_py39/lib/python3.9/site-packages/distributed/process.py", line 191, in _run
target(*args, **kwargs)
File "/work/mh0033/m300602/miniconda3/envs/pyicon_py39/lib/python3.9/site-packages/distributed/nanny.py", line 835, in _run
loop.run_sync(do_stop)
File "/work/mh0033/m300602/miniconda3/envs/pyicon_py39/lib/python3.9/site-packages/distributed/nanny.py", line 835, in _run
loop.run_sync(do_stop)
File "/work/mh0033/m300602/miniconda3/envs/pyicon_py39/lib/python3.9/site-packages/tornado/ioloop.py", line 524, in run_sync
self.start()
File "/work/mh0033/m300602/miniconda3/envs/pyicon_py39/lib/python3.9/site-packages/tornado/ioloop.py", line 524, in run_sync
self.start()
File "/work/mh0033/m300602/miniconda3/envs/pyicon_py39/lib/python3.9/site-packages/tornado/platform/asyncio.py", line 199, in start
self.asyncio_loop.run_forever()
File "/work/mh0033/m300602/miniconda3/envs/pyicon_py39/lib/python3.9/site-packages/tornado/platform/asyncio.py", line 199, in start
self.asyncio_loop.run_forever()
File "/work/mh0033/m300602/miniconda3/envs/pyicon_py39/lib/python3.9/asyncio/base_events.py", line 596, in run_forever
self._run_once()
File "/work/mh0033/m300602/miniconda3/envs/pyicon_py39/lib/python3.9/asyncio/base_events.py", line 596, in run_forever
self._run_once()
File "/work/mh0033/m300602/miniconda3/envs/pyicon_py39/lib/python3.9/asyncio/base_events.py", line 1890, in _run_once
handle._run()
File "/work/mh0033/m300602/miniconda3/envs/pyicon_py39/lib/python3.9/asyncio/base_events.py", line 1890, in _run_once
handle._run()
File "/work/mh0033/m300602/miniconda3/envs/pyicon_py39/lib/python3.9/asyncio/events.py", line 80, in _run
self._context.run(self._callback, *self._args)
File "/work/mh0033/m300602/miniconda3/envs/pyicon_py39/lib/python3.9/asyncio/events.py", line 80, in _run
self._context.run(self._callback, *self._args)
File "/work/mh0033/m300602/miniconda3/envs/pyicon_py39/lib/python3.9/site-packages/distributed/nanny.py", line 751, in do_stop
await worker.close(
File "/work/mh0033/m300602/miniconda3/envs/pyicon_py39/lib/python3.9/site-packages/distributed/nanny.py", line 751, in do_stop
await worker.close(
File "/work/mh0033/m300602/miniconda3/envs/pyicon_py39/lib/python3.9/site-packages/distributed/worker.py", line 1311, in close
executor.shutdown(wait=executor_wait, timeout=timeout)
File "/work/mh0033/m300602/miniconda3/envs/pyicon_py39/lib/python3.9/site-packages/distributed/threadpoolexecutor.py", line 105, in shutdown
t.join(timeout=timeout2)
File "/work/mh0033/m300602/miniconda3/envs/pyicon_py39/lib/python3.9/site-packages/distributed/worker.py", line 1311, in close
executor.shutdown(wait=executor_wait, timeout=timeout)
File "/work/mh0033/m300602/miniconda3/envs/pyicon_py39/lib/python3.9/threading.py", line 1057, in join
self._wait_for_tstate_lock(timeout=max(timeout, 0))
File "/work/mh0033/m300602/miniconda3/envs/pyicon_py39/lib/python3.9/site-packages/distributed/threadpoolexecutor.py", line 105, in shutdown
t.join(timeout=timeout2)
File "/work/mh0033/m300602/miniconda3/envs/pyicon_py39/lib/python3.9/threading.py", line 1069, in _wait_for_tstate_lock
elif lock.acquire(block, timeout):
File "/work/mh0033/m300602/miniconda3/envs/pyicon_py39/lib/python3.9/threading.py", line 1057, in join
self._wait_for_tstate_lock(timeout=max(timeout, 0))
File "/work/mh0033/m300602/miniconda3/envs/pyicon_py39/lib/python3.9/threading.py", line 1069, in _wait_for_tstate_lock
elif lock.acquire(block, timeout):
KeyboardInterrupt
KeyboardInterrupt
Traceback (most recent call last):
File "/work/mh0033/m300602/miniconda3/envs/pyicon_py39/lib/python3.9/site-packages/distributed/nanny.py", line 828, in _run
loop.run_sync(run)
File "/work/mh0033/m300602/miniconda3/envs/pyicon_py39/lib/python3.9/site-packages/tornado/ioloop.py", line 524, in run_sync
self.start()
File "/work/mh0033/m300602/miniconda3/envs/pyicon_py39/lib/python3.9/site-packages/tornado/platform/asyncio.py", line 199, in start
self.asyncio_loop.run_forever()
File "/work/mh0033/m300602/miniconda3/envs/pyicon_py39/lib/python3.9/asyncio/base_events.py", line 596, in run_forever
self._run_once()
File "/work/mh0033/m300602/miniconda3/envs/pyicon_py39/lib/python3.9/asyncio/base_events.py", line 1854, in _run_once
event_list = self._selector.select(timeout)
File "/work/mh0033/m300602/miniconda3/envs/pyicon_py39/lib/python3.9/selectors.py", line 469, in select
fd_event_list = self._selector.poll(timeout, max_ev)
KeyboardInterrupt
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/work/mh0033/m300602/miniconda3/envs/pyicon_py39/lib/python3.9/multiprocessing/process.py", line 315, in _bootstrap
self.run()
File "/work/mh0033/m300602/miniconda3/envs/pyicon_py39/lib/python3.9/multiprocessing/process.py", line 108, in run
self._target(*self._args, **self._kwargs)
File "/work/mh0033/m300602/miniconda3/envs/pyicon_py39/lib/python3.9/site-packages/distributed/process.py", line 191, in _run
target(*args, **kwargs)
File "/work/mh0033/m300602/miniconda3/envs/pyicon_py39/lib/python3.9/site-packages/distributed/nanny.py", line 835, in _run
loop.run_sync(do_stop)
File "/work/mh0033/m300602/miniconda3/envs/pyicon_py39/lib/python3.9/site-packages/tornado/ioloop.py", line 524, in run_sync
self.start()
File "/work/mh0033/m300602/miniconda3/envs/pyicon_py39/lib/python3.9/site-packages/tornado/platform/asyncio.py", line 199, in start
self.asyncio_loop.run_forever()
File "/work/mh0033/m300602/miniconda3/envs/pyicon_py39/lib/python3.9/asyncio/base_events.py", line 596, in run_forever
self._run_once()
File "/work/mh0033/m300602/miniconda3/envs/pyicon_py39/lib/python3.9/asyncio/base_events.py", line 1890, in _run_once
handle._run()
File "/work/mh0033/m300602/miniconda3/envs/pyicon_py39/lib/python3.9/asyncio/events.py", line 80, in _run
self._context.run(self._callback, *self._args)
File "/work/mh0033/m300602/miniconda3/envs/pyicon_py39/lib/python3.9/site-packages/distributed/nanny.py", line 751, in do_stop
await worker.close(
File "/work/mh0033/m300602/miniconda3/envs/pyicon_py39/lib/python3.9/site-packages/distributed/worker.py", line 1311, in close
executor.shutdown(wait=executor_wait, timeout=timeout)
File "/work/mh0033/m300602/miniconda3/envs/pyicon_py39/lib/python3.9/site-packages/distributed/threadpoolexecutor.py", line 105, in shutdown
t.join(timeout=timeout2)
File "/work/mh0033/m300602/miniconda3/envs/pyicon_py39/lib/python3.9/threading.py", line 1057, in join
self._wait_for_tstate_lock(timeout=max(timeout, 0))
File "/work/mh0033/m300602/miniconda3/envs/pyicon_py39/lib/python3.9/threading.py", line 1069, in _wait_for_tstate_lock
elif lock.acquire(block, timeout):
KeyboardInterrupt
Process Dask Worker process (from Nanny):
Traceback (most recent call last):
File "/work/mh0033/m300602/miniconda3/envs/pyicon_py39/lib/python3.9/site-packages/distributed/nanny.py", line 828, in _run
loop.run_sync(run)
File "/work/mh0033/m300602/miniconda3/envs/pyicon_py39/lib/python3.9/site-packages/tornado/ioloop.py", line 524, in run_sync
self.start()
File "/work/mh0033/m300602/miniconda3/envs/pyicon_py39/lib/python3.9/site-packages/tornado/platform/asyncio.py", line 199, in start
self.asyncio_loop.run_forever()
File "/work/mh0033/m300602/miniconda3/envs/pyicon_py39/lib/python3.9/asyncio/base_events.py", line 596, in run_forever
self._run_once()
File "/work/mh0033/m300602/miniconda3/envs/pyicon_py39/lib/python3.9/asyncio/base_events.py", line 1854, in _run_once
event_list = self._selector.select(timeout)
File "/work/mh0033/m300602/miniconda3/envs/pyicon_py39/lib/python3.9/selectors.py", line 469, in select
fd_event_list = self._selector.poll(timeout, max_ev)
KeyboardInterrupt
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/work/mh0033/m300602/miniconda3/envs/pyicon_py39/lib/python3.9/multiprocessing/process.py", line 315, in _bootstrap
self.run()
File "/work/mh0033/m300602/miniconda3/envs/pyicon_py39/lib/python3.9/multiprocessing/process.py", line 108, in run
self._target(*self._args, **self._kwargs)
File "/work/mh0033/m300602/miniconda3/envs/pyicon_py39/lib/python3.9/site-packages/distributed/process.py", line 191, in _run
target(*args, **kwargs)
File "/work/mh0033/m300602/miniconda3/envs/pyicon_py39/lib/python3.9/site-packages/distributed/nanny.py", line 835, in _run
loop.run_sync(do_stop)
File "/work/mh0033/m300602/miniconda3/envs/pyicon_py39/lib/python3.9/site-packages/tornado/ioloop.py", line 524, in run_sync
self.start()
File "/work/mh0033/m300602/miniconda3/envs/pyicon_py39/lib/python3.9/site-packages/tornado/platform/asyncio.py", line 199, in start
self.asyncio_loop.run_forever()
File "/work/mh0033/m300602/miniconda3/envs/pyicon_py39/lib/python3.9/asyncio/base_events.py", line 596, in run_forever
self._run_once()
File "/work/mh0033/m300602/miniconda3/envs/pyicon_py39/lib/python3.9/asyncio/base_events.py", line 1890, in _run_once
handle._run()
File "/work/mh0033/m300602/miniconda3/envs/pyicon_py39/lib/python3.9/asyncio/events.py", line 80, in _run
self._context.run(self._callback, *self._args)
File "/work/mh0033/m300602/miniconda3/envs/pyicon_py39/lib/python3.9/site-packages/distributed/nanny.py", line 751, in do_stop
await worker.close(
File "/work/mh0033/m300602/miniconda3/envs/pyicon_py39/lib/python3.9/site-packages/distributed/worker.py", line 1291, in close
self._workdir.release()
File "/work/mh0033/m300602/miniconda3/envs/pyicon_py39/lib/python3.9/site-packages/distributed/diskutils.py", line 90, in release
self._finalizer()
File "/work/mh0033/m300602/miniconda3/envs/pyicon_py39/lib/python3.9/weakref.py", line 580, in __call__
return info.func(*info.args, **(info.kwargs or {}))
File "/work/mh0033/m300602/miniconda3/envs/pyicon_py39/lib/python3.9/site-packages/distributed/diskutils.py", line 95, in _finalize
workspace._purge_directory(dir_path)
File "/work/mh0033/m300602/miniconda3/envs/pyicon_py39/lib/python3.9/site-packages/distributed/diskutils.py", line 186, in _purge_directory
shutil.rmtree(dir_path, onerror=self._on_remove_error)
File "/work/mh0033/m300602/miniconda3/envs/pyicon_py39/lib/python3.9/shutil.py", line 718, in rmtree
_rmtree_safe_fd(fd, path, onerror)
File "/work/mh0033/m300602/miniconda3/envs/pyicon_py39/lib/python3.9/shutil.py", line 655, in _rmtree_safe_fd
_rmtree_safe_fd(dirfd, fullname, onerror)
File "/work/mh0033/m300602/miniconda3/envs/pyicon_py39/lib/python3.9/shutil.py", line 673, in _rmtree_safe_fd
os.unlink(entry.name, dir_fd=topfd)
KeyboardInterrupt
Error in atexit._run_exitfuncs:
Traceback (most recent call last):
File "/work/mh0033/m300602/miniconda3/envs/pyicon_py39/lib/python3.9/site-packages/distributed/deploy/local.py", line 266, in close_clusters
KeyboardInterrupt
ERROR:root:Internal Python error in the inspect module.
Below is the traceback from this internal error.
ERROR:root:Internal Python error in the inspect module.
Below is the traceback from this internal error.
Traceback (most recent call last):
File "/work/mh0033/m300602/miniconda3/envs/pyicon_py39/lib/python3.9/site-packages/IPython/core/interactiveshell.py", line 3441, in run_code
exec(code_obj, self.user_global_ns, self.user_ns)
File "/tmp/ipykernel_21444/426675411.py", line 9, in <module>
pyic.shade(lon_sec, ds_sec.depth, da, ax=ax, cax=cax, clim=[4,18.5])
KeyboardInterrupt
[ ]: