In [1]:
%matplotlib inline
import pandas as pd
import socket
host = socket.getfqdn()

from core import  load, zoom, calc, save,plots,monitor
In [2]:
#reload funcs after updating ./core/*.py
import importlib
importlib.reload(load)
importlib.reload(zoom)
importlib.reload(calc)
importlib.reload(save)
importlib.reload(plots)
importlib.reload(monitor)
Out[2]:
<module 'core.monitor' from '/ccc/work/cont003/gen7420/odakatin/monitor-sedna/notebook/core/monitor.py'>
In [3]:
# 'month':  = 'JOBID' almost month but not really, 

# If you submit the job with job scheduler, above

#below are list of enviroment variable one can pass
#%env local='2"
# local : if True  run dask local cluster, if not true, put number of workers
# setted in the 'local'
# if no 'local ' given, local will be setted automatically to 'True'
#%env ychunk='2'
#%env tchunk='2'
# controls chunk. 'False' sets no modification from original netcdf file's chunk.  
# ychunk=10 will group the original netcdf file to 10 by 10 
# tchunk=1 will chunk the time coordinate one by one
#%env control=FWC_SSH 
# name of control file to be used for computation/plots/save/ 
#%env file_exp= 
# 'file_exp': Which 'experiment' name is it? 
#.    this corresopnds to intake catalog name without path and .yaml
#%env year=
# for Validation, this correspoinds to path/year/month 's year
# for monitoring, this corresponids to 'date'  having * means do all files in the monitoring directory
# setting it as *0[0-9] &*1[0-9]& *[2-3][0-9], the job can be separated in three lots.
#%env month=
# for monitoring  this corresponds to file path path-XIOS.{month}/
#
#%env save=   proceed saving?   True or False  , Default is setted as True 
#%env plot=   proceed plotting?  True or False , Default is setted as True 
#%env calc=   proceed computation? or just load computed result? True or False , Default is setted as True 
#%env save=False
#%env lazy=False
In [4]:
%%time
# 'savefig': Do we save output in html? or not. keep it true. 
savefig=True
client,cluster,control,catalog_url,month,year,daskreport,outputpath = load.set_control(host)
!mkdir -p $outputpath
!mkdir -p $daskreport
client
local 20
local false ,workers 20
using host= irene5032.c-irene.mg1.tgcc.ccc.cea.fr starting dask cluster on local= False workers 20
10000000000
False
mg1: rome dask jobqueue
rome, slurmcluster starting
This code is running on  irene5032.c-irene.mg1.tgcc.ccc.cea.fr using  SEDNA_DELTA_MONITOR file experiment, read from  ../lib/SEDNA_DELTA_MONITOR.yaml  on year= 2012  on month= 0[1-2]  outputpath= ../results/SEDNA_DELTA_MONITOR/ daskreport= ../results/dask/6413866irene5032.c-irene.mg1.tgcc.ccc.cea.fr_SEDNA_DELTA_MONITOR_0[1-2]M_MLD_2D/_lazyTrue
CPU times: user 16.8 s, sys: 4.19 s, total: 21 s
Wall time: 21min 12s
Out[4]:

Client

Client-c70b0c8a-1346-11ed-892e-080038b93d7d

Connection method: Cluster object Cluster type: dask_jobqueue.SLURMCluster
Dashboard: http://10.131.6.171:8787/status

Cluster Info

SLURMCluster

18d470aa

Dashboard: http://10.131.6.171:8787/status Workers: 28
Total threads: 252 Total memory: 428.40 GiB

Scheduler Info

Scheduler

Scheduler-40124d7f-73be-4d1f-92e5-2e097ecf3ec5

Comm: tcp://10.131.6.171:34156 Workers: 28
Dashboard: http://10.131.6.171:8787/status Total threads: 252
Started: 21 minutes ago Total memory: 428.40 GiB

Workers

Worker: SLURMCluster-0-0

Comm: tcp://10.131.5.48:38486 Total threads: 9
Dashboard: http://10.131.5.48:41134/status Memory: 15.30 GiB
Nanny: tcp://10.131.5.48:39731
Local directory: /tmp/dask-worker-space/worker-kxl45o8v

