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= irene4213.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  irene4213.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= 01  outputpath= ../results/SEDNA_DELTA_MONITOR/ daskreport= ../results/dask/6413745irene4213.c-irene.mg1.tgcc.ccc.cea.fr_SEDNA_DELTA_MONITOR_01M_IceThick/
CPU times: user 521 ms, sys: 135 ms, total: 656 ms
Wall time: 20.7 s
Out[4]:

Client

Client-01c0aa89-1344-11ed-be89-080038b93865

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

Cluster Info

LocalCluster

02269398

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-6cb5a6bd-4759-4543-806d-233de651ef64

Comm: tcp://127.0.0.1:41782 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:38862 Total threads: 8
Dashboard: http://127.0.0.1:38344/status Memory: 15.69 GiB
Nanny: tcp://127.0.0.1:42476
Local directory: /tmp/dask-worker-space/worker-51ivek71

Worker: 1

Comm: tcp://127.0.0.1:39403 Total threads: 8
Dashboard: http://127.0.0.1:32880/status Memory: 15.69 GiB
Nanny: tcp://127.0.0.1:45832
Local directory: /tmp/dask-worker-space/worker-1wfxhimz

Worker: 2

Comm: tcp://127.0.0.1:41358 Total threads: 8
Dashboard: http://127.0.0.1:46578/status Memory: 15.69 GiB
Nanny: tcp://127.0.0.1:40402
Local directory: /tmp/dask-worker-space/worker-yn7u3i2b

Worker: 3

Comm: tcp://127.0.0.1:36730 Total threads: 8
Dashboard: http://127.0.0.1:34742/status Memory: 15.69 GiB
Nanny: tcp://127.0.0.1:40878
Local directory: /tmp/dask-worker-space/worker-gtz3fn0v

Worker: 4

Comm: tcp://127.0.0.1:36554 Total threads: 8
Dashboard: http://127.0.0.1:44482/status Memory: 15.69 GiB
Nanny: tcp://127.0.0.1:39712
Local directory: /tmp/dask-worker-space/worker-26hsiuo5

Worker: 5

Comm: tcp://127.0.0.1:45077 Total threads: 8
Dashboard: http://127.0.0.1:39947/status Memory: 15.69 GiB
Nanny: tcp://127.0.0.1:34945
Local directory: /tmp/dask-worker-space/worker-bqnkl196

Worker: 6

Comm: tcp://127.0.0.1:33341 Total threads: 8
Dashboard: http://127.0.0.1:44172/status Memory: 15.69 GiB
Nanny: tcp://127.0.0.1:42641
Local directory: /tmp/dask-worker-space/worker-ksw0rdw7

Worker: 7

Comm: tcp://127.0.0.1:39419 Total threads: 8
Dashboard: http://127.0.0.1:40318/status Memory: 15.69 GiB
Nanny: tcp://127.0.0.1:33558
Local directory: /tmp/dask-worker-space/worker-79qp4u34

Worker: 8

Comm: tcp://127.0.0.1:41994 Total threads: 8
Dashboard: http://127.0.0.1:44442/status Memory: 15.69 GiB
Nanny: tcp://127.0.0.1:35807
Local directory: /tmp/dask-worker-space/worker-w4tzp4h5

Worker: 9

Comm: tcp://127.0.0.1:43692 Total threads: 8
Dashboard: http://127.0.0.1:45982/status Memory: 15.69 GiB
Nanny: tcp://127.0.0.1:38162
Local directory: /tmp/dask-worker-space/worker-jpp3i8fs

Worker: 10

Comm: tcp://127.0.0.1:43449 Total threads: 8
Dashboard: http://127.0.0.1:45600/status Memory: 15.69 GiB
Nanny: tcp://127.0.0.1:39152
Local directory: /tmp/dask-worker-space/worker-z6az583s

Worker: 11

Comm: tcp://127.0.0.1:38576 Total threads: 8
Dashboard: http://127.0.0.1:37397/status Memory: 15.69 GiB
Nanny: tcp://127.0.0.1:34890
Local directory: /tmp/dask-worker-space/worker-e3jbn24l

