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

ValueError: crs not understood #152

Open
nickbsb opened this issue Jul 26, 2019 · 16 comments
Open

ValueError: crs not understood #152

nickbsb opened this issue Jul 26, 2019 · 16 comments

Comments

@nickbsb
Copy link

nickbsb commented Jul 26, 2019

import numpy as np
import xarray as xr
import salem
da = xr.DataArray(np.arange(20).reshape(4, 5), dims=['lat', 'lon'],
coords={'lat':np.linspace(0, 30, 4),
'lon':np.linspace(-20, 20, 5)})
da.salem.quick_map()

But the errors show ' ValueError: crs not understood',how to solve this ?

@fmaussion
Copy link
Owner

Can you send:

  • full traceback
  • salem version
  • OS

This works with latest salem for me, works on linux, and works on the docs, so it's hard for me to assess what could go wrong...

@byersiiasa
Copy link

I have the same issue:

`Traceback (most recent call last):

  File "<ipython-input-16-42c99e2e2df6>", line 1, in <module>
    da.salem.quick_map()

  File "C:\Users\byers\AppData\Local\Continuum\anaconda3\envs\EB_Py3_light\lib\site-packages\salem\sio.py", line 705, in quick_map
    return self._quick_map(self._obj, ax=ax, interp=interp, **kwargs)

  File "C:\Users\byers\AppData\Local\Continuum\anaconda3\envs\EB_Py3_light\lib\site-packages\salem\sio.py", line 548, in _quick_map
    smap = self.get_map(**kwargs)

  File "C:\Users\byers\AppData\Local\Continuum\anaconda3\envs\EB_Py3_light\lib\site-packages\salem\sio.py", line 537, in get_map
    return Map(self.grid, **kwargs)

  File "C:\Users\byers\AppData\Local\Continuum\anaconda3\envs\EB_Py3_light\lib\site-packages\salem\graphics.py", line 426, in __init__
    self.set_shapefile(countries=countries)

  File "C:\Users\byers\AppData\Local\Continuum\anaconda3\envs\EB_Py3_light\lib\site-packages\salem\graphics.py", line 678, in set_shapefile
    return self.set_shapefile(shapefiles['world_borders'], **kwargs)

  File "C:\Users\byers\AppData\Local\Continuum\anaconda3\envs\EB_Py3_light\lib\site-packages\salem\graphics.py", line 693, in set_shapefile
    shape = sio.read_shapefile_to_grid(shape, grid=self.grid)

  File "C:\Users\byers\AppData\Local\Continuum\anaconda3\envs\EB_Py3_light\lib\site-packages\salem\sio.py", line 117, in read_shapefile_to_grid
    **grid.to_dict())

  File "C:\Users\byers\AppData\Local\Continuum\anaconda3\envs\EB_Py3_light\lib\site-packages\joblib\memory.py", line 568, in __call__
    return self._cached_call(args, kwargs)[0]

  File "C:\Users\byers\AppData\Local\Continuum\anaconda3\envs\EB_Py3_light\lib\site-packages\joblib\memory.py", line 534, in _cached_call
    out, metadata = self.call(*args, **kwargs)

  File "C:\Users\byers\AppData\Local\Continuum\anaconda3\envs\EB_Py3_light\lib\site-packages\joblib\memory.py", line 734, in call
    output = self.func(*args, **kwargs)

  File "C:\Users\byers\AppData\Local\Continuum\anaconda3\envs\EB_Py3_light\lib\site-packages\salem\sio.py", line 87, in _memory_shapefile_to_grid
    e = grid.extent_in_crs(crs=shape.crs)

  File "C:\Users\byers\AppData\Local\Continuum\anaconda3\envs\EB_Py3_light\lib\site-packages\salem\gis.py", line 525, in extent_in_crs
    poly = self.extent_as_polygon(crs=crs)

  File "C:\Users\byers\AppData\Local\Continuum\anaconda3\envs\EB_Py3_light\lib\site-packages\salem\gis.py", line 553, in extent_as_polygon
    _i, _j = self.corner_grid.ij_to_crs(_i, _j, crs=crs)

  File "C:\Users\byers\AppData\Local\Continuum\anaconda3\envs\EB_Py3_light\lib\site-packages\salem\gis.py", line 634, in ij_to_crs
    raise ValueError('crs not understood')

ValueError: crs not understood`