Worker: SLURMCluster-0-1

Comm: tcp://10.131.5.48:43620 Total threads: 9
Dashboard: http://10.131.5.48:45923/status Memory: 15.30 GiB
Nanny: tcp://10.131.5.48:35737
Local directory: /tmp/dask-worker-space/worker-al64v5jh

Worker: SLURMCluster-0-10

Comm: tcp://10.131.5.48:43317 Total threads: 9
Dashboard: http://10.131.5.48:37400/status Memory: 15.30 GiB
Nanny: tcp://10.131.5.48:45842
Local directory: /tmp/dask-worker-space/worker-rfj86s0h

Worker: SLURMCluster-0-11

Comm: tcp://10.131.5.48:36633 Total threads: 9
Dashboard: http://10.131.5.48:34299/status Memory: 15.30 GiB
Nanny: tcp://10.131.5.48:44669
Local directory: /tmp/dask-worker-space/worker-p3qbcqwa

Worker: SLURMCluster-0-12

Comm: tcp://10.131.5.48:33890 Total threads: 9
Dashboard: http://10.131.5.48:34219/status Memory: 15.30 GiB
Nanny: tcp://10.131.5.48:44533
Local directory: /tmp/dask-worker-space/worker-wqkf_hid

Worker: SLURMCluster-0-13

Comm: tcp://10.131.5.48:38577 Total threads: 9
Dashboard: http://10.131.5.48:34820/status Memory: 15.30 GiB
Nanny: tcp://10.131.5.48:45140
Local directory: /tmp/dask-worker-space/worker-xlptivvs

Worker: SLURMCluster-0-2

Comm: tcp://10.131.5.48:36145 Total threads: 9
Dashboard: http://10.131.5.48:37153/status Memory: 15.30 GiB
Nanny: tcp://10.131.5.48:42298
Local directory: /tmp/dask-worker-space/worker-wgocpjci

Worker: SLURMCluster-0-3

Comm: tcp://10.131.5.48:45268 Total threads: 9
Dashboard: http://10.131.5.48:35782/status Memory: 15.30 GiB
Nanny: tcp://10.131.5.48:35763
Local directory: /tmp/dask-worker-space/worker-1j_79nqg

Worker: SLURMCluster-0-4

Comm: tcp://10.131.5.48:42374 Total threads: 9
Dashboard: http://10.131.5.48:39971/status Memory: 15.30 GiB
Nanny: tcp://10.131.5.48:40477
Local directory: /tmp/dask-worker-space/worker-1b1ei4zq

Worker: SLURMCluster-0-5

Comm: tcp://10.131.5.48:36846 Total threads: 9
Dashboard: http://10.131.5.48:39516/status Memory: 15.30 GiB
Nanny: tcp://10.131.5.48:40838
Local directory: /tmp/dask-worker-space/worker-gzmxp06t

Worker: SLURMCluster-0-6

Comm: tcp://10.131.5.48:36490 Total threads: 9
Dashboard: http://10.131.5.48:33202/status Memory: 15.30 GiB
Nanny: tcp://10.131.5.48:43991
Local directory: /tmp/dask-worker-space/worker-cffp247u

Worker: SLURMCluster-0-7

Comm: tcp://10.131.5.48:36653 Total threads: 9
Dashboard: http://10.131.5.48:37381/status Memory: 15.30 GiB
Nanny: tcp://10.131.5.48:38525
Local directory: /tmp/dask-worker-space/worker-80foeenk

Worker: SLURMCluster-0-8

Comm: tcp://10.131.5.48:36379 Total threads: 9
Dashboard: http://10.131.5.48:37940/status Memory: 15.30 GiB
Nanny: tcp://10.131.5.48:38431
Local directory: /tmp/dask-worker-space/worker-3851qv0z

Worker: SLURMCluster-0-9

Comm: tcp://10.131.5.48:43521 Total threads: 9
Dashboard: http://10.131.5.48:39017/status Memory: 15.30 GiB
Nanny: tcp://10.131.5.48:34045
Local directory: /tmp/dask-worker-space/worker-urpp5fwr

