Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

XKCD matplotlib fonts on PAVICS #204

Closed
JeremyFyke opened this issue Mar 3, 2021 · 8 comments · Fixed by Ouranosinc/PAVICS-e2e-workflow-tests#68
Closed

XKCD matplotlib fonts on PAVICS #204

JeremyFyke opened this issue Mar 3, 2021 · 8 comments · Fixed by Ouranosinc/PAVICS-e2e-workflow-tests#68

Comments

@JeremyFyke
Copy link

I’m trying to make some illustrative plots (actually, IDF teaching plots for climatedata.ca's Learning Zone) and I’d like to use the XKCD plotting package within matplotlib to generate some illustrative, fun plots that - most importantly - don’t scare people.

When I run this I receive:

findfont: Font family ['xkcd', 'xkcd Script', 'Humor Sans', 'Comic Neue', 'Comic Sans MS'] not found. Falling back to DejaVu Sans.

How can I download these font families (and/or more generally, other font families to match various font requirements) on PAVICS?

Thanks! And apologies if this is the wrong forum to post this request.

Jeremy Fyke

@aulemahal
Copy link
Contributor

aulemahal commented Mar 3, 2021

Interesting question! Haha, not scaring people is quite a good idea.
First off, there might be an easy way, @tlvu?
How easy is it to either :

  1. install a font package in the docker image
    or 2) manually install a font in the docker.

However, I did found a manual way to use xkcd() on Pavics without need for admin rights.
Linux stores fonts in a couple of directories, including ~/.fonts for user-dependent ones. So:

  • Download the xkcd fonts from here (no idea if this is an officiel repo or not, just the first search results I got).

  • Upload the otf files to your pavics workspace.

  • In a notebook, run the following commands. We are using jupyter's "magic" methods to run shell commands with the "!" prefix.

!mkdir ~/.fonts   # Create a local fonts directory
!mv *.otf ~/.fonts  # move the uploaded fonts
!ls ~/.fonts/  # Just to check if it worked
!rm -fr ~/.cache/matplotlib  # Remove matplotlib's cache.

The last line isn't elegant, but it seems there is no easy way to reset matplotlib's font cache.

  • Restart the jupyter server (in File -> Hub control panel, stop the server, wait and relaunch a new one).

The last step might not even be needed, I don't know. I'm pretty sure you at least need to restart the kernel. This should work for all fonts.

@JeremyFyke
Copy link
Author

Hey this works! Thanks for looking into this so rapidly Pascal!
IDF-CC-interactive5

@tlvu
Copy link
Contributor

tlvu commented Mar 11, 2021

Is there a Pip or Conda package for those XKCD font? I only found this https://github.com/xerosanyam/Fonts-xkcd. I'd much prefer proper packaging if such exists.

@aulemahal
Copy link
Contributor

Sadly I don't think pip is able to install fonts. Conda might be able, but there is no package for this right now.

@tlvu
Copy link
Contributor

tlvu commented Mar 11, 2021

Sadly I don't think pip is able to install fonts. Conda might be able, but there is no package for this right now.

Right, Pip is clearly not for fonts. I was thinking too narrowed to the environment.yml file which handle both Pip and Conda. But I can use .deb packaging as well (the docker image is Debian based).

@tlvu
Copy link
Contributor

tlvu commented Mar 11, 2021

Oh found https://stackoverflow.com/a/49408754 (sudo apt install fonts-humor-sans). I'll see how it goes. @JeremyFyke you have a sample notebook for me to use as test?

@aulemahal aulemahal reopened this Mar 11, 2021
@aulemahal
Copy link
Contributor

Wrong button sorry. I have one I can send you.

@JeremyFyke
Copy link
Author