Salem 0.2.4
Xarray 0.12.3
Windows 10
Python 3.7, Anaconda build

@fmaussion
Copy link
Owner

Can you try to install from master, and update pyproj as well in the process?

pip install git+https://github.com/fmaussion/salem.git

@byersiiasa
Copy link

byersiiasa commented Sep 2, 2019

Just tried with master. Same issue. Same error also when running the
da.salem.roi() command

Traceback (most recent call last):

  File "<ipython-input-15-5c6a7b9b7a89>", line 2, in <module>
    hr_crop_wels[sector+'_basin'] = hr_crop_wels[sector].salem.roi(shape=shdf)

  File "C:\Users\byers\AppData\Local\Continuum\anaconda3\envs\EB_Py3_light\lib\site-packages\salem\sio.py", line 506, in roi
    mask = self.grid.region_of_interest(**kwargs)

  File "C:\Users\byers\AppData\Local\Continuum\anaconda3\envs\EB_Py3_light\lib\site-packages\salem\gis.py", line 1029, in region_of_interest
    inplace=inplace)

  File "C:\Users\byers\AppData\Local\Continuum\anaconda3\envs\EB_Py3_light\lib\site-packages\salem\gis.py", line 1310, in transform_geopandas
    result = out.geometry.apply(lambda geom: transform(project, geom))

  File "C:\Users\byers\AppData\Local\Continuum\anaconda3\envs\EB_Py3_light\lib\site-packages\pandas\core\series.py", line 3591, in apply
    mapped = lib.map_infer(values, f, convert=convert_dtype)

  File "pandas/_libs/lib.pyx", line 2217, in pandas._libs.lib.map_infer

  File "C:\Users\byers\AppData\Local\Continuum\anaconda3\envs\EB_Py3_light\lib\site-packages\salem\gis.py", line 1310, in <lambda>
    result = out.geometry.apply(lambda geom: transform(project, geom))

  File "C:\Users\byers\AppData\Local\Continuum\anaconda3\envs\EB_Py3_light\lib\site-packages\shapely\ops.py", line 252, in transform
    return type(geom)([transform(func, part) for part in geom.geoms])

  File "C:\Users\byers\AppData\Local\Continuum\anaconda3\envs\EB_Py3_light\lib\site-packages\shapely\ops.py", line 252, in <listcomp>
    return type(geom)([transform(func, part) for part in geom.geoms])

  File "C:\Users\byers\AppData\Local\Continuum\anaconda3\envs\EB_Py3_light\lib\site-packages\shapely\ops.py", line 234, in transform
    zip(*func(*izip(*geom.exterior.coords))))

  File "C:\Users\byers\AppData\Local\Continuum\anaconda3\envs\EB_Py3_light\lib\site-packages\salem\gis.py", line 676, in transform
    raise ValueError('crs not understood')

ValueError: crs not understood

I'll try and provide example with dataset - but it's the same as with the mwe from @nickbsb

@fmaussion
Copy link
Owner

Can you share the output of following:

import xarray as xr
import salem
import geopandas
import pyproj

print(xr.__version__)
print(salem.__version__)
print(geopandas.__version__)
print(pyproj.__version__)

This is working on our relatively recent binder envs with versions:

0.12.3
0.2.4-6-g69666ac
0.5.1
1.9.6

@byersiiasa
Copy link

0.12.3
0.2.4-6-g69666ac
0.4.1 <<< lets see when i update.
1.9.6

@byersiiasa
Copy link

byersiiasa commented Sep 2, 2019

Same issue. Even tried with a clean environment (on Windows).
But on mac seems to work. :S

@fmaussion
Copy link
Owner

OK, so I can only assume some upstream issue with windows / conda, most likely because of changes in pyproj.

I've added a specific test for this case in #156 and it passes on travis, both with pyproj versions before and after 2.0 (pyproj changes have been quite tough on library maintainers lately).

That being said, there is a pattern in salem that makes debugging your case quite difficult: we silently catch pyproj exceptions, and shouldn't do that. I'll try to think about a better pattern.