Worker: SLURMCluster-1-0

Comm: tcp://10.131.9.175:46075 Total threads: 9
Dashboard: http://10.131.9.175:35688/status Memory: 15.30 GiB
Nanny: tcp://10.131.9.175:34517
Local directory: /tmp/dask-worker-space/worker-czjm65u5

Worker: SLURMCluster-1-1

Comm: tcp://10.131.9.175:45807 Total threads: 9
Dashboard: http://10.131.9.175:35625/status Memory: 15.30 GiB
Nanny: tcp://10.131.9.175:45805
Local directory: /tmp/dask-worker-space/worker-ryje5dkr

Worker: SLURMCluster-1-10

Comm: tcp://10.131.9.175:43092 Total threads: 9
Dashboard: http://10.131.9.175:38029/status Memory: 15.30 GiB
Nanny: tcp://10.131.9.175:33676
Local directory: /tmp/dask-worker-space/worker-5uo8q_im

Worker: SLURMCluster-1-11

Comm: tcp://10.131.9.175:34062 Total threads: 9
Dashboard: http://10.131.9.175:35449/status Memory: 15.30 GiB
Nanny: tcp://10.131.9.175:34069
Local directory: /tmp/dask-worker-space/worker-wwjemn94

Worker: SLURMCluster-1-12

Comm: tcp://10.131.9.175:34890 Total threads: 9
Dashboard: http://10.131.9.175:42956/status Memory: 15.30 GiB
Nanny: tcp://10.131.9.175:33647
Local directory: /tmp/dask-worker-space/worker-itn338yt

Worker: SLURMCluster-1-13

Comm: tcp://10.131.9.175:45241 Total threads: 9
Dashboard: http://10.131.9.175:39143/status Memory: 15.30 GiB
Nanny: tcp://10.131.9.175:36170
Local directory: /tmp/dask-worker-space/worker-069j05xq

Worker: SLURMCluster-1-2

Comm: tcp://10.131.9.175:38957 Total threads: 9
Dashboard: http://10.131.9.175:40678/status Memory: 15.30 GiB
Nanny: tcp://10.131.9.175:34744
Local directory: /tmp/dask-worker-space/worker-ru8okux7

Worker: SLURMCluster-1-3

Comm: tcp://10.131.9.175:35222 Total threads: 9
Dashboard: http://10.131.9.175:44426/status Memory: 15.30 GiB
Nanny: tcp://10.131.9.175:35996
Local directory: /tmp/dask-worker-space/worker-48mtcnon

Worker: SLURMCluster-1-4

Comm: tcp://10.131.9.175:38975 Total threads: 9
Dashboard: http://10.131.9.175:36392/status Memory: 15.30 GiB
Nanny: tcp://10.131.9.175:45755
Local directory: /tmp/dask-worker-space/worker-2f9fbzw_

Worker: SLURMCluster-1-5

Comm: tcp://10.131.9.175:37048 Total threads: 9
Dashboard: http://10.131.9.175:34895/status Memory: 15.30 GiB
Nanny: tcp://10.131.9.175:37365
Local directory: /tmp/dask-worker-space/worker-oqoozgm_

Worker: SLURMCluster-1-6

Comm: tcp://10.131.9.175:42856 Total threads: 9
Dashboard: http://10.131.9.175:34330/status Memory: 15.30 GiB
Nanny: tcp://10.131.9.175:42090
Local directory: /tmp/dask-worker-space/worker-oc7nv5yy

Worker: SLURMCluster-1-7

Comm: tcp://10.131.9.175:36033 Total threads: 9
Dashboard: http://10.131.9.175:33298/status Memory: 15.30 GiB
Nanny: tcp://10.131.9.175:39306
Local directory: /tmp/dask-worker-space/worker-4vfnegzo

Worker: SLURMCluster-1-8

Comm: tcp://10.131.9.175:46574 Total threads: 9
Dashboard: http://10.131.9.175:34233/status Memory: 15.30 GiB
Nanny: tcp://10.131.9.175:35245
Local directory: /tmp/dask-worker-space/worker-0fthzw9m