Worker: 12

Comm: tcp://127.0.0.1:45743 Total threads: 8
Dashboard: http://127.0.0.1:40227/status Memory: 15.69 GiB
Nanny: tcp://127.0.0.1:40027
Local directory: /tmp/dask-worker-space/worker-1gcg_842

Worker: 13

Comm: tcp://127.0.0.1:46109 Total threads: 8
Dashboard: http://127.0.0.1:42550/status Memory: 15.69 GiB
Nanny: tcp://127.0.0.1:38748
Local directory: /tmp/dask-worker-space/worker-zgura3zh

Worker: 14

Comm: tcp://127.0.0.1:37917 Total threads: 8
Dashboard: http://127.0.0.1:36973/status Memory: 15.69 GiB
Nanny: tcp://127.0.0.1:36395
Local directory: /tmp/dask-worker-space/worker-qr3w7mla

Worker: 15

Comm: tcp://127.0.0.1:43765 Total threads: 8
Dashboard: http://127.0.0.1:40710/status Memory: 15.69 GiB
Nanny: tcp://127.0.0.1:35014
Local directory: /tmp/dask-worker-space/worker-2fhc5df9

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','False' )
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= False
../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_kerchunk reading  icemod
using load_data_xios_kerchunk reading  <bound method DataSourceBase.describe of sources:
  data_xios_kerchunk:
    args:
      consolidated: false
      storage_options:
        fo: file:////ccc/cont003/home/ra5563/ra5563/catalogue/DELTA/201201/icemod_0[0-5][0-9][0-9].json
        target_protocol: file
      urlpath: reference://
    description: CREG025 NEMO outputs from different xios server in kerchunk format
    driver: intake_xarray.xzarr.ZarrSource
    metadata:
      catalog_dir: /ccc/work/cont003/gen7420/odakatin/monitor-sedna/notebook/../lib/
>
      took 31.93233346939087 seconds
0 merging icemod ['sivolu']
param nav_lon will be included in data
param mask2d will be included in data
param nav_lat 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 34.3 s, sys: 2.52 s, total: 36.9 s
Wall time: 56.4 s
Out[6]:
<xarray.Dataset>
Dimensions:        (t: 31, y: 6540, x: 6560)
Coordinates:
    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=(1,), meta=np.ndarray>
  * t              (t) object 2012-01-01 12:00:00 ... 2012-01-31 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
    mask2d         (y, x) bool dask.array<chunksize=(130, 6560), meta=np.ndarray>
Data variables:
    sivolu         (t, y, x) float32 dask.array<chunksize=(1, 130, 6560), meta=np.ndarray>
Attributes: (12/26)
    CASE:                    DELTA
    CONFIG:                  SEDNA
    Conventions:             CF-1.6
    DOMAIN_dimensions_ids:   [2, 3]
    DOMAIN_halo_size_end:    [0, 0]
    DOMAIN_halo_size_start:  [0, 0]
    ...                      ...
    nj:                      13
    output_frequency:        1d
    start_date:              20090101
    timeStamp:               2022-Jan-17 19:00:05 GMT
    title:                   ice variables
    uuid:                    65f78891-6a37-4a91-8ad4-7c8b5dc0d456
