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 True
using host= irene5812.c-irene.mg1.tgcc.ccc.cea.fr starting dask cluster on local= True workers 16
10000000000
False
rome local cluster starting
This code is running on  irene5812.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= 02  outputpath= ../results/SEDNA_DELTA_MONITOR/ daskreport= ../results/dask/6413858irene5812.c-irene.mg1.tgcc.ccc.cea.fr_SEDNA_DELTA_MONITOR_02M_IceThick/_lazyTrue
CPU times: user 560 ms, sys: 139 ms, total: 698 ms
Wall time: 21.8 s
Out[4]:

Client

Client-4bb7c1d9-1346-11ed-ad36-080038b94209

Connection method: Cluster object Cluster type: distributed.LocalCluster
Dashboard: http://127.0.0.1:8787/status

Cluster Info

LocalCluster

87f2dd49

Dashboard: http://127.0.0.1:8787/status Workers: 16
Total threads: 128 Total memory: 251.06 GiB
Status: running Using processes: True

Scheduler Info

Scheduler

Scheduler-80d60922-db0e-4e8a-89fc-19ce41b8055e

Comm: tcp://127.0.0.1:43658 Workers: 16
Dashboard: http://127.0.0.1:8787/status Total threads: 128
Started: Just now Total memory: 251.06 GiB

Workers

Worker: 0

Comm: tcp://127.0.0.1:38468 Total threads: 8
Dashboard: http://127.0.0.1:36580/status Memory: 15.69 GiB
Nanny: tcp://127.0.0.1:33548
Local directory: /tmp/dask-worker-space/worker-_bd97z5z

Worker: 1

Comm: tcp://127.0.0.1:45452 Total threads: 8
Dashboard: http://127.0.0.1:36948/status Memory: 15.69 GiB
Nanny: tcp://127.0.0.1:43053
Local directory: /tmp/dask-worker-space/worker-10sl81x_

Worker: 2

Comm: tcp://127.0.0.1:42532 Total threads: 8
Dashboard: http://127.0.0.1:39508/status Memory: 15.69 GiB
Nanny: tcp://127.0.0.1:38097
Local directory: /tmp/dask-worker-space/worker-34jiqbfd

Worker: 3

Comm: tcp://127.0.0.1:42106 Total threads: 8
Dashboard: http://127.0.0.1:42978/status Memory: 15.69 GiB
Nanny: tcp://127.0.0.1:41301
Local directory: /tmp/dask-worker-space/worker-lw96sqw4

Worker: 4

Comm: tcp://127.0.0.1:38163 Total threads: 8
Dashboard: http://127.0.0.1:39269/status Memory: 15.69 GiB
Nanny: tcp://127.0.0.1:44720
Local directory: /tmp/dask-worker-space/worker-jgjc2xrk

Worker: 5

Comm: tcp://127.0.0.1:43797 Total threads: 8
Dashboard: http://127.0.0.1:35730/status Memory: 15.69 GiB
Nanny: tcp://127.0.0.1:45778
Local directory: /tmp/dask-worker-space/worker-21temz2z

Worker: 6

Comm: tcp://127.0.0.1:45841 Total threads: 8
Dashboard: http://127.0.0.1:33251/status Memory: 15.69 GiB
Nanny: tcp://127.0.0.1:39353
Local directory: /tmp/dask-worker-space/worker-zxr6qaww

Worker: 7

Comm: tcp://127.0.0.1:44053 Total threads: 8
Dashboard: http://127.0.0.1:37924/status Memory: 15.69 GiB
Nanny: tcp://127.0.0.1:45311
Local directory: /tmp/dask-worker-space/worker-a8jgmydl

Worker: 8

Comm: tcp://127.0.0.1:38744 Total threads: 8
Dashboard: http://127.0.0.1:38085/status Memory: 15.69 GiB
Nanny: tcp://127.0.0.1:39886
Local directory: /tmp/dask-worker-space/worker-1vtl1m1_

Worker: 9

Comm: tcp://127.0.0.1:44332 Total threads: 8
Dashboard: http://127.0.0.1:40604/status Memory: 15.69 GiB
Nanny: tcp://127.0.0.1:45568
Local directory: /tmp/dask-worker-space/worker-rwdk1fpo

Worker: 10

Comm: tcp://127.0.0.1:42936 Total threads: 8
Dashboard: http://127.0.0.1:41186/status Memory: 15.69 GiB
Nanny: tcp://127.0.0.1:36047
Local directory: /tmp/dask-worker-space/worker-3hfmjjv9