Worker: SLURMCluster-1-9

Comm: tcp://10.131.9.175:43932 Total threads: 9
Dashboard: http://10.131.9.175:39956/status Memory: 15.30 GiB
Nanny: tcp://10.131.9.175:45335
Local directory: /tmp/dask-worker-space/worker-5j64hkyz

read plotting information from a csv file¶

In [5]:
df=load.controlfile(control)
#Take out 'later' tagged computations
#df=df[~df['Value'].str.contains('later')]
df
Out[5]:
Value Inputs Equation Zone Plot Colourmap MinMax Unit Oldname Unnamed: 10
MLD_2D gridT-2D.samldr1_1 data.samldr1_1 ALL maps Blues (0,80) m M-5

Computation starts here¶

Each computation consists of

  1. Load NEMO data set
  2. Zoom data set
  3. Compute (or load computed data set)
  4. Save
  5. Plot
  6. Close
In [6]:
%%time
import os
calcswitch=os.environ.get('calc', 'True') 
lazy=os.environ.get('lazy','True' )
loaddata=((df.Inputs != '').any()) 
print('calcswitch=',calcswitch,'df.Inputs != nothing',loaddata, 'lazy=',lazy)
data = load.datas(catalog_url,df.Inputs,month,year,daskreport,lazy=lazy) if ((calcswitch=='True' )*loaddata) else 0 
data
calcswitch= True df.Inputs != nothing True lazy= True
../lib/SEDNA_DELTA_MONITOR.yaml
using param_xios reading  ../lib/SEDNA_DELTA_MONITOR.yaml
using param_xios reading  <bound method DataSourceBase.describe of sources:
  param_xios:
    args:
      combine: nested
      concat_dim: y
      urlpath: /ccc/work/cont003/gen7420/odakatin/CONFIGS/SEDNA/SEDNA-I/SEDNA_Domain_cfg_Tgt_20210423_tsh10m_L1/param_f32/x_*.nc
      xarray_kwargs:
        compat: override
        coords: minimal
        data_vars: minimal
        parallel: true
    description: SEDNA NEMO parameters from MPI output  nav_lon lat fails
    driver: intake_xarray.netcdf.NetCDFSource
    metadata:
      catalog_dir: /ccc/work/cont003/gen7420/odakatin/monitor-sedna/notebook/../lib/
>
{'name': 'param_xios', 'container': 'xarray', 'plugin': ['netcdf'], 'driver': ['netcdf'], 'description': 'SEDNA NEMO parameters from MPI output  nav_lon lat fails', 'direct_access': 'forbid', 'user_parameters': [{'name': 'path', 'description': 'file coordinate', 'type': 'str', 'default': '/ccc/work/cont003/gen7420/odakatin/CONFIGS/SEDNA/MESH/SEDNA_mesh_mask_Tgt_20210423_tsh10m_L1/param'}], 'metadata': {}, 'args': {'urlpath': '/ccc/work/cont003/gen7420/odakatin/CONFIGS/SEDNA/SEDNA-I/SEDNA_Domain_cfg_Tgt_20210423_tsh10m_L1/param_f32/x_*.nc', 'combine': 'nested', 'concat_dim': 'y'}}
0 read gridT-2D ['samldr1_1']
using load_data_xios reading  gridT-2D
using load_data_xios reading  {'name': 'data_xios', 'container': 'xarray', 'plugin': ['netcdf'], 'driver': ['netcdf'], 'description': 'SEDNA NEMO outputs from different xios server', 'direct_access': 'forbid', 'user_parameters': [{'name': 'path', 'description': 'name of config', 'type': 'str', 'default': '/ccc/scratch/cont003/gen7420/talandel/SEDNA/SEDNA-DELTA-S/SPLIT/1d'}, {'name': 'fileexp', 'description': 'name of config', 'type': 'str', 'default': 'SEDNA-DELTA'}, {'name': 'month', 'description': 'running number 2 digit', 'type': 'str', 'default': '02'}, {'name': 'freq', 'description': '1d or 1m', 'type': 'str', 'default': '1d'}, {'name': 'year', 'description': 'last digits of yearmonthdate.', 'type': 'str', 'default': '2012'}, {'name': 'file', 'description': 'file name', 'type': 'str', 'default': 'icemod'}, {'name': 'eio', 'description': 'xios mpi number', 'type': 'str', 'default': '0[0-5][0-9][0-9]'}], 'metadata': {}, 'args': {'urlpath': '{{path}}/{{year}}/{{month}}/*{{file}}_*_{{eio}}.nc', 'combine': 'nested', 'concat_dim': 'time_counter,x,y'}}
      took 173.4489085674286 seconds