@fmaussion
Copy link
Owner

I've made an attempt to display a more informative error message in #157

Can you try on latest master again?

@byersiiasa
Copy link

thanks @fmaussion
another error, it didn't quite get to to the error message you put in...

Traceback (most recent call last):

  File "<ipython-input-10-7af9874e1684>", line 114, in <module>
    cropped.sel(scen='2p0-hist').salem.quick_map();

  File "C:\Users\byers\AppData\Local\Continuum\anaconda3\envs\salenv\lib\site-packages\salem\sio.py", line 706, in quick_map
    return self._quick_map(self._obj, ax=ax, interp=interp, **kwargs)

  File "C:\Users\byers\AppData\Local\Continuum\anaconda3\envs\salenv\lib\site-packages\salem\sio.py", line 549, in _quick_map
    smap = self.get_map(**kwargs)

  File "C:\Users\byers\AppData\Local\Continuum\anaconda3\envs\salenv\lib\site-packages\salem\sio.py", line 538, in get_map
    return Map(self.grid, **kwargs)

  File "C:\Users\byers\AppData\Local\Continuum\anaconda3\envs\salenv\lib\site-packages\salem\graphics.py", line 426, in __init__
    self.set_shapefile(countries=countries)

  File "C:\Users\byers\AppData\Local\Continuum\anaconda3\envs\salenv\lib\site-packages\salem\graphics.py", line 681, in set_shapefile
    return self.set_shapefile(shapefiles['world_borders'], **kwargs)

  File "C:\Users\byers\AppData\Local\Continuum\anaconda3\envs\salenv\lib\site-packages\salem\graphics.py", line 696, in set_shapefile
    shape = sio.read_shapefile_to_grid(shape, grid=self.grid)

  File "C:\Users\byers\AppData\Local\Continuum\anaconda3\envs\salenv\lib\site-packages\salem\sio.py", line 117, in read_shapefile_to_grid
    **grid.to_dict())

  File "C:\Users\byers\AppData\Local\Continuum\anaconda3\envs\salenv\lib\site-packages\joblib\memory.py", line 568, in __call__
    return self._cached_call(args, kwargs)[0]

  File "C:\Users\byers\AppData\Local\Continuum\anaconda3\envs\salenv\lib\site-packages\joblib\memory.py", line 534, in _cached_call
    out, metadata = self.call(*args, **kwargs)

  File "C:\Users\byers\AppData\Local\Continuum\anaconda3\envs\salenv\lib\site-packages\joblib\memory.py", line 734, in call
    output = self.func(*args, **kwargs)

  File "C:\Users\byers\AppData\Local\Continuum\anaconda3\envs\salenv\lib\site-packages\salem\sio.py", line 87, in _memory_shapefile_to_grid
    e = grid.extent_in_crs(crs=shape.crs)

  File "C:\Users\byers\AppData\Local\Continuum\anaconda3\envs\salenv\lib\site-packages\salem\gis.py", line 553, in extent_in_crs
    poly = self.extent_as_polygon(crs=crs)

  File "C:\Users\byers\AppData\Local\Continuum\anaconda3\envs\salenv\lib\site-packages\salem\gis.py", line 581, in extent_as_polygon
    _i, _j = self.corner_grid.ij_to_crs(_i, _j, crs=crs)

  File "C:\Users\byers\AppData\Local\Continuum\anaconda3\envs\salenv\lib\site-packages\salem\gis.py", line 656, in ij_to_crs
    _crs = check_crs(crs, raise_on_error=True)

  File "C:\Users\byers\AppData\Local\Continuum\anaconda3\envs\salenv\lib\site-packages\salem\gis.py", line 88, in check_crs
    msg = msg.format(err1)

KeyError: "'init'"

@AnsArn
Copy link

AnsArn commented Feb 24, 2020

On a fresh Ubuntu (19.10) installation with Python 3.7.5 I suddenly (it worked before) had the same Error ('Series' object has no attribute 'to_numpy'). I check my versions:

xarray version: 0.12.1
salem version: 0.2.4-13-gacb61b5
geopandas version: 0.7.0
pyproj version: 2.5.0