Worker: 11

Comm: tcp://127.0.0.1:43506 Total threads: 8
Dashboard: http://127.0.0.1:44626/status Memory: 15.69 GiB
Nanny: tcp://127.0.0.1:42479
Local directory: /tmp/dask-worker-space/worker-evc6yxke

Worker: 12

Comm: tcp://127.0.0.1:45109 Total threads: 8
Dashboard: http://127.0.0.1:38204/status Memory: 15.69 GiB
Nanny: tcp://127.0.0.1:40003
Local directory: /tmp/dask-worker-space/worker-ct50ooks

Worker: 13

Comm: tcp://127.0.0.1:46621 Total threads: 8
Dashboard: http://127.0.0.1:37185/status Memory: 15.69 GiB
Nanny: tcp://127.0.0.1:38714
Local directory: /tmp/dask-worker-space/worker-y6n69bn9

Worker: 14

Comm: tcp://127.0.0.1:43750 Total threads: 8
Dashboard: http://127.0.0.1:36495/status Memory: 15.69 GiB
Nanny: tcp://127.0.0.1:41642
Local directory: /tmp/dask-worker-space/worker-r2kg1lx8

Worker: 15

Comm: tcp://127.0.0.1:40473 Total threads: 8
Dashboard: http://127.0.0.1:46851/status Memory: 15.69 GiB
Nanny: tcp://127.0.0.1:38299
Local directory: /tmp/dask-worker-space/worker-142vvm38

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
IceThickness icemod.sivolu (data.sivolu.where(data.sivolu >0)).to_dataset... ALL maps Spectral (0,5) m M-4

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 icemod ['sivolu']
using load_data_xios reading  icemod
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 138.69451022148132 seconds
0 merging icemod ['sivolu']
param nav_lat will be included in data
param nav_lon will be included in data
param mask2d 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 1min 25s, sys: 6.66 s, total: 1min 32s
Wall time: 2min 43s
Out[6]:
<xarray.Dataset>
Dimensions:        (t: 28, y: 6540, x: 6560)
Coordinates:
  * t              (t) object 2012-02-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=(28,), meta=np.ndarray>
    mask2d         (y, x) bool dask.array<chunksize=(130, 6560), meta=np.ndarray>
Data variables:
    sivolu         (t, y, x) float32 dask.array<chunksize=(28, 130, 6560), meta=np.ndarray>
