%matplotlib inline
import pandas as pd
import socket
host = socket.getfqdn()
from core import load, zoom, calc, save,plots,monitor
#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)
<module 'core.monitor' from '/ccc/work/cont003/gen7420/odakatin/monitor-sedna/notebook/core/monitor.py'>
# '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=Ints_monitor
# 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 calc=True
%%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= irene8001.c-irene.tgcc.ccc.cea.fr starting dask cluster on local= True workers 16 10000000000 False not local in tgcc c-irene.tgcc local FORCED tgcc local cluster starting This code is running on irene8001.c-irene.tgcc.ccc.cea.fr using SEDNA_ALPHA_MONITOR file experiment, read from ../lib/SEDNA_ALPHA_MONITOR.yaml on year= * on month= 23 outputpath= ../results/xlarge_SEDNA_ALPHA_MONITOR/23/ daskreport= ../results/dask/7374146irene8001.c-irene.tgcc.ccc.cea.fr_SEDNA_ALPHA_MONITOR_23FWC_integrals_moni/ CPU times: user 787 ms, sys: 687 ms, total: 1.47 s Wall time: 15.6 s
Client
|
Cluster
|
df=load.controlfile(control)
#Take out 'later' tagged computations
df=df[~df['Value'].str.contains('later')]
df
Value | Inputs | Equation | Zone | Plot | Colourmap | MinMax | Unit | Oldname | Unnamed: 10 | |
---|---|---|---|---|---|---|---|---|---|---|
FWC_integrals | gridT-2D.ssh,param.e1te2t | calc.FWC_load_integrals(data,nc_outputpath) | BBFG | FWC_integrals | (12000,24000) | Km^3 | I-1 |
Each computation consists of
%%time
#todo add 'year' here.
import os
calcswitch=os.environ.get('calc', 'True')
print('calcswitch=',calcswitch)
#if calcswitch=='True':
data = load.datas(catalog_url,df.Inputs,month,year,daskreport) if calcswitch=='True' else 0
data
#print('#1 Data: created:')
#print('# if we raed too much file, we can do sel to take out some dates here')
#data
calcswitch= True ../lib/SEDNA_ALPHA_MONITOR.yaml using param_xios reading ../lib/SEDNA_ALPHA_MONITOR.yaml using param_xios reading <bound method DataSourceBase.describe of sources: param_xios: args: combine: by_coords 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': 'by_coords', 'concat_dim': 'y'}} 0 read gridT-2D ['ssh'] using load_data_xios reading gridT-2D using load_data_xios reading <bound method DataSourceBase.describe of sources: data_xios: args: combine: by_coords concat_dim: time_counter,x,y urlpath: /ccc/scratch/cont003/gen7420/talandel/ONGOING-RUNS/SEDNA-ALPHA-XIOS.23/SEDNA-ALPHA_1d_gridT-2D_*_0[0-5][0-9][0-9].nc xarray_kwargs: compat: override coords: minimal data_vars: minimal drop_variables: !!set deptht_bounds: null depthu_bounds: null time_centered_bounds: null time_counter_bounds: null parallel: true preprocess: !!python/name:core.load.prep '' description: SEDNA NEMO outputs from different xios server driver: intake_xarray.netcdf.NetCDFSource metadata: catalog_dir: /ccc/work/cont003/gen7420/odakatin/monitor-sedna/notebook/../lib/ > took 161.09001970291138 seconds 0 merging gridT-2D ['ssh'] param e1te2t will be included in data param nav_lon will be included in data param mask2d will be included in data param nav_lat will be included in data 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 28.6 s, sys: 19.7 s, total: 48.3 s Wall time: 3min
<xarray.Dataset> Dimensions: (t: 31, x: 6560, y: 6540) 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> * t (t) object 2004-07-01 12:00:00 ... 2004-07-31 12:00:00 * y (y) int64 1 2 3 4 5 6 7 8 ... 6534 6535 6536 6537 6538 6539 6540 * x (x) int64 1 2 3 4 5 6 7 8 ... 6554 6555 6556 6557 6558 6559 6560 e1te2t (y, x) float64 dask.array<chunksize=(130, 6560), meta=np.ndarray> mask2d (y, x) bool dask.array<chunksize=(130, 6560), meta=np.ndarray> Data variables: ssh (t, y, x) float32 dask.array<chunksize=(31, 130, 6560), meta=np.ndarray> Attributes: name: /ccc/scratch/cont003/gen7420/talandel/ONGOING-RU... description: ocean T grid variables title: ocean T grid variables Conventions: CF-1.6 timeStamp: 2021-Aug-04 15:32:37 GMT uuid: 4ac9ca46-9c49-4b7b-99b6-1d993847dd0a 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: 20030101 output_frequency: 1d CONFIG: SEDNA CASE: ALPHA
|
|
array([cftime.DatetimeNoLeap(2004, 7, 1, 12, 0, 0, 0), cftime.DatetimeNoLeap(2004, 7, 2, 12, 0, 0, 0), cftime.DatetimeNoLeap(2004, 7, 3, 12, 0, 0, 0), cftime.DatetimeNoLeap(2004, 7, 4, 12, 0, 0, 0), cftime.DatetimeNoLeap(2004, 7, 5, 12, 0, 0, 0), cftime.DatetimeNoLeap(2004, 7, 6, 12, 0, 0, 0), cftime.DatetimeNoLeap(2004, 7, 7, 12, 0, 0, 0), cftime.DatetimeNoLeap(2004, 7, 8, 12, 0, 0, 0), cftime.DatetimeNoLeap(2004, 7, 9, 12, 0, 0, 0), cftime.DatetimeNoLeap(2004, 7, 10, 12, 0, 0, 0), cftime.DatetimeNoLeap(2004, 7, 11, 12, 0, 0, 0), cftime.DatetimeNoLeap(2004, 7, 12, 12, 0, 0, 0), cftime.DatetimeNoLeap(2004, 7, 13, 12, 0, 0, 0), cftime.DatetimeNoLeap(2004, 7, 14, 12, 0, 0, 0), cftime.DatetimeNoLeap(2004, 7, 15, 12, 0, 0, 0), cftime.DatetimeNoLeap(2004, 7, 16, 12, 0, 0, 0), cftime.DatetimeNoLeap(2004, 7, 17, 12, 0, 0, 0), cftime.DatetimeNoLeap(2004, 7, 18, 12, 0, 0, 0), cftime.DatetimeNoLeap(2004, 7, 19, 12, 0, 0, 0), cftime.DatetimeNoLeap(2004, 7, 20, 12, 0, 0, 0), cftime.DatetimeNoLeap(2004, 7, 21, 12, 0, 0, 0), cftime.DatetimeNoLeap(2004, 7, 22, 12, 0, 0, 0), cftime.DatetimeNoLeap(2004, 7, 23, 12, 0, 0, 0), cftime.DatetimeNoLeap(2004, 7, 24, 12, 0, 0, 0), cftime.DatetimeNoLeap(2004, 7, 25, 12, 0, 0, 0), cftime.DatetimeNoLeap(2004, 7, 26, 12, 0, 0, 0), cftime.DatetimeNoLeap(2004, 7, 27, 12, 0, 0, 0), cftime.DatetimeNoLeap(2004, 7, 28, 12, 0, 0, 0), cftime.DatetimeNoLeap(2004, 7, 29, 12, 0, 0, 0), cftime.DatetimeNoLeap(2004, 7, 30, 12, 0, 0, 0), cftime.DatetimeNoLeap(2004, 7, 31, 12, 0, 0, 0)], dtype=object)
array([ 1, 2, 3, ..., 6538, 6539, 6540])
array([ 1, 2, 3, ..., 6558, 6559, 6560])
|
|
|
%%time
monitor.auto(df,data,savefig,daskreport,outputpath,file_exp='SEDNA'
)
#calc= True #save= True #plot= True Zone='BBFG' Value='FWC_integrals' cmap='' clabel='Km^3' clim= (12000, 24000) outputpath='../results/xlarge_SEDNA_ALPHA_MONITOR/23/' nc_outputpath='../nc_results/xlarge_SEDNA_ALPHA_MONITOR/23/' filename='SEDNA_FWC_integrals_BBFG_FWC_integrals' #2 Zooming Data dataa= zoom.BBFG(data)
<xarray.Dataset> Dimensions: (t: 31, x: 6560, y: 5264) Coordinates: * x (x) int64 1 2 3 4 5 6 7 8 ... 6554 6555 6556 6557 6558 6559 6560 * y (y) int64 1277 1278 1279 1280 1281 ... 6536 6537 6538 6539 6540 nav_lat (y, x) float32 dask.array<chunksize=(56, 6560), meta=np.ndarray> nav_lon (y, x) float32 dask.array<chunksize=(56, 6560), meta=np.ndarray> * t (t) object 2004-07-01 12:00:00 ... 2004-07-31 12:00:00 e1te2t (y, x) float64 dask.array<chunksize=(56, 6560), meta=np.ndarray> mask2d (y, x) bool dask.array<chunksize=(56, 6560), meta=np.ndarray> Data variables: ssh (t, y, x) float32 dask.array<chunksize=(31, 56, 6560), meta=np.ndarray> Attributes: name: /ccc/scratch/cont003/gen7420/talandel/ONGOING-RU... description: ocean T grid variables title: ocean T grid variables Conventions: CF-1.6 timeStamp: 2021-Aug-04 15:32:37 GMT uuid: 4ac9ca46-9c49-4b7b-99b6-1d993847dd0a 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: 20030101 output_frequency: 1d CONFIG: SEDNA CASE: ALPHA
array([ 1, 2, 3, ..., 6558, 6559, 6560])
array([1277, 1278, 1279, ..., 6538, 6539, 6540])
|
|
array([cftime.DatetimeNoLeap(2004, 7, 1, 12, 0, 0, 0), cftime.DatetimeNoLeap(2004, 7, 2, 12, 0, 0, 0), cftime.DatetimeNoLeap(2004, 7, 3, 12, 0, 0, 0), cftime.DatetimeNoLeap(2004, 7, 4, 12, 0, 0, 0), cftime.DatetimeNoLeap(2004, 7, 5, 12, 0, 0, 0), cftime.DatetimeNoLeap(2004, 7, 6, 12, 0, 0, 0), cftime.DatetimeNoLeap(2004, 7, 7, 12, 0, 0, 0), cftime.DatetimeNoLeap(2004, 7, 8, 12, 0, 0, 0), cftime.DatetimeNoLeap(2004, 7, 9, 12, 0, 0, 0), cftime.DatetimeNoLeap(2004, 7, 10, 12, 0, 0, 0), cftime.DatetimeNoLeap(2004, 7, 11, 12, 0, 0, 0), cftime.DatetimeNoLeap(2004, 7, 12, 12, 0, 0, 0), cftime.DatetimeNoLeap(2004, 7, 13, 12, 0, 0, 0), cftime.DatetimeNoLeap(2004, 7, 14, 12, 0, 0, 0), cftime.DatetimeNoLeap(2004, 7, 15, 12, 0, 0, 0), cftime.DatetimeNoLeap(2004, 7, 16, 12, 0, 0, 0), cftime.DatetimeNoLeap(2004, 7, 17, 12, 0, 0, 0), cftime.DatetimeNoLeap(2004, 7, 18, 12, 0, 0, 0), cftime.DatetimeNoLeap(2004, 7, 19, 12, 0, 0, 0), cftime.DatetimeNoLeap(2004, 7, 20, 12, 0, 0, 0), cftime.DatetimeNoLeap(2004, 7, 21, 12, 0, 0, 0), cftime.DatetimeNoLeap(2004, 7, 22, 12, 0, 0, 0), cftime.DatetimeNoLeap(2004, 7, 23, 12, 0, 0, 0), cftime.DatetimeNoLeap(2004, 7, 24, 12, 0, 0, 0), cftime.DatetimeNoLeap(2004, 7, 25, 12, 0, 0, 0), cftime.DatetimeNoLeap(2004, 7, 26, 12, 0, 0, 0), cftime.DatetimeNoLeap(2004, 7, 27, 12, 0, 0, 0), cftime.DatetimeNoLeap(2004, 7, 28, 12, 0, 0, 0), cftime.DatetimeNoLeap(2004, 7, 29, 12, 0, 0, 0), cftime.DatetimeNoLeap(2004, 7, 30, 12, 0, 0, 0), cftime.DatetimeNoLeap(2004, 7, 31, 12, 0, 0, 0)], dtype=object)
|
|
|
#3 Start computing dtaa= calc.FWC_load_integrals(data,nc_outputpath) start saving data filename= ../nc_results/xlarge_SEDNA_ALPHA_MONITOR/23/SEDNA_maps_BBFG_FWC_2D/t_*/x_*/y_*.nc
--------------------------------------------------------------------------- OSError Traceback (most recent call last) <timed eval> in <module> /ccc/work/cont003/gen7420/odakatin/monitor-sedna/notebook/core/monitor.py in auto(df, val, savefig, daskreport, outputpath, file_exp) 57 #print('count:',data.count()) 58 with performance_report(filename=daskreport+"_calc_"+step.Value+".html"): ---> 59 data=eval(command) 60 #print('persist ') 61 #data=data.persist() /ccc/work/cont003/gen7420/odakatin/monitor-sedna/notebook/core/monitor.py in <module> /ccc/work/cont003/gen7420/odakatin/monitor-sedna/notebook/core/calc.py in FWC_load_integrals(data, nc_outputpath) 207 import xarray as xr 208 filename='SEDNA_maps_BBFG_FWC_2D' --> 209 FWC2D=save.load_data(plot='map',path=nc_outputpath,filename=filename).FWC2D 210 #=data.FWC2D 211 ds=xr.Dataset({"FWC_Arctic":(FWC2D*data.e1te2t).sum(dim=('x','y'))}) /ccc/work/cont003/gen7420/odakatin/monitor-sedna/notebook/core/save.py in load_data(plot, path, filename) 31 data=load_twoD(path,filename,nested=False) 32 else: ---> 33 data=load_twoD(path,filename) 34 print('load computed data completed') 35 return data /ccc/work/cont003/gen7420/odakatin/monitor-sedna/notebook/core/save.py in load_twoD(path, filename, nested) 45 ,concat_dim=('x','y','t') 46 ,combine='by_coords' #param_xios ---> 47 ,coords='minimal') 48 49 def twoD(data,path='../result',filename='toto',nested=True): ~/monitor/lib/python3.7/site-packages/xarray/backends/api.py in open_mfdataset(paths, chunks, concat_dim, compat, preprocess, engine, lock, data_vars, coords, combine, autoclose, parallel, join, attrs_file, **kwargs) 919 920 if not paths: --> 921 raise OSError("no files to open") 922 923 # If combine='by_coords' then this is unnecessary, but quick. OSError: no files to open