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

docker: add regionmask and salem for Era5 Raven notebooks, removed jupyter_bokeh #36

Merged
merged 5 commits into from Mar 10, 2020

Conversation

tlvu
Copy link
Contributor

@tlvu tlvu commented Mar 10, 2020

jupyter_bokeh (the extension, not the package) was removed due to this issue bokeh/jupyter_bokeh#93

Era5 Raven notebook PR: Ouranosinc/raven#200

Noticeable rather large Jupyter env changes:

<   - birdy=v0.6.5=py_0
>   - birdy=v0.6.6=py_0

<   - bokeh=1.4.0=py36_0
>     - bokeh==2.0.0  # from pip recursive dependencies (we get newer version by not explicitly get from conda !)


<   - esgf-compute-api=2.2.1=py_2
>   - esgf-compute-api=2.2.3=py_0

<   - jupyterlab=1.2.5=py_0
>   - jupyterlab=2.0.1=py_0

<   - owslib=0.19.0=py_2
>   - owslib=0.19.1=py_0

<   - pandas=0.25.3=py36hb3f55d8_0
>   - pandas=1.0.1=py37hb3f55d8_0

<   - python=3.6.7=h357f687_1006
>   - python=3.7.6=h357f687_4_cpython

>   - regionmask=0.5.0=py_1

<   - xarray=0.14.1=py_1
>   - xarray=0.15.0=py_0

<     - dask==2.9.2
>     - dask==2.12.0

>     - salem==0.2.4

<     - xclim==0.13.0
>     - xclim==0.14.0

Full conda env export Diff:
200120-200309-conda-env-export.diff.txt

Full new conda env export:
200309-conda-env-export.yml.txt

tlvu added 5 commits March 9, 2020 15:19
…b==2.0.1

Step 10/18 : RUN jupyter labextension install @jupyter-widgets/jupyterlab-manager     && jupyter serverextension enable voila --sys-prefix     &&
jupyter labextension install @jupyter-widgets/jupyterlab-manager jupyter-leaflet     && jupyter labextension install @bokeh/jupyter_bokeh
 ---> Running in 78af5a055ca3
Building jupyterlab assets (build:prod:minimize)
The extension "nbdime-jupyterlab" is outdated.

Enabling: voila
- Writing config: /usr/local/envs/birdy/etc/jupyter
    - Validating...
      voila 0.1.21 OK
Building jupyterlab assets (build:prod:minimize)
The extension "nbdime-jupyterlab" is outdated.

An error occured.
ValueError: The extension "@bokeh/jupyter_bokeh" does not yet support the current version of JupyterLab.

Conflicting Dependencies:
JupyterLab                        Extension      Package
>=2.0.2 <2.1.0                    >=1.1.3 <2.0.0 @jupyterlab/application
>=2.0.2 <2.1.0                    >=1.1.3 <2.0.0 @jupyterlab/apputils
>=2.0.2 <2.1.0                    >=1.1.3 <2.0.0 @jupyterlab/notebook
>=2.0.1 <2.1.0                    >=1.4.0 <2.0.0 @jupyterlab/rendermime-interfaces
>=5.0.2 <5.1.0                    >=4.1.1 <5.0.0 @jupyterlab/services
See the log file for details:  /tmp/jupyterlab-debug-t1jvjykq.log
The command '/bin/sh -c jupyter labextension install @jupyter-widgets/jupyterlab-manager     && jupyter serverextension enable voila --sys-prefix
    && jupyter labextension install @jupyter-widgets/jupyterlab-manager jupyter-leaflet     && jupyter labextension install @bokeh/jupyter_bokeh'
returned a non-zero code: 1
Because the latest bokeh from conda do not work with latest jupyterlab,
hopefully the latest bokeh from pip will do.

Step 9/18 : RUN jupyter lab build
 ---> Running in 5ba0df183f0c
[LabBuildApp] JupyterLab 1.2.5
[LabBuildApp] Building in /usr/local/envs/birdy/share/jupyter/lab
[LabBuildApp] Building jupyterlab assets (build:prod:minimize)
Removing intermediate container 5ba0df183f0c
 ---> 69a1687d3685
Step 10/18 : RUN jupyter labextension install @jupyter-widgets/jupyterlab-manager     && jupyter serverextension enable voila --sys-prefix     &&
jupyter labextension install @jupyter-widgets/jupyterlab-manager jupyter-leaflet     && jupyter labextension install @bokeh/jupyter_bokeh
 ---> Running in 1d52d8496904
Building jupyterlab assets (build:prod:minimize)
-
An error occured.
RuntimeError: npm dependencies failed to install
See the log file for details:  /tmp/jupyterlab-debug-vv71qp2f.log
The command '/bin/sh -c jupyter labextension install @jupyter-widgets/jupyterlab-manager     && jupyter serverextension enable voila --sys-prefix
    && jupyter labextension install @jupyter-widgets/jupyterlab-manager jupyter-leaflet     && jupyter labextension install @bokeh/jupyter_bokeh'
returned a non-zero code: 1
See issue bokeh/jupyter_bokeh#93.

There was no newer release on Pypi either so no other choices but to
remove bokeh while waiting for bokeh dev to release a new version
compatible with JupyterLab 2.0.1 and newer.
@tlvu tlvu requested review from huard and tlogan2000 March 10, 2020 00:54
@tlvu tlvu merged commit f916bea into master Mar 10, 2020
@tlvu tlvu deleted the add-more-packages-for-raven-notebooks branch March 10, 2020 01:02
tlvu added a commit to bird-house/birdhouse-deploy that referenced this pull request Mar 10, 2020
… salem for Era5 Raven notebooks

See PR Ouranosinc/PAVICS-e2e-workflow-tests#36
or commit
Ouranosinc/PAVICS-e2e-workflow-tests@f916bea

jupyter_bokeh (the extension, not the package) was removed due to this issue bokeh/jupyter_bokeh#93

Era5 Raven notebook PR: Ouranosinc/raven#200

Noticeable  rather large Jupyter env changes:

```diff
<   - birdy=v0.6.5=py_0
>   - birdy=v0.6.6=py_0

<   - bokeh=1.4.0=py36_0
>     - bokeh==2.0.0  # from pip recursive dependencies (we get newer version by not explicitly get from conda !)

<   - esgf-compute-api=2.2.1=py_2
>   - esgf-compute-api=2.2.3=py_0

<   - jupyterlab=1.2.5=py_0
>   - jupyterlab=2.0.1=py_0

<   - owslib=0.19.0=py_2
>   - owslib=0.19.1=py_0

<   - pandas=0.25.3=py36hb3f55d8_0
>   - pandas=1.0.1=py37hb3f55d8_0

<   - python=3.6.7=h357f687_1006
>   - python=3.7.6=h357f687_4_cpython

>   - regionmask=0.5.0=py_1

<   - xarray=0.14.1=py_1
>   - xarray=0.15.0=py_0

<     - dask==2.9.2
>     - dask==2.12.0

>     - salem==0.2.4

<     - xclim==0.13.0
>     - xclim==0.14.0
```