My notebook is a bit convoluted to use as a tester (does a bunch of data access and manipulation too you'd have to sort out to get to run. I suggest just trying to replicate the matplotlib toy example..?

tlvu added a commit to Ouranosinc/PAVICS-e2e-workflow-tests that referenced this issue Mar 15, 2021
tlvu added a commit to Ouranosinc/PAVICS-e2e-workflow-tests that referenced this issue Apr 1, 2021
New build from `Dockerfile.update` instead of `Dockerfile`.

Include equivalent of 2 previous commits:

*   docker: add fonts-humor-sans for XKCD fonts for matplotlib plotting package

    See Ouranosinc/pavics-sdi#204

*   docker: install ravenpy using conda to have pre-built raven and ostrich binaries

    Follow same recipe as in Ouranosinc/raven#369

    To fix `pip install ravenpy --install-option="--with-binaries"` error
    `error: option --with-binaries not recognized`.

Dependency problems from regular `Dockerfile`.  A bunch of those, this is just the end:
```
Package distributed conflicts for:
scikit-image -> dask[version='>=0.5'] -> distributed[version='>=1.11.0|>=1.15.0|>=1.16.0|>=1.19.0|>=1.20.0|>=1.21.0|>=1.22.0|>=1.23.0|>=1.23.1|>=1.23.2|>=1.23.3|>=1.24.2|>=1.25.0|>=1.25.2|>=1.25.3|>=1.26.0|>=1.26.1|>=1.27.0|>=1.28.0|>=2|>=2.10.0|>=2.11.0|>=2.12.0|>=2.13.0|>=2.14.0|>=2.15.0|>=2.16.0|>=2.17.0|>=2.18.0|>=2.19.0|>=2.20.0|>=2.21.0|>=2.22.0|>=2.23.0|>=2.24.0|>=2.25.0|>=2.26.0|>=2.27.0|>=2.28.0|>=2.29.0|>=2.30.0|>=2020.12.0|>=2021.1.0|>
=2021.1.1|>=2021.2.0|>=2021.3.0|>=2021.3.1|>=2.9.2|>=2.9.1|>=2.9.0|>=2.8.1|>=2.8.0|>=2.7.0|>=2.6.0|>=2.5.2|>=2.5.0|>=2.4.0|>=2.3.0|>=2.2.0|>=1.21.1']
xclim -> dask[version='>=2.6'] -> distributed[version='>=1.27.0|>=1.28.0|>=2|>=2.10.0|>=2.11.0|>=2.12.0|>=2.13.0|>=2.14.0|>=2.15.0|>=2.16.0|>=2.17.0|>=2.18.0|>=2.19.0|>=2.20.0|>=2.21.0|>=2.22.0|>=2.23.0|>=2.24.0|>=2.25.0|>=2.26.0|>=2.27.0|>=2.28.0|>=2.29.0|>=2.30.0|>=2020.12.0|>=2021.1.0|>=2021.1.1|>=2021.2.0|>=2021.3.0|>=2021.3.1|>=2.9.2|>=2.9.1|>=2.9.0|>=2.8.1|>=2.8.0|>=2.7.0|>=2.6.0|>=2.5.2|>=2.5.0|>=2.4.0|>=2.3.0|>=2.2.0']
xarray -> dask[version='>=0.9'] -> distributed[version='>=1.11.0|>=1.15.0|>=1.16.0|>=1.19.0|>=1.20.0|>=1.21.0|>=1.22.0|>=1.23.0|>=1.23.1|>=1.23.2|>=1.23.3|>=1.24.2|>=1.25.0|>=1.25.2|>=1.25.3|>=1.26.0|>=1.26.1|>=1.27.0|>=1.28.0|>=2|>=2.10.0|>=2.11.0|>=2.12.0|>=2.13.0|>=2.14.0|>=2.15.0|>=2.16.0|>=2.17.0|>=2.18.0|>=2.19.0|>=2.20.0|>=2.21.0|>=2.22.0|>=2.23.0|>=2.24.0|>=2.25.0|>=2.26.0|>=2.27.0|>=2.28.0|>=2.29.0|>=2.30.0|>=2020.12.0|>=2021.1.0|>=2021.
1.1|>=2021.2.0|>=2021.3.0|>=2021.3.1|>=2.9.2|>=2.9.1|>=2.9.0|>=2.8.1|>=2.8.0|>=2.7.0|>=2.6.0|>=2.5.2|>=2.5.0|>=2.4.0|>=2.3.0|>=2.2.0|>=1.21.1']

Package libedit conflicts for:
netcdf4 -> openssh -> libedit[version='>=3.1.20191231,<3.2.0a0']
curl -> krb5[version='>=1.17.1,<1.18.0a0'] -> libedit[version='>=3.1.20170329,<3.2.0a0|>=3.1.20170329,<4.0a0|>=3.1.20191231,<3.2.0a0|>=3.1.20191231,<4.0a0|>=3.1.20181209,<3.2.0a0|>=3.1.20181209,<4.0a0']

Package cryptography conflicts for:
cdms2 -> pyopenssl -> cryptography[version='>=1.3|>=1.3.4|>=1.9|>=2.1.4|>=2.2.1|>=2.8|>=3.2']
jupyterhub -> oauthlib[version='>=3.0'] -> cryptography
esgf-compute-api -> oauthlib -> cryptography

Package libsodium conflicts for:
bokeh -> pyzmq -> libsodium[version='>=1.0.16,<1.0.17.0a0|>=1.0.17,<1.0.18.0a0|>=1.0.18,<1.0.19.0a0']
ipyleaflet -> pyzmq[version='>=15.2.0'] -> libsodium[version='>=1.0.16,<1.0.17.0a0|>=1.0.17,<1.0.18.0a0|>=1.0.18,<1.0.19.0a0']
xeus-python -> zeromq[version='>=4.3.3,<4.4.0a0'] -> libsodium[version='>=1.0.16,<1.0.17.0a0|>=1.0.17,<1.0.18.0a0|>=1.0.18,<1.0.19.0a0']
notebook -> pyzmq[version='>=17'] -> libsodium[version='>=1.0.16,<1.0.17.0a0|>=1.0.17,<1.0.18.0a0|>=1.0.18,<1.0.19.0a0']

Package mesalib conflicts for:
mesalib
vcs -> vtk-cdat -> mesalib[version='>17']

Package numba conflicts for:
xclim -> numba
geoviews -> datashader -> numba[version='>=0.35.0|>=0.37.0|>=0.37.0,!=0.49.*,!=0.50.*|>=0.37.0,<0.49']
ravenpy -> xclim[version='>=0.23'] -> numba[version='>=0.52']

Package soupsieve conflicts for:
siphon -> beautifulsoup4 -> soupsieve[version='>=1.2']
threddsclient -> beautifulsoup4 -> soupsieve[version='>=1.2']
pydap -> beautifulsoup4 -> soupsieve[version='>=1.2']

Package twisted conflicts for:
jupyterhub -> prometheus_client[version='>=0.0.21'] -> twisted
notebook -> prometheus_client -> twisted

Package ptyprocess conflicts for:
jupyterlab-git -> pexpect -> ptyprocess[version='>=0.5']
notebook -> terminado[version='>=0.8.3'] -> ptyprocess

Package entrypoints conflicts for:
jupyter -> nbconvert -> entrypoints[version='>=0.2.2']
jupyterhub -> entrypoints
notebook -> jupyter_client[version='>=5.3.4'] -> entrypoints[version='>=0.2.2']
nbval -> jupyter_client -> entrypoints
voila -> nbconvert[version='>=6.0.0,<7'] -> entrypoints[version='>=0.2.2']

Package networkx conflicts for:
geopandas -> mapclassify -> networkx
scikit-image -> networkx[version='>=1.8,<2.0|>=1.8|>=2.0']

Package nbdime conflicts for:
jupyterlab-git -> nbdime[version='>=1.1.0|>=2.0.0|>=2.0.0,<3.0.0']
nbdime

Package cdms2 conflicts for:
vcs -> genutil -> cdms2[version='>=3.1.2|>=3.1.3']
cdms2
vcs -> cdms2[version='>=3.1.4']

Package scikit-image conflicts for:
geoviews -> datashader -> scikit-image
scikit-image

Package lancet conflicts for:
geoviews -> holoviews[version='>=1.9.0'] -> lancet
holoviews -> lancet

Package greenlet conflicts for:
jupyterhub -> sqlalchemy[version='>=1.1'] -> greenlet!=0.4.17
geopandas -> sqlalchemy -> greenlet!=0.4.17

Package nomkl conflicts for:
cdms2 -> openblas -> nomkl==3.0[build='0|h06a4308_0']
numpy -> openblas[version='>=0.3.3,<0.3.4.0a0'] -> nomkl==3.0[build='0|h06a4308_0']The following specifications were found to be incompatible with your system:

  - feature:/linux-64::__glibc==2.28=0
  - feature:|@/linux-64::__glibc==2.28=0
  - jupyter-archive -> nodejs -> __glibc[version='>=2.17,<3.0.a0']
  - jupyterhub -> nodejs[version='>=12'] -> __glibc[version='>=2.17,<3.0.a0']
  - jupyterlab-git -> nodejs -> __glibc[version='>=2.17,<3.0.a0']

Your installed version is: 2.28

The command '/bin/sh -c umask 0000 && conda env create -f /environment.yml' returned a non-zero code: 1

```
tlvu added a commit to Ouranosinc/PAVICS-e2e-workflow-tests that referenced this issue Apr 9, 2021
…nd-add-xkcd-font-for-matplotlib

New docker build for updated clisops, ravenpy, xclim and add xkcd font for matplotlib

Jenkins build passing http://jenkins.ouranos.ca/job/PAVICS-e2e-workflow-tests/job/new-docker-build-for-clisops-and-add-xkcd-font-for-matplotlib/16/console with notebook fix Ouranosinc/pavics-sdi#212

Matching PR bird-house/birdhouse-deploy#144 to deploy to PAVICS.

This new Jupyter env needed to run the Pavics-homepage tutorial notebooks here bird-house/birdhouse-deploy-ouranos#8

Fixes Ouranosinc/pavics-sdi#204

Relevant changes:
```diff
<   - clisops=0.5.1=pyhd3deb0d_0
>   - clisops=0.6.3=pyh44b312d_0

<   - xclim=0.23.0=pyhd8ed1ab_0
>   - xclim=0.25.0=pyhd8ed1ab_0

>   - ostrich=0.1.2=h2bc3f7f_0
>   - raven=0.1.1=h2bc3f7f_0

<     - ravenpy==0.2.3  # from pip
>   - ravenpy=0.3.1=py37_0  # from conda

>   - aiohttp=3.7.4=py37h5e8e339_0

<   - roocs-utils=0.1.5=pyhd3deb0d_1
>   - roocs-utils=0.3.0=pyh6c4a22f_0

<   - cf_xarray=0.4.0=pyh44b312d_0
>   - cf_xarray=0.5.1=pyh44b312d_0

<   - rioxarray=0.2.0=pyhd8ed1ab_0
>   - rioxarray=0.3.1=pyhd8ed1ab_0

<   - xarray=0.16.2=pyhd8ed1ab_0
>   - xarray=0.17.0=pyhd8ed1ab_0

<   - geopandas=0.8.2=pyhd8ed1ab_0
>   - geopandas=0.9.0=pyhd8ed1ab_0

<   - gdal=3.1.4=py37h2ec2946_5
>   - gdal=3.2.1=py37hc5bc4e4_7

<   - jupyter_conda=4.1.0=hd8ed1ab_1
>   - jupyter_conda=5.0.0=hd8ed1ab_0

<   - python=3.7.9=hffdb5ce_100_cpython
>   - python=3.7.10=hffdb5ce_100_cpython
```

Full diff of `conda env export`:
[210216-210216-update210406-1-conda-env-export.diff.txt](https://github.com/Ouranosinc/PAVICS-e2e-workflow-tests/files/6279489/210216-210216-update210406-1-conda-env-export.diff.txt)

[210216-210216-update210408-conda-env-export.diff.txt](https://github.com/Ouranosinc/PAVICS-e2e-workflow-tests/files/6280425/210216-210216-update210408-conda-env-export.diff.txt)

[210216-210408-conda-env-export.diff.txt](https://github.com/Ouranosinc/PAVICS-e2e-workflow-tests/files/6281293/210216-210408-conda-env-export.diff.txt)

```
2a3
>   - zeitsperre
10c11,12
<   - alembic=1.5.4=pyhd8ed1ab_0
---
>   - aiohttp=3.7.4=py37h5e8e339_0
>   - alembic=1.5.8=pyhd8ed1ab_0
12c14
<   - anyio=2.1.0=py37h89c1867_0
---
>   - anyio=2.2.0=py37h89c1867_0
14a17
>   - async-timeout=3.0.1=py_1000
19c22
<   - backports.functools_lru_cache=1.6.1=py_0
---
>   - backports.functools_lru_cache=1.6.3=pyhd8ed1ab_0
24c27
<   - bokeh=2.2.3=py37h89c1867_0
---
>   - bokeh=2.3.1=py37h89c1867_0
34c37
<   - c-ares=1.17.1=h36c2ea0_0
---
>   - c-ares=1.17.1=h7f98852_1
36,38c39,42
<   - cached-property=1.5.1=py_0
<   - cairo=1.16.0=h7979940_1007
<   - cartopy=0.18.0=py37h02548d7_10
---
>   - cached-property=1.5.2=hd8ed1ab_1
>   - cached_property=1.5.2=pyha770c72_1
>   - cairo=1.16.0=h6cf1ce9_1008
>   - cartopy=0.18.0=py37h26456f9_13
44c48
<   - cf_xarray=0.4.0=pyh44b312d_0
---
>   - cf_xarray=0.5.1=pyh44b312d_0
54c58,59
<   - clisops=0.5.1=pyhd3deb0d_0
---
>   - climpred=2.1.3=pyhd8ed1ab_0
>   - clisops=0.6.3=pyh44b312d_0
58,61c63,66
<   - configurable-http-proxy=1.3.0=0
<   - coverage=5.4=py37h5e8e339_0
<   - cryptography=3.4.4=py37hf1a17b8_0
<   - curl=7.71.1=he644dc0_8
---
>   - configurable-http-proxy=4.3.1=node15_he6ea98c_0
>   - coverage=5.5=py37h5e8e339_0
>   - cryptography=3.4.7=py37h5d9358c_0
>   - curl=7.76.0=h979ede3_0
71c76
<   - datashader=0.12.0=pyhd3deb0d_0
---
>   - datashader=0.12.1=pyh44b312d_0
73c78
<   - dbus=1.13.6=hfdff14a_1
---
>   - dbus=1.13.6=h48d8840_2
75,76c80,81
<   - decorator=4.4.2=py_0
<   - defusedxml=0.6.0=py_0
---
>   - decorator=5.0.6=pyhd8ed1ab_0
>   - defusedxml=0.7.1=pyhd8ed1ab_0
80a86
>   - docrep=0.3.2=pyh44b312d_0
82c88
<   - eccodes=2.20.0=ha0e6eb6_0
---
>   - eccodes=2.21.0=ha0e6eb6_0
84,87c90,94
<   - esgf-compute-api=2.3.7=0_h1234567_
<   - esmf=8.0.1=nompi_he31a43a_2
<   - esmpy=8.0.1=nompi_py37h59b2dc9_2
<   - expat=2.2.10=h9c3ff4c_0
---
>   - eofs=1.4.0=py_0
>   - esgf-compute-api=2.3.9=0_h1234567_
>   - esmf=8.1.0=nompi_hed08645_0
>   - esmpy=8.1.0=nompi_py37hff16fce_0
>   - expat=2.3.0=h9c3ff4c_0
89c96
<   - fiona=1.8.18=py37h527b4ca_0
---
>   - fiona=1.8.18=py37h17d6ad9_1
91c98
<   - flask-compress=1.8.0=pyhd8ed1ab_0
---
>   - flask-compress=1.9.0=pyhd8ed1ab_0
94,95c101,102
<   - freexl=1.0.5=h516909a_1002
<   - fsspec=0.8.5=pyhd8ed1ab_0
---
>   - freexl=1.0.6=h7f98852_0
>   - fsspec=0.9.0=pyhd8ed1ab_0
98c105
<   - gdal=3.1.4=py37h2ec2946_5
---
>   - gdal=3.2.1=py37hc5bc4e4_7
100,102c107,108
<   - geojson=2.5.0=py_0
<   - geopandas=0.8.2=pyhd8ed1ab_0
<   - geos=3.9.0=h9c3ff4c_0
---
>   - geopandas=0.9.0=pyhd8ed1ab_0
>   - geos=3.9.1=h9c3ff4c_2
104,105c110,111
<   - geoviews=1.8.2=py_0
<   - geoviews-core=1.8.2=py_0
---
>   - geoviews=1.9.1=pyhd8ed1ab_0
>   - geoviews-core=1.9.1=pyha770c72_0
109,112c115,118
<   - gitdb=4.0.5=pyhd8ed1ab_1
<   - gitpython=3.1.13=pyhd8ed1ab_0
<   - glib=2.66.7=h9c3ff4c_0
<   - glib-tools=2.66.7=h9c3ff4c_0
---
>   - gitdb=4.0.7=pyhd8ed1ab_0
>   - gitpython=3.1.14=pyhd8ed1ab_0
>   - glib=2.68.0=h9c3ff4c_2
>   - glib-tools=2.68.0=h9c3ff4c_2
115,116c121,123
<   - gst-plugins-base=1.14.5=h0935bb2_2
<   - gstreamer=1.18.3=h3560a44_0
---
>   - greenlet=1.0.0=py37hcd2ae1e_0
>   - gst-plugins-base=1.18.4=h29181c9_0
>   - gstreamer=1.18.4=h76c114f_0
122,123c129,130
<   - holoviews=1.14.1=pyhd3deb0d_0
<   - hvplot=0.7.0=pyhd3deb0d_0
---
>   - holoviews=1.14.3=pyhd8ed1ab_0
>   - hvplot=0.7.1=pyh44b312d_0
126c133
<   - imagecodecs=2021.1.11=py37h95c7a1b_1
---
>   - imagecodecs=2021.3.31=py37haf4b6ec_0
128,130c135,137
<   - importlib-metadata=3.4.0=py37h89c1867_0
<   - importlib_metadata=3.4.0=hd8ed1ab_0
<   - importlib_resources=5.1.0=py37h89c1867_0
---
>   - importlib-metadata=3.10.0=py37h89c1867_0
>   - importlib_metadata=3.10.0=hd8ed1ab_0
>   - importlib_resources=5.1.2=py37h89c1867_0
132c139
<   - ipykernel=5.4.2=py37h888b3d9_0
---
>   - ipykernel=5.5.3=py37h085eea5_0
134c141
<   - ipython=7.20.0=py37h888b3d9_2
---
>   - ipython=7.22.0=py37h085eea5_0
143c150
<   - json-c=0.13.1=hbfbb72e_1002
---
>   - json-c=0.15=h98cffda_0
145c152
<   - jsonschema=3.2.0=py_2
---
>   - jsonschema=3.2.0=pyhd8ed1ab_3
150,152c157,159
<   - jupyter_client=6.1.11=pyhd8ed1ab_1
<   - jupyter_conda=4.1.0=hd8ed1ab_1
<   - jupyter_console=6.2.0=py_0
---
>   - jupyter_client=6.1.12=pyhd8ed1ab_0
>   - jupyter_conda=5.0.0=hd8ed1ab_0
>   - jupyter_console=6.4.0=pyhd8ed1ab_0
154c161
<   - jupyter_server=1.3.0=py37h89c1867_0
---
>   - jupyter_server=1.6.0=py37h89c1867_0
156,157c163,164
<   - jupyterhub=1.3.0=py37h89c1867_0
<   - jupyterhub-base=1.3.0=py37h89c1867_0
---
>   - jupyterhub=1.3.0=py37h89c1867_1
>   - jupyterhub-base=1.3.0=py37h89c1867_1
159c166
<   - jupyterlab-git=0.23.3=pyhd8ed1ab_0
---
>   - jupyterlab-git=0.24.0=pyhd8ed1ab_0
163c170
<   - jupytext=1.10.0=pyh44b312d_0
---
>   - jupytext=1.11.1=pyh44b312d_0
165c172
<   - kealib=1.4.14=he4dc956_1
---
>   - kealib=1.4.14=hcc255d8_2
169c176
<   - lazy-object-proxy=1.5.2=py37h5e8e339_1
---
>   - lazy-object-proxy=1.6.0=py37h5e8e339_0
178,180c185,187
<   - libclang=11.0.1=default_ha53f305_1
<   - libcurl=7.71.1=hcdd3856_8
<   - libdap4=3.20.6=hd7c4107_1
---
>   - libclang=11.1.0=default_ha53f305_0
>   - libcurl=7.76.0=hc4aaa36_0
>   - libdap4=3.20.6=hd7c4107_2
189c196
<   - libgdal=3.1.4=h0a4f56a_5
---
>   - libgdal=3.2.1=h38ff51b_7
192c199
<   - libglib=2.66.7=h1f3bc88_0
---
>   - libglib=2.68.0=h3e27bee_2
196c203
<   - libkml=1.3.0=h02e6976_1012
---
>   - libkml=1.3.0=h238a007_1013
199c206
<   - libllvm11=11.0.1=hf817b99_0
---
>   - libllvm11=11.1.0=hf817b99_2
204,206c211,213
<   - libpq=12.3=h255efa7_3
<   - libprotobuf=3.14.0=h780b84a_0
<   - librttopo=1.1.0=hccdd1c9_5
---
>   - libpq=13.1=hfd2b0eb_2
>   - libprotobuf=3.15.7=h780b84a_0
>   - librttopo=1.1.0=h1185371_6
209,210c216,217
<   - libspatialite=5.0.1=h04c9dda_2
<   - libssh2=1.9.0=hab1572f_5
---
>   - libspatialite=5.0.1=he52d314_3
>   - libssh2=1.9.0=ha56f1ee_6
215,216c222,223
<   - libuv=1.40.0=h7f98852_0
<   - libwebp-base=1.2.0=h7f98852_0
---
>   - libuv=1.41.0=h7f98852_0
>   - libwebp-base=1.2.0=h7f98852_2
222c229
<   - llvmlite=0.35.0=py37h9d7f4d0_1
---
>   - llvmlite=0.36.0=py37h9d7f4d0_0
224c231
<   - lxml=4.6.2=py37h77fd288_1
---
>   - lxml=4.6.3=py37h77fd288_0
227,228c234,235
<   - mamba_gator=4.1.0=pyhd8ed1ab_1
<   - markdown=3.3.3=pyh9f0ad1d_0
---
>   - mamba_gator=5.0.0=pyhd8ed1ab_0
>   - markdown=3.3.4=pyhd8ed1ab_0
231,233c238,240
<   - matplotlib=3.3.4=py37h89c1867_0
<   - matplotlib-base=3.3.4=py37h0c9df89_0
<   - mdit-py-plugins=0.2.5=pyhd8ed1ab_0
---
>   - matplotlib=3.4.1=py37h89c1867_0
>   - matplotlib-base=3.4.1=py37hdd32ed1_0
>   - mdit-py-plugins=0.2.6=pyhd8ed1ab_0
238a246
>   - multidict=5.1.0=py37h5e8e339_1
241,243c249,251
<   - mysql-common=8.0.22=ha770c72_3
<   - mysql-libs=8.0.22=h935591d_3
<   - nbclient=0.5.2=pyhd8ed1ab_0
---
>   - mysql-common=8.0.23=ha770c72_1
>   - mysql-libs=8.0.23=h935591d_1
>   - nbclient=0.5.3=pyhd8ed1ab_0
245c253
<   - nbformat=5.0.8=py_0
---
>   - nbformat=5.1.3=pyhd8ed1ab_0
249,250c257,258
<   - nest-asyncio=1.4.3=pyhd8ed1ab_0
<   - netcdf-fortran=4.5.3=nompi_h1a0d97b_101
---
>   - nest-asyncio=1.5.1=pyhd8ed1ab_0
>   - netcdf-fortran=4.5.3=nompi_h996563d_103
254,259c262,267
<   - nodejs=15.3.0=h92b4a50_1
<   - notebook=6.2.0=py37h89c1867_0
<   - nspr=4.29=h9c3ff4c_1
<   - nss=3.61=hb5efdd6_0
<   - numba=0.52.0=py37hdc94413_0
<   - numpy=1.20.1=py37haa41c4c_0
---
>   - nodejs=15.14.0=h92b4a50_0
>   - notebook=6.3.0=py37h89c1867_0
>   - nspr=4.30=h9c3ff4c_0
>   - nss=3.63=hb5efdd6_0
>   - numba=0.53.1=py37h134767a_0
>   - numpy=1.20.2=py37h038b26d_0
265c273,274
<   - openssl=1.1.1i=h7f98852_0
---
>   - openssl=1.1.1k=h7f98852_0
>   - ostrich=0.1.2=h2bc3f7f_0
270,271c279,280
<   - pandas=1.2.2=py37hdc94413_0
<   - pandoc=2.11.4=h7f98852_0
---
>   - pandas=1.2.3=py37hdc94413_0
>   - pandoc=2.12=h7f98852_0
273c282
<   - panel=0.10.3=pyhd8ed1ab_0
---
>   - panel=0.11.1=pyhd8ed1ab_0
275c284
<   - parso=0.8.1=pyhd8ed1ab_0
---
>   - parso=0.8.2=pyhd8ed1ab_0
281,282c290,291
<   - pillow=8.1.0=py37h4600e1f_2
<   - pint=0.16.1=py_0
---
>   - pillow=8.1.2=py37h4600e1f_1
>   - pint=0.17=pyhd8ed1ab_0
290c299
<   - postgresql=12.3=hc2f5b80_3
---
>   - postgresql=13.1=h6303168_2
292,295c301,305
<   - prometheus_client=0.9.0=pyhd3deb0d_0
<   - prompt-toolkit=3.0.16=pyha770c72_0
<   - prompt_toolkit=3.0.16=hd8ed1ab_0
<   - protobuf=3.14.0=py37hcd2ae1e_1
---
>   - prometheus_client=0.10.0=pyhd8ed1ab_0
>   - prompt-toolkit=3.0.18=pyha770c72_0
>   - prompt_toolkit=3.0.18=hd8ed1ab_0
>   - properscoring=0.1=py_0
>   - protobuf=3.15.7=py37hcd2ae1e_0
306,307c316,317
<   - pygments=2.8.0=pyhd8ed1ab_0
<   - pyjwt=2.0.1=pyhd8ed1ab_0
---
>   - pygments=2.8.1=pyhd8ed1ab_0
>   - pyjwt=2.0.1=pyhd8ed1ab_1
310c320
<   - pyproj=3.0.0.post1=py37hf874b97_0
---
>   - pyproj=3.0.1=py37h63c117d_0
319,320c329,330
<   - pytest=6.2.2=py37h89c1867_0
<   - python=3.7.9=hffdb5ce_100_cpython
---
>   - pytest=6.2.3=py37h89c1867_0
>   - python=3.7.10=hffdb5ce_100_cpython
329,331c339,341
<   - pyzmq=22.0.3=py37h499b945_0
<   - qt=5.12.9=h9d6b050_2
<   - qtconsole=5.0.2=pyhd8ed1ab_0
---
>   - pyzmq=22.0.3=py37h336d617_1
>   - qt=5.12.9=hda022c4_4
>   - qtconsole=5.0.3=pyhd8ed1ab_0
333c343,345
<   - rasterio=1.2.0=py37ha549118_0
---
>   - rasterio=1.2.2=py37hd5c4cce_0
>   - raven=0.1.1=h2bc3f7f_0
>   - ravenpy=0.3.1=py37_0
338,339c350,351
<   - rioxarray=0.2.0=pyhd8ed1ab_0
<   - roocs-utils=0.1.5=pyhd3deb0d_1
---
>   - rioxarray=0.3.1=pyhd8ed1ab_0
>   - roocs-utils=0.3.0=pyh6c4a22f_0
345c357
<   - scipy=1.6.0=py37h14a347d_0
---
>   - scipy=1.6.2=py37h29e03ee_0
348,349c360,361
<   - shapely=1.7.1=py37h4c50fd9_2
<   - siphon=0.8.0=py37h89c1867_1004
---
>   - shapely=1.7.1=py37hf7ed6d2_4
>   - siphon=0.9=py37h89c1867_0
357,358c369,370
<   - sqlalchemy=1.3.23=py37h5e8e339_0
<   - sqlite=3.34.0=h74cdb3f_0
---
>   - sqlalchemy=1.4.6=py37h5e8e339_0
>   - sqlite=3.35.4=h74cdb3f_0
360,361c372,373
<   - tblib=1.6.0=py_0
<   - terminado=0.9.2=py37h89c1867_0
---
>   - tblib=1.7.0=pyhd8ed1ab_0
>   - terminado=0.9.4=py37h89c1867_0
365,366c377,378
<   - tifffile=2021.2.1=pyhd8ed1ab_0
<   - tiledb=2.2.3=h91fcb0e_0
---
>   - tifffile=2021.3.31=pyhd8ed1ab_0
>   - tiledb=2.2.7=h91fcb0e_0
371c383
<   - tqdm=4.56.2=pyhd8ed1ab_0
---
>   - tqdm=4.60.0=pyhd8ed1ab_0
373a386
>   - typing-extensions=3.7.4.3=0
375,377c388,391
<   - tzcode=2021a=h7f98852_0
<   - udunits2=2.2.27.27=h360fe7b_0
<   - urllib3=1.26.3=pyhd8ed1ab_0
---
>   - tzcode=2021a=h7f98852_1
>   - tzdata=2021a=he74cb21_0
>   - udunits2=2.2.27.27=h975c496_1
>   - urllib3=1.26.4=pyhd8ed1ab_0
379c393
<   - voila=0.2.6=pyhd8ed1ab_0
---
>   - voila=0.2.7=pyhd8ed1ab_0
383c397
<   - webob=1.8.6=py_0
---
>   - webob=1.8.7=pyhd8ed1ab_0
389,390c403,404
<   - xarray=0.16.2=pyhd8ed1ab_0
<   - xclim=0.23.0=pyhd8ed1ab_0
---
>   - xarray=0.17.0=pyhd8ed1ab_0
>   - xclim=0.25.0=pyhd8ed1ab_0
393,394c407,409
<   - xeus=1.0.1=h78d96c3_0
<   - xeus-python=0.11.0=py37h52ea871_0
---
>   - xeus=1.0.1=h7d0c39e_2
>   - xeus-python=0.12.3=py37h52ea871_0
>   - xhistogram=0.1.3=pyhd8ed1ab_0
396,398c411,413
<   - xorg-libice=1.0.10=h516909a_0
<   - xorg-libsm=1.2.3=h84519dc_1000
<   - xorg-libx11=1.6.12=h516909a_0
---
>   - xorg-libice=1.0.10=h7f98852_0
>   - xorg-libsm=1.2.3=hd9c2040_1000
>   - xorg-libx11=1.7.0=h7f98852_0
401,403c416,418
<   - xorg-libxext=1.3.4=h516909a_0
<   - xorg-libxrender=0.9.10=h516909a_1002
<   - xorg-renderproto=0.11.1=h14c3975_1002
---
>   - xorg-libxext=1.3.4=h7f98852_1
>   - xorg-libxrender=0.9.10=h7f98852_1003
>   - xorg-renderproto=0.11.1=h7f98852_1002
405a421,422
>   - xrft=0.3.0=pyhd8ed1ab_0
>   - xskillscore=0.0.19=pyhd8ed1ab_0
407a425
>   - yarl=1.6.3=py37h5e8e339_1
409c427
<   - zfp=0.5.5=h9c3ff4c_4
---
>   - zfp=0.5.5=h9c3ff4c_5
411c429
<   - zipp=3.4.0=py_0
---
>   - zipp=3.4.1=pyhd8ed1ab_0
413c431
<   - zstd=1.4.8=ha95c52a_1
---
>   - zstd=1.4.9=ha95c52a_0
419a438
>     - geojson==2.5.0
428d446
<     - ravenpy==0.2.3
```

Full new `conda env export`:
[210216-update210406-1-conda-env-export.yml.txt](https://github.com/Ouranosinc/PAVICS-e2e-workflow-tests/files/6279491/210216-update210406-1-conda-env-export.yml.txt)

[210216-update210408-conda-env-export.yml.txt](https://github.com/Ouranosinc/PAVICS-e2e-workflow-tests/files/6280426/210216-update210408-conda-env-export.yml.txt)

[210408-conda-env-export.yml.txt](https://github.com/Ouranosinc/PAVICS-e2e-workflow-tests/files/6281295/210408-conda-env-export.yml.txt)

```
name: birdy
channels:
  - zeitsperre
  - cdat
  - conda-forge
  - defaults
dependencies:
  - _libgcc_mutex=0.1=conda_forge
  - _openmp_mutex=4.5=1_gnu
  - affine=2.3.0=py_0
  - aiohttp=3.7.4=py37h5e8e339_0
  - alembic=1.5.8=pyhd8ed1ab_0
  - ansi2html=1.6.0=py37h89c1867_1
  - anyio=2.2.0=py37h89c1867_0
  - appdirs=1.4.4=pyh9f0ad1d_0
  - argon2-cffi=20.1.0=py37h5e8e339_2
  - async-timeout=3.0.1=py_1000
  - async_generator=1.10=py_0
  - attrs=20.3.0=pyhd3deb0d_0
  - backcall=0.2.0=pyh9f0ad1d_0
  - backports=1.0=py_2
  - backports.functools_lru_cache=1.6.3=pyhd8ed1ab_0
  - beautifulsoup4=4.9.3=pyhb0f4dca_0
  - bleach=3.3.0=pyh44b312d_0
  - blinker=1.4=py_1
  - blosc=1.21.0=h9c3ff4c_0
  - bokeh=2.3.1=py37h89c1867_0
  - boltons=20.2.1=pyh9f0ad1d_0
  - boost-cpp=1.74.0=hc6e9bd1_2
  - bottleneck=1.3.2=py37h902c9e0_3
  - branca=0.4.2=pyhd8ed1ab_0
  - brotli=1.0.9=h9c3ff4c_4
  - brotli-python=1.0.9=py37hcd2ae1e_4
  - brotlipy=0.7.0=py37h5e8e339_1001
  - brunsli=0.1=h9c3ff4c_0
  - bzip2=1.0.8=h7f98852_4
  - c-ares=1.17.1=h7f98852_1
  - ca-certificates=2020.12.5=ha878542_0
  - cached-property=1.5.2=hd8ed1ab_1
  - cached_property=1.5.2=pyha770c72_1
  - cairo=1.16.0=h6cf1ce9_1008
  - cartopy=0.18.0=py37h26456f9_13
  - cdat_info=8.2.1=pyh9f0ad1d_1
  - cdtime=3.1.4=py37h5ad02f4_2
  - cdutil=8.2.1=pyh9f0ad1d_0
  - certifi=2020.12.5=py37h89c1867_1
  - certipy=0.1.3=py_0
  - cf_xarray=0.5.1=pyh44b312d_0
  - cffi=1.14.5=py37hc58025e_0
  - cfgrib=0.9.8.5=pyhd8ed1ab_0
  - cfitsio=3.470=hb418390_7
  - cftime=1.4.1=py37h902c9e0_0
  - chardet=4.0.0=py37h89c1867_1
  - charls=2.2.0=h9c3ff4c_0
  - click=7.1.2=pyh9f0ad1d_0
  - click-plugins=1.1.1=py_0
  - cligj=0.7.1=pyhd8ed1ab_0
  - climpred=2.1.3=pyhd8ed1ab_0
  - clisops=0.6.3=pyh44b312d_0
  - cloudpickle=1.6.0=py_0
  - colorama=0.4.4=pyh9f0ad1d_0
  - colorcet=2.0.6=pyhd8ed1ab_0
  - configurable-http-proxy=4.3.1=node15_he6ea98c_0
  - coverage=5.5=py37h5e8e339_0
  - cryptography=3.4.7=py37h5d9358c_0
  - curl=7.76.0=h979ede3_0
  - cycler=0.10.0=py_2
  - cytoolz=0.11.0=py37h5e8e339_3
  - dash=1.19.0=pyhd8ed1ab_0
  - dash-core-components=1.15.0=pyhd8ed1ab_0
  - dash-html-components=1.1.2=pyh44b312d_0
  - dash-renderer=1.9.0=pyhd8ed1ab_0
  - dash-table=4.11.2=pyhd8ed1ab_0
  - dask=2021.2.0=pyhd8ed1ab_0
  - dask-core=2021.2.0=pyhd8ed1ab_0
  - datashader=0.12.1=pyh44b312d_0
  - datashape=0.5.4=py_1
  - dbus=1.13.6=h48d8840_2
  - debugpy=1.2.1=py37hcd2ae1e_1
  - decorator=5.0.6=pyhd8ed1ab_0
  - defusedxml=0.7.1=pyhd8ed1ab_0
  - descartes=1.1.0=py_4
  - distarray=2.12.2=py_1
  - distributed=2021.2.0=py37h89c1867_0
  - docopt=0.6.2=py_1
  - docrep=0.3.2=pyh44b312d_0
  - dv3d=8.2.1=pyh9f0ad1d_0
  - eccodes=2.21.0=ha0e6eb6_0
  - entrypoints=0.3=pyhd8ed1ab_1003
  - eofs=1.4.0=py_0
  - esgf-compute-api=2.3.9=0_h1234567_
  - esmf=8.1.0=nompi_hed08645_0
  - esmpy=8.1.0=nompi_py37hff16fce_0
  - expat=2.3.0=h9c3ff4c_0
  - ffmpeg=4.2.3=h167e202_0
  - fiona=1.8.18=py37h17d6ad9_1
  - flask=1.1.2=pyh9f0ad1d_0
  - flask-compress=1.9.0=pyhd8ed1ab_0
  - fontconfig=2.13.1=hba837de_1004
  - freetype=2.10.4=h0708190_1
  - freexl=1.0.6=h7f98852_0
  - fsspec=0.9.0=pyhd8ed1ab_0
  - future=0.18.2=py37h89c1867_3
  - g2clib=1.6.0=hf3f1b0b_9
  - gdal=3.2.1=py37hc5bc4e4_7
  - genutil=8.2.1=py37h161383b_1
  - geopandas=0.9.0=pyhd8ed1ab_0
  - geos=3.9.1=h9c3ff4c_2
  - geotiff=1.6.0=h2b14fbe_4
  - geoviews=1.9.1=pyhd8ed1ab_0
  - geoviews-core=1.9.1=pyha770c72_0
  - gettext=0.19.8.1=h0b5b191_1005
  - ghostscript=9.53.3=h58526e2_2
  - giflib=5.2.1=h36c2ea0_2
  - gitdb=4.0.7=pyhd8ed1ab_0
  - gitpython=3.1.14=pyhd8ed1ab_0
  - glib=2.68.0=h9c3ff4c_2
  - glib-tools=2.68.0=h9c3ff4c_2
  - gmp=6.2.1=h58526e2_0
  - gnutls=3.6.13=h85f3911_1
  - greenlet=1.0.0=py37hcd2ae1e_0
  - gst-plugins-base=1.18.4=h29181c9_0
  - gstreamer=1.18.4=h76c114f_0
  - h5netcdf=0.10.0=pyhd8ed1ab_0
  - h5py=3.1.0=nompi_py37h1e651dc_100
  - hdf4=4.2.13=h10796ff_1004
  - hdf5=1.10.6=nompi_h6a2412b_1114
  - heapdict=1.0.1=py_0
  - holoviews=1.14.3=pyhd8ed1ab_0
  - hvplot=0.7.1=pyh44b312d_0
  - icu=68.1=h58526e2_0
  - idna=2.10=pyh9f0ad1d_0
  - imagecodecs=2021.3.31=py37haf4b6ec_0
  - imageio=2.9.0=py_0
  - importlib-metadata=3.10.0=py37h89c1867_0
  - importlib_metadata=3.10.0=hd8ed1ab_0
  - importlib_resources=5.1.2=py37h89c1867_0
  - iniconfig=1.1.1=pyh9f0ad1d_0
  - ipykernel=5.5.3=py37h085eea5_0
  - ipyleaflet=0.13.6=pyhd8ed1ab_1
  - ipython=7.22.0=py37h085eea5_0
  - ipython_genutils=0.2.0=py_1
  - ipywidgets=7.6.3=pyhd3deb0d_0
  - itsdangerous=1.1.0=py_0
  - jasper=1.900.1=h07fcdf6_1006
  - jedi=0.18.0=py37h89c1867_2
  - jinja2=2.11.3=pyh44b312d_0
  - joblib=1.0.1=pyhd8ed1ab_0
  - jpeg=9d=h36c2ea0_0
  - json-c=0.15=h98cffda_0
  - json5=0.9.5=pyh9f0ad1d_0
  - jsonschema=3.2.0=pyhd8ed1ab_3
  - jupyter=1.0.0=py37h89c1867_6
  - jupyter-archive=2.2.0=pyhd8ed1ab_0
  - jupyter-dash=0.4.0=pyhd8ed1ab_0
  - jupyter_bokeh=2.0.4=pyhd8ed1ab_0
  - jupyter_client=6.1.12=pyhd8ed1ab_0
  - jupyter_conda=5.0.0=hd8ed1ab_0
  - jupyter_console=6.4.0=pyhd8ed1ab_0
  - jupyter_core=4.7.1=py37h89c1867_0
  - jupyter_server=1.6.0=py37h89c1867_0
  - jupyter_telemetry=0.1.0=pyhd8ed1ab_1
  - jupyterhub=1.3.0=py37h89c1867_1
  - jupyterhub-base=1.3.0=py37h89c1867_1
  - jupyterlab=2.2.9=pyhd8ed1ab_0
  - jupyterlab-git=0.24.0=pyhd8ed1ab_0
  - jupyterlab_pygments=0.1.2=pyh9f0ad1d_0
  - jupyterlab_server=1.2.0=py_0
  - jupyterlab_widgets=1.0.0=pyhd8ed1ab_1
  - jupytext=1.11.1=pyh44b312d_0
  - jxrlib=1.1=h7f98852_2
  - kealib=1.4.14=hcc255d8_2
  - kiwisolver=1.3.1=py37h2527ec5_1
  - krb5=1.17.2=h926e7f8_0
  - lame=3.100=h7f98852_1001
  - lazy-object-proxy=1.6.0=py37h5e8e339_0
  - lcms2=2.12=hddcbb42_0
  - ld_impl_linux-64=2.35.1=hea4e1c9_2
  - lerc=2.2.1=h9c3ff4c_0
  - libaec=1.0.4=h9c3ff4c_1
  - libblas=3.8.0=17_openblas
  - libcblas=3.8.0=17_openblas
  - libcdms=3.1.2=h981a4fd_113
  - libcf=1.0.3=py37heda41dd_109
  - libclang=11.1.0=default_ha53f305_0
  - libcurl=7.76.0=hc4aaa36_0
  - libdap4=3.20.6=hd7c4107_2
  - libdeflate=1.7=h7f98852_5
  - libdrs=3.1.2=h7918d09_113
  - libdrs_f=3.1.2=h5026c31_111
  - libedit=3.1.20191231=he28a2e2_2
  - libev=4.33=h516909a_1
  - libevent=2.1.10=hcdb4288_3
  - libffi=3.3=h58526e2_2
  - libgcc-ng=9.3.0=h2828fa1_18
  - libgdal=3.2.1=h38ff51b_7
  - libgfortran-ng=9.3.0=hff62375_18
  - libgfortran5=9.3.0=hff62375_18
  - libglib=2.68.0=h3e27bee_2
  - libgomp=9.3.0=h2828fa1_18
  - libiconv=1.16=h516909a_0
  - libidn2=2.3.0=h516909a_0
  - libkml=1.3.0=h238a007_1013
  - liblapack=3.8.0=17_openblas
  - libllvm10=10.0.1=he513fc3_3
  - libllvm11=11.1.0=hf817b99_2
  - libnetcdf=4.7.4=nompi_h56d31a8_107
  - libnghttp2=1.43.0=h812cca2_0
  - libopenblas=0.3.10=pthreads_h4812303_5
  - libpng=1.6.37=h21135ba_2
  - libpq=13.1=hfd2b0eb_2
  - libprotobuf=3.15.7=h780b84a_0
  - librttopo=1.1.0=h1185371_6
  - libsodium=1.0.18=h36c2ea0_1
  - libspatialindex=1.9.3=h9c3ff4c_3
  - libspatialite=5.0.1=he52d314_3
  - libssh2=1.9.0=ha56f1ee_6
  - libstdcxx-ng=9.3.0=h6de172a_18
  - libtiff=4.2.0=hdc55705_0
  - libunistring=0.9.10=h14c3975_0
  - libuuid=2.32.1=h7f98852_1000
  - libuv=1.41.0=h7f98852_0
  - libwebp-base=1.2.0=h7f98852_2
  - libxcb=1.13=h7f98852_1003
  - libxkbcommon=1.0.3=he3ba5ed_0
  - libxml2=2.9.10=h72842e0_3
  - libxslt=1.1.33=h15afd5d_2
  - libzopfli=1.0.3=h9c3ff4c_0
  - llvmlite=0.36.0=py37h9d7f4d0_0
  - locket=0.2.0=py_2
  - lxml=4.6.3=py37h77fd288_0
  - lz4-c=1.9.3=h9c3ff4c_0
  - mako=1.1.4=pyh44b312d_0
  - mamba_gator=5.0.0=pyhd8ed1ab_0
  - markdown=3.3.4=pyhd8ed1ab_0
  - markdown-it-py=0.6.2=pyhd8ed1ab_0
  - markupsafe=1.1.1=py37h5e8e339_3
  - matplotlib=3.4.1=py37h89c1867_0
  - matplotlib-base=3.4.1=py37hdd32ed1_0
  - mdit-py-plugins=0.2.6=pyhd8ed1ab_0
  - memory_profiler=0.58.0=py_0
  - mesalib=18.3.1=h590aaf7_0
  - mistune=0.8.4=py37h5e8e339_1003
  - more-itertools=8.7.0=pyhd8ed1ab_0
  - msgpack-python=1.0.2=py37h2527ec5_1
  - multidict=5.1.0=py37h5e8e339_1
  - multipledispatch=0.6.0=py_0
  - munch=2.5.0=py_0
  - mysql-common=8.0.23=ha770c72_1
  - mysql-libs=8.0.23=h935591d_1
  - nbclient=0.5.3=pyhd8ed1ab_0
  - nbdime=2.1.0=py_0
  - nbformat=5.1.3=pyhd8ed1ab_0
  - nbval=0.9.6=pyh9f0ad1d_0
  - nc-time-axis=1.2.0=py_1
  - ncurses=6.2=h58526e2_4
  - nest-asyncio=1.5.1=pyhd8ed1ab_0
  - netcdf-fortran=4.5.3=nompi_h996563d_103
  - netcdf4=1.5.6=nompi_py37hdbee05a_100
  - nettle=3.6=he412f7d_0
  - networkx=2.5=py_0
  - nodejs=15.14.0=h92b4a50_0
  - notebook=6.3.0=py37h89c1867_0
  - nspr=4.30=h9c3ff4c_0
  - nss=3.63=hb5efdd6_0
  - numba=0.53.1=py37h134767a_0
  - numpy=1.20.2=py37h038b26d_0
  - oauthlib=3.0.1=py_0
  - olefile=0.46=pyh9f0ad1d_1
  - openblas=0.3.10=pthreads_h04b7a96_5
  - openh264=2.1.1=h780b84a_0
  - openjpeg=2.4.0=hf7af979_0
  - openssl=1.1.1k=h7f98852_0
  - ostrich=0.1.2=h2bc3f7f_0
  - owslib=0.23.0=pyhd8ed1ab_0
  - oyaml=1.0=pyhd8ed1ab_0
  - packaging=20.9=pyh44b312d_0
  - pamela=1.0.0=py_0
  - pandas=1.2.3=py37hdc94413_0
  - pandoc=2.12=h7f98852_0
  - pandocfilters=1.4.2=py_1
  - panel=0.11.1=pyhd8ed1ab_0
  - param=1.10.1=pyhd3deb0d_0
  - parso=0.8.2=pyhd8ed1ab_0
  - partd=1.1.0=py_0
  - patsy=0.5.1=py_0
  - pcre=8.44=he1b5a44_0
  - pexpect=4.8.0=pyh9f0ad1d_2
  - pickleshare=0.7.5=py_1003
  - pillow=8.1.2=py37h4600e1f_1
  - pint=0.17=pyhd8ed1ab_0
  - pip=21.0.1=pyhd8ed1ab_0
  - pixman=0.40.0=h36c2ea0_0
  - plotly=4.14.3=pyh44b312d_0
  - pluggy=0.13.1=py37h89c1867_4
  - pooch=1.3.0=pyhd8ed1ab_0
  - poppler=0.89.0=h2de54a5_5
  - poppler-data=0.4.10=0
  - postgresql=13.1=h6303168_2
  - proj=7.2.0=h277dcde_2
  - prometheus_client=0.10.0=pyhd8ed1ab_0
  - prompt-toolkit=3.0.18=pyha770c72_0
  - prompt_toolkit=3.0.18=hd8ed1ab_0
  - properscoring=0.1=py_0
  - protobuf=3.15.7=py37hcd2ae1e_0
  - pscript=0.7.5=pyhd3deb0d_0
  - psutil=5.8.0=py37h5e8e339_1
  - pthread-stubs=0.4=h36c2ea0_1001
  - ptyprocess=0.7.0=pyhd3deb0d_0
  - py=1.10.0=pyhd3deb0d_0
  - pycparser=2.20=pyh9f0ad1d_2
  - pyct=0.4.6=py_0
  - pyct-core=0.4.6=py_0
  - pycurl=7.43.0.6=py37h88a64d2_1
  - pydap=3.2.2=pyh9f0ad1d_1001
  - pygments=2.8.1=pyhd8ed1ab_0
  - pyjwt=2.0.1=pyhd8ed1ab_1
  - pyopenssl=20.0.1=pyhd8ed1ab_0
  - pyparsing=2.4.7=pyh9f0ad1d_0
  - pyproj=3.0.1=py37h63c117d_0
  - pyqt=5.12.3=py37h89c1867_7
  - pyqt-impl=5.12.3=py37he336c9b_7
  - pyqt5-sip=4.19.18=py37hcd2ae1e_7
  - pyqtchart=5.12=py37he336c9b_7
  - pyqtwebengine=5.12.1=py37he336c9b_7
  - pyrsistent=0.17.3=py37h5e8e339_2
  - pyshp=2.1.3=pyh44b312d_0
  - pysocks=1.7.1=py37h89c1867_3
  - pytest=6.2.3=py37h89c1867_0
  - python=3.7.10=hffdb5ce_100_cpython
  - python-dateutil=2.8.1=py_0
  - python-editor=1.0.4=py_0
  - python-json-logger=2.0.1=pyh9f0ad1d_0
  - python_abi=3.7=1_cp37m
  - pytz=2021.1=pyhd8ed1ab_0
  - pyviz_comms=2.0.1=pyhd3deb0d_0
  - pywavelets=1.1.1=py37h902c9e0_3
  - pyyaml=5.4.1=py37h5e8e339_0
  - pyzmq=22.0.3=py37h336d617_1
  - qt=5.12.9=hda022c4_4
  - qtconsole=5.0.3=pyhd8ed1ab_0
  - qtpy=1.9.0=py_0
  - rasterio=1.2.2=py37hd5c4cce_0
  - raven=0.1.1=h2bc3f7f_0
  - ravenpy=0.3.1=py37_0
  - readline=8.0=he28a2e2_2
  - regionmask=0.6.2=pyhd8ed1ab_0
  - requests=2.25.1=pyhd3deb0d_0
  - retrying=1.3.3=py_2
  - rioxarray=0.3.1=pyhd8ed1ab_0
  - roocs-utils=0.3.0=pyh6c4a22f_0
  - rtree=0.9.7=py37h0b55af0_1
  - ruamel.yaml=0.16.12=py37h5e8e339_2
  - ruamel.yaml.clib=0.2.2=py37h5e8e339_2
  - scikit-image=0.18.1=py37hdc94413_0
  - scikit-learn=0.24.1=py37h69acf81_0
  - scipy=1.6.2=py37h29e03ee_0
  - send2trash=1.5.0=py_0
  - setuptools=49.6.0=py37h89c1867_3
  - shapely=1.7.1=py37hf7ed6d2_4
  - siphon=0.9=py37h89c1867_0
  - six=1.15.0=pyh9f0ad1d_0
  - smmap=3.0.5=pyh44b312d_0
  - snappy=1.1.8=he1b5a44_3
  - sniffio=1.2.0=py37h89c1867_1
  - snuggs=1.4.7=py_0
  - sortedcontainers=2.3.0=pyhd8ed1ab_0
  - soupsieve=2.0.1=py_1
  - sqlalchemy=1.4.6=py37h5e8e339_0
  - sqlite=3.35.4=h74cdb3f_0
  - statsmodels=0.12.2=py37h902c9e0_0
  - tblib=1.7.0=pyhd8ed1ab_0
  - terminado=0.9.4=py37h89c1867_0
  - testpath=0.4.4=py_0
  - threadpoolctl=2.1.0=pyh5ca1d4c_0
  - threddsclient=0.4.2=py_0
  - tifffile=2021.3.31=pyhd8ed1ab_0
  - tiledb=2.2.7=h91fcb0e_0
  - tk=8.6.10=h21135ba_1
  - toml=0.10.2=pyhd8ed1ab_0
  - toolz=0.11.1=py_0
  - tornado=6.1=py37h5e8e339_1
  - tqdm=4.60.0=pyhd8ed1ab_0
  - traitlets=5.0.5=py_0
  - traittypes=0.2.1=pyh9f0ad1d_2
  - typing-extensions=3.7.4.3=0
  - typing_extensions=3.7.4.3=py_0
  - tzcode=2021a=h7f98852_1
  - tzdata=2021a=he74cb21_0
  - udunits2=2.2.27.27=h975c496_1
  - urllib3=1.26.4=pyhd8ed1ab_0
  - vcs=8.2.1=pyh9f0ad1d_0
  - voila=0.2.7=pyhd8ed1ab_0
  - vtk-cdat=8.2.0.8.2=py37_mesalibhead77ed_0
  - wcwidth=0.2.5=pyh9f0ad1d_2
  - webencodings=0.5.1=py_1
  - webob=1.8.7=pyhd8ed1ab_0
  - werkzeug=1.0.1=pyh9f0ad1d_0
  - wget=1.20.1=h22169c7_0
  - wheel=0.36.2=pyhd3deb0d_0
  - widgetsnbextension=3.5.1=py37h89c1867_4
  - x264=1!152.20180806=h14c3975_0
  - xarray=0.17.0=pyhd8ed1ab_0
  - xclim=0.25.0=pyhd8ed1ab_0
  - xerces-c=3.2.3=h9d8b166_2
  - xesmf=0.5.2=pyhd8ed1ab_0
  - xeus=1.0.1=h7d0c39e_2
  - xeus-python=0.12.3=py37h52ea871_0
  - xhistogram=0.1.3=pyhd8ed1ab_0
  - xorg-kbproto=1.0.7=h7f98852_1002
  - xorg-libice=1.0.10=h7f98852_0
  - xorg-libsm=1.2.3=hd9c2040_1000
  - xorg-libx11=1.7.0=h7f98852_0
  - xorg-libxau=1.0.9=h7f98852_0
  - xorg-libxdmcp=1.1.3=h7f98852_0
  - xorg-libxext=1.3.4=h7f98852_1
  - xorg-libxrender=0.9.10=h7f98852_1003
  - xorg-renderproto=0.11.1=h7f98852_1002
  - xorg-xextproto=7.3.0=h7f98852_1002
  - xorg-xproto=7.0.31=h7f98852_1007
  - xrft=0.3.0=pyhd8ed1ab_0
  - xskillscore=0.0.19=pyhd8ed1ab_0
  - xz=5.2.5=h516909a_1
  - yaml=0.2.5=h516909a_0
  - yarl=1.6.3=py37h5e8e339_1
  - zeromq=4.3.4=h9c3ff4c_0
  - zfp=0.5.5=h9c3ff4c_5
  - zict=2.0.0=py_0
  - zipp=3.4.1=pyhd8ed1ab_0
  - zlib=1.2.11=h516909a_1010
  - zstd=1.4.9=ha95c52a_0
  - pip:
    - astunparse==1.6.3
    - birdhouse-birdy==0.7.0
    - cdms2==3.1.5
    - colour==0.1.5
    - funcsigs==1.0.2
    - geojson==2.5.0
    - handcalcs==1.3.0
    - innerscope==0.2.0
    - ipython-blocking==0.2.1
    - jupyternotify==0.1.15
    - nbconvert==5.6.1
    - nbresuse==0.4.0
    - pixiedust==1.1.19
    - pytest-tornasync==0.6.0.post2
    - regrid2==3.1.5
    - requests-magpie==0.1.1
    - wrapt==1.12.1
prefix: /opt/conda/envs/birdy
```
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
3 participants