xarray.Dataset
    • t: 31
    • y: 6540
    • x: 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=(1,), meta=np.ndarray>
      bounds :
      time_centered_bounds
      long_name :
      Time axis
      standard_name :
      time
      time_origin :
      1900-01-01 00:00:00
      Array Chunk
      Bytes 248 B 8 B
      Shape (31,) (1,)
      Count 32 Tasks 31 Chunks
      Type object numpy.ndarray
      31 1
    • t
      (t)
      object
      2012-01-01 12:00:00 ... 2012-01-...
      axis :
      T
      bounds :
      time_counter_bounds
      long_name :
      Time axis
      standard_name :
      time
      time_origin :
      1900-01-01 00:00:00
      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)],
            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])
    • 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=(1, 130, 6560), meta=np.ndarray>
      cell_methods :
      time: mean (interval: 40 s)
      interval_operation :
      40 s
      interval_write :
      1 d
      long_name :
      ice volume
      online_operation :
      average
      standard_name :
      sea_ice_thickness
      units :
      m
      Array Chunk
      Bytes 4.95 GiB 3.25 MiB
      Shape (31, 6540, 6560) (1, 130, 6560)
      Count 35977 Tasks 1705 Chunks
      Type float32 numpy.ndarray
      6560 6540 31
  • CASE :
    DELTA
    CONFIG :
    SEDNA
    Conventions :
    CF-1.6
    DOMAIN_dimensions_ids :
    [2, 3]
    DOMAIN_halo_size_end :
    [0, 0]
    DOMAIN_halo_size_start :
    [0, 0]
    DOMAIN_number :
    0
    DOMAIN_number_total :
    544
    DOMAIN_position_first :
    [1, 1]
    DOMAIN_position_last :
    [6560, 13]
    DOMAIN_size_global :
    [6560, 6540]
    DOMAIN_size_local :
    [6560, 13]
    DOMAIN_type :
    box
    NCO :
    netCDF Operators version 4.9.1 (Homepage = http://nco.sf.net, Code = http://github.com/nco/nco)
    description :
    ice variables
    history :
    Tue Jan 18 17:20:08 2022: ncks -4 -L 1 SEDNA-DELTA_1d_icemod_201201-201201_NOZIP_0000.nc /ccc/scratch/cont003/gen7420/talandel/SEDNA/SEDNA-DELTA-S/SPLIT/1d/2012/01/SEDNA-DELTA_1d_icemod_201201-201201_0000.nc Tue Jan 18 17:20:02 2022: ncrcat -n 31,2,1 SEDNA-DELTA_1d_icemod_0000_01.nc SEDNA-DELTA_1d_icemod_201201-201201_NOZIP_0000.nc
    ibegin :
    0
    jbegin :
    0
    name :
    /ccc/scratch/cont003/ra5563/talandel/ONGOING-RUNS/SEDNA-DELTA-XIOS.46/SEDNA-DELTA_1d_icemod
    ni :
    6560
    nj :
    13
    output_frequency :
    1d
    start_date :
    20090101
    timeStamp :
    2022-Jan-17 19:00:05 GMT
    title :
    ice variables
    uuid :
    65f78891-6a37-4a91-8ad4-7c8b5dc0d456
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:        (y: 6540, x: 6560, t: 31)
Coordinates:
    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=(31,), meta=np.ndarray>
  * t              (t) object 2012-01-01 12:00:00 ... 2012-01-31 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
    mask2d         (y, x) bool dask.array<chunksize=(130, 6560), meta=np.ndarray>
Data variables:
    sivolu         (t, y, x) float32 dask.array<chunksize=(31, 130, 6560), meta=np.ndarray>
xarray.Dataset
    • y: 6540
    • x: 6560
    • t: 31
    • 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=(31,), meta=np.ndarray>
      bounds :
      time_centered_bounds
      long_name :
      Time axis
      standard_name :
      time
      time_origin :
      1900-01-01 00:00:00
      Array Chunk
      Bytes 248 B 248 B
      Shape (31,) (31,)
      Count 1 Tasks 1 Chunks
      Type object numpy.ndarray
      31 1
    • t
      (t)
      object
      2012-01-01 12:00:00 ... 2012-01-...
      axis :
      T
      bounds :
      time_counter_bounds
      long_name :
      Time axis
      standard_name :
      time
      time_origin :
      1900-01-01 00:00:00
      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)],
            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])
    • 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=(31, 130, 6560), meta=np.ndarray>
      cell_methods :
      time: mean (interval: 40 s)
      interval_operation :
      40 s
      interval_write :
      1 d
      long_name :
      ice volume
      online_operation :
      average
      standard_name :
      sea_ice_thickness
      units :
      m
      Array Chunk
      Bytes 4.95 GiB 100.85 MiB
      Shape (31, 6540, 6560) (31, 130, 6560)
      Count 55 Tasks 55 Chunks
      Type float32 numpy.ndarray
      6560 6540 31
#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