0 merging gridT-2D ['samldr1_1']
param nav_lat will be included in data
param mask2d will be included in data
param nav_lon will be included in data
ychunk= 10 calldatas_y_rechunk
sum_num (13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12)
start rechunking with (130, 122, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 48)
end of y_rechunk
CPU times: user 59.6 s, sys: 7.68 s, total: 1min 7s
Wall time: 3min 15s
Out[6]:
<xarray.Dataset>
Dimensions:        (t: 59, y: 6540, x: 6560)
Coordinates:
  * t              (t) object 2012-01-01 12:00:00 ... 2012-02-28 12:00:00
  * y              (y) int64 1 2 3 4 5 6 7 ... 6535 6536 6537 6538 6539 6540
  * x              (x) int64 1 2 3 4 5 6 7 ... 6555 6556 6557 6558 6559 6560
    nav_lat        (y, x) float32 dask.array<chunksize=(130, 6560), meta=np.ndarray>
    nav_lon        (y, x) float32 dask.array<chunksize=(130, 6560), meta=np.ndarray>
    time_centered  (t) object dask.array<chunksize=(59,), meta=np.ndarray>
    mask2d         (y, x) bool dask.array<chunksize=(130, 6560), meta=np.ndarray>
Data variables:
    samldr1_1      (t, y, x) float32 dask.array<chunksize=(59, 130, 6560), meta=np.ndarray>