Attributes: (12/26)
    name:                    /ccc/scratch/cont003/ra5563/talandel/ONGOING-RUN...
    description:             ice variables
    title:                   ice variables
    Conventions:             CF-1.6
    timeStamp:               2022-Jan-18 16:51:17 GMT
    uuid:                    56b165e2-bdda-4b33-a2e9-04a59f3d06e9
    ...                      ...
    start_date:              20090101
    output_frequency:        1d
    CONFIG:                  SEDNA
    CASE:                    DELTA
    history:                 Wed Jan 19 12:40:39 2022: ncks -4 -L 1 SEDNA-DEL...
    NCO:                     netCDF Operators version 4.9.1 (Homepage = http:...
xarray.Dataset
    • t: 28
    • y: 6540
    • x: 6560
    • t
      (t)
      object
      2012-02-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, 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=(28,), 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 224 B 224 B
      Shape (28,) (28,)
      Count 2 Tasks 1 Chunks
      Type object numpy.ndarray
      28 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
    • sivolu
      (t, y, x)
      float32
      dask.array<chunksize=(28, 130, 6560), meta=np.ndarray>
      standard_name :
      sea_ice_thickness
      long_name :
      ice volume
      units :
      m
      online_operation :
      average
      interval_operation :
      40 s
      interval_write :
      1 d
      cell_methods :
      time: mean (interval: 40 s)
      Array Chunk
      Bytes 4.48 GiB 91.09 MiB
      Shape (28, 6540, 6560) (28, 130, 6560)
      Count 1156 Tasks 55 Chunks
      Type float32 numpy.ndarray
      6560 6540 28
  • name :
    /ccc/scratch/cont003/ra5563/talandel/ONGOING-RUNS/SEDNA-DELTA-XIOS.47/SEDNA-DELTA_1d_icemod
    description :
    ice variables
    title :
    ice variables
    Conventions :
    CF-1.6
    timeStamp :
    2022-Jan-18 16:51:17 GMT
    uuid :
    56b165e2-bdda-4b33-a2e9-04a59f3d06e9
    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 :
    Wed Jan 19 12:40:39 2022: ncks -4 -L 1 SEDNA-DELTA_1d_icemod_201202-201202_NOZIP_0000.nc /ccc/scratch/cont003/gen7420/talandel/SEDNA/SEDNA-DELTA-S/SPLIT/1d/2012/02/SEDNA-DELTA_1d_icemod_201202-201202_0000.nc Wed Jan 19 12:40:28 2022: ncrcat -n 28,2,1 SEDNA-DELTA_1d_icemod_0000_01.nc SEDNA-DELTA_1d_icemod_201202-201202_NOZIP_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= True
#plot= False
monitor.optimize_dataset(data)
Value='IceThickness'
Zone='ALL'
Plot='maps'
cmap='Spectral'
clabel='m'
clim= (0, 5)
outputpath='../results/SEDNA_DELTA_MONITOR/'
nc_outputpath='../nc_results/SEDNA_DELTA_MONITOR/'
filename='SEDNA_maps_ALL_IceThickness'
#3 Start computing 
dtaa= (data.sivolu.where(data.sivolu >0)).to_dataset(name='sivolu').chunk({ 't': -1 }).unify_chunks().persist()
monitor.optimize_dataset(dtaa)
<xarray.Dataset>
Dimensions:        (t: 28, y: 6540, x: 6560)
Coordinates:
  * t              (t) object 2012-02-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=(28,), meta=np.ndarray>
    mask2d         (y, x) bool dask.array<chunksize=(130, 6560), meta=np.ndarray>
Data variables:
    sivolu         (t, y, x) float32 dask.array<chunksize=(28, 130, 6560), meta=np.ndarray>
xarray.Dataset
    • t: 28
    • y: 6540
    • x: 6560
    • t
      (t)
      object
      2012-02-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, 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 55 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 55 Tasks 55 Chunks
      Type float32 numpy.ndarray
      6560 6540
    • time_centered
      (t)
      object
      dask.array<chunksize=(28,), 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 224 B 224 B
      Shape (28,) (28,)
      Count 1 Tasks 1 Chunks
      Type object numpy.ndarray
      28 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 55 Tasks 55 Chunks
      Type bool numpy.ndarray
      6560 6540
    • sivolu
      (t, y, x)
      float32
      dask.array<chunksize=(28, 130, 6560), meta=np.ndarray>
      standard_name :
      sea_ice_thickness
      long_name :
      ice volume
      units :
      m
      online_operation :
      average
      interval_operation :
      40 s
      interval_write :
      1 d
      cell_methods :
      time: mean (interval: 40 s)
      Array Chunk
      Bytes 4.48 GiB 91.09 MiB
      Shape (28, 6540, 6560) (28, 130, 6560)
      Count 55 Tasks 55 Chunks
      Type float32 numpy.ndarray
      6560 6540 28
#4 Saving  SEDNA_maps_ALL_IceThickness
dtaa=save.datas(data,plot=Plot,path=nc_outputpath,filename=filename)
start saving data
saving data in a file
---------------------------------------------------------------------------
UnboundLocalError                         Traceback (most recent call last)
File <timed eval>:1, in <module>

File /ccc/work/cont003/gen7420/odakatin/monitor-sedna/notebook/core/monitor.py:84, in auto(df, val, savefig, daskreport, outputpath, file_exp)
     82         print('dtaa=save.datas(data,plot=Plot,path=nc_outputpath,filename=filename)' )
     83         with performance_report(filename=daskreport+"_save_"+step.Value+".html"):
---> 84             save.datas(data,plot=Plot,path=nc_outputpath,filename=filename)                
     85 # 5. Plot       
     86     if plotswitch=='True': 

File /ccc/work/cont003/gen7420/odakatin/monitor-sedna/notebook/core/save.py:24, in datas(data, plot, path, filename)
     22     twoD(data,path,filename,nested=False)
     23 else :
---> 24     twoD(data,path,filename)
     25 return None

File /ccc/work/cont003/gen7420/odakatin/monitor-sedna/notebook/core/save.py:57, in twoD(data, path, filename, nested)
     55 print('saving data in a file')
     56 filesave=path+filename  
---> 57 return to_mfnetcdf_map(data,prefix=filesave, nested=nested)

File /ccc/work/cont003/gen7420/odakatin/monitor-sedna/notebook/core/save.py:219, in to_mfnetcdf_map(ds, prefix, nested)
    217             slices.append(slice(start, stop))
    218             start = stop
--> 219     chunk_slices[dim] = slices
    220 for i in chunk_slices['t']:
    221     print(i)

UnboundLocalError: local variable 'slices' referenced before assignment