pgierz / esm-viz Goto Github PK
View Code? Open in Web Editor NEWTools to streamline simulation monitoring
License: Other
Tools to streamline simulation monitoring
License: Other
For Climatology Maps, we need:
When visualizing FESOM
output; it is often required to use the mesh information to correctly apply weights to the individual elements. It would be therefore good if we could somehow cache a downloaded mesh for later collection in a centralized place.
def download_mesh(remote_mesh_path):
# Note: local_temporary_directory should point somewhere where this particular user can write.
mesh = sftp.get(remote_mesh_path, local_temporary_directory)
with open(os.environ.get(‘HOME’)+‘/.config/monitoring/downloaded_meshes’, ‘a’) as mesh_cache:
mesh_cache.write(local_temporary_directory)
And then an appropriate function to digest these files and clean up...
My wishlist for esm-viz in priority order
README.md
: a clearer (and shorter) how to install and use, a list of possible options (which time series and climatologies)tosga
, sosga
, thetaoga
, soga
, siextentn
, siextents
, siarean
, siareas
, sivoln
and/or sivols
are available and include them as time series@chrisdane can you please confirm that if you do not have any ssh keys generated, the program fails to perform the deploy
step? I am considering if it makes sense to add a step to:
If this sounds like a good idea, I'd like to try it out. There will probably also be a testing suite soon, so hopefully I will annoy you less to test things by hand.
I would like to set the installation path to change it from the default ~/.local/
. Is this possible?
This would also kind of solve the issue that the user needs to add the installation manually to PATH
, which is maybe not the best procedere?
Thanks!
Currently, generating the static monitoring page depends on the user having jupyter nbconvert
installed. This could be avoided via programatic access to nbconvert
directly from Python. See here for the documentation of using nbconvert
directly in Python code.
Chris reports that there is no config folder present by default.
For AWICM 1/2 we need FESOM
timeseries for simple cases, we need:
However, this brings up an interesting point, namely that timeseries in FESOM
will need some way of getting the mesh to the analysis host. This should be shared across users if possible; which means that we need some way to cache requests to move copied meshes to some centralized location.
With iteratively coupled experiments; the deploy command currently doesn't
check if the model is coupled or not; so it tries to run commands directly in
the BASE_DIR
; which obviously doesn't work.
This tool needs better logging...
With rsa key:
$ esm_viz deploy --expid=example
INFO:paramiko.transport:Connected (version 2.0, client OpenSSH_5.3)
INFO:paramiko.transport:Authentication (publickey) successful!
INFO:paramiko.transport:Connected (version 2.0, client OpenSSH_5.3)
INFO:paramiko.transport:Authentication (publickey) successful!
INFO:paramiko.transport.sftp:[chan 0] Opened sftp connection (server version 3)
INFO:root:The analysis script will be copied to: /work/ab0246/a270073/awicm-test/CMIP6/CMIP_PMIP/dynveg_true/hist/analysis/echam/monitoring_echam_global_timeseries.sh
INFO:paramiko.transport.sftp:[chan 0] sftp session closed.
Traceback (most recent call last):
File "/home/csys/cdanek/esm/esm-viz/bin/esm_viz", line 11, in <module>
load_entry_point('esm-viz==0.9.4', 'console_scripts', 'esm_viz')()
File "/home/csys/cdanek/.local/lib/python2.7/site-packages/click/core.py", line 764, in __call__
return self.main(*args, **kwargs)
File "/home/csys/cdanek/.local/lib/python2.7/site-packages/click/core.py", line 717, in main
rv = self.invoke(ctx)
File "/home/csys/cdanek/.local/lib/python2.7/site-packages/click/core.py", line 1137, in invoke
return _process_result(sub_ctx.command.invoke(sub_ctx))
File "/home/csys/cdanek/.local/lib/python2.7/site-packages/click/core.py", line 956, in invoke
return ctx.invoke(self.callback, **ctx.params)
File "/home/csys/cdanek/.local/lib/python2.7/site-packages/click/core.py", line 555, in invoke
return callback(*args, **kwargs)
File "/home/csys/cdanek/esm/esm-viz/lib/python2.7/site-packages/esm_viz/cli.py", line 172, in deploy
component, script_to_run
File "/home/csys/cdanek/esm/esm-viz/lib/python2.7/site-packages/esm_viz/deployment/__init__.py", line 410, in copy_analysis_script_for_component
if not rexists(sftp, remote_script):
File "/home/csys/cdanek/esm/esm-viz/lib/python2.7/site-packages/esm_viz/deployment/__init__.py", line 73, in rexists
except FileNotFoundError:
NameError: global name 'FileNotFoundError' is not defined
$ python --version
Python 2.7.12
It would be nice if the monitoring tools recognized the simulation being monitored, and copied relevant scripts to supercomputer. Since it is already assumed that the user has set up ssh keys, this should be a trivial step. In a "deploy script" (we still really need names and sematic unity for everything), I should put something like:
ssh ${USER}@${SUPERCOMPUTER} << EOF
for this_analysis_script in ${required_analysis_scripts}; do
if [ ! -f ${analysis_dir}/scripts/${this_analysis_script} ]; then
scp ${this_analysis_script} ${USER}@${SUPERCOMPUTER}:${analysis_dir}
fi
done
EOF
After installing, the error
$ esm_viz --version
esm_viz: command not found
occurs. However, installing probably was successful?:
$ pip install --user .
Processing /home/csys/cdanek/esm/esm-viz
Requirement already satisfied (use --upgrade to upgrade): esm-viz==0.8.0 from file:///home/csys/cdanek/esm/esm-viz in /home/csys/cdanek/.local/lib/python2.7/site-packages
Requirement already satisfied: Click>=6.0 in /home/csys/cdanek/.local/lib/python2.7/site-packages (from esm-viz==0.8.0)
Requirement already satisfied: nbformat in /home/csys/cdanek/.local/lib/python2.7/site-packages (from esm-viz==0.8.0)
Requirement already satisfied: nbmerge in /home/csys/cdanek/.local/lib/python2.7/site-packages (from esm-viz==0.8.0)
Requirement already satisfied: paramiko in /home/csys/cdanek/.local/lib/python2.7/site-packages (from esm-viz==0.8.0)
Requirement already satisfied: python-crontab in /home/csys/cdanek/.local/lib/python2.7/site-packages (from esm-viz==0.8.0)
Requirement already satisfied: pyyaml in /home/csys/cdanek/.local/lib/python2.7/site-packages (from esm-viz==0.8.0)
Requirement already satisfied: traitlets>=4.1 in /usr/local/lib/python2.7/dist-packages (from nbformat->esm-viz==0.8.0)
Requirement already satisfied: ipython-genutils in /usr/local/lib/python2.7/dist-packages (from nbformat->esm-viz==0.8.0)
Requirement already satisfied: jupyter-core in /home/csys/cdanek/.local/lib/python2.7/site-packages (from nbformat->esm-viz==0.8.0)
Requirement already satisfied: jsonschema!=2.5.0,>=2.4 in /home/csys/cdanek/.local/lib/python2.7/site-packages (from nbformat->esm-viz==0.8.0)
Requirement already satisfied: bcrypt>=3.1.3 in /home/csys/cdanek/.local/lib/python2.7/site-packages (from paramiko->esm-viz==0.8.0)
Requirement already satisfied: pynacl>=1.0.1 in /home/csys/cdanek/.local/lib/python2.7/site-packages (from paramiko->esm-viz==0.8.0)
Requirement already satisfied: cryptography>=2.5 in /home/csys/cdanek/.local/lib/python2.7/site-packages (from paramiko->esm-viz==0.8.0)
Requirement already satisfied: python-dateutil in /home/csys/cdanek/.local/lib/python2.7/site-packages (from python-crontab->esm-viz==0.8.0)
Requirement already satisfied: decorator in /home/csys/cdanek/.local/lib/python2.7/site-packages (from traitlets>=4.1->nbformat->esm-viz==0.8.0)
Requirement already satisfied: six in /home/csys/cdanek/.local/lib/python2.7/site-packages (from traitlets>=4.1->nbformat->esm-viz==0.8.0)
Requirement already satisfied: enum34; python_version == "2.7" in /usr/local/lib/python2.7/dist-packages (from traitlets>=4.1->nbformat->esm-viz==0.8.0)
Requirement already satisfied: attrs>=17.4.0 in /home/csys/cdanek/.local/lib/python2.7/site-packages (from jsonschema!=2.5.0,>=2.4->nbformat->esm-viz==0.8.0)
Requirement already satisfied: functools32; python_version < "3" in /usr/local/lib/python2.7/dist-packages (from jsonschema!=2.5.0,>=2.4->nbformat->esm-viz==0.8.0)
Requirement already satisfied: setuptools in /home/csys/cdanek/.local/lib/python2.7/site-packages (from jsonschema!=2.5.0,>=2.4->nbformat->esm-viz==0.8.0)
Requirement already satisfied: pyrsistent>=0.14.0 in /home/csys/cdanek/.local/lib/python2.7/site-packages (from jsonschema!=2.5.0,>=2.4->nbformat->esm-viz==0.8.0)
Requirement already satisfied: cffi>=1.1 in /home/csys/cdanek/.local/lib/python2.7/site-packages (from bcrypt>=3.1.3->paramiko->esm-viz==0.8.0)
Requirement already satisfied: asn1crypto>=0.21.0 in /home/csys/cdanek/.local/lib/python2.7/site-packages (from cryptography>=2.5->paramiko->esm-viz==0.8.0)
Requirement already satisfied: ipaddress; python_version < "3" in /home/csys/cdanek/.local/lib/python2.7/site-packages (from cryptography>=2.5->paramiko->esm-viz==0.8.0)
Requirement already satisfied: pycparser in /home/csys/cdanek/.local/lib/python2.7/site-packages (from cffi>=1.1->bcrypt>=3.1.3->paramiko->esm-viz==0.8.0)
You are using pip version 9.0.1, however version 19.2.3 is available.
You should consider upgrading via the 'pip install --upgrade pip' command.
For full monitoring of ECHAM time series, we need:
Without rsa
$ esm_viz deploy --expid=example
INFO:paramiko.transport:Connected (version 2.0, client OpenSSH_5.3)
Traceback (most recent call last):
File "/home/csys/cdanek/esm/esm-viz/bin/esm_viz", line 11, in <module>
load_entry_point('esm-viz==0.9.4', 'console_scripts', 'esm_viz')()
File "/home/csys/cdanek/.local/lib/python2.7/site-packages/click/core.py", line 764, in __call__
return self.main(*args, **kwargs)
File "/home/csys/cdanek/.local/lib/python2.7/site-packages/click/core.py", line 717, in main
rv = self.invoke(ctx)
File "/home/csys/cdanek/.local/lib/python2.7/site-packages/click/core.py", line 1137, in invoke
return _process_result(sub_ctx.command.invoke(sub_ctx))
File "/home/csys/cdanek/.local/lib/python2.7/site-packages/click/core.py", line 956, in invoke
return ctx.invoke(self.callback, **ctx.params)
File "/home/csys/cdanek/.local/lib/python2.7/site-packages/click/core.py", line 555, in invoke
return callback(*args, **kwargs)
File "/home/csys/cdanek/esm/esm-viz/lib/python2.7/site-packages/esm_viz/cli.py", line 123, in deploy
config.get("required_modules", ["anaconda3", "cdo"]),
File "/home/csys/cdanek/esm/esm-viz/lib/python2.7/site-packages/esm_viz/deployment/__init__.py", line 273, in __init__
if not self._can_login_to_host_without_password():
File "/home/csys/cdanek/esm/esm-viz/lib/python2.7/site-packages/esm_viz/deployment/__init__.py", line 289, in _can_login_to_host_without_password
self.ssh.connect(self.host, username=self.user)
File "/home/csys/cdanek/.local/lib/python2.7/site-packages/paramiko/client.py", line 446, in connect
passphrase,
File "/home/csys/cdanek/.local/lib/python2.7/site-packages/paramiko/client.py", line 765, in _auth
raise SSHException("No authentication methods available")
paramiko.ssh_exception.SSHException: No authentication methods available
$ python --version
Python 2.7.12
It would be good if the ECHAM catted file is only removed in the very last timeseries to avoid reprocessing.
At branch: py2py3_fileerror
$ esm_viz combine --expid=example
['/home/csys/cdanek/.local/lib/python2.7/site-packages/esm_viz/visualization/read_config.ipynb', '/home/csys/cdanek/.local/lib/python2.7/site-packages/esm_viz/visualization/echam_global_timeseries.ipynb', '/home/csys/cdanek/.local/lib/python2.7/site-packages/esm_viz/visualization/echam_global_climatology.ipynb', '/home/csys/cdanek/.local/lib/python2.7/site-packages/esm_viz/visualization//last_update.ipynb']
Combined notebook; executing and converting to HTML
Traceback (most recent call last):
File "/home/csys/cdanek/.local/bin/esm_viz", line 11, in <module>
load_entry_point('esm-viz==0.9.5', 'console_scripts', 'esm_viz')()
File "/home/csys/cdanek/.local/lib/python2.7/site-packages/click/core.py", line 764, in __call__
return self.main(*args, **kwargs)
File "/home/csys/cdanek/.local/lib/python2.7/site-packages/click/core.py", line 717, in main
rv = self.invoke(ctx)
File "/home/csys/cdanek/.local/lib/python2.7/site-packages/click/core.py", line 1137, in invoke
return _process_result(sub_ctx.command.invoke(sub_ctx))
File "/home/csys/cdanek/.local/lib/python2.7/site-packages/click/core.py", line 956, in invoke
return ctx.invoke(self.callback, **ctx.params)
File "/home/csys/cdanek/.local/lib/python2.7/site-packages/click/core.py", line 555, in invoke
return callback(*args, **kwargs)
File "/home/csys/cdanek/.local/lib/python2.7/site-packages/esm_viz/cli.py", line 298, in combine
ep.preprocess(nb, {"metadata": {"path": "./"}})
File "/home/csys/cdanek/.local/lib/python2.7/site-packages/nbconvert/preprocessors/execute.py", line 403, in preprocess
with self.setup_preprocessor(nb, resources, km=km):
File "/usr/lib/python2.7/contextlib.py", line 17, in __enter__
return self.gen.next()
File "/home/csys/cdanek/.local/lib/python2.7/site-packages/nbconvert/preprocessors/execute.py", line 345, in setup_preprocessor
self.km, self.kc = self.start_new_kernel(**kwargs)
File "/home/csys/cdanek/.local/lib/python2.7/site-packages/nbconvert/preprocessors/execute.py", line 287, in start_new_kernel
km = self.kernel_manager_class(kernel_name=self.kernel_name,
File "/usr/local/lib/python2.7/dist-packages/traitlets/traitlets.py", line 556, in __get__
return self.get(obj, cls)
File "/usr/local/lib/python2.7/dist-packages/traitlets/traitlets.py", line 535, in get
value = self._validate(obj, dynamic_default())
File "/home/csys/cdanek/.local/lib/python2.7/site-packages/nbconvert/preprocessors/execute.py", line 251, in _kernel_manager_class_default
raise ImportError("`nbconvert --execute` requires the jupyter_client package: `pip install jupyter_client`")
ImportError: `nbconvert --execute` requires the jupyter_client package: `pip install jupyter_client`
Hi Paul
Thanks for the great tool. Here are two requests that come into my mind:
script
from your confluence document into this repo so that everything needed is here?esm_exp_dir=/work/expname/
esm_models=(echam fesom)
esm_echam_vars=(echam_var1 echam_var2)
esm_fesom_vars=(fesom_var1)
Actually, in my view, it would be great if the script
works automatically without further editing just based on the "namelist" provided by the user.
Thanks!
$ esm_viz --expid 1percCO2
Scheduling...
Successfully scheduled automatic monitoring of 1percCO2 every 2 hours
Deploying...
('Trying to load ', u'1percCO2')
Combining...
('Trying to load ', u'/home/csys/cdanek/.config/esm_viz/jobs/1percCO2.yaml')
/home/csys/cdanek/.local/lib/python2.7/site-packages/esm_viz/visualization/logfile.py:73: SettingWithCopyWarning:
A value is trying to be set on a copy of a slice from a DataFrame
See the caveats in the documentation: http://pandas.pydata.org/pandas-docs/stable/indexing.html#indexing-view-versus-copy
starts.drop_duplicates(subset="Run Number", keep="last", inplace=True)
('Fixing timesteps for:', <xarray.Dataset>
Dimensions: (bnds: 2, lat: 1, lon: 1, time: 32)
Coordinates:
* time (time) datetime64[ns] 1850-07-16T11:52:30 ... 1881-07-16T11:52:30
* lon (lon) float64 0.0
* lat (lat) float64 0.0
Dimensions without coordinates: bnds
Data variables:
time_bnds (time, bnds) datetime64[ns] ...
temp2 (time, lat, lon) float32 ...
Attributes:
CDI: Climate Data Interface version 1.9.7.1 (http://mpimet....
Conventions: CF-1.4
history: Mon Dec 09 11:24:36 2019: cdo -f nc -fldmean -yearmean...
source: ECHAM6
institution: Max-Planck-Institute for Meteorology
title: 1percCO2
echam_version: 6.3.04
advection: Lin & Rood
physics: Modified ECMWF physics
radiation: Using PSrad/RRTMG radiation
date_time: 20191116 184053
operating_system: Linux 2.6.32-754.14.2.el6.x86_64 x86_64
user_name: Christopher Danek (a270073)
host_name: m10162
jsbach_version: 3.11
truncation: 63
frequency: year
CDO: Climate Data Operators version 1.9.7.1 (http://mpimet....)
('Here is the time:', <xarray.DataArray 'time' (time: 32)>
array(['1850-07-16T11:52:30.000000000', '1851-07-16T11:52:30.000000000',
'1852-07-16T11:52:30.000000000', '1853-07-16T11:52:30.000000000',
'1854-07-16T11:52:30.000000000', '1855-07-16T11:52:30.000000000',
'1856-07-16T11:52:30.000000000', '1857-07-16T11:52:30.000000000',
'1858-07-16T11:52:30.000000000', '1859-07-16T11:52:30.000000000',
'1860-07-16T11:52:30.000000000', '1861-07-16T11:52:30.000000000',
'1862-07-16T11:52:30.000000000', '1863-07-16T11:52:30.000000000',
'1864-07-16T11:52:30.000000000', '1865-07-16T11:52:30.000000000',
'1866-07-16T11:52:30.000000000', '1867-07-16T11:52:30.000000000',
'1868-07-16T11:52:30.000000000', '1869-07-16T11:52:30.000000000',
'1870-07-16T11:52:30.000000000', '1871-07-16T11:52:30.000000000',
'1872-07-16T11:52:30.000000000', '1873-07-16T11:52:30.000000000',
'1874-07-16T11:52:30.000000000', '1875-07-16T11:52:30.000000000',
'1876-07-16T11:52:30.000000000', '1877-07-16T11:52:30.000000000',
'1878-07-16T11:52:30.000000000', '1879-07-16T11:52:30.000000000',
'1880-07-16T11:52:30.000000000', '1881-07-16T11:52:30.000000000'],
dtype='datetime64[ns]')
Coordinates:
* time (time) datetime64[ns] 1850-07-16T11:52:30 ... 1881-07-16T11:52:30
Attributes:
standard_name: time
bounds: time_bnds
axis: T)
('Fixing timesteps for:', <xarray.Dataset>
Dimensions: (bnds: 2, lat: 1, lon: 1, time: 32)
Coordinates:
* time (time) datetime64[ns] 1850-07-16T11:52:30 ... 1881-07-16T11:52:30
* lon (lon) float64 0.0
* lat (lat) float64 0.0
Dimensions without coordinates: bnds
Data variables:
time_bnds (time, bnds) datetime64[ns] ...
albedo (time, lat, lon) float32 ...
Attributes:
CDI: Climate Data Interface version 1.9.7.1 (http://mpimet....
Conventions: CF-1.4
history: Mon Dec 09 11:25:30 2019: cdo -f nc -fldmean -yearmean...
source: ECHAM6
institution: Max-Planck-Institute for Meteorology
title: 1percCO2
echam_version: 6.3.04
advection: Lin & Rood
physics: Modified ECMWF physics
radiation: Using PSrad/RRTMG radiation
date_time: 20191116 184053
operating_system: Linux 2.6.32-754.14.2.el6.x86_64 x86_64
user_name: Christopher Danek (a270073)
host_name: m10162
jsbach_version: 3.11
truncation: 63
frequency: year
CDO: Climate Data Operators version 1.9.7.1 (http://mpimet....)
('Here is the time:', <xarray.DataArray 'time' (time: 32)>
array(['1850-07-16T11:52:30.000000000', '1851-07-16T11:52:30.000000000',
'1852-07-16T11:52:30.000000000', '1853-07-16T11:52:30.000000000',
'1854-07-16T11:52:30.000000000', '1855-07-16T11:52:30.000000000',
'1856-07-16T11:52:30.000000000', '1857-07-16T11:52:30.000000000',
'1858-07-16T11:52:30.000000000', '1859-07-16T11:52:30.000000000',
'1860-07-16T11:52:30.000000000', '1861-07-16T11:52:30.000000000',
'1862-07-16T11:52:30.000000000', '1863-07-16T11:52:30.000000000',
'1864-07-16T11:52:30.000000000', '1865-07-16T11:52:30.000000000',
'1866-07-16T11:52:30.000000000', '1867-07-16T11:52:30.000000000',
'1868-07-16T11:52:30.000000000', '1869-07-16T11:52:30.000000000',
'1870-07-16T11:52:30.000000000', '1871-07-16T11:52:30.000000000',
'1872-07-16T11:52:30.000000000', '1873-07-16T11:52:30.000000000',
'1874-07-16T11:52:30.000000000', '1875-07-16T11:52:30.000000000',
'1876-07-16T11:52:30.000000000', '1877-07-16T11:52:30.000000000',
'1878-07-16T11:52:30.000000000', '1879-07-16T11:52:30.000000000',
'1880-07-16T11:52:30.000000000', '1881-07-16T11:52:30.000000000'],
dtype='datetime64[ns]')
Coordinates:
* time (time) datetime64[ns] 1850-07-16T11:52:30 ... 1881-07-16T11:52:30
Attributes:
standard_name: time
bounds: time_bnds
axis: T)
('Fixing timesteps for:', <xarray.Dataset>
Dimensions: (bnds: 2, lat: 1, lon: 1, time: 32)
Coordinates:
* time (time) datetime64[ns] 1850-07-16T11:52:30 ... 1881-07-16T11:52:30
* lon (lon) float64 0.0
* lat (lat) float64 0.0
Dimensions without coordinates: bnds
Data variables:
time_bnds (time, bnds) datetime64[ns] ...
aprc (time, lat, lon) float32 ...
Attributes:
CDI: Climate Data Interface version 1.9.7.1 (http://mpimet....
Conventions: CF-1.4
history: Mon Dec 09 11:25:49 2019: cdo -f nc -fldmean -yearmean...
source: ECHAM6
institution: Max-Planck-Institute for Meteorology
title: 1percCO2
echam_version: 6.3.04
advection: Lin & Rood
physics: Modified ECMWF physics
radiation: Using PSrad/RRTMG radiation
date_time: 20191116 184053
operating_system: Linux 2.6.32-754.14.2.el6.x86_64 x86_64
user_name: Christopher Danek (a270073)
host_name: m10162
jsbach_version: 3.11
truncation: 63
frequency: year
CDO: Climate Data Operators version 1.9.7.1 (http://mpimet....)
('Here is the time:', <xarray.DataArray 'time' (time: 32)>
array(['1850-07-16T11:52:30.000000000', '1851-07-16T11:52:30.000000000',
'1852-07-16T11:52:30.000000000', '1853-07-16T11:52:30.000000000',
'1854-07-16T11:52:30.000000000', '1855-07-16T11:52:30.000000000',
'1856-07-16T11:52:30.000000000', '1857-07-16T11:52:30.000000000',
'1858-07-16T11:52:30.000000000', '1859-07-16T11:52:30.000000000',
'1860-07-16T11:52:30.000000000', '1861-07-16T11:52:30.000000000',
'1862-07-16T11:52:30.000000000', '1863-07-16T11:52:30.000000000',
'1864-07-16T11:52:30.000000000', '1865-07-16T11:52:30.000000000',
'1866-07-16T11:52:30.000000000', '1867-07-16T11:52:30.000000000',
'1868-07-16T11:52:30.000000000', '1869-07-16T11:52:30.000000000',
'1870-07-16T11:52:30.000000000', '1871-07-16T11:52:30.000000000',
'1872-07-16T11:52:30.000000000', '1873-07-16T11:52:30.000000000',
'1874-07-16T11:52:30.000000000', '1875-07-16T11:52:30.000000000',
'1876-07-16T11:52:30.000000000', '1877-07-16T11:52:30.000000000',
'1878-07-16T11:52:30.000000000', '1879-07-16T11:52:30.000000000',
'1880-07-16T11:52:30.000000000', '1881-07-16T11:52:30.000000000'],
dtype='datetime64[ns]')
Coordinates:
* time (time) datetime64[ns] 1850-07-16T11:52:30 ... 1881-07-16T11:52:30
Attributes:
standard_name: time
bounds: time_bnds
axis: T)
('Fixing timesteps for:', <xarray.Dataset>
Dimensions: (bnds: 2, lat: 1, lon: 1, time: 32)
Coordinates:
* time (time) datetime64[ns] 1850-07-16T11:52:30 ... 1881-07-16T11:52:30
* lon (lon) float64 0.0
* lat (lat) float64 0.0
Dimensions without coordinates: bnds
Data variables:
time_bnds (time, bnds) datetime64[ns] ...
aprl (time, lat, lon) float32 ...
Attributes:
CDI: Climate Data Interface version 1.9.7.1 (http://mpimet....
Conventions: CF-1.4
history: Mon Dec 09 11:26:39 2019: cdo -f nc -fldmean -yearmean...
source: ECHAM6
institution: Max-Planck-Institute for Meteorology
title: 1percCO2
echam_version: 6.3.04
advection: Lin & Rood
physics: Modified ECMWF physics
radiation: Using PSrad/RRTMG radiation
date_time: 20191116 184053
operating_system: Linux 2.6.32-754.14.2.el6.x86_64 x86_64
user_name: Christopher Danek (a270073)
host_name: m10162
jsbach_version: 3.11
truncation: 63
frequency: year
CDO: Climate Data Operators version 1.9.7.1 (http://mpimet....)
('Here is the time:', <xarray.DataArray 'time' (time: 32)>
array(['1850-07-16T11:52:30.000000000', '1851-07-16T11:52:30.000000000',
'1852-07-16T11:52:30.000000000', '1853-07-16T11:52:30.000000000',
'1854-07-16T11:52:30.000000000', '1855-07-16T11:52:30.000000000',
'1856-07-16T11:52:30.000000000', '1857-07-16T11:52:30.000000000',
'1858-07-16T11:52:30.000000000', '1859-07-16T11:52:30.000000000',
'1860-07-16T11:52:30.000000000', '1861-07-16T11:52:30.000000000',
'1862-07-16T11:52:30.000000000', '1863-07-16T11:52:30.000000000',
'1864-07-16T11:52:30.000000000', '1865-07-16T11:52:30.000000000',
'1866-07-16T11:52:30.000000000', '1867-07-16T11:52:30.000000000',
'1868-07-16T11:52:30.000000000', '1869-07-16T11:52:30.000000000',
'1870-07-16T11:52:30.000000000', '1871-07-16T11:52:30.000000000',
'1872-07-16T11:52:30.000000000', '1873-07-16T11:52:30.000000000',
'1874-07-16T11:52:30.000000000', '1875-07-16T11:52:30.000000000',
'1876-07-16T11:52:30.000000000', '1877-07-16T11:52:30.000000000',
'1878-07-16T11:52:30.000000000', '1879-07-16T11:52:30.000000000',
'1880-07-16T11:52:30.000000000', '1881-07-16T11:52:30.000000000'],
dtype='datetime64[ns]')
Coordinates:
* time (time) datetime64[ns] 1850-07-16T11:52:30 ... 1881-07-16T11:52:30
Attributes:
standard_name: time
bounds: time_bnds
axis: T)
Traceback (most recent call last):
File "/home/csys/cdanek/.local/bin/esm_viz", line 11, in <module>
load_entry_point('esm-viz==0.9.7', 'console_scripts', 'esm_viz')()
File "/home/csys/cdanek/.local/lib/python2.7/site-packages/click/core.py", line 764, in __call__
return self.main(*args, **kwargs)
File "/home/csys/cdanek/.local/lib/python2.7/site-packages/click/core.py", line 717, in main
rv = self.invoke(ctx)
File "/home/csys/cdanek/.local/lib/python2.7/site-packages/click/core.py", line 1114, in invoke
return Command.invoke(self, ctx)
File "/home/csys/cdanek/.local/lib/python2.7/site-packages/click/core.py", line 956, in invoke
return ctx.invoke(self.callback, **ctx.params)
File "/home/csys/cdanek/.local/lib/python2.7/site-packages/click/core.py", line 555, in invoke
return callback(*args, **kwargs)
File "/home/csys/cdanek/.local/lib/python2.7/site-packages/click/decorators.py", line 17, in new_func
return f(get_current_context(), *args, **kwargs)
File "/home/csys/cdanek/.local/lib/python2.7/site-packages/esm_viz/cli.py", line 64, in main
ctx.invoke(combine, expid=expid, quiet=quiet)
File "/home/csys/cdanek/.local/lib/python2.7/site-packages/click/core.py", line 555, in invoke
return callback(*args, **kwargs)
File "/home/csys/cdanek/.local/lib/python2.7/site-packages/esm_viz/cli.py", line 277, in combine
config.get("basedir").split("/")[-1] + ".html",
File "/home/csys/cdanek/.local/lib/python2.7/site-packages/panel/viewable.py", line 456, in save
embed_json, json_prefix, save_path, load_path)
File "/home/csys/cdanek/.local/lib/python2.7/site-packages/panel/io/save.py", line 83, in save
model = panel.get_root(doc, comm)
File "/home/csys/cdanek/.local/lib/python2.7/site-packages/panel/viewable.py", line 418, in get_root
root = self._get_model(doc, comm=comm)
File "/home/csys/cdanek/.local/lib/python2.7/site-packages/panel/layout.py", line 115, in _get_model
objects = self._get_objects(model, [], doc, root, comm)
File "/home/csys/cdanek/.local/lib/python2.7/site-packages/panel/layout.py", line 107, in _get_objects
child = pane._get_model(doc, root, model, comm)
File "/home/csys/cdanek/.local/lib/python2.7/site-packages/panel/layout.py", line 115, in _get_model
objects = self._get_objects(model, [], doc, root, comm)
File "/home/csys/cdanek/.local/lib/python2.7/site-packages/panel/layout.py", line 495, in _get_objects
child = pane._get_model(doc, root, model, comm)
File "/home/csys/cdanek/.local/lib/python2.7/site-packages/panel/layout.py", line 115, in _get_model
objects = self._get_objects(model, [], doc, root, comm)
File "/home/csys/cdanek/.local/lib/python2.7/site-packages/panel/layout.py", line 495, in _get_objects
child = pane._get_model(doc, root, model, comm)
File "/home/csys/cdanek/.local/lib/python2.7/site-packages/panel/layout.py", line 115, in _get_model
objects = self._get_objects(model, [], doc, root, comm)
File "/home/csys/cdanek/.local/lib/python2.7/site-packages/panel/layout.py", line 495, in _get_objects
child = pane._get_model(doc, root, model, comm)
File "/home/csys/cdanek/.local/lib/python2.7/site-packages/panel/layout.py", line 115, in _get_model
objects = self._get_objects(model, [], doc, root, comm)
File "/home/csys/cdanek/.local/lib/python2.7/site-packages/panel/layout.py", line 107, in _get_objects
child = pane._get_model(doc, root, model, comm)
File "/home/csys/cdanek/.local/lib/python2.7/site-packages/panel/pane/holoviews.py", line 212, in _get_model
plot = self._render(doc, comm, root)
File "/home/csys/cdanek/.local/lib/python2.7/site-packages/panel/pane/holoviews.py", line 256, in _render
return renderer.get_plot(self.object, **kwargs)
File "/home/csys/cdanek/.local/lib/python2.7/site-packages/holoviews/plotting/bokeh/renderer.py", line 135, in get_plot
plot = super(BokehRenderer, self_or_cls).get_plot(obj, renderer, **kwargs)
File "/home/csys/cdanek/.local/lib/python2.7/site-packages/holoviews/plotting/renderer.py", line 207, in get_plot
plot.update(init_key)
File "/home/csys/cdanek/.local/lib/python2.7/site-packages/holoviews/plotting/plot.py", line 614, in update
return self.initialize_plot()
File "/home/csys/cdanek/.local/lib/python2.7/site-packages/geoviews/plotting/bokeh/plot.py", line 112, in initialize_plot
fig = super(GeoPlot, self).initialize_plot(ranges, plot, plots, **opts)
File "/home/csys/cdanek/.local/lib/python2.7/site-packages/holoviews/plotting/bokeh/element.py", line 2111, in initialize_plot
child = subplot.initialize_plot(ranges, plot, plots)
File "/home/csys/cdanek/.local/lib/python2.7/site-packages/holoviews/plotting/bokeh/element.py", line 1279, in initialize_plot
self._init_glyphs(plot, element, ranges, source)
File "/home/csys/cdanek/.local/lib/python2.7/site-packages/holoviews/plotting/bokeh/element.py", line 1226, in _init_glyphs
data, mapping, style = self.get_data(element, ranges, style)
File "/home/csys/cdanek/.local/lib/python2.7/site-packages/holoviews/plotting/bokeh/chart.py", line 344, in get_data
self._get_hover_data(data, element)
File "/home/csys/cdanek/.local/lib/python2.7/site-packages/holoviews/plotting/bokeh/element.py", line 284, in _get_hover_data
data[dim+'_dt_strings'] = [d.pprint_value(v) for v in values]
File "/home/csys/cdanek/.local/lib/python2.7/site-packages/holoviews/core/dimension.py", line 418, in pprint_value
return util.dt64_to_dt(value).strftime(formatter)
ValueError: year=1850 is before 1900; the datetime strftime() methods require year >= 1900
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.