Attributes: (12/26)
    name:                    /ccc/scratch/cont003/ra5563/talandel/ONGOING-RUN...
    description:             ocean T grid variables
    title:                   ocean T grid variables
    Conventions:             CF-1.6
    timeStamp:               2022-Jan-17 19:00:11 GMT
    uuid:                    88aad392-7ae9-43ca-8ed2-c5606b75d4a0
    ...                      ...
    start_date:              20090101
    output_frequency:        1d
    CONFIG:                  SEDNA
    CASE:                    DELTA
    history:                 Tue Jan 18 19:00:08 2022: ncks -4 -L 1 SEDNA-DEL...
    NCO:                     netCDF Operators version 4.9.1 (Homepage = http:...
xarray.Dataset
    • t: 59
    • y: 6540
    • x: 6560
    • t
      (t)
      object
      2012-01-01 12:00:00 ... 2012-02-...
      axis :
      T
      standard_name :
      time
      long_name :
      Time axis
      time_origin :
      1900-01-01 00:00:00
      bounds :
      time_counter_bounds
      array([cftime.DatetimeNoLeap(2012, 1, 1, 12, 0, 0, 0, has_year_zero=True),
             cftime.DatetimeNoLeap(2012, 1, 2, 12, 0, 0, 0, has_year_zero=True),
             cftime.DatetimeNoLeap(2012, 1, 3, 12, 0, 0, 0, has_year_zero=True),
             cftime.DatetimeNoLeap(2012, 1, 4, 12, 0, 0, 0, has_year_zero=True),
             cftime.DatetimeNoLeap(2012, 1, 5, 12, 0, 0, 0, has_year_zero=True),
             cftime.DatetimeNoLeap(2012, 1, 6, 12, 0, 0, 0, has_year_zero=True),
             cftime.DatetimeNoLeap(2012, 1, 7, 12, 0, 0, 0, has_year_zero=True),
             cftime.DatetimeNoLeap(2012, 1, 8, 12, 0, 0, 0, has_year_zero=True),
             cftime.DatetimeNoLeap(2012, 1, 9, 12, 0, 0, 0, has_year_zero=True),
             cftime.DatetimeNoLeap(2012, 1, 10, 12, 0, 0, 0, has_year_zero=True),
             cftime.DatetimeNoLeap(2012, 1, 11, 12, 0, 0, 0, has_year_zero=True),
             cftime.DatetimeNoLeap(2012, 1, 12, 12, 0, 0, 0, has_year_zero=True),
             cftime.DatetimeNoLeap(2012, 1, 13, 12, 0, 0, 0, has_year_zero=True),
             cftime.DatetimeNoLeap(2012, 1, 14, 12, 0, 0, 0, has_year_zero=True),
             cftime.DatetimeNoLeap(2012, 1, 15, 12, 0, 0, 0, has_year_zero=True),
             cftime.DatetimeNoLeap(2012, 1, 16, 12, 0, 0, 0, has_year_zero=True),
             cftime.DatetimeNoLeap(2012, 1, 17, 12, 0, 0, 0, has_year_zero=True),
             cftime.DatetimeNoLeap(2012, 1, 18, 12, 0, 0, 0, has_year_zero=True),
             cftime.DatetimeNoLeap(2012, 1, 19, 12, 0, 0, 0, has_year_zero=True),
             cftime.DatetimeNoLeap(2012, 1, 20, 12, 0, 0, 0, has_year_zero=True),
             cftime.DatetimeNoLeap(2012, 1, 21, 12, 0, 0, 0, has_year_zero=True),
             cftime.DatetimeNoLeap(2012, 1, 22, 12, 0, 0, 0, has_year_zero=True),
             cftime.DatetimeNoLeap(2012, 1, 23, 12, 0, 0, 0, has_year_zero=True),
             cftime.DatetimeNoLeap(2012, 1, 24, 12, 0, 0, 0, has_year_zero=True),
             cftime.DatetimeNoLeap(2012, 1, 25, 12, 0, 0, 0, has_year_zero=True),
             cftime.DatetimeNoLeap(2012, 1, 26, 12, 0, 0, 0, has_year_zero=True),
             cftime.DatetimeNoLeap(2012, 1, 27, 12, 0, 0, 0, has_year_zero=True),
             cftime.DatetimeNoLeap(2012, 1, 28, 12, 0, 0, 0, has_year_zero=True),
             cftime.DatetimeNoLeap(2012, 1, 29, 12, 0, 0, 0, has_year_zero=True),
             cftime.DatetimeNoLeap(2012, 1, 30, 12, 0, 0, 0, has_year_zero=True),
             cftime.DatetimeNoLeap(2012, 1, 31, 12, 0, 0, 0, has_year_zero=True),
             cftime.DatetimeNoLeap(2012, 2, 1, 12, 0, 0, 0, has_year_zero=True),
             cftime.DatetimeNoLeap(2012, 2, 2, 12, 0, 0, 0, has_year_zero=True),
             cftime.DatetimeNoLeap(2012, 2, 3, 12, 0, 0, 0, has_year_zero=True),
             cftime.DatetimeNoLeap(2012, 2, 4, 12, 0, 0, 0, has_year_zero=True),
             cftime.DatetimeNoLeap(2012, 2, 5, 12, 0, 0, 0, has_year_zero=True),
             cftime.DatetimeNoLeap(2012, 2, 6, 12, 0, 0, 0, has_year_zero=True),
             cftime.DatetimeNoLeap(2012, 2, 7, 12, 0, 0, 0, has_year_zero=True),
             cftime.DatetimeNoLeap(2012, 2, 8, 12, 0, 0, 0, has_year_zero=True),
             cftime.DatetimeNoLeap(2012, 2, 9, 12, 0, 0, 0, has_year_zero=True),
             cftime.DatetimeNoLeap(2012, 2, 10, 12, 0, 0, 0, has_year_zero=True),
             cftime.DatetimeNoLeap(2012, 2, 11, 12, 0, 0, 0, has_year_zero=True),
             cftime.DatetimeNoLeap(2012, 2, 12, 12, 0, 0, 0, has_year_zero=True),
             cftime.DatetimeNoLeap(2012, 2, 13, 12, 0, 0, 0, has_year_zero=True),
             cftime.DatetimeNoLeap(2012, 2, 14, 12, 0, 0, 0, has_year_zero=True),
             cftime.DatetimeNoLeap(2012, 2, 15, 12, 0, 0, 0, has_year_zero=True),
             cftime.DatetimeNoLeap(2012, 2, 16, 12, 0, 0, 0, has_year_zero=True),
             cftime.DatetimeNoLeap(2012, 2, 17, 12, 0, 0, 0, has_year_zero=True),
             cftime.DatetimeNoLeap(2012, 2, 18, 12, 0, 0, 0, has_year_zero=True),
             cftime.DatetimeNoLeap(2012, 2, 19, 12, 0, 0, 0, has_year_zero=True),
             cftime.DatetimeNoLeap(2012, 2, 20, 12, 0, 0, 0, has_year_zero=True),
             cftime.DatetimeNoLeap(2012, 2, 21, 12, 0, 0, 0, has_year_zero=True),
             cftime.DatetimeNoLeap(2012, 2, 22, 12, 0, 0, 0, has_year_zero=True),
             cftime.DatetimeNoLeap(2012, 2, 23, 12, 0, 0, 0, has_year_zero=True),
             cftime.DatetimeNoLeap(2012, 2, 24, 12, 0, 0, 0, has_year_zero=True),
             cftime.DatetimeNoLeap(2012, 2, 25, 12, 0, 0, 0, has_year_zero=True),
             cftime.DatetimeNoLeap(2012, 2, 26, 12, 0, 0, 0, has_year_zero=True),
             cftime.DatetimeNoLeap(2012, 2, 27, 12, 0, 0, 0, has_year_zero=True),
             cftime.DatetimeNoLeap(2012, 2, 28, 12, 0, 0, 0, has_year_zero=True)],
            dtype=object)
    • y
      (y)
      int64
      1 2 3 4 5 ... 6537 6538 6539 6540
      array([   1,    2,    3, ..., 6538, 6539, 6540])
    • x
      (x)
      int64
      1 2 3 4 5 ... 6557 6558 6559 6560
      array([   1,    2,    3, ..., 6558, 6559, 6560])
    • nav_lat
      (y, x)
      float32
      dask.array<chunksize=(130, 6560), meta=np.ndarray>
      Array Chunk
      Bytes 163.66 MiB 3.25 MiB
      Shape (6540, 6560) (130, 6560)
      Count 1687 Tasks 55 Chunks
      Type float32 numpy.ndarray
      6560 6540
    • nav_lon
      (y, x)
      float32
      dask.array<chunksize=(130, 6560), meta=np.ndarray>
      Array Chunk
      Bytes 163.66 MiB 3.25 MiB
      Shape (6540, 6560) (130, 6560)
      Count 1687 Tasks 55 Chunks
      Type float32 numpy.ndarray
      6560 6540
    • time_centered
      (t)
      object
      dask.array<chunksize=(59,), meta=np.ndarray>
      standard_name :
      time
      long_name :
      Time axis
      time_origin :
      1900-01-01 00:00:00
      bounds :
      time_centered_bounds
      Array Chunk
      Bytes 472 B 472 B
      Shape (59,) (59,)
      Count 7 Tasks 1 Chunks
      Type object numpy.ndarray
      59 1
    • mask2d
      (y, x)
      bool
      dask.array<chunksize=(130, 6560), meta=np.ndarray>
      Array Chunk
      Bytes 40.91 MiB 832.81 kiB
      Shape (6540, 6560) (130, 6560)
      Count 1687 Tasks 55 Chunks
      Type bool numpy.ndarray
      6560 6540
    • samldr1_1
      (t, y, x)
      float32
      dask.array<chunksize=(59, 130, 6560), meta=np.ndarray>
      standard_name :
      ocean_mixed_layer_thickness_defined_by_sigma_theta
      long_name :
      Mixed Layer Depth (dsigma = 0.01 wrt 1m)
      units :
      m
      online_operation :
      average
      interval_operation :
      40 s
      interval_write :
      1 d
      cell_methods :
      time: mean (interval: 40 s)
      Array Chunk
      Bytes 9.43 GiB 191.94 MiB
      Shape (59, 6540, 6560) (59, 130, 6560)
      Count 1157 Tasks 55 Chunks
      Type float32 numpy.ndarray
      6560 6540 59
  • name :
    /ccc/scratch/cont003/ra5563/talandel/ONGOING-RUNS/SEDNA-DELTA-XIOS.46/SEDNA-DELTA_1d_gridT-2D
    description :
    ocean T grid variables
    title :
    ocean T grid variables
    Conventions :
    CF-1.6
    timeStamp :
    2022-Jan-17 19:00:11 GMT
    uuid :
    88aad392-7ae9-43ca-8ed2-c5606b75d4a0
    ibegin :
    0
    ni :
    6560
    jbegin :
    0
    nj :
    13
    DOMAIN_number_total :
    544
    DOMAIN_number :
    0
    DOMAIN_dimensions_ids :
    [2 3]
    DOMAIN_size_global :
    [6560 6540]
    DOMAIN_size_local :
    [6560 13]
    DOMAIN_position_first :
    [1 1]
    DOMAIN_position_last :
    [6560 13]
    DOMAIN_halo_size_start :
    [0 0]
    DOMAIN_halo_size_end :
    [0 0]
    DOMAIN_type :
    box
    start_date :
    20090101
    output_frequency :
    1d
    CONFIG :
    SEDNA
    CASE :
    DELTA
    history :
    Tue Jan 18 19:00:08 2022: ncks -4 -L 1 SEDNA-DELTA_1d_gridT-2D_201201-201201_0000.nc /ccc/scratch/cont003/gen7420/talandel/SEDNA/SEDNA-DELTA-S/SPLIT/1d/2012/01/SEDNA-DELTA_1d_gridT-2D_201201-201201_0000.nc
    NCO :
    netCDF Operators version 4.9.1 (Homepage = http://nco.sf.net, Code = http://github.com/nco/nco)
In [7]:
%%time
monitor.auto(df,data,savefig,daskreport,outputpath,file_exp='SEDNA'
            )
#calc= True
#save= False
#plot= True
monitor.optimize_dataset(data)
Value='MLD_2D'
Zone='ALL'
Plot='maps'
cmap='Blues'
clabel='m'
clim= (0, 80)
outputpath='../results/SEDNA_DELTA_MONITOR/'
nc_outputpath='../nc_results/SEDNA_DELTA_MONITOR/'
filename='SEDNA_maps_ALL_MLD_2D'
#3 Start computing 
dtaa= data.samldr1_1
---------------------------------------------------------------------------
AttributeError                            Traceback (most recent call last)
File <timed eval>:1, in <module>

File /ccc/work/cont003/gen7420/odakatin/monitor-sedna/notebook/core/monitor.py:75, in auto(df, val, savefig, daskreport, outputpath, file_exp)
     73 print('#3 no computing , loading starts')
     74 print('dtaa=save.load_data(plot=Plot,path=nc_outputpath,filename=filename)' )
---> 75 with performance_report(filename=daskreport+"_calc_"+step.Value+".html"):
     76     data=save.load_data(plot=Plot,path=nc_outputpath,filename=filename)
     77 #saveswitch=False

File /ccc/work/cont003/gen7420/odakatin/monitor-sedna/notebook/core/monitor.py:100, in optimize_dataset(ds)
     97             display(IFrame(filename, width=1000, height=500))
     98     return
--> 100 def optimize_dataset(ds):
    101     import dask
    102     for varname, da in ds.data_vars.items():
    103         #print(varname)

File /ccc/cont003/home/ra5563/ra5563/monitor/lib/python3.10/site-packages/xarray/core/common.py:256, in AttrAccessMixin.__getattr__(self, name)
    254         with suppress(KeyError):
    255             return source[name]
--> 256 raise AttributeError(
    257     f"{type(self).__name__!r} object has no attribute {name!r}"
    258 )

AttributeError: 'DataArray' object has no attribute 'data_vars'