Full conda env export Diff:
[200120-200309-conda-env-export.diff.txt](https://github.com/Ouranosinc/PAVICS-e2e-workflow-tests/files/4309639/200120-200309-conda-env-export.diff.txt)

Full new conda env export:
[200309-conda-env-export.yml.txt](https://github.com/Ouranosinc/PAVICS-e2e-workflow-tests/files/4309640/200309-conda-env-export.yml.txt)
@huard
Copy link
Contributor

huard commented Mar 10, 2020

I did not log the exact issue, but it seems that Raven has a problem with oswlib 0.19.1
Ouranosinc/raven#195

If the test suite passed with 0.19.0, it may be best to keep it as is.

@tlvu
Copy link
Contributor Author

tlvu commented Mar 10, 2020

I did not log the exact issue, but it seems that Raven has a problem with oswlib 0.19.1
Ouranosinc/raven#195

If the test suite passed with 0.19.0, it may be best to keep it as is.

This is the Jupyter image, not the Raven image, so maybe not related.

The Jenkins test suite http://jenkins.ouranos.ca/job/PAVICS-e2e-workflow-tests/job/add-more-packages-for-raven-notebooks/1/console (which do not include Raven notebooks because they never passed entirely) worked with owslib 0.19.1.

There was one error in opendap.ipynb (odict vs dict) but it's unrelated (just textual diff change, easy to fix).

@huard
Copy link
Contributor

huard commented Mar 10, 2020

Quick test with owslib 0.19.1. Nothing crashed so far. Possible issues may have been fixed with birdy update.

tlvu added a commit to Ouranosinc/pavics-sdi that referenced this pull request Mar 10, 2020
…yter env

New Jupyter env PR: Ouranosinc/PAVICS-e2e-workflow-tests#36

Fix the following Jenkins error:

```
01:27:24  ________ pavics-sdi-master/docs/source/notebooks/opendap.ipynb::Cell 1 _________
01:27:24  Notebook cell execution failed
01:27:24  Cell 1: Cell outputs differ
01:27:24
01:27:24  Input:
01:27:24  url = 'http://test.opendap.org:80/opendap/data/nc/20070917-MODIS_A-JPL-L2P-A2007260000000.L2_LAC_GHRSST-v01.nc'
01:27:24  D = nc.Dataset(url)
01:27:24  print(D.ncattrs())
01:27:24  D.variables.keys()
01:27:24
01:27:24  Traceback:
01:27:24   mismatch 'text/plain'
01:27:24
01:27:24   assert reference_output == test_output failed:
01:27:24
01:27:24    "odict_keys([...ion_error4'])" == "dict_keys(['...ion_error4'])"
01:27:24    - odict_keys(['lat', 'lon', 'time', 'sea_surface_temperature', 'sst_dtime', 'proximity_confidence', 'SSES_bias_error', 'SSES_standard_deviation_error', 'rejection_flag', 'confidence_flag', 'sea_surface_temperature4', 'proximity_confidence4', 'SSES_bias_error4', 'SSES_standard_deviation_error4'])
01:27:24    ? -
01:27:24    + dict_keys(['lat', 'lon', 'time', 'sea_surface_temperature', 'sst_dtime', 'proximity_confidence', 'SSES_bias_error', 'SSES_standard_deviation_error', 'rejection_flag', 'confidence_flag', 'sea_surface_temperature4', 'proximity_confidence4', 'SSES_bias_error4', 'SSES_standard_deviation_error4'])
```
tlvu added a commit to Ouranosinc/pavics-sdi that referenced this pull request Mar 10, 2020
…ge-under-new-jupyter-env

opendap.ipynb: fix output change (odict_keys -> dict_keys) in new jupyter env

New Jupyter env PR: Ouranosinc/PAVICS-e2e-workflow-tests#36

Tested on Jenkins: http://jenkins.ouranos.ca/job/PAVICS-e2e-workflow-tests/job/master/504/console

Fix the following Jenkins error:

```
01:27:24  ________ pavics-sdi-master/docs/source/notebooks/opendap.ipynb::Cell 1 _________
01:27:24  Notebook cell execution failed
01:27:24  Cell 1: Cell outputs differ
01:27:24
01:27:24  Input:
01:27:24  url = 'http://test.opendap.org:80/opendap/data/nc/20070917-MODIS_A-JPL-L2P-A2007260000000.L2_LAC_GHRSST-v01.nc'
01:27:24  D = nc.Dataset(url)
01:27:24  print(D.ncattrs())
01:27:24  D.variables.keys()
01:27:24
01:27:24  Traceback:
01:27:24   mismatch 'text/plain'
01:27:24
01:27:24   assert reference_output == test_output failed:
01:27:24
01:27:24    "odict_keys([...ion_error4'])" == "dict_keys(['...ion_error4'])"
01:27:24    - odict_keys(['lat', 'lon', 'time', 'sea_surface_temperature', 'sst_dtime', 'proximity_confidence', 'SSES_bias_error', 'SSES_standard_deviation_error', 'rejection_flag', 'confidence_flag', 'sea_surface_temperature4', 'proximity_confidence4', 'SSES_bias_error4', 'SSES_standard_deviation_error4'])
01:27:24    ? -
01:27:24    + dict_keys(['lat', 'lon', 'time', 'sea_surface_temperature', 'sst_dtime', 'proximity_confidence', 'SSES_bias_error', 'SSES_standard_deviation_error', 'rejection_flag', 'confidence_flag', 'sea_surface_temperature4', 'proximity_confidence4', 'SSES_bias_error4', 'SSES_standard_deviation_error4'])
```
tlvu added a commit that referenced this pull request May 7, 2020
…em-replaced-by-rioxarray


docker: new build to remove salem, replaced by rioxarray and add packages for the custom_climate_portraits branch

Now we do not need a separate docker build for the [`custom_climate_portraits`](https://github.com/Ouranosinc/PAVICS-e2e-workflow-tests/tree/custom_climate_portraits) branch (PR #35).  That branch should only be used for notebook changes.  Jupyter env change should directly PR to `master`.

Did not add the full `holoviz` package since it seems to freeze the build (stuck in Solving Environment for more than 25 mins).

Also changed the base image to `continuumio/miniconda3` since the previous one was deprecated.

Raven PR Ouranosinc/raven#266 (commit Ouranosinc/raven@0763bf5) removed salem dependency and replaced with rioxarray.

salem was previously introduced in PR #36 (commit f916bea).

Passing Jenkins build: http://jenkins.ouranos.ca/job/PAVICS-e2e-workflow-tests/job/new-docker-image-to-remove-salem-replaced-by-rioxarray/lastSuccessfulBuild/console, new docker build: http://jenkins.ouranos.ca/job/PAVICS-e2e-workflow-tests/job/new-docker-image-to-remove-salem-replaced-by-rioxarray/4/console

Jenkins build against Raven notebooks no import error http://jenkins.ouranos.ca/job/PAVICS-e2e-workflow-tests/job/new-docker-image-to-remove-salem-replaced-by-rioxarray/3/consoleFull

Noticeable changes:
```diff
# conda release of bokeh seems to trail behind pypi 
>   - bokeh=2.0.1=py37hc8dfbb8_0
<     - bokeh==2.0.2 
>   - jupyter_bokeh=2.0.1=py_0

# should already exist, not sure why conda env export report this as new
>   - dask=2.15.0=py_0

# unpinned since salem is removed
<   - pandas=0.25.3=py37hb3f55d8_0
>   - pandas=1.0.3=py37h0da4684_1

<     - salem==0.2.4
>   - rioxarray=0.0.26=py_0

# packages for custom_climate_portraits branch
>   - geoviews=1.8.1=py_0
>   - h5netcdf=0.8.0=py_0
>   - holoviews=1.13.2=pyh9f0ad1d_0
>   - panel=0.9.5=py_1
>   - hvplot=0.5.2=py_0
>   - pscript=0.7.3=py_0
>   - siphon=0.8.0=py37_1002
>     - ipython-blocking==0.2.1
```

Full conda env export Diff:
[200427-200506-conda-env-export.diff.txt](https://github.com/Ouranosinc/PAVICS-e2e-workflow-tests/files/4590227/200427-200506-conda-env-export.diff.txt)

```diff
2a3
>   - bokeh
15c16
<   - bleach=3.1.4=pyh9f0ad1d_0
---
>   - bleach=3.1.5=pyh9f0ad1d_0
16a18
>   - bokeh=2.0.1=py37hc8dfbb8_0
23c25
<   - cartopy=0.17.0=py37h17ca249_1015
---
>   - cartopy=0.18.0=py37h4b180d9_0
25c27
<   - cdtime=3.1.3=py37h006a570_2
---
>   - cdtime=3.1.3=py37h006a570_3
30,31c32,33
<   - cfitsio=3.470=h00dd3da_3
<   - cftime=1.1.1.2=py37h03ebfcd_0
---
>   - cfitsio=3.470=h3eac812_5
>   - cftime=1.1.2=py37h03ebfcd_0
33c35
<   - click=7.1.1=pyh8c360ce_0
---
>   - click=7.1.2=pyh9f0ad1d_0
36c38
<   - cloudpickle=1.3.0=py_0
---
>   - cloudpickle=1.4.1=py_0
37a40
>   - colorcet=2.0.1=py_0
40c43
<   - cryptography=2.8=py37hb09aad4_2
---
>   - cryptography=2.9.2=py37hb09aad4_0
43a47
>   - dask=2.15.0=py_0
44a49,50
>   - datashader=0.10.0=py_0
>   - datashape=0.5.4=py_1
49a56
>   - distributed=2.15.2=py37hc8dfbb8_0
58c65
<   - fiona=1.8.13=py37h900e953_0
---
>   - fiona=1.8.13=py37h0492a4a_1
61a69
>   - fsspec=0.7.3=py_0
65a74
>   - geopandas=0.7.0=py_1
67a77,78
>   - geoviews=1.8.1=py_0
>   - geoviews-core=1.8.1=py_0
71,72c82,83
<   - gitdb=4.0.4=py_0
<   - gitpython=3.1.1=py_0
---
>   - gitdb=4.0.5=py_0
>   - gitpython=3.1.2=py_0
77a89,90
>   - h5netcdf=0.8.0=py_0
>   - h5py=2.10.0=nompi_py37h513d04c_102
79a93,94
>   - heapdict=1.0.1=py_0
>   - holoviews=1.13.2=pyh9f0ad1d_0
87c102
<   - ipython=7.13.0=py37hc8dfbb8_2
---
>   - ipython=7.14.0=py37hc8dfbb8_0
97a113
>   - jupyter_bokeh=2.0.1=py_0
105c121
<   - jupyterlab=2.1.1=py_0
---
>   - jupyterlab=2.1.2=py_0
116,117c132,133
<   - libcdms=3.1.2=nompi_h70c2909_110
<   - libcf=1.0.3=nompi_ha20483a_107
---
>   - libcdms=3.1.2=hf60d256_111
>   - libcf=1.0.3=py37hda0e254_108
121,122c137,138
<   - libdrs=3.1.2=nompi_h4ca35b2_111
<   - libdrs_f=3.1.2=nompi_hd82fec8_109
---
>   - libdrs=3.1.2=hc2e2db3_112
>   - libdrs_f=3.1.2=hae7e664_110
132a149
>   - libllvm8=8.0.1=hc9558a2_0
137a155
>   - libprotobuf=3.11.4=h8b12597_0
151a170,171
>   - llvmlite=0.31.0=py37h5202443_1
>   - locket=0.2.0=py_2
153c173
<   - lz4-c=1.9.2=he1b5a44_0
---
>   - lz4-c=1.9.2=he1b5a44_1
154a175
>   - markdown=3.2.1=py_0
161a183,184
>   - msgpack-python=1.0.0=py37h99015e2_1
>   - multipledispatch=0.6.0=py_0
164c187
<   - nbdime=2.0.0=py37hc8dfbb8_0
---
>   - nbdime=2.0.0=py_1
176c199,200
<   - numpy=1.18.1=py37h8960a57_1
---
>   - numba=0.48.0=py37hb3f55d8_0
>   - numpy=1.18.4=py37h8960a57_0
186c210
<   - pandas=0.25.3=py37hb3f55d8_0
---
>   - pandas=1.0.3=py37h0da4684_1
188a213,214
>   - panel=0.9.5=py_1
>   - param=1.9.3=py_0
189a216
>   - partd=1.1.0=py_0
194c221
<   - pip=20.0.2=py_2
---
>   - pip=20.1=pyh9f0ad1d_0
196c223
<   - pluggy=0.13.0=py37_0
---
>   - pluggy=0.13.1=py37hc8dfbb8_1
203a231,233
>   - protobuf=3.11.4=py37h3340039_1
>   - pscript=0.7.3=py_0
>   - psutil=5.7.0=py37h8f50634_1
207a238,239
>   - pyct=0.4.6=py_0
>   - pyct-core=0.4.6=py_0
213d244
<   - pykdtree=1.3.1=py37h03ebfcd_1003
216,217c247,248
<   - pyproj=2.6.0=py37h34dd122_1
<   - pyqt=5.12.3=py37hcca6a23_1
---
>   - pyproj=2.6.1.post1=py37h34dd122_0
>   - pyqt=5.12.3=py37h8685d9f_3
227c258,259
<   - pytz=2019.3=py_0
---
>   - pytz=2020.1=pyh9f0ad1d_0
>   - pyviz_comms=0.7.4=pyh8c360ce_0
237a270
>   - rioxarray=0.0.26=py_0
245a279
>   - siphon=0.8.0=py37_1002
247c281
<   - smmap=3.0.2=pyh9f0ad1d_0
---
>   - smmap=3.0.4=pyh9f0ad1d_0
248a283
>   - sortedcontainers=2.1.0=py_0
252a288
>   - tblib=1.6.0=py_0
259a296
>   - tqdm=4.46.0=pyh9f0ad1d_0
261a299
>   - typing_extensions=3.7.4.2=py_0
290a329
>   - zict=2.0.0=py_0
297d335
<     - bokeh==2.0.2
302,303d339
<     - distributed==2.15.0
<     - fsspec==0.7.3
306,307c342
<     - geopandas==0.7.0
<     - heapdict==1.0.1
---
>     - ipython-blocking==0.2.1
309,311d343
<     - llvmlite==0.32.0
<     - locket==0.2.0
<     - markdown==3.2.1
313,315d344
<     - msgpack==1.0.0
<     - numba==0.49.0
<     - partd==1.1.0
318d346
<     - psutil==5.7.0
319a348
>     - pyqtchart==5.12
323d351
<     - salem==0.2.4
325,327d352
<     - sortedcontainers==2.1.0
<     - tblib==1.6.0
<     - typing-extensions==3.7.4.2
330d354
<     - zict==2.0.0
```

[200506-200507-conda-env-export.diff.txt](https://github.com/Ouranosinc/PAVICS-e2e-workflow-tests/files/4594860/200506-200507-conda-env-export.diff.txt)

```diff
60c60
<   - esgf-compute-api=2.3.3=py_0
---
>   - esgf-compute-api=2.3.4=py_0
94a95
>   - hvplot=0.5.2=py_0
262c263
<   - pyzmq=19.0.0=py37hac76be4_1
---
>   - pyzmq=19.0.1=py37hac76be4_0
355c356
< prefix: /usr/local/envs/birdy
---
> prefix: /opt/conda/envs/birdy
```


Full new conda env export:
[200506-conda-env-export.yml.txt](https://github.com/Ouranosinc/PAVICS-e2e-workflow-tests/files/4590228/200506-conda-env-export.yml.txt)

```
name: birdy
channels:
  - bokeh
  - cdat
  - conda-forge
  - defaults
dependencies:
  - _libgcc_mutex=0.1=conda_forge
  - _openmp_mutex=4.5=0_gnu
  - affine=2.3.0=py_0
  - alembic=1.4.2=pyh9f0ad1d_0
  - async_generator=1.10=py_0
  - attrs=19.3.0=py_0
  - backcall=0.1.0=py_0
  - beautifulsoup4=4.9.0=py37hc8dfbb8_0
  - bleach=3.1.5=pyh9f0ad1d_0
  - blinker=1.4=py_1
  - bokeh=2.0.1=py37hc8dfbb8_0
  - boost-cpp=1.72.0=h8e57a91_0
  - branca=0.3.1=py_0
  - brotlipy=0.7.0=py37h8f50634_1000
  - bzip2=1.0.8=h516909a_2
  - ca-certificates=2020.4.5.1=hecc5488_0
  - cairo=1.16.0=hcf35c78_1003
  - cartopy=0.18.0=py37h4b180d9_0
  - cdat_info=8.2=py_7
  - cdtime=3.1.3=py37h006a570_3
  - cdutil=8.2=py_2
  - certifi=2020.4.5.1=py37hc8dfbb8_0
  - certipy=0.1.3=py_0
  - cffi=1.14.0=py37hd463f26_0
  - cfitsio=3.470=h3eac812_5
  - cftime=1.1.2=py37h03ebfcd_0
  - chardet=3.0.4=py37hc8dfbb8_1006
  - click=7.1.2=pyh9f0ad1d_0
  - click-plugins=1.1.1=py_0
  - cligj=0.5.0=py_0
  - cloudpickle=1.4.1=py_0
  - colorama=0.4.3=py_0
  - colorcet=2.0.1=py_0
  - configurable-http-proxy=4.2.1=node13_he01fd0c_0
  - coverage=5.1=py37h8f50634_0
  - cryptography=2.9.2=py37hb09aad4_0
  - curl=7.69.1=h33f0ec9_0
  - cycler=0.10.0=py_2
  - cytoolz=0.10.1=py37h516909a_0
  - dask=2.15.0=py_0
  - dask-core=2.15.0=py_0
  - datashader=0.10.0=py_0
  - datashape=0.5.4=py_1
  - dbus=1.13.6=he372182_0
  - decorator=4.4.2=py_0
  - defusedxml=0.6.0=py_0
  - descartes=1.1.0=py_4
  - distarray=2.12.2=py_1
  - distributed=2.15.2=py37hc8dfbb8_0
  - docopt=0.6.2=py_1
  - dv3d=8.2=py_0
  - entrypoints=0.3=py37hc8dfbb8_1001
  - esgf-compute-api=2.3.3=py_0
  - esmf=8.0.0=nompi_hb0fcdcb_6
  - esmpy=8.0.0=nompi_py37hf0e99fa_1
  - expat=2.2.9=he1b5a44_2
  - ffmpeg=4.2=h167e202_0
  - fiona=1.8.13=py37h0492a4a_1
  - fontconfig=2.13.1=h86ecdb6_1001
  - freetype=2.10.1=he06d7ca_0
  - freexl=1.0.5=h14c3975_1002
  - fsspec=0.7.3=py_0
  - future=0.18.2=py37hc8dfbb8_1
  - g2clib=1.6.0=hf3f1b0b_9
  - gdal=3.0.4=py37h4b180d9_6
  - genutil=8.2=py37hc1659b7_3
  - geopandas=0.7.0=py_1
  - geos=3.8.1=he1b5a44_0
  - geotiff=1.5.1=h05acad5_10
  - geoviews=1.8.1=py_0
  - geoviews-core=1.8.1=py_0
  - gettext=0.19.8.1=hc5be6a0_1002
  - ghostscript=9.22=hf484d3e_1001
  - giflib=5.2.1=h516909a_2
  - gitdb=4.0.5=py_0
  - gitpython=3.1.2=py_0
  - glib=2.64.2=h6f030ca_0
  - gmp=6.2.0=he1b5a44_2
  - gnutls=3.6.5=hd3a4fd2_1002
  - gst-plugins-base=1.14.5=h0935bb2_2
  - gstreamer=1.14.5=h36ae1b5_2
  - h5netcdf=0.8.0=py_0
  - h5py=2.10.0=nompi_py37h513d04c_102
  - hdf4=4.2.13=hf30be14_1003
  - hdf5=1.10.5=nompi_h3c11f04_1104
  - heapdict=1.0.1=py_0
  - holoviews=1.13.2=pyh9f0ad1d_0
  - icu=64.2=he1b5a44_1
  - idna=2.9=py_1
  - imageio=2.8.0=py_0
  - importlib-metadata=1.6.0=py37hc8dfbb8_0
  - importlib_metadata=1.6.0=0
  - ipykernel=5.2.1=py37h43977f1_0
  - ipyleaflet=0.12.4=pyh9f0ad1d_0
  - ipython=7.14.0=py37hc8dfbb8_0
  - ipython_genutils=0.2.0=py_1
  - ipywidgets=7.5.1=py_0
  - jasper=1.900.1=h07fcdf6_1006
  - jedi=0.17.0=py37hc8dfbb8_0
  - jinja2=2.11.2=pyh9f0ad1d_0
  - jpeg=9c=h14c3975_1001
  - json-c=0.13.1=h14c3975_1001
  - json5=0.9.0=py_0
  - jsonschema=3.2.0=py37hc8dfbb8_1
  - jupyter=1.0.0=py_2
  - jupyter_bokeh=2.0.1=py_0
  - jupyter_client=6.1.3=py_0
  - jupyter_console=6.1.0=py_1
  - jupyter_core=4.6.3=py37hc8dfbb8_1
  - jupyter_server=0.1.1=py37_0
  - jupyter_telemetry=0.0.5=py_0
  - jupyterhub=1.1.0=py37_2
  - jupyterhub-base=1.1.0=py37_2
  - jupyterlab=2.1.2=py_0
  - jupyterlab_pygments=0.1.1=pyh9f0ad1d_0
  - jupyterlab_server=1.1.1=py_0
  - kealib=1.4.13=hec59c27_0
  - kiwisolver=1.2.0=py37h99015e2_0
  - krb5=1.17.1=h2fd8d38_0
  - lame=3.100=h14c3975_1001
  - lazy-object-proxy=1.4.3=py37h8f50634_2
  - ld_impl_linux-64=2.34=h53a641e_0
  - libblas=3.8.0=11_openblas
  - libcblas=3.8.0=11_openblas
  - libcdms=3.1.2=hf60d256_111
  - libcf=1.0.3=py37hda0e254_108
  - libclang=9.0.1=default_hde54327_0
  - libcurl=7.69.1=hf7181ac_0
  - libdap4=3.20.6=h1d1bd15_0
  - libdrs=3.1.2=hc2e2db3_112
  - libdrs_f=3.1.2=hae7e664_110
  - libedit=3.1.20170329=hf8c457e_1001
  - libffi=3.2.1=he1b5a44_1007
  - libgcc-ng=9.2.0=h24d8f2e_2
  - libgdal=3.0.4=h3dfc09a_6
  - libgfortran-ng=7.3.0=hdf63c60_5
  - libgomp=9.2.0=h24d8f2e_2
  - libiconv=1.15=h516909a_1006
  - libidn2=2.3.0=h516909a_0
  - libkml=1.3.0=hb574062_1011
  - liblapack=3.8.0=11_openblas
  - libllvm8=8.0.1=hc9558a2_0
  - libllvm9=9.0.1=he513fc3_1
  - libnetcdf=4.7.4=nompi_h9f9fd6a_101
  - libopenblas=0.3.6=h6e990d7_6
  - libpng=1.6.37=hed695b0_1
  - libpq=12.2=h5513abc_1
  - libprotobuf=3.11.4=h8b12597_0
  - libsodium=1.0.17=h516909a_0
  - libspatialindex=1.9.3=he1b5a44_3
  - libspatialite=4.3.0a=h2482549_1038
  - libssh2=1.8.2=h22169c7_2
  - libstdcxx-ng=9.2.0=hdf63c60_2
  - libtiff=4.1.0=hc7e4089_6
  - libunistring=0.9.10=h14c3975_0
  - libuuid=2.32.1=h14c3975_1000
  - libuv=1.34.0=h516909a_0
  - libwebp-base=1.1.0=h516909a_3
  - libxcb=1.13=h14c3975_1002
  - libxkbcommon=0.10.0=he1b5a44_0
  - libxml2=2.9.10=hee79883_0
  - libxslt=1.1.33=h31b3aaa_0
  - llvmlite=0.31.0=py37h5202443_1
  - locket=0.2.0=py_2
  - lxml=4.5.0=py37he3881c9_1
  - lz4-c=1.9.2=he1b5a44_1
  - mako=1.1.0=py_0
  - markdown=3.2.1=py_0
  - markupsafe=1.1.1=py37h8f50634_1
  - matplotlib=3.2.1=0
  - matplotlib-base=3.2.1=py37h30547a4_0
  - mechanicalsoup=0.12.0=py_0
  - mesalib=18.3.1=h590aaf7_0
  - mistune=0.8.4=py37h8f50634_1001
  - more-itertools=8.2.0=py_0
  - msgpack-python=1.0.0=py37h99015e2_1
  - multipledispatch=0.6.0=py_0
  - munch=2.5.0=py_0
  - nbconvert=5.6.1=py37hc8dfbb8_1
  - nbdime=2.0.0=py_1
  - nbformat=5.0.6=py_0
  - nbval=0.9.5=py_0
  - ncurses=6.1=hf484d3e_1002
  - netcdf-fortran=4.5.2=nompi_h45d7149_104
  - netcdf4=1.5.3=nompi_py37hec16513_103
  - nettle=3.4.1=h1bed415_1002
  - networkx=2.4=py_1
  - nodejs=13.13.0=hf5d1a2b_0
  - notebook=6.0.3=py37_0
  - nspr=4.25=he1b5a44_0
  - nss=3.47=he751ad9_0
  - numba=0.48.0=py37hb3f55d8_0
  - numpy=1.18.4=py37h8960a57_0
  - oauthlib=3.0.1=py_0
  - olefile=0.46=py_0
  - openblas=0.3.6=h6e990d7_6
  - openh264=1.8.0=hdbcaa40_1000
  - openjpeg=2.3.1=h981e76c_3
  - openssl=1.1.1g=h516909a_0
  - owslib=0.19.2=py_1
  - packaging=20.1=py_0
  - pamela=1.0.0=py_0
  - pandas=1.0.3=py37h0da4684_1
  - pandoc=2.9.2.1=0
  - pandocfilters=1.4.2=py_1
  - panel=0.9.5=py_1
  - param=1.9.3=py_0
  - parso=0.7.0=pyh9f0ad1d_0
  - partd=1.1.0=py_0
  - pcre=8.44=he1b5a44_0
  - pexpect=4.8.0=py37hc8dfbb8_1
  - pickleshare=0.7.5=py37hc8dfbb8_1001
  - pillow=7.1.2=py37h718be6c_0
  - pip=20.1=pyh9f0ad1d_0
  - pixman=0.38.0=h516909a_1003
  - pluggy=0.13.1=py37hc8dfbb8_1
  - poppler=0.67.0=h14e79db_8
  - poppler-data=0.4.9=1
  - postgresql=12.2=h8573dbc_1
  - proj=7.0.0=h966b41f_3
  - prometheus_client=0.7.1=py_0
  - prompt-toolkit=3.0.5=py_0
  - prompt_toolkit=3.0.5=0
  - protobuf=3.11.4=py37h3340039_1
  - pscript=0.7.3=py_0
  - psutil=5.7.0=py37h8f50634_1
  - pthread-stubs=0.4=h14c3975_1001
  - ptyprocess=0.6.0=py_1001
  - py=1.8.1=py_0
  - pycparser=2.20=py_0
  - pyct=0.4.6=py_0
  - pyct-core=0.4.6=py_0
  - pycurl=7.43.0.5=py37h16ce93b_0
  - pydap=3.2.2=py37_1000
  - pyepsg=0.4.0=py_0
  - pygments=2.6.1=py_0
  - pyjwt=1.7.1=py_0
  - pyopenssl=19.1.0=py_1
  - pyparsing=2.4.7=pyh9f0ad1d_0
  - pyproj=2.6.1.post1=py37h34dd122_0
  - pyqt=5.12.3=py37h8685d9f_3
  - pyrsistent=0.16.0=py37h8f50634_0
  - pyshp=2.1.0=py_0
  - pysocks=1.7.1=py37hc8dfbb8_1
  - pytest=5.4.1=py37hc8dfbb8_0
  - python=3.7.6=h8356626_5_cpython
  - python-dateutil=2.8.1=py_0
  - python-editor=1.0.4=py_0
  - python-json-logger=0.1.11=py_0
  - python_abi=3.7=1_cp37m
  - pytz=2020.1=pyh9f0ad1d_0
  - pyviz_comms=0.7.4=pyh8c360ce_0
  - pywavelets=1.1.1=py37h03ebfcd_1
  - pyyaml=5.3.1=py37h8f50634_0
  - pyzmq=19.0.0=py37hac76be4_1
  - qt=5.12.5=hd8c4c69_1
  - qtconsole=4.7.3=pyh9f0ad1d_0
  - qtpy=1.9.0=py_0
  - rasterio=1.1.3=py37h900e953_0
  - readline=8.0=hf8c457e_0
  - regionmask=0.5.0=py_1
  - requests=2.23.0=pyh8c360ce_2
  - rioxarray=0.0.26=py_0
  - rtree=0.9.4=py37h8526d28_1
  - ruamel.yaml=0.16.6=py37h8f50634_1
  - ruamel.yaml.clib=0.2.0=py37h8f50634_1
  - scikit-image=0.16.2=py37hb3f55d8_0
  - scipy=1.4.1=py37ha3d9a3c_3
  - send2trash=1.5.0=py_0
  - setuptools=46.1.3=py37hc8dfbb8_0
  - shapely=1.7.0=py37hc88ce51_3
  - siphon=0.8.0=py37_1002
  - six=1.14.0=py_1
  - smmap=3.0.4=pyh9f0ad1d_0
  - snuggs=1.4.7=py_0
  - sortedcontainers=2.1.0=py_0
  - soupsieve=1.9.4=py37hc8dfbb8_1
  - sqlalchemy=1.3.16=py37h8f50634_0
  - sqlite=3.30.1=hcee41ef_0
  - tbb=2018.0.5=h2d50403_0
  - tblib=1.6.0=py_0
  - terminado=0.8.3=py37hc8dfbb8_1
  - testpath=0.4.4=py_0
  - threddsclient=0.4.2=py_0
  - tiledb=1.7.7=h8efa9f0_1
  - tk=8.6.10=hed695b0_0
  - toolz=0.10.0=py_0
  - tornado=6.0.4=py37h8f50634_1
  - tqdm=4.46.0=pyh9f0ad1d_0
  - traitlets=4.3.3=py37hc8dfbb8_1
  - traittypes=0.2.1=py_1
  - typing_extensions=3.7.4.2=py_0
  - tzcode=2020a=h516909a_0
  - udunits2=2.2.27.6=h4e0c4b3_1001
  - urllib3=1.25.9=py_0
  - vcs=8.2=py_2
  - voila=0.1.21=py_0
  - vtk-cdat=8.2.0.8.2=py37_mesalibhead77ed_0
  - wcwidth=0.1.9=pyh9f0ad1d_0
  - webencodings=0.5.1=py_1
  - webob=1.8.6=py_0
  - wget=1.20.1=h22169c7_0
  - wheel=0.34.2=py_1
  - widgetsnbextension=3.5.1=py37_0
  - x264=1!152.20180806=h14c3975_0
  - xarray=0.15.1=py_0
  - xerces-c=3.2.2=h8412b87_1004
  - xorg-kbproto=1.0.7=h14c3975_1002
  - xorg-libice=1.0.10=h516909a_0
  - xorg-libsm=1.2.3=h84519dc_1000
  - xorg-libx11=1.6.9=h516909a_0
  - xorg-libxau=1.0.9=h14c3975_0
  - xorg-libxdmcp=1.1.3=h516909a_0
  - xorg-libxext=1.3.4=h516909a_0
  - xorg-libxrender=0.9.10=h516909a_1002
  - xorg-renderproto=0.11.1=h14c3975_1002
  - xorg-xextproto=7.3.0=h14c3975_1002
  - xorg-xproto=7.0.31=h14c3975_1007
  - xz=5.2.5=h516909a_0
  - yaml=0.2.4=h516909a_0
  - zeromq=4.3.2=he1b5a44_2
  - zict=2.0.0=py_0
  - zipp=3.1.0=py_0
  - zlib=1.2.11=h516909a_1006
  - zstd=1.4.4=h6597ccf_3
  - pip:
    - astunparse==1.6.3
    - birdhouse-birdy==0.6.9
    - boltons==20.1.0
    - bottleneck==1.3.2
    - cdms2==3.1.4
    - colour==0.1.5
    - funcsigs==1.0.2
    - geojson==2.5.0
    - ipython-blocking==0.2.1
    - joblib==0.14.1
    - mpld3==0.3
    - pint==0.11
    - pixiedust==1.1.18
    - pyqt5-sip==4.19.18
    - pyqtchart==5.12
    - pyqtwebengine==5.12.1
    - regrid2==3.1.4
    - requests-magpie==0.1.1
    - scikit-learn==0.22.2.post1
    - wrapt==1.12.1
    - xclim==0.16.0
prefix: /usr/local/envs/birdy
```

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

```
name: birdy
channels:
  - bokeh
  - cdat
  - conda-forge
  - defaults
dependencies:
  - _libgcc_mutex=0.1=conda_forge
  - _openmp_mutex=4.5=0_gnu
  - affine=2.3.0=py_0
  - alembic=1.4.2=pyh9f0ad1d_0
  - async_generator=1.10=py_0
  - attrs=19.3.0=py_0
  - backcall=0.1.0=py_0
  - beautifulsoup4=4.9.0=py37hc8dfbb8_0
  - bleach=3.1.5=pyh9f0ad1d_0
  - blinker=1.4=py_1
  - bokeh=2.0.1=py37hc8dfbb8_0
  - boost-cpp=1.72.0=h8e57a91_0
  - branca=0.3.1=py_0
  - brotlipy=0.7.0=py37h8f50634_1000
  - bzip2=1.0.8=h516909a_2
  - ca-certificates=2020.4.5.1=hecc5488_0
  - cairo=1.16.0=hcf35c78_1003
  - cartopy=0.18.0=py37h4b180d9_0
  - cdat_info=8.2=py_7
  - cdtime=3.1.3=py37h006a570_3
  - cdutil=8.2=py_2
  - certifi=2020.4.5.1=py37hc8dfbb8_0
  - certipy=0.1.3=py_0
  - cffi=1.14.0=py37hd463f26_0
  - cfitsio=3.470=h3eac812_5
  - cftime=1.1.2=py37h03ebfcd_0
  - chardet=3.0.4=py37hc8dfbb8_1006
  - click=7.1.2=pyh9f0ad1d_0
  - click-plugins=1.1.1=py_0
  - cligj=0.5.0=py_0
  - cloudpickle=1.4.1=py_0
  - colorama=0.4.3=py_0
  - colorcet=2.0.1=py_0
  - configurable-http-proxy=4.2.1=node13_he01fd0c_0
  - coverage=5.1=py37h8f50634_0
  - cryptography=2.9.2=py37hb09aad4_0
  - curl=7.69.1=h33f0ec9_0
  - cycler=0.10.0=py_2
  - cytoolz=0.10.1=py37h516909a_0
  - dask=2.15.0=py_0
  - dask-core=2.15.0=py_0
  - datashader=0.10.0=py_0
  - datashape=0.5.4=py_1
  - dbus=1.13.6=he372182_0
  - decorator=4.4.2=py_0
  - defusedxml=0.6.0=py_0
  - descartes=1.1.0=py_4
  - distarray=2.12.2=py_1
  - distributed=2.15.2=py37hc8dfbb8_0
  - docopt=0.6.2=py_1
  - dv3d=8.2=py_0
  - entrypoints=0.3=py37hc8dfbb8_1001
  - esgf-compute-api=2.3.4=py_0
  - esmf=8.0.0=nompi_hb0fcdcb_6
  - esmpy=8.0.0=nompi_py37hf0e99fa_1
  - expat=2.2.9=he1b5a44_2
  - ffmpeg=4.2=h167e202_0
  - fiona=1.8.13=py37h0492a4a_1
  - fontconfig=2.13.1=h86ecdb6_1001
  - freetype=2.10.1=he06d7ca_0
  - freexl=1.0.5=h14c3975_1002
  - fsspec=0.7.3=py_0
  - future=0.18.2=py37hc8dfbb8_1
  - g2clib=1.6.0=hf3f1b0b_9
  - gdal=3.0.4=py37h4b180d9_6
  - genutil=8.2=py37hc1659b7_3
  - geopandas=0.7.0=py_1
  - geos=3.8.1=he1b5a44_0
  - geotiff=1.5.1=h05acad5_10
  - geoviews=1.8.1=py_0
  - geoviews-core=1.8.1=py_0
  - gettext=0.19.8.1=hc5be6a0_1002
  - ghostscript=9.22=hf484d3e_1001
  - giflib=5.2.1=h516909a_2
  - gitdb=4.0.5=py_0
  - gitpython=3.1.2=py_0
  - glib=2.64.2=h6f030ca_0
  - gmp=6.2.0=he1b5a44_2
  - gnutls=3.6.5=hd3a4fd2_1002
  - gst-plugins-base=1.14.5=h0935bb2_2
  - gstreamer=1.14.5=h36ae1b5_2
  - h5netcdf=0.8.0=py_0
  - h5py=2.10.0=nompi_py37h513d04c_102
  - hdf4=4.2.13=hf30be14_1003
  - hdf5=1.10.5=nompi_h3c11f04_1104
  - heapdict=1.0.1=py_0
  - holoviews=1.13.2=pyh9f0ad1d_0
  - hvplot=0.5.2=py_0
  - icu=64.2=he1b5a44_1
  - idna=2.9=py_1
  - imageio=2.8.0=py_0
  - importlib-metadata=1.6.0=py37hc8dfbb8_0
  - importlib_metadata=1.6.0=0
  - ipykernel=5.2.1=py37h43977f1_0
  - ipyleaflet=0.12.4=pyh9f0ad1d_0
  - ipython=7.14.0=py37hc8dfbb8_0
  - ipython_genutils=0.2.0=py_1
  - ipywidgets=7.5.1=py_0
  - jasper=1.900.1=h07fcdf6_1006
  - jedi=0.17.0=py37hc8dfbb8_0
  - jinja2=2.11.2=pyh9f0ad1d_0
  - jpeg=9c=h14c3975_1001
  - json-c=0.13.1=h14c3975_1001
  - json5=0.9.0=py_0
  - jsonschema=3.2.0=py37hc8dfbb8_1
  - jupyter=1.0.0=py_2
  - jupyter_bokeh=2.0.1=py_0
  - jupyter_client=6.1.3=py_0
  - jupyter_console=6.1.0=py_1
  - jupyter_core=4.6.3=py37hc8dfbb8_1
  - jupyter_server=0.1.1=py37_0
  - jupyter_telemetry=0.0.5=py_0
  - jupyterhub=1.1.0=py37_2
  - jupyterhub-base=1.1.0=py37_2
  - jupyterlab=2.1.2=py_0
  - jupyterlab_pygments=0.1.1=pyh9f0ad1d_0
  - jupyterlab_server=1.1.1=py_0
  - kealib=1.4.13=hec59c27_0
  - kiwisolver=1.2.0=py37h99015e2_0
  - krb5=1.17.1=h2fd8d38_0
  - lame=3.100=h14c3975_1001
  - lazy-object-proxy=1.4.3=py37h8f50634_2
  - ld_impl_linux-64=2.34=h53a641e_0
  - libblas=3.8.0=11_openblas
  - libcblas=3.8.0=11_openblas
  - libcdms=3.1.2=hf60d256_111
  - libcf=1.0.3=py37hda0e254_108
  - libclang=9.0.1=default_hde54327_0
  - libcurl=7.69.1=hf7181ac_0
  - libdap4=3.20.6=h1d1bd15_0
  - libdrs=3.1.2=hc2e2db3_112
  - libdrs_f=3.1.2=hae7e664_110
  - libedit=3.1.20170329=hf8c457e_1001
  - libffi=3.2.1=he1b5a44_1007
  - libgcc-ng=9.2.0=h24d8f2e_2
  - libgdal=3.0.4=h3dfc09a_6
  - libgfortran-ng=7.3.0=hdf63c60_5
  - libgomp=9.2.0=h24d8f2e_2
  - libiconv=1.15=h516909a_1006
  - libidn2=2.3.0=h516909a_0
  - libkml=1.3.0=hb574062_1011
  - liblapack=3.8.0=11_openblas
  - libllvm8=8.0.1=hc9558a2_0
  - libllvm9=9.0.1=he513fc3_1
  - libnetcdf=4.7.4=nompi_h9f9fd6a_101
  - libopenblas=0.3.6=h6e990d7_6
  - libpng=1.6.37=hed695b0_1
  - libpq=12.2=h5513abc_1
  - libprotobuf=3.11.4=h8b12597_0
  - libsodium=1.0.17=h516909a_0
  - libspatialindex=1.9.3=he1b5a44_3
  - libspatialite=4.3.0a=h2482549_1038
  - libssh2=1.8.2=h22169c7_2
  - libstdcxx-ng=9.2.0=hdf63c60_2
  - libtiff=4.1.0=hc7e4089_6
  - libunistring=0.9.10=h14c3975_0
  - libuuid=2.32.1=h14c3975_1000
  - libuv=1.34.0=h516909a_0
  - libwebp-base=1.1.0=h516909a_3
  - libxcb=1.13=h14c3975_1002
  - libxkbcommon=0.10.0=he1b5a44_0
  - libxml2=2.9.10=hee79883_0
  - libxslt=1.1.33=h31b3aaa_0
  - llvmlite=0.31.0=py37h5202443_1
  - locket=0.2.0=py_2
  - lxml=4.5.0=py37he3881c9_1
  - lz4-c=1.9.2=he1b5a44_1
  - mako=1.1.0=py_0
  - markdown=3.2.1=py_0
  - markupsafe=1.1.1=py37h8f50634_1
  - matplotlib=3.2.1=0
  - matplotlib-base=3.2.1=py37h30547a4_0
  - mechanicalsoup=0.12.0=py_0
  - mesalib=18.3.1=h590aaf7_0
  - mistune=0.8.4=py37h8f50634_1001
  - more-itertools=8.2.0=py_0
  - msgpack-python=1.0.0=py37h99015e2_1
  - multipledispatch=0.6.0=py_0
  - munch=2.5.0=py_0
  - nbconvert=5.6.1=py37hc8dfbb8_1
  - nbdime=2.0.0=py_1
  - nbformat=5.0.6=py_0
  - nbval=0.9.5=py_0
  - ncurses=6.1=hf484d3e_1002
  - netcdf-fortran=4.5.2=nompi_h45d7149_104
  - netcdf4=1.5.3=nompi_py37hec16513_103
  - nettle=3.4.1=h1bed415_1002
  - networkx=2.4=py_1
  - nodejs=13.13.0=hf5d1a2b_0
  - notebook=6.0.3=py37_0
  - nspr=4.25=he1b5a44_0
  - nss=3.47=he751ad9_0
  - numba=0.48.0=py37hb3f55d8_0
  - numpy=1.18.4=py37h8960a57_0
  - oauthlib=3.0.1=py_0
  - olefile=0.46=py_0
  - openblas=0.3.6=h6e990d7_6
  - openh264=1.8.0=hdbcaa40_1000
  - openjpeg=2.3.1=h981e76c_3
  - openssl=1.1.1g=h516909a_0
  - owslib=0.19.2=py_1
  - packaging=20.1=py_0
  - pamela=1.0.0=py_0
  - pandas=1.0.3=py37h0da4684_1
  - pandoc=2.9.2.1=0
  - pandocfilters=1.4.2=py_1
  - panel=0.9.5=py_1
  - param=1.9.3=py_0
  - parso=0.7.0=pyh9f0ad1d_0
  - partd=1.1.0=py_0
  - pcre=8.44=he1b5a44_0
  - pexpect=4.8.0=py37hc8dfbb8_1
  - pickleshare=0.7.5=py37hc8dfbb8_1001
  - pillow=7.1.2=py37h718be6c_0
  - pip=20.1=pyh9f0ad1d_0
  - pixman=0.38.0=h516909a_1003
  - pluggy=0.13.1=py37hc8dfbb8_1
  - poppler=0.67.0=h14e79db_8
  - poppler-data=0.4.9=1
  - postgresql=12.2=h8573dbc_1
  - proj=7.0.0=h966b41f_3
  - prometheus_client=0.7.1=py_0
  - prompt-toolkit=3.0.5=py_0
  - prompt_toolkit=3.0.5=0
  - protobuf=3.11.4=py37h3340039_1
  - pscript=0.7.3=py_0
  - psutil=5.7.0=py37h8f50634_1
  - pthread-stubs=0.4=h14c3975_1001
  - ptyprocess=0.6.0=py_1001
  - py=1.8.1=py_0
  - pycparser=2.20=py_0
  - pyct=0.4.6=py_0
  - pyct-core=0.4.6=py_0
  - pycurl=7.43.0.5=py37h16ce93b_0
  - pydap=3.2.2=py37_1000
  - pyepsg=0.4.0=py_0
  - pygments=2.6.1=py_0
  - pyjwt=1.7.1=py_0
  - pyopenssl=19.1.0=py_1
  - pyparsing=2.4.7=pyh9f0ad1d_0
  - pyproj=2.6.1.post1=py37h34dd122_0
  - pyqt=5.12.3=py37h8685d9f_3
  - pyrsistent=0.16.0=py37h8f50634_0
  - pyshp=2.1.0=py_0
  - pysocks=1.7.1=py37hc8dfbb8_1
  - pytest=5.4.1=py37hc8dfbb8_0
  - python=3.7.6=h8356626_5_cpython
  - python-dateutil=2.8.1=py_0
  - python-editor=1.0.4=py_0
  - python-json-logger=0.1.11=py_0
  - python_abi=3.7=1_cp37m
  - pytz=2020.1=pyh9f0ad1d_0
  - pyviz_comms=0.7.4=pyh8c360ce_0
  - pywavelets=1.1.1=py37h03ebfcd_1
  - pyyaml=5.3.1=py37h8f50634_0
  - pyzmq=19.0.1=py37hac76be4_0
  - qt=5.12.5=hd8c4c69_1
  - qtconsole=4.7.3=pyh9f0ad1d_0
  - qtpy=1.9.0=py_0
  - rasterio=1.1.3=py37h900e953_0
  - readline=8.0=hf8c457e_0
  - regionmask=0.5.0=py_1
  - requests=2.23.0=pyh8c360ce_2
  - rioxarray=0.0.26=py_0
  - rtree=0.9.4=py37h8526d28_1
  - ruamel.yaml=0.16.6=py37h8f50634_1
  - ruamel.yaml.clib=0.2.0=py37h8f50634_1
  - scikit-image=0.16.2=py37hb3f55d8_0
  - scipy=1.4.1=py37ha3d9a3c_3
  - send2trash=1.5.0=py_0
  - setuptools=46.1.3=py37hc8dfbb8_0
  - shapely=1.7.0=py37hc88ce51_3
  - siphon=0.8.0=py37_1002
  - six=1.14.0=py_1
  - smmap=3.0.4=pyh9f0ad1d_0
  - snuggs=1.4.7=py_0
  - sortedcontainers=2.1.0=py_0
  - soupsieve=1.9.4=py37hc8dfbb8_1
  - sqlalchemy=1.3.16=py37h8f50634_0
  - sqlite=3.30.1=hcee41ef_0
  - tbb=2018.0.5=h2d50403_0
  - tblib=1.6.0=py_0
  - terminado=0.8.3=py37hc8dfbb8_1
  - testpath=0.4.4=py_0
  - threddsclient=0.4.2=py_0
  - tiledb=1.7.7=h8efa9f0_1
  - tk=8.6.10=hed695b0_0
  - toolz=0.10.0=py_0
  - tornado=6.0.4=py37h8f50634_1
  - tqdm=4.46.0=pyh9f0ad1d_0
  - traitlets=4.3.3=py37hc8dfbb8_1
  - traittypes=0.2.1=py_1
  - typing_extensions=3.7.4.2=py_0
  - tzcode=2020a=h516909a_0
  - udunits2=2.2.27.6=h4e0c4b3_1001
  - urllib3=1.25.9=py_0
  - vcs=8.2=py_2
  - voila=0.1.21=py_0
  - vtk-cdat=8.2.0.8.2=py37_mesalibhead77ed_0
  - wcwidth=0.1.9=pyh9f0ad1d_0
  - webencodings=0.5.1=py_1
  - webob=1.8.6=py_0
  - wget=1.20.1=h22169c7_0
  - wheel=0.34.2=py_1
  - widgetsnbextension=3.5.1=py37_0
  - x264=1!152.20180806=h14c3975_0
  - xarray=0.15.1=py_0
  - xerces-c=3.2.2=h8412b87_1004
  - xorg-kbproto=1.0.7=h14c3975_1002
  - xorg-libice=1.0.10=h516909a_0
  - xorg-libsm=1.2.3=h84519dc_1000
  - xorg-libx11=1.6.9=h516909a_0
  - xorg-libxau=1.0.9=h14c3975_0
  - xorg-libxdmcp=1.1.3=h516909a_0
  - xorg-libxext=1.3.4=h516909a_0
  - xorg-libxrender=0.9.10=h516909a_1002
  - xorg-renderproto=0.11.1=h14c3975_1002
  - xorg-xextproto=7.3.0=h14c3975_1002
  - xorg-xproto=7.0.31=h14c3975_1007
  - xz=5.2.5=h516909a_0
  - yaml=0.2.4=h516909a_0
  - zeromq=4.3.2=he1b5a44_2
  - zict=2.0.0=py_0
  - zipp=3.1.0=py_0
  - zlib=1.2.11=h516909a_1006
  - zstd=1.4.4=h6597ccf_3
  - pip:
    - astunparse==1.6.3
    - birdhouse-birdy==0.6.9
    - boltons==20.1.0
    - bottleneck==1.3.2
    - cdms2==3.1.4
    - colour==0.1.5
    - funcsigs==1.0.2
    - geojson==2.5.0
    - ipython-blocking==0.2.1
    - joblib==0.14.1
    - mpld3==0.3
    - pint==0.11
    - pixiedust==1.1.18
    - pyqt5-sip==4.19.18
    - pyqtchart==5.12
    - pyqtwebengine==5.12.1
    - regrid2==3.1.4
    - requests-magpie==0.1.1
    - scikit-learn==0.22.2.post1
    - wrapt==1.12.1
    - xclim==0.16.0
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
Development

Successfully merging this pull request may close these issues.

None yet

2 participants