When I update xarray to version 0.15.0, it works again:
xarray version: 0.15.0
salem version: 0.2.4-13-gacb61b5
geopandas version: 0.7.0
pyproj version: 2.5.0

The problem occured when I tried to use the "read_shapefile_to_grid" function:
salem.read_shapefile_to_grid(shape_file,grid=salem.grid_from_dataset(era5_land_static))
Before I updated to the Salem master I hat the " ValueError: crs not understood'" Error.

@fmaussion
Copy link
Owner

" ValueError: crs not understood'" Error.

This is due to a geopandas update (quite strongly not backwards compatible). It should be solved on latest master. (#164)

('Series' object has no attribute 'to_numpy')

This sounds like a pandas issue? What pandas version? Can you send a MRE?

@AnsArn
Copy link

AnsArn commented Feb 24, 2020

Yes you are right, xarray was not the problem pandas was.

import pandas as pd
import xarray as xr
import salem
import geopandas
import pyproj
print("pandas version: ", pd.__version__)
print("xarray version: ", xr.__version__)
print("salem version: ", salem.__version__)
print("geopandas version: ", geopandas.__version__)
print("pyproj version: ", pyproj.__version__)
era5_land_static = salem.open_xr_dataset('ERA5_land_Z_geopotential.nc')
shape_grid = salem.read_shapefile_to_grid('Halji_RGI6.shp',grid=salem.grid_from_dataset(era5_land_static))

Output:

pandas version:  1.0.1
xarray version:  0.15.0
salem version:  0.2.4-13-gacb61b5
geopandas version:  0.7.0
pyproj version:  2.5.0

The problem is at the moment I can not reproduce the error, that happened one our before. :-) What I did was update xarray (and xarray updated pandas automatically).
Even when I downgrade now to pandas 0.25 or xarray 0.12.1 it works with some warning.

@fmaussion
Copy link
Owner

it's possible that something is broken with pandas > 1.0 that we are missing in our test suite. Please let me know when this happens again

@igorol
Copy link

igorol commented Mar 5, 2020

I had the same error message using geopandas version 0.7.0, downgrading to 0.5.1 fixed it

@fmaussion
Copy link
Owner

using geopandas version 0.7.0

Since #164 I hope to have solved issues with geopandas compatibility (it landed on master but not yet on PyPI). If issues remain they are not tested for, so it would be good to know ;-)

tlvu added a commit to Ouranosinc/PAVICS-e2e-workflow-tests that referenced this issue Mar 13, 2020
jupyter docker: upgrade birdy, pin pandas and geopandas for Era5 Raven notebooks

This is to productize all the manual `pip install --user` we had to do to demo Era5 Raven notebook PR: Ouranosinc/raven#200

Latest birdy 0.6.9 is working flawlessly with existing old Finch 0.2.7 and existing recently released Raven 0.10.0.  See Jenkins run http://jenkins.ouranos.ca/job/PAVICS-e2e-workflow-tests/job/install-birdy-from-source/9/console for Finch testing.  Raven test done manually.

So I'll release this Jupyter env so at least the Raven notebooks works without manually hacking the Jupyter env.  Old Finch is not broken anymore so no regression there.

birdy updated for Raven, then for Finch.

Pinning of pandas and geopandas is due to salem not supporting geopandas >= 0.7 as in this issue fmaussion/salem#152 so can unpin once there are new release of salem.

scikit-image was also need by Raven notebook `gridded_data_subset.ipynb`.

The ipyleaflet marker do not display in Raven `Region_selection.ipynb` but can be moved and its coordinate can be extracted.

Not sure why, maybe relate to jupyter-widgets/ipyleaflet#91.  Possibly also due to the freshly released jupyterlab-2.0 but downgrading jupyterlab means downgrading all the other jupyter extensions we used, too much work to just fix one broken extension so did not follow that road.

The marker was working fine in the previous image `pavics/workflow-tests:200120` which had jupyterlab-1.2.5 which further support the theory that jupyterlab-2.0 broke it.

Noticeable Jupyter env changes:

```diff
<   - birdy=v0.6.6=py_0
>     - birdhouse-birdy==0.6.9  (install from Pypi instead of Conda to fix DockerHub failure !)

<   - geopandas=0.7.0=py_1
>   - geopandas=0.6.2=py_0 

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

>   - scikit-image=0.16.2=py37hb3f55d8_0
```

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

[200310-200312-conda-env-export.diff.txt](https://github.com/Ouranosinc/PAVICS-e2e-workflow-tests/files/4326073/200310-200312-conda-env-export.diff.txt)

[200309-200312-conda-env-export.diff.txt](https://github.com/Ouranosinc/PAVICS-e2e-workflow-tests/files/4326058/200309-200312-conda-env-export.diff.txt)

```diff
15d14
<   - birdy=v0.6.6=py_0
18d16
<   - boltons=20.0.0=py_0
28c26
<   - certifi=2019.11.28=py37_0
---
>   - certifi=2019.11.28=py37hc8dfbb8_1
36a35
>   - cloudpickle=1.3.0=py_0
39c38
<   - coverage=5.0.3=py37h516909a_0
---
>   - coverage=5.0.3=py37h8f50634_1
42a42,43
>   - cytoolz=0.10.1=py37h516909a_0
>   - dask-core=2.12.0=py_0
60d60
<   - funcsigs=1.0.2=py_3
65,66c65,66
<   - geopandas=0.7.0=py_1
<   - geos=3.8.0=he1b5a44_0
---
>   - geopandas=0.6.2=py_0
>   - geos=3.8.0=he1b5a44_1
81a82
>   - imageio=2.8.0=py_0
97c98
<   - jupyter_console=6.0.0=py_0
---
>   - jupyter_console=6.1.0=py_0
106,107c107,108
<   - kealib=1.4.10=h58c409b_1005
<   - kiwisolver=1.1.0=py37hc9558a2_0
---
>   - kealib=1.4.12=hec59c27_0
>   - kiwisolver=1.1.0=py37h99015e2_1
138c139
<   - libspatialite=4.3.0a=hd318ce7_1035
---
>   - libspatialite=4.3.0a=hd318ce7_1036
153c154
<   - markupsafe=1.1.1=py37h516909a_0
---
>   - markupsafe=1.1.1=py37h8f50634_1
162c163
<   - nbdime=1.1.0=py37_0
---
>   - nbdime=2.0.0=py37hc8dfbb8_0
168a170
>   - networkx=2.4=py_1
173c175
<   - numpy=1.18.1=py37h95a1406_0
---
>   - numpy=1.18.1=py37h8960a57_0
183c185
<   - pandas=1.0.1=py37hb3f55d8_0
---
>   - pandas=0.25.3=py37hb3f55d8_0
223a226
>   - pywavelets=1.1.1=py37hc1659b7_0
234a238
>   - scikit-image=0.16.2=py37hb3f55d8_0
237,239c241,243
<   - setuptools=46.0.0=py37_0
<   - shapely=1.7.0=py37h5d51c17_0
<   - six=1.14.0=py37_0
---
>   - setuptools=46.0.0=py37hc8dfbb8_2
>   - shapely=1.7.0=py37hb106bac_1
>   - six=1.14.0=py_1
243c247
<   - sqlalchemy=1.3.13=py37h516909a_0
---
>   - sqlalchemy=1.3.15=py37h8f50634_1
251,252c255,257
<   - tornado=6.0.4=py37h516909a_0
<   - traitlets=4.3.3=py37_0
---
>   - toolz=0.10.0=py_0
>   - tornado=6.0.4=py37h8f50634_1
>   - traitlets=4.3.3=py37hc8dfbb8_1
266d270
<   - wrapt=1.12.1=py37h516909a_0
287a292
>     - birdhouse-birdy==0.6.9
288a294
>     - boltons==20.0.0
291d296
<     - cloudpickle==1.3.0
293d297
<     - dask==2.12.0
295a300
>     - funcsigs==1.0.2
316d320
<     - toolz==0.10.0
317a322
>     - wrapt==1.12.1
```

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

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

```
name: birdy
channels:
  - 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.1=py_0
  - async_generator=1.10=py_0
  - attrs=19.3.0=py_0
  - backcall=0.1.0=py_0
  - beautifulsoup4=4.8.2=py37_0
  - bleach=3.1.1=py_0
  - blinker=1.4=py_1
  - boost-cpp=1.72.0=h8e57a91_0
  - branca=0.3.1=py_0
  - bzip2=1.0.8=h516909a_2
  - ca-certificates=2019.11.28=hecc5488_0
  - cairo=1.16.0=hfb77d84_1002
  - cartopy=0.17.0=py37h39d8c00_1011
  - cdat_info=8.2=py_7
  - cdtime=3.1.3=py37h1ac8016_0
  - cdutil=8.2=py_2
  - certifi=2019.11.28=py37hc8dfbb8_1
  - certipy=0.1.3=py_0
  - cffi=1.14.0=py37hd463f26_0
  - cfitsio=3.470=hb60a0a2_2
  - cftime=1.0.4.2=py37hc1659b7_0
  - chardet=3.0.4=py37_1003
  - click=7.0=py_0
  - click-plugins=1.1.1=py_0
  - cligj=0.5.0=py_0
  - cloudpickle=1.3.0=py_0
  - colorama=0.4.3=py_0
  - configurable-http-proxy=4.2.0=node13_he01fd0c_2
  - coverage=5.0.3=py37h8f50634_1
  - cryptography=2.8=py37h72c5cf5_1
  - curl=7.68.0=hf8cf82a_0
  - cycler=0.10.0=py_2
  - cytoolz=0.10.1=py37h516909a_0
  - dask-core=2.12.0=py_0
  - 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
  - docopt=0.6.2=py_1
  - dv3d=8.2=py_0
  - entrypoints=0.3=py37_1000
  - esgf-compute-api=2.2.3=py_0
  - esmf=8.0.0=nompi_he6d0a24_5
  - esmpy=8.0.0=nompi_py37hf0e99fa_1
  - expat=2.2.9=he1b5a44_2
  - ffmpeg=4.2=h167e202_0
  - fiona=1.8.13=py37h900e953_0
  - fontconfig=2.13.1=h86ecdb6_1001
  - freetype=2.10.0=he983fc9_1
  - freexl=1.0.5=h14c3975_1002
  - future=0.18.2=py37_0
  - g2clib=1.6.0=hf3f1b0b_9
  - gdal=3.0.4=py37hbb6b9fb_1
  - genutil=8.2=py37hc1659b7_3
  - geopandas=0.6.2=py_0
  - geos=3.8.0=he1b5a44_1
  - geotiff=1.5.1=hcbe54f9_9
  - gettext=0.19.8.1=hc5be6a0_1002
  - ghostscript=9.22=hf484d3e_1001
  - giflib=5.2.1=h516909a_2
  - gitdb=4.0.2=py_0
  - gitpython=3.1.0=py_0
  - glib=2.58.3=py37h6f030ca_1002
  - 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
  - hdf4=4.2.13=hf30be14_1003
  - hdf5=1.10.5=nompi_h3c11f04_1104
  - icu=64.2=he1b5a44_1
  - idna=2.9=py_1
  - imageio=2.8.0=py_0
  - importlib_metadata=1.5.0=py37_0
  - ipykernel=5.1.4=py37h5ca1d4c_0
  - ipyleaflet=0.12.3=py_1
  - ipython=7.13.0=py37h5ca1d4c_0
  - ipython_genutils=0.2.0=py_1
  - ipywidgets=7.5.1=py_0
  - jasper=1.900.1=h07fcdf6_1006
  - jedi=0.16.0=py37_0
  - jinja2=2.11.1=py_0
  - jpeg=9c=h14c3975_1001
  - json-c=0.13.1=h14c3975_1001
  - json5=0.9.0=py_0
  - jsonschema=3.2.0=py37_0
  - jupyter=1.0.0=py_2
  - jupyter_client=6.0.0=py_0
  - jupyter_console=6.1.0=py_0
  - jupyter_core=4.6.3=py37_0
  - 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.0.1=py_0
  - jupyterlab_pygments=0.1.0=py_0
  - jupyterlab_server=1.0.7=py_0
  - kealib=1.4.12=hec59c27_0
  - kiwisolver=1.1.0=py37h99015e2_1
  - krb5=1.16.4=h2fd8d38_0
  - lame=3.100=h14c3975_1001
  - lazy-object-proxy=1.4.3=py37h516909a_1
  - ld_impl_linux-64=2.33.1=h53a641e_8
  - libblas=3.8.0=11_openblas
  - libcblas=3.8.0=11_openblas
  - libcdms=3.1.2=ha54dda3_8
  - libcf=1.0.3=py37hdee1361_5
  - libclang=9.0.1=default_hde54327_0
  - libcurl=7.68.0=hda55be3_0
  - libdap4=3.20.4=hd3bb157_0
  - libdrs=3.1.2=h9b7ed86_9
  - libdrs_f=3.1.2=h322d3c2_5
  - libedit=3.1.20170329=hf8c457e_1001
  - libffi=3.2.1=he1b5a44_1006
  - libgcc-ng=9.2.0=h24d8f2e_2
  - libgdal=3.0.4=h022d3c0_1
  - libgfortran-ng=7.3.0=hdf63c60_5
  - libgomp=9.2.0=h24d8f2e_2
  - libiconv=1.15=h516909a_1005
  - libidn2=2.3.0=h516909a_0
  - libkml=1.3.0=hb574062_1011
  - liblapack=3.8.0=11_openblas
  - libllvm9=9.0.1=hc9558a2_0
  - libnetcdf=4.7.3=nompi_h9f9fd6a_101
  - libopenblas=0.3.6=h6e990d7_6
  - libpng=1.6.37=hed695b0_0
  - libpq=12.2=hae5116b_0
  - libsodium=1.0.17=h516909a_0
  - libspatialindex=1.9.3=he1b5a44_3
  - libspatialite=4.3.0a=hd318ce7_1036
  - libssh2=1.8.2=h22169c7_2
  - libstdcxx-ng=9.2.0=hdf63c60_2
  - libtiff=4.1.0=hc3755c2_3
  - libunistring=0.9.10=h14c3975_0
  - libuuid=2.32.1=h14c3975_1000
  - libuv=1.34.0=h516909a_0
  - libwebp=1.0.2=h56121f0_5
  - libxcb=1.13=h14c3975_1002
  - libxkbcommon=0.10.0=he1b5a44_0
  - libxml2=2.9.10=hee79883_0
  - libxslt=1.1.33=h31b3aaa_0
  - lxml=4.5.0=py37h7ec2d77_0
  - lz4-c=1.8.3=he1b5a44_1001
  - mako=1.1.0=py_0
  - markupsafe=1.1.1=py37h8f50634_1
  - matplotlib=3.2.0=1
  - matplotlib-base=3.2.0=py37h250f245_1
  - mechanicalsoup=0.12.0=py_0
  - mesalib=18.3.1=h590aaf7_0
  - mistune=0.8.4=py37h516909a_1000
  - more-itertools=8.2.0=py_0
  - munch=2.5.0=py_0
  - nbconvert=5.6.1=py37_0
  - nbdime=2.0.0=py37hc8dfbb8_0
  - nbformat=5.0.4=py_0
  - nbval=0.9.5=py_0
  - ncurses=6.1=hf484d3e_1002
  - netcdf-fortran=4.5.2=nompi_h09cde99_103
  - netcdf4=1.5.3=nompi_py37hd35fb8e_102
  - nettle=3.4.1=h1bed415_1002
  - networkx=2.4=py_1
  - nodejs=13.9.0=h10a4023_0
  - notebook=6.0.3=py37_0
  - nspr=4.25=he1b5a44_0
  - nss=3.47=he751ad9_0
  - numpy=1.18.1=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.1d=h516909a_0
  - owslib=0.19.1=py_0
  - packaging=20.1=py_0
  - pamela=1.0.0=py_0
  - pandas=0.25.3=py37hb3f55d8_0
  - pandoc=2.9.2=0
  - pandocfilters=1.4.2=py_1
  - parso=0.6.2=py_0
  - pcre=8.44=he1b5a44_0
  - pexpect=4.8.0=py37_0
  - pickleshare=0.7.5=py37_1000
  - pillow=7.0.0=py37hefe7db6_0
  - pip=20.0.2=py_2
  - pixman=0.38.0=h516909a_1003
  - pluggy=0.13.0=py37_0
  - poppler=0.67.0=h14e79db_8
  - poppler-data=0.4.9=1
  - postgresql=12.2=hf1211e9_0
  - proj=6.3.1=hc80f0dc_1
  - prometheus_client=0.7.1=py_0
  - prompt_toolkit=2.0.10=py_0
  - pthread-stubs=0.4=h14c3975_1001
  - ptyprocess=0.6.0=py_1001
  - py=1.8.1=py_0
  - pycparser=2.20=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
  - pykdtree=1.3.1=py37hc1659b7_1002
  - pyopenssl=19.1.0=py_1
  - pyparsing=2.4.6=py_0
  - pyproj=2.5.0=py37he3cd046_1
  - pyqt=5.12.3=py37hcca6a23_1
  - pyrsistent=0.15.7=py37h516909a_0
  - pyshp=2.1.0=py_0
  - pysocks=1.7.1=py37_0
  - pytest=5.3.5=py37_1
  - python=3.7.6=h357f687_4_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=2019.3=py_0
  - pywavelets=1.1.1=py37hc1659b7_0
  - pyzmq=19.0.0=py37h1768529_0
  - qt=5.12.5=hd8c4c69_1
  - qtconsole=4.7.1=py_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=py37_0
  - rtree=0.9.4=py37h7b0cdae_0
  - ruamel.yaml=0.16.6=py37h516909a_0
  - ruamel.yaml.clib=0.2.0=py37h516909a_0
  - scikit-image=0.16.2=py37hb3f55d8_0
  - scipy=1.4.1=py37h921218d_0
  - send2trash=1.5.0=py_0
  - setuptools=46.0.0=py37hc8dfbb8_2
  - shapely=1.7.0=py37hb106bac_1
  - six=1.14.0=py_1
  - smmap=3.0.1=py_0
  - snuggs=1.4.7=py_0
  - soupsieve=1.9.4=py37_0
  - sqlalchemy=1.3.15=py37h8f50634_1
  - sqlite=3.30.1=hcee41ef_0
  - tbb=2018.0.5=h2d50403_0
  - terminado=0.8.3=py37_0
  - testpath=0.4.4=py_0
  - threddsclient=0.4.2=py_0
  - tiledb=1.7.0=hcde45ca_2
  - tk=8.6.10=hed695b0_0
  - toolz=0.10.0=py_0
  - tornado=6.0.4=py37h8f50634_1
  - traitlets=4.3.3=py37hc8dfbb8_1
  - traittypes=0.2.1=py_1
  - tzcode=2019a=h516909a_1002
  - udunits2=2.2.27.6=h4e0c4b3_1001
  - urllib3=1.25.7=py37_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.8=py_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.0=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.4=h14c3975_1001
  - zeromq=4.3.2=he1b5a44_2
  - zipp=3.1.0=py_0
  - zlib=1.2.11=h516909a_1006
  - zstd=1.4.4=h3b9ef0a_1
  - pip:
    - astunparse==1.6.3
    - birdhouse-birdy==0.6.9
    - bokeh==2.0.0
    - boltons==20.0.0
    - bottleneck==1.3.2
    - cdms2==3.1.4
    - colour==0.1.5
    - distributed==2.12.0
    - fsspec==0.6.2
    - funcsigs==1.0.2
    - geojson==2.5.0
    - heapdict==1.0.1
    - joblib==0.14.1
    - locket==0.2.0
    - markdown==3.2.1
    - mpld3==0.3
    - msgpack==1.0.0
    - partd==1.1.0
    - pint==0.11
    - pixiedust==1.1.18
    - psutil==5.7.0
    - pyqt5-sip==4.19.18
    - pyqtwebengine==5.12.1
    - pyyaml==5.3
    - regrid2==3.1.4
    - requests-magpie==0.1.1
    - salem==0.2.4
    - scikit-learn==0.22.2.post1
    - sortedcontainers==2.1.0
    - tblib==1.6.0
    - typing-extensions==3.7.4.1
    - wrapt==1.12.1
    - xclim==0.14.0
    - zict==2.0.0
prefix: /usr/local/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

No branches or pull requests

5 participants