-
Notifications
You must be signed in to change notification settings - Fork 12
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
Extract_geographical_watershed_properties.ipynb: fix run failure in new Jupyter env #393
Conversation
…ew Jupyter env Fixes #392. With the new Jupypter env for latest RavenPy `0.5.2` from PR Ouranosinc/PAVICS-e2e-workflow-tests#75 `Extract_geographical_watershed_properties.ipynb` fails with the following error below. ``` 23:00:58 _ raven-master/docs/source/notebooks/Extract_geographical_watershed_properties.ipynb::Cell 7 _ 23:00:58 Notebook cell execution failed 23:00:58 Cell 7: Cell execution caused an exception 23:00:58 23:00:58 Input: 23:00:58 # Note that geojson, and rasterio/rioxarray need to be installed for this to work. 23:00:58 # In the next birdy release, the tiff grid will be automatically converted to a DataArray. 23:00:58 # Here we need to manually convert it. 23:00:58 features, statistics, grid = stats_resp.get(asobj=True) 23:00:58 23:00:58 with rasterio.io.MemoryFile(grid[0]) as memfile: 23:00:58 with memfile.open() as dataset: 23:00:58 grid = rio.open_rasterio(dataset) 23:00:58 23:00:58 grid.plot() 23:00:58 23:00:58 Traceback: 23:00:58 23:00:58 --------------------------------------------------------------------------- 23:00:58 ValueError Traceback (most recent call last) 23:00:58 <ipython-input-8-8b167a3ecdc9> in <module> 23:00:58 4 features, statistics, grid = stats_resp.get(asobj=True) 23:00:58 5 23:00:58 ----> 6 with rasterio.io.MemoryFile(grid[0]) as memfile: 23:00:58 7 with memfile.open() as dataset: 23:00:58 8 grid = rio.open_rasterio(dataset) 23:00:58 23:00:58 /opt/conda/envs/birdy/lib/python3.7/site-packages/rasterio/io.py in __init__(self, file_or_bytes, dirname, filename, ext) 23:00:58 103 """ 23:00:58 104 super(MemoryFile, self).__init__( 23:00:58 --> 105 file_or_bytes=file_or_bytes, dirname=dirname, filename=filename, ext=ext) 23:00:58 106 23:00:58 107 @ensure_env 23:00:58 23:00:58 rasterio/_io.pyx in rasterio._io.MemoryFileBase.__init__() 23:00:58 23:00:58 /opt/conda/envs/birdy/lib/python3.7/site-packages/xarray/core/common.py in __bool__(self) 23:00:58 127 23:00:58 128 def __bool__(self: Any) -> bool: 23:00:58 --> 129 return bool(self.values) 23:00:58 130 23:00:58 131 def __float__(self: Any) -> float: 23:00:58 23:00:58 ValueError: The truth value of an array with more than one element is ambiguous. Use a.any() or a.all() 23:00:58 23:00:58 _ raven-master/docs/source/notebooks/Extract_geographical_watershed_properties.ipynb::Cell 10 _ 23:00:58 Notebook cell execution failed 23:00:58 Cell 10: Cell execution caused an exception 23:00:58 23:00:58 Input: 23:00:58 unique, counts = numpy.unique(grid.sel(band=1), return_counts=True) 23:00:58 display(unique, counts) 23:00:58 23:00:58 # Pixels values at '127' are NaN and can be ignored. 23:00:58 plt.bar(unique[:-1], counts[:-1]) 23:00:58 plt.show() 23:00:58 23:00:58 grid.where(grid != 127).sel(band=1).plot.imshow(cmap="tab20") 23:00:58 plt.show() 23:00:58 23:00:58 Traceback: 23:00:58 23:00:58 --------------------------------------------------------------------------- 23:00:58 AttributeError Traceback (most recent call last) 23:00:58 <ipython-input-11-a26c52126e9c> in <module> 23:00:58 ----> 1 unique, counts = numpy.unique(grid.sel(band=1), return_counts=True) 23:00:58 2 display(unique, counts) 23:00:58 3 23:00:58 4 # Pixels values at '127' are NaN and can be ignored. 23:00:58 5 plt.bar(unique[:-1], counts[:-1]) 23:00:58 23:00:58 AttributeError: 'list' object has no attribute 'sel' 23:00:58 23:00:58 _ raven-master/docs/source/notebooks/Extract_geographical_watershed_properties.ipynb::Cell 11 _ 23:00:58 Notebook cell execution failed 23:00:58 Cell 11: Cell execution caused an exception 23:00:58 23:00:58 Input: 23:00:58 import cartopy.crs as ccrs 23:00:58 23:00:58 # Set a CRS transformation: 23:00:58 crs = ccrs.LambertConformal( 23:00:58 central_latitude=49, central_longitude=-95, standard_parallels=(49, 77) 23:00:58 ) 23:00:58 23:00:58 ax = plt.subplot(projection=crs) 23:00:58 grid.name = "Land Use Categories" 23:00:58 grid.where(grid != 127).sel(band=1).plot.imshow(ax=ax, transform=crs, cmap="tab20") 23:00:58 plt.show() 23:00:58 23:00:58 Traceback: 23:00:58 23:00:58 --------------------------------------------------------------------------- 23:00:58 AttributeError Traceback (most recent call last) 23:00:58 <ipython-input-12-f9fdb6f0e562> in <module> 23:00:58 7 23:00:58 8 ax = plt.subplot(projection=crs) 23:00:58 ----> 9 grid.name = "Land Use Categories" 23:00:58 10 grid.where(grid != 127).sel(band=1).plot.imshow(ax=ax, transform=crs, cmap="tab20") 23:00:58 11 plt.show() 23:00:58 23:00:58 AttributeError: 'list' object has no attribute 'name' ```
Check out this pull request on See visual diffs & provide feedback on Jupyter Notebooks. Powered by ReviewNB |
I'll take a look at this this afternoon! |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@tlvu This looks good. Putting it simply, the object returned (xarray.DataArray
) is different from what the following cell needed to handle for (rasterio._io.RasterReader
→ numpy.ndarray
):
23:00:58 Input:
23:00:58 # Note that geojson, and rasterio/rioxarray need to be installed for this to work.
23:00:58 # In the next birdy release, the tiff grid will be automatically converted to a DataArray.
23:00:58 # Here we need to manually convert it.
23:00:58 features, statistics, grid = stats_resp.get(asobj=True)
23:00:58
23:00:58 with rasterio.io.MemoryFile(grid[0]) as memfile:
23:00:58 with memfile.open() as dataset:
23:00:58 grid = rio.open_rasterio(dataset)
23:00:58
23:00:58 grid.plot()
The spatial_ref
title is something that rasterio
adds to the plot, and it isn't at all needed. The notebook should work perfectly so long as the client running it has rioxarray
available in their ipython kernel.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Can you re-run and hit the production pavics server instead.
Alternatively, use make docs/source/notebooks/Extract_geographical_watershed_properties.ipynb.refresh
to re-run against localhost but all localhost
will be replaced for you automatically.
Otherwise, thanks for all the explanation !
docs/source/notebooks/Extract_geographical_watershed_properties.ipynb
Outdated
Show resolved
Hide resolved
I think the method of file path parsing needs some tweaking. Failing with:
Will try re-running manually for now. |
@Zeitsperre How did you get this error? What was your
It works, passing Jenkins for all Raven notebooks http://jenkins.ouranos.ca/job/PAVICS-e2e-workflow-tests/job/new-docker-build-for-ravenpy/18/console, thanks ! @richardarsenault given all Raven notebooks working now, if we deploy a new Jupyter env, is it okay for your summer school? |
@tlvu Yes it's all good for the summer school, thanks! |
"outputs": [ | ||
{ | ||
"name": "stdout", | ||
"output_type": "stream", | ||
"text": [ | ||
"Metalink content-type detected.\n", |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Oh cool, this latest manual re-run removed "Metalink content-type detected.".
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yeah, I wonder why that is. I didn't do anything differently.
Could it be that this particular EDIT: Tried from |
This is really odd. This works for me on my machine. Can you try this command direct in your shell?
|
https://gist.github.com/Zeitsperre/e430dda569c6e93ff9903d7c323020e3 |
So it looks like this works with nbconvert 6.0.7.
|
New docker build for ravenpy birdy xclim # Overview New Jupyter env to get latest of everything, including ravenpy, birdy, xclim. Jenkins build passing with updated Finch and Pavics-sdi notebooks: http://jenkins.ouranos.ca/job/PAVICS-e2e-workflow-tests/job/new-docker-build-for-ravenpy/25/ Matching Finch notebook PR: bird-house/finch#188 Matching Pavics-sdi notebook PR: Ouranosinc/pavics-sdi#222 Matching PR to deploy this Jupyter env to PAVICS: bird-house/birdhouse-deploy#175 Matching Raven notebook failure found Ouranosinc/raven#392 (http://jenkins.ouranos.ca/job/PAVICS-e2e-workflow-tests/job/new-docker-build-for-ravenpy/14/console) and matching fix PR Ouranosinc/raven#393 (http://jenkins.ouranos.ca/job/PAVICS-e2e-workflow-tests/job/new-docker-build-for-ravenpy/24/). Also added new libraries for upcoming Raven notebooks (fixes Ouranosinc/raven#394). Pavics-landing homepage notebooks manually tested by @tlogan2000 Deployed to staging env for manual testing: https://medus.ouranos.ca/jupyter/ Also added a way to quickly test a new package without having to do a full rebuild. ## Changes ```diff < - ravenpy=0.4.2=py37_1 > - ravenpy=0.5.2=pyh7f9bfb9_0 # Renamed. < - raven=3.0.4.318=hc9bffa2_2 > - raven-hydro=3.0.4.322=h516393e_0 < - ostrich=21.03.16=h2bc3f7f_0 > - ostrich=21.03.16=h4bd325d_1 < - xclim=0.25.0=pyhd8ed1ab_0 > - xclim=0.27.0=pyhd8ed1ab_0 # Old version was from pip. < - birdhouse-birdy==0.7.0 > - birdy=v0.8.0=pyh6c4a22f_0 # Was previously included in another package, now it is standalone. > - pydantic=1.8.2=py37h5e8e339_0 # New libs for upcoming Raven notebooks > - gcsfs=2021.6.0=pyhd8ed1ab_0 > - intake=0.6.2=pyhd8ed1ab_0 > - intake-esm=2021.1.15=pyhd8ed1ab_0 > - zarr=2.8.3=pyhd8ed1ab_0 < - xarray=0.17.0=pyhd8ed1ab_0 > - xarray=0.18.2=pyhd8ed1ab_0 < - owslib=0.23.0=pyhd8ed1ab_0 > - owslib=0.24.1=pyhd8ed1ab_0 < - cf_xarray=0.5.1=pyh44b312d_0 > - cf_xarray=0.5.2=pyh6c4a22f_0 < - clisops=0.6.3=pyh44b312d_0 > - clisops=0.6.5=pyh6c4a22f_0 < - dask=2021.2.0=pyhd8ed1ab_0 > - dask=2021.6.0=pyhd8ed1ab_0 # Downgrade ! < - gdal=3.2.1=py37hc5bc4e4_7 > - gdal=3.1.4=py37h2ec2946_8 # Downgrade ! < - rasterio=1.2.2=py37hd5c4cce_0 > - rasterio=1.2.1=py37ha549118_0 < - hvplot=0.7.1=pyh44b312d_0 > - hvplot=0.7.2=pyh6c4a22f_0 < - rioxarray=0.3.1=pyhd8ed1ab_0 > - rioxarray=0.4.1.post0=pyhd8ed1ab_0 # Downgrade ! < - xskillscore=0.0.19=pyhd8ed1ab_0 > - xskillscore=0.0.18=py_1 ``` Full diff of `conda env export`: [210415-210527.1-update210615-conda-env-export.diff.txt](https://github.com/Ouranosinc/PAVICS-e2e-workflow-tests/files/6658638/210415-210527.1-update210615-conda-env-export.diff.txt) ```diff 3d2 < - zeitsperre 12c11,12 < - alembic=1.5.8=pyhd8ed1ab_0 --- > - alembic=1.6.5=pyhd8ed1ab_0 > - alsa-lib=1.2.3=h516909a_0 14c14 < - anyio=2.2.0=py37h89c1867_0 --- > - anyio=3.1.0=py37h89c1867_0 16a17 > - asciitree=0.3.3=py_2 19c20 < - attrs=20.3.0=pyhd3deb0d_0 --- > - attrs=21.2.0=pyhd8ed1ab_0 23a25 > - birdy=v0.8.0=pyh6c4a22f_0 27,29c29,31 < - bokeh=2.3.1=py37h89c1867_0 < - boltons=20.2.1=pyh9f0ad1d_0 < - boost-cpp=1.74.0=hc6e9bd1_2 --- > - bokeh=2.3.2=py37h89c1867_0 > - boltons=21.0.0=pyhd8ed1ab_0 > - boost-cpp=1.74.0=hc6e9bd1_3 38c40 < - ca-certificates=2020.12.5=ha878542_0 --- > - ca-certificates=2021.5.30=ha878542_0 40a43 > - cachetools=4.2.2=pyhd8ed1ab_0 42c45 < - cartopy=0.18.0=py37h26456f9_13 --- > - cartopy=0.19.0.post1=py37h0c48da3_0 46c49 < - certifi=2020.12.5=py37h89c1867_1 --- > - certifi=2021.5.30=py37h89c1867_0 48c51 < - cf_xarray=0.5.1=pyh44b312d_0 --- > - cf_xarray=0.5.2=pyh6c4a22f_0 57,59c60,62 < - cligj=0.7.1=pyhd8ed1ab_0 < - climpred=2.1.3=pyhd8ed1ab_0 < - clisops=0.6.3=pyh44b312d_0 --- > - cligj=0.7.2=pyhd8ed1ab_0 > - climpred=2.1.2=pyhd8ed1ab_0 > - clisops=0.6.5=pyh6c4a22f_0 63c66 < - configurable-http-proxy=4.3.2=node15_he6ea98c_0 --- > - configurable-http-proxy=4.4.0=node15_he6ea98c_0 66c69 < - curl=7.76.1=h979ede3_0 --- > - curl=7.77.0=hea6ffbf_0 74,76c77,80 < - dask=2021.2.0=pyhd8ed1ab_0 < - dask-core=2021.2.0=pyhd8ed1ab_0 < - datashader=0.12.1=pyh44b312d_1 --- > - dask=2021.6.0=pyhd8ed1ab_0 > - dask-core=2021.6.0=pyhd8ed1ab_0 > - dataclasses=0.8=pyhc8e2a94_1 > - datashader=0.13.0=pyh6c4a22f_0 79,80c83,84 < - debugpy=1.2.1=py37hcd2ae1e_1 < - decorator=5.0.7=pyhd8ed1ab_0 --- > - debugpy=1.3.0=py37hcd2ae1e_0 > - decorator=4.4.2=py_0 84c88 < - distributed=2021.2.0=py37h89c1867_0 --- > - distributed=2021.6.0=py37h89c1867_0 94c98,101 < - expat=2.3.0=h9c3ff4c_0 --- > - esmtools=1.1.3=py_0 > - expat=2.4.1=h9c3ff4c_0 > - fasteners=0.16=pyhd8ed1ab_0 > - fastprogress=1.0.0=py_0 96,98c103,105 < - fiona=1.8.18=py37h17d6ad9_1 < - flask=1.1.2=pyh9f0ad1d_0 < - flask-compress=1.9.0=pyhd8ed1ab_0 --- > - fiona=1.8.18=py37h527b4ca_0 > - flask=2.0.1=pyhd8ed1ab_0 > - flask-compress=1.10.0=pyhd8ed1ab_0 102c109,110 < - fsspec=0.9.0=pyhd8ed1ab_1 --- > - fsspec=2021.6.0=pyhd8ed1ab_0 > - funcsigs=1.0.2=py_3 105c113,114 < - gdal=3.2.1=py37hc5bc4e4_7 --- > - gcsfs=2021.6.0=pyhd8ed1ab_0 > - gdal=3.1.4=py37h2ec2946_8 113c122 < - ghostscript=9.53.3=h58526e2_2 --- > - ghostscript=9.54.0=h9c3ff4c_1 116,118c125,127 < - gitpython=3.1.14=pyhd8ed1ab_0 < - glib=2.68.1=h9c3ff4c_0 < - glib-tools=2.68.1=h9c3ff4c_0 --- > - gitpython=3.1.17=pyhd8ed1ab_0 > - glib=2.68.3=h9c3ff4c_0 > - glib-tools=2.68.3=h9c3ff4c_0 121,126c130,137 < - 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 --- > - google-auth=1.30.0=pyh44b312d_0 > - google-auth-oauthlib=0.4.4=pyhd8ed1ab_0 > - greenlet=1.1.0=py37hcd2ae1e_0 > - gst-plugins-base=1.18.4=hf529b03_2 > - gstreamer=1.18.4=h76c114f_2 > - h5netcdf=0.11.0=pyhd8ed1ab_0 > - h5py=3.2.1=nompi_py37ha3df211_100 > - hdf4=4.2.15=h10796ff_3 129,130c140,141 < - holoviews=1.14.3=pyhd8ed1ab_0 < - hvplot=0.7.1=pyh44b312d_0 --- > - holoviews=1.14.4=pyhd8ed1ab_0 > - hvplot=0.7.2=pyh6c4a22f_0 135,137c146,148 < - importlib-metadata=3.10.1=py37h89c1867_0 < - importlib_metadata=3.10.1=hd8ed1ab_0 < - importlib_resources=5.1.2=py37h89c1867_0 --- > - importlib-metadata=4.5.0=py37h89c1867_0 > - importlib_metadata=4.5.0=hd8ed1ab_0 > - importlib_resources=5.1.4=pyhd8ed1ab_0 139c150,152 < - ipykernel=5.5.3=py37h085eea5_0 --- > - intake=0.6.2=pyhd8ed1ab_0 > - intake-esm=2021.1.15=pyhd8ed1ab_0 > - ipykernel=5.5.5=py37h085eea5_0 141c154 < - ipython=7.22.0=py37h085eea5_0 --- > - ipython=7.24.1=py37h085eea5_0 144c157 < - itsdangerous=1.1.0=py_0 --- > - itsdangerous=2.0.1=pyhd8ed1ab_0 147c160 < - jinja2=2.11.3=pyh44b312d_0 --- > - jinja2=3.0.1=pyhd8ed1ab_0 151a165 > - jsonpickle=2.0.0=pyhd8ed1ab_0 158c172 < - jupyter_conda=5.0.0=hd8ed1ab_0 --- > - jupyter_conda=5.1.1=hd8ed1ab_0 161c175 < - jupyter_server=1.6.1=py37h89c1867_0 --- > - jupyter_server=1.8.0=pyhd8ed1ab_0 163,164c177,178 < - jupyterhub=1.3.0=py37h89c1867_1 < - jupyterhub-base=1.3.0=py37h89c1867_1 --- > - jupyterhub=1.4.1=py37h89c1867_0 > - jupyterhub-base=1.4.1=py37h89c1867_0 170c184 < - jupytext=1.11.1=pyh44b312d_0 --- > - jupytext=1.11.2=pyh6c4a22f_0 174c188 < - krb5=1.17.2=h926e7f8_0 --- > - krb5=1.19.1=hcc1bbae_0 185,186c199,200 < - libclang=11.1.0=default_ha53f305_0 < - libcurl=7.76.1=hc4aaa36_0 --- > - libclang=11.1.0=default_ha53f305_1 > - libcurl=7.77.0=h2574ce0_0 196c210 < - libgdal=3.2.1=h38ff51b_7 --- > - libgdal=3.1.4=h38ff51b_8 199c213 < - libglib=2.68.1=h3e27bee_0 --- > - libglib=2.68.3=h3e27bee_0 202c216 < - libidn2=2.3.0=h516909a_0 --- > - libidn2=2.3.1=h7f98852_0 208a223 > - libogg=1.3.4=h7f98852_1 209a225 > - libopus=1.3.1=h7f98852_1 211,212c227,228 < - libpq=13.1=hfd2b0eb_2 < - libprotobuf=3.15.8=h780b84a_0 --- > - libpq=13.3=hd57d9b9_0 > - libprotobuf=3.17.2=h780b84a_0 219c235 < - libtiff=4.2.0=hdc55705_0 --- > - libtiff=4.2.0=hbd63e13_2 222a239 > - libvorbis=1.3.7=h9c3ff4c_0 226c243 < - libxml2=2.9.10=h72842e0_4 --- > - libxml2=2.9.12=h72842e0_0 234c251 < - mamba_gator=5.0.0=pyhd8ed1ab_0 --- > - mamba_gator=5.1.1=pyhd8ed1ab_0 236,240c253,257 < - 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 --- > - markdown-it-py=1.1.0=pyhd8ed1ab_0 > - markupsafe=2.0.1=py37h5e8e339_0 > - matplotlib=3.4.2=py37h89c1867_0 > - matplotlib-base=3.4.2=py37hdd32ed1_0 > - matplotlib-inline=0.1.2=pyhd8ed1ab_2 244c261,262 < - more-itertools=8.7.0=pyhd8ed1ab_0 --- > - monotonic=1.5=py_0 > - more-itertools=8.8.0=pyhd8ed1ab_0 249,250c267,268 < - mysql-common=8.0.23=ha770c72_1 < - mysql-libs=8.0.23=h935591d_1 --- > - mysql-common=8.0.25=ha770c72_0 > - mysql-libs=8.0.25=h935591d_0 259c277 < - netcdf4=1.5.6=nompi_py37hf7b6e46_101 --- > - netcdf4=1.5.6=nompi_py37hf7b6e46_102 261c279 < - networkx=2.5=py_0 --- > - networkx=2.5.1=pyhd8ed1ab_0 263c281 < - notebook=6.3.0=pyha770c72_1 --- > - notebook=6.4.0=pyha770c72_0 265,268c283,287 < - nss=3.63=hb5efdd6_0 < - numba=0.53.1=py37h134767a_0 < - numpy=1.20.2=py37h038b26d_0 < - oauthlib=3.0.1=py_0 --- > - nss=3.67=hb5efdd6_0 > - numba=0.53.1=py37hb11d6e1_1 > - numcodecs=0.7.3=py37hcd2ae1e_0 > - numpy=1.20.3=py37h038b26d_1 > - oauthlib=3.1.1=pyhd8ed1ab_0 272c291 < - openjpeg=2.4.0=hf7af979_0 --- > - openjpeg=2.4.0=hb52868f_1 274,276c293,294 < - ostrich=21.03.16=h2bc3f7f_0 < - owslib=0.23.0=pyhd8ed1ab_0 < - oyaml=1.0=pyhd8ed1ab_0 --- > - ostrich=21.03.16=h4bd325d_1 > - owslib=0.24.1=pyhd8ed1ab_0 280c298 < - pandoc=2.12=h7f98852_0 --- > - pandoc=2.14.0.2=h7f98852_0 290c308 < - pillow=8.1.2=py37h4600e1f_1 --- > - pillow=8.2.0=py37h4600e1f_1 292c310 < - pip=21.0.1=pyhd8ed1ab_0 --- > - pip=21.1.2=pyhd8ed1ab_0 296c314 < - pooch=1.3.0=pyhd8ed1ab_0 --- > - pooch=1.4.0=pyhd8ed1ab_0 299c317 < - postgresql=13.1=h6303168_2 --- > - postgresql=13.3=h2510834_0 301c319 < - prometheus_client=0.10.1=pyhd8ed1ab_0 --- > - prometheus_client=0.11.0=pyhd8ed1ab_0 305c323 < - protobuf=3.15.8=py37hcd2ae1e_0 --- > - protobuf=3.17.2=py37hcd2ae1e_0 310a329,330 > - pyasn1=0.4.8=py_0 > - pyasn1-modules=0.2.7=py_0 314a335 > - pydantic=1.8.2=py37h5e8e339_0 316,317c337,339 < - pygments=2.8.1=pyhd8ed1ab_0 < - pyjwt=2.0.1=pyhd8ed1ab_1 --- > - pygeos=0.10=py37h2d1e849_0 > - pygments=2.9.0=pyhd8ed1ab_0 > - pyjwt=2.1.0=pyhd8ed1ab_0 329c351 < - pytest=6.2.3=py37h89c1867_0 --- > - pytest=6.2.4=py37h89c1867_0 337c359 < - pyviz_comms=2.0.1=pyhd3deb0d_0 --- > - pyviz_comms=2.0.2=pyhd8ed1ab_0 340c362 < - pyzmq=22.0.3=py37h336d617_1 --- > - pyzmq=22.1.0=py37h336d617_0 342c364 < - qtconsole=5.0.3=pyhd8ed1ab_0 --- > - qtconsole=5.1.0=pyhd8ed1ab_0 344,347c366,369 < - rasterio=1.2.2=py37hd5c4cce_0 < - raven=3.0.4.318=hc9bffa2_2 < - ravenpy=0.4.2=py37_1 < - readline=8.0=he28a2e2_2 --- > - rasterio=1.2.1=py37ha549118_0 > - raven-hydro=3.0.4.322=h516393e_0 > - ravenpy=0.5.2=pyh7f9bfb9_0 > - readline=8.1=h46c0cb4_0 349a372 > - requests-oauthlib=1.3.0=pyh9f0ad1d_0 351,352c374,376 < - rioxarray=0.3.1=pyhd8ed1ab_0 < - roocs-utils=0.3.0=pyh6c4a22f_0 --- > - rioxarray=0.4.1.post0=pyhd8ed1ab_0 > - roocs-utils=0.4.2=pyh6c4a22f_0 > - rsa=4.7.2=pyh44b312d_0 354c378 < - ruamel.yaml=0.16.12=py37h5e8e339_2 --- > - ruamel.yaml=0.17.9=py37h5e8e339_0 357,358c381,382 < - scikit-learn=0.24.1=py37h69acf81_0 < - scipy=1.6.2=py37h29e03ee_0 --- > - scikit-learn=0.24.2=py37h18a542f_0 > - scipy=1.6.3=py37h29e03ee_0 361c385 < - shapely=1.7.1=py37hf7ed6d2_4 --- > - shapely=1.7.1=py37h2d1e849_5 363c387 < - six=1.15.0=pyh9f0ad1d_0 --- > - six=1.16.0=pyh6c4a22f_0 368c392 < - sortedcontainers=2.3.0=pyhd8ed1ab_0 --- > - sortedcontainers=2.4.0=pyhd8ed1ab_0 370,371c394,395 < - sqlalchemy=1.4.8=py37h5e8e339_0 < - sqlite=3.35.4=h74cdb3f_0 --- > - sqlalchemy=1.4.18=py37h5e8e339_0 > - sqlite=3.35.5=h74cdb3f_0 374,375c398,399 < - terminado=0.9.4=py37h89c1867_0 < - testpath=0.4.4=py_0 --- > - terminado=0.10.1=py37h89c1867_0 > - testpath=0.5.0=pyhd8ed1ab_0 379c403 < - tiledb=2.2.7=h91fcb0e_0 --- > - tiledb=2.2.9=h91fcb0e_0 384c408 < - tqdm=4.60.0=pyhd8ed1ab_0 --- > - tqdm=4.61.1=pyhd8ed1ab_0 387,388c411,412 < - typing-extensions=3.7.4.3=0 < - typing_extensions=3.7.4.3=py_0 --- > - typing-extensions=3.10.0.0=hd8ed1ab_0 > - typing_extensions=3.10.0.0=pyha770c72_0 392c416 < - urllib3=1.26.4=pyhd8ed1ab_0 --- > - urllib3=1.26.5=pyhd8ed1ab_0 394c418 < - voila=0.2.9=pyhd8ed1ab_0 --- > - voila=0.2.10=pyhd8ed1ab_0 399c423,424 < - werkzeug=1.0.1=pyh9f0ad1d_0 --- > - websocket-client=0.57.0=py37h89c1867_4 > - werkzeug=2.0.1=pyhd8ed1ab_0 402a428 > - wrapt=1.12.1=py37h5e8e339_3 404,405c430,431 < - xarray=0.17.0=pyhd8ed1ab_0 < - xclim=0.25.0=pyhd8ed1ab_0 --- > - xarray=0.18.2=pyhd8ed1ab_0 > - xclim=0.27.0=pyhd8ed1ab_0 408,410c434,436 < - xeus=1.0.1=h7d0c39e_2 < - xeus-python=0.12.3=py37h52ea871_0 < - xhistogram=0.1.3=pyhd8ed1ab_0 --- > - xeus=1.0.3=h7d0c39e_1 > - xeus-python=0.12.4=py37h52ea871_0 > - xhistogram=0.2.0=pyhd8ed1ab_0 414c440 < - xorg-libx11=1.7.0=h7f98852_0 --- > - xorg-libx11=1.7.2=h7f98852_0 423c449 < - xskillscore=0.0.19=pyhd8ed1ab_0 --- > - xskillscore=0.0.18=py_1 426a453 > - zarr=2.8.3=pyhd8ed1ab_0 435d461 < - birdhouse-birdy==0.7.0 438d463 < - funcsigs==1.0.2 451d475 < - wrapt==1.12.1 ``` Full new `conda env export`: [210527.1-update210615-conda-env-export.yml.txt](https://github.com/Ouranosinc/PAVICS-e2e-workflow-tests/files/6658646/210527.1-update210615-conda-env-export.yml.txt) ``` name: birdy channels: - 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.6.5=pyhd8ed1ab_0 - alsa-lib=1.2.3=h516909a_0 - ansi2html=1.6.0=py37h89c1867_1 - anyio=3.1.0=py37h89c1867_0 - appdirs=1.4.4=pyh9f0ad1d_0 - argon2-cffi=20.1.0=py37h5e8e339_2 - asciitree=0.3.3=py_2 - async-timeout=3.0.1=py_1000 - async_generator=1.10=py_0 - attrs=21.2.0=pyhd8ed1ab_0 - backcall=0.2.0=pyh9f0ad1d_0 - backports=1.0=py_2 - backports.functools_lru_cache=1.6.4=pyhd8ed1ab_0 - beautifulsoup4=4.9.3=pyhb0f4dca_0 - birdy=v0.8.0=pyh6c4a22f_0 - bleach=3.3.0=pyh44b312d_0 - blinker=1.4=py_1 - blosc=1.21.0=h9c3ff4c_0 - bokeh=2.3.2=py37h89c1867_0 - boltons=21.0.0=pyhd8ed1ab_0 - boost-cpp=1.74.0=hc6e9bd1_3 - 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=2021.5.30=ha878542_0 - cached-property=1.5.2=hd8ed1ab_1 - cached_property=1.5.2=pyha770c72_1 - cachetools=4.2.2=pyhd8ed1ab_0 - cairo=1.16.0=h6cf1ce9_1008 - cartopy=0.19.0.post1=py37h0c48da3_0 - cdat_info=8.2.1=pyh9f0ad1d_1 - cdtime=3.1.4=py37h5ad02f4_2 - cdutil=8.2.1=pyh9f0ad1d_0 - certifi=2021.5.30=py37h89c1867_0 - certipy=0.1.3=py_0 - cf_xarray=0.5.2=pyh6c4a22f_0 - cffi=1.14.5=py37hc58025e_0 - cfgrib=0.9.9.0=pyhd8ed1ab_1 - 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.2=pyhd8ed1ab_0 - climpred=2.1.2=pyhd8ed1ab_0 - clisops=0.6.5=pyh6c4a22f_0 - cloudpickle=1.6.0=py_0 - colorama=0.4.4=pyh9f0ad1d_0 - colorcet=2.0.6=pyhd8ed1ab_0 - configurable-http-proxy=4.4.0=node15_he6ea98c_0 - coverage=5.5=py37h5e8e339_0 - cryptography=3.4.7=py37h5d9358c_0 - curl=7.77.0=hea6ffbf_0 - cycler=0.10.0=py_2 - cytoolz=0.11.0=py37h5e8e339_3 - dash=1.20.0=pyhd8ed1ab_0 - dash-core-components=1.16.0=pyhd8ed1ab_0 - dash-html-components=1.1.3=pyhd8ed1ab_0 - dash-renderer=1.9.1=pyhd8ed1ab_0 - dash-table=4.11.3=pyhd8ed1ab_0 - dask=2021.6.0=pyhd8ed1ab_0 - dask-core=2021.6.0=pyhd8ed1ab_0 - dataclasses=0.8=pyhc8e2a94_1 - datashader=0.13.0=pyh6c4a22f_0 - datashape=0.5.4=py_1 - dbus=1.13.6=h48d8840_2 - debugpy=1.3.0=py37hcd2ae1e_0 - decorator=4.4.2=py_0 - defusedxml=0.7.1=pyhd8ed1ab_0 - descartes=1.1.0=py_4 - distarray=2.12.2=py_1 - distributed=2021.6.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 - esmtools=1.1.3=py_0 - expat=2.4.1=h9c3ff4c_0 - fasteners=0.16=pyhd8ed1ab_0 - fastprogress=1.0.0=py_0 - ffmpeg=4.2.3=h167e202_0 - fiona=1.8.18=py37h527b4ca_0 - flask=2.0.1=pyhd8ed1ab_0 - flask-compress=1.10.0=pyhd8ed1ab_0 - fontconfig=2.13.1=hba837de_1005 - freetype=2.10.4=h0708190_1 - freexl=1.0.6=h7f98852_0 - fsspec=2021.6.0=pyhd8ed1ab_0 - funcsigs=1.0.2=py_3 - future=0.18.2=py37h89c1867_3 - g2clib=1.6.0=hf3f1b0b_9 - gcsfs=2021.6.0=pyhd8ed1ab_0 - gdal=3.1.4=py37h2ec2946_8 - 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.54.0=h9c3ff4c_1 - giflib=5.2.1=h36c2ea0_2 - gitdb=4.0.7=pyhd8ed1ab_0 - gitpython=3.1.17=pyhd8ed1ab_0 - glib=2.68.3=h9c3ff4c_0 - glib-tools=2.68.3=h9c3ff4c_0 - gmp=6.2.1=h58526e2_0 - gnutls=3.6.13=h85f3911_1 - google-auth=1.30.0=pyh44b312d_0 - google-auth-oauthlib=0.4.4=pyhd8ed1ab_0 - greenlet=1.1.0=py37hcd2ae1e_0 - gst-plugins-base=1.18.4=hf529b03_2 - gstreamer=1.18.4=h76c114f_2 - h5netcdf=0.11.0=pyhd8ed1ab_0 - h5py=3.2.1=nompi_py37ha3df211_100 - hdf4=4.2.15=h10796ff_3 - hdf5=1.10.6=nompi_h6a2412b_1114 - heapdict=1.0.1=py_0 - holoviews=1.14.4=pyhd8ed1ab_0 - hvplot=0.7.2=pyh6c4a22f_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=4.5.0=py37h89c1867_0 - importlib_metadata=4.5.0=hd8ed1ab_0 - importlib_resources=5.1.4=pyhd8ed1ab_0 - iniconfig=1.1.1=pyh9f0ad1d_0 - intake=0.6.2=pyhd8ed1ab_0 - intake-esm=2021.1.15=pyhd8ed1ab_0 - ipykernel=5.5.5=py37h085eea5_0 - ipyleaflet=0.13.6=pyhd8ed1ab_1 - ipython=7.24.1=py37h085eea5_0 - ipython_genutils=0.2.0=py_1 - ipywidgets=7.6.3=pyhd3deb0d_0 - itsdangerous=2.0.1=pyhd8ed1ab_0 - jasper=1.900.1=h07fcdf6_1006 - jedi=0.18.0=py37h89c1867_2 - jinja2=3.0.1=pyhd8ed1ab_0 - joblib=1.0.1=pyhd8ed1ab_0 - jpeg=9d=h36c2ea0_0 - json-c=0.15=h98cffda_0 - json5=0.9.5=pyh9f0ad1d_0 - jsonpickle=2.0.0=pyhd8ed1ab_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.1.1=hd8ed1ab_0 - jupyter_console=6.4.0=pyhd8ed1ab_0 - jupyter_core=4.7.1=py37h89c1867_0 - jupyter_server=1.8.0=pyhd8ed1ab_0 - jupyter_telemetry=0.1.0=pyhd8ed1ab_1 - jupyterhub=1.4.1=py37h89c1867_0 - jupyterhub-base=1.4.1=py37h89c1867_0 - 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.2=pyh6c4a22f_0 - jxrlib=1.1=h7f98852_2 - kealib=1.4.14=hcc255d8_2 - kiwisolver=1.3.1=py37h2527ec5_1 - krb5=1.19.1=hcc1bbae_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_1 - libcurl=7.77.0=h2574ce0_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_19 - libgdal=3.1.4=h38ff51b_8 - libgfortran-ng=9.3.0=hff62375_19 - libgfortran5=9.3.0=hff62375_19 - libglib=2.68.3=h3e27bee_0 - libgomp=9.3.0=h2828fa1_19 - libiconv=1.16=h516909a_0 - libidn2=2.3.1=h7f98852_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 - libogg=1.3.4=h7f98852_1 - libopenblas=0.3.10=pthreads_h4812303_5 - libopus=1.3.1=h7f98852_1 - libpng=1.6.37=h21135ba_2 - libpq=13.3=hd57d9b9_0 - libprotobuf=3.17.2=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_19 - libtiff=4.2.0=hbd63e13_2 - libunistring=0.9.10=h14c3975_0 - libuuid=2.32.1=h7f98852_1000 - libuv=1.41.0=h7f98852_0 - libvorbis=1.3.7=h9c3ff4c_0 - libwebp-base=1.2.0=h7f98852_2 - libxcb=1.13=h7f98852_1003 - libxkbcommon=1.0.3=he3ba5ed_0 - libxml2=2.9.12=h72842e0_0 - 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.1.1=pyhd8ed1ab_0 - markdown=3.3.4=pyhd8ed1ab_0 - markdown-it-py=1.1.0=pyhd8ed1ab_0 - markupsafe=2.0.1=py37h5e8e339_0 - matplotlib=3.4.2=py37h89c1867_0 - matplotlib-base=3.4.2=py37hdd32ed1_0 - matplotlib-inline=0.1.2=pyhd8ed1ab_2 - memory_profiler=0.58.0=py_0 - mesalib=18.3.1=h590aaf7_0 - mistune=0.8.4=py37h5e8e339_1003 - monotonic=1.5=py_0 - more-itertools=8.8.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.25=ha770c72_0 - mysql-libs=8.0.25=h935591d_0 - 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_py37hf7b6e46_102 - nettle=3.6=he412f7d_0 - networkx=2.5.1=pyhd8ed1ab_0 - nodejs=15.14.0=h92b4a50_0 - notebook=6.4.0=pyha770c72_0 - nspr=4.30=h9c3ff4c_0 - nss=3.67=hb5efdd6_0 - numba=0.53.1=py37hb11d6e1_1 - numcodecs=0.7.3=py37hcd2ae1e_0 - numpy=1.20.3=py37h038b26d_1 - oauthlib=3.1.1=pyhd8ed1ab_0 - olefile=0.46=pyh9f0ad1d_1 - openblas=0.3.10=pthreads_h04b7a96_5 - openh264=2.1.1=h780b84a_0 - openjpeg=2.4.0=hb52868f_1 - openssl=1.1.1k=h7f98852_0 - ostrich=21.03.16=h4bd325d_1 - owslib=0.24.1=pyhd8ed1ab_0 - packaging=20.9=pyh44b312d_0 - pamela=1.0.0=py_0 - pandas=1.2.4=py37h219a48f_0 - pandoc=2.14.0.2=h7f98852_0 - pandocfilters=1.4.2=py_1 - panel=0.11.3=pyhd8ed1ab_0 - param=1.10.1=pyhd3deb0d_0 - parso=0.8.2=pyhd8ed1ab_0 - partd=1.2.0=pyhd8ed1ab_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.2.0=py37h4600e1f_1 - pint=0.17=pyhd8ed1ab_0 - pip=21.1.2=pyhd8ed1ab_0 - pixman=0.40.0=h36c2ea0_0 - plotly=4.14.3=pyh44b312d_0 - pluggy=0.13.1=py37h89c1867_4 - pooch=1.4.0=pyhd8ed1ab_0 - poppler=0.89.0=h2de54a5_5 - poppler-data=0.4.10=0 - postgresql=13.3=h2510834_0 - proj=7.2.0=h277dcde_2 - prometheus_client=0.11.0=pyhd8ed1ab_0 - prompt-toolkit=3.0.18=pyha770c72_0 - prompt_toolkit=3.0.18=hd8ed1ab_0 - properscoring=0.1=py_0 - protobuf=3.17.2=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 - pyasn1=0.4.8=py_0 - pyasn1-modules=0.2.7=py_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 - pydantic=1.8.2=py37h5e8e339_0 - pydap=3.2.2=pyh9f0ad1d_1001 - pygeos=0.10=py37h2d1e849_0 - pygments=2.9.0=pyhd8ed1ab_0 - pyjwt=2.1.0=pyhd8ed1ab_0 - 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.4=py37h89c1867_0 - python=3.7.10=hffdb5ce_100_cpython - python-dateutil=2.8.1=py_0 - python-eccodes=2021.03.0=py37h6f94858_1 - 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.2=pyhd8ed1ab_0 - pywavelets=1.1.1=py37h902c9e0_3 - pyyaml=5.4.1=py37h5e8e339_0 - pyzmq=22.1.0=py37h336d617_0 - qt=5.12.9=hda022c4_4 - qtconsole=5.1.0=pyhd8ed1ab_0 - qtpy=1.9.0=py_0 - rasterio=1.2.1=py37ha549118_0 - raven-hydro=3.0.4.322=h516393e_0 - ravenpy=0.5.2=pyh7f9bfb9_0 - readline=8.1=h46c0cb4_0 - regionmask=0.6.2=pyhd8ed1ab_0 - requests=2.25.1=pyhd3deb0d_0 - requests-oauthlib=1.3.0=pyh9f0ad1d_0 - retrying=1.3.3=py_2 - rioxarray=0.4.1.post0=pyhd8ed1ab_0 - roocs-utils=0.4.2=pyh6c4a22f_0 - rsa=4.7.2=pyh44b312d_0 - rtree=0.9.7=py37h0b55af0_1 - ruamel.yaml=0.17.9=py37h5e8e339_0 - ruamel.yaml.clib=0.2.2=py37h5e8e339_2 - scikit-image=0.18.1=py37hdc94413_0 - scikit-learn=0.24.2=py37h18a542f_0 - scipy=1.6.3=py37h29e03ee_0 - send2trash=1.5.0=py_0 - setuptools=49.6.0=py37h89c1867_3 - shapely=1.7.1=py37h2d1e849_5 - siphon=0.9=py37h89c1867_0 - six=1.16.0=pyh6c4a22f_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.4.0=pyhd8ed1ab_0 - soupsieve=2.0.1=py_1 - sqlalchemy=1.4.18=py37h5e8e339_0 - sqlite=3.35.5=h74cdb3f_0 - statsmodels=0.12.2=py37h902c9e0_0 - tblib=1.7.0=pyhd8ed1ab_0 - terminado=0.10.1=py37h89c1867_0 - testpath=0.5.0=pyhd8ed1ab_0 - threadpoolctl=2.1.0=pyh5ca1d4c_0 - threddsclient=0.4.2=py_0 - tifffile=2021.4.8=pyhd8ed1ab_0 - tiledb=2.2.9=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.61.1=pyhd8ed1ab_0 - traitlets=5.0.5=py_0 - traittypes=0.2.1=pyh9f0ad1d_2 - typing-extensions=3.10.0.0=hd8ed1ab_0 - typing_extensions=3.10.0.0=pyha770c72_0 - tzcode=2021a=h7f98852_1 - tzdata=2021a=he74cb21_0 - udunits2=2.2.27.27=h975c496_1 - urllib3=1.26.5=pyhd8ed1ab_0 - vcs=8.2.1=pyh9f0ad1d_0 - voila=0.2.10=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 - websocket-client=0.57.0=py37h89c1867_4 - werkzeug=2.0.1=pyhd8ed1ab_0 - wget=1.20.1=h22169c7_0 - wheel=0.36.2=pyhd3deb0d_0 - widgetsnbextension=3.5.1=py37h89c1867_4 - wrapt=1.12.1=py37h5e8e339_3 - x264=1!152.20180806=h14c3975_0 - xarray=0.18.2=pyhd8ed1ab_0 - xclim=0.27.0=pyhd8ed1ab_0 - xerces-c=3.2.3=h9d8b166_2 - xesmf=0.5.3=pyhd8ed1ab_0 - xeus=1.0.3=h7d0c39e_1 - xeus-python=0.12.4=py37h52ea871_0 - xhistogram=0.2.0=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.2=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.18=py_1 - xz=5.2.5=h516909a_1 - yaml=0.2.5=h516909a_0 - yarl=1.6.3=py37h5e8e339_1 - zarr=2.8.3=pyhd8ed1ab_0 - 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 - cdms2==3.1.5 - colour==0.1.5 - 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 - pymetalink==6.2 - pytest-tornasync==0.6.0.post2 - regrid2==3.1.5 - requests-magpie==0.1.1 prefix: /opt/conda/envs/birdy ```
Merged anyways since the build error not related to the notebook I changed:
|
…more Looks like nbconvert changed, no need to specify --output anymore. --output was working fine in commit 6f86e57. Fix the following error (repeated output dir), see comment #393 (comment): ``` [NbConvertApp] Converting notebook docs/source/notebooks/Extract_geographical_watershed_properties.ipynb to notebook [NbConvertApp] Executing notebook with kernel: python3 [NbConvertApp] Writing 144740 bytes to docs/source/notebooks/docs/source/notebooks/Extract_geographical_watershed_properties.ipynb Traceback (most recent call last): File "/home/my_user/miniconda3/envs/raven-dev1/bin/jupyter-nbconvert", line 11, in <module> sys.exit(main()) File "/home/my_user/miniconda3/envs/raven-dev1/lib/python3.8/site-packages/jupyter_core/application.py", line 254, in launch_instance return super(JupyterApp, cls).launch_instance(argv=argv, **kwargs) File "/home/my_user/miniconda3/envs/raven-dev1/lib/python3.8/site-packages/traitlets/config/application.py", line 845, in launch_instance app.start() File "/home/my_user/miniconda3/envs/raven-dev1/lib/python3.8/site-packages/nbconvert/nbconvertapp.py", line 350, in start self.convert_notebooks() File "/home/my_user/miniconda3/envs/raven-dev1/lib/python3.8/site-packages/nbconvert/nbconvertapp.py", line 524, in convert_notebooks self.convert_single_notebook(notebook_filename) File "/home/my_user/miniconda3/envs/raven-dev1/lib/python3.8/site-packages/nbconvert/nbconvertapp.py", line 490, in convert_single_notebook write_results = self.write_single_notebook(output, resources) File "/home/my_user/miniconda3/envs/raven-dev1/lib/python3.8/site-packages/nbconvert/nbconvertapp.py", line 450, in write_single_notebook write_results = self.writer.write( File "/home/my_user/miniconda3/envs/raven-dev1/lib/python3.8/site-packages/nbconvert/writers/files.py", line 126, in write with io.open(dest, 'w', encoding='utf-8') as f: FileNotFoundError: [Errno 2] No such file or directory: 'docs/source/notebooks/docs/source/notebooks/Extract_geographical_watershed_properties.ipynb' ``` Test: ``` $ make docs/source/notebooks/Extract_geographical_watershed_properties.ipynb.refresh Refreshing notebook docs/source/notebooks/Extract_geographical_watershed_properties.ipynb make[1]: Entering directory '/zstore/repos/raven' bash -c 'WPS_URL="http://0.0.0.0:9099" FINCH_WPS_URL="https://pavics.ouranos.ca/twitcher/ows/proxy/finch/wps" FLYINGPIGEON_WPS_URL="https://pavics.ouranos.ca/twitcher/ows/proxy/flyingpigeon/wps" jupyter nbconvert --to notebook --execute --ExecutePreprocessor.timeout=240 "docs/source/notebooks/Extract_geographical_watershed_properties.ipynb"; sed -i "s@http://0.0.0.0:9099/outputs/@https://pavics.ouranos.ca/wpsoutputs/@g" "docs/source/notebooks/Extract_geographical_watershed_properties.ipynb"' [NbConvertApp] Converting notebook docs/source/notebooks/Extract_geographical_watershed_properties.ipynb to notebook [NbConvertApp] Executing notebook with kernel: python3 2021-06-15 19:33:00,917 - PYWPS - INFO - Request: getcapabilities 2021-06-15 19:33:01,140 - werkzeug - INFO - 127.0.0.1 - - [15/Jun/2021 19:33:01] "GET /?service=WPS&request=GetCapabilities&version=1.0.0 HTTP/1.1" 200 - 2021-06-15 19:33:01,192 - PYWPS - INFO - Request: describeprocess 2021-06-15 19:33:01,816 - werkzeug - INFO - 127.0.0.1 - - [15/Jun/2021 19:33:01] "GET /?service=WPS&request=DescribeProcess&version=1.0.0&identifier=all HTTP/1.1" 200 - (...) 2021-06-15 19:33:08,591 - werkzeug - INFO - 127.0.0.1 - - [15/Jun/2021 19:33:08] "GET /outputs/0a02d78d-ce32-11eb-b0f7-3417ebcfda20/clipped_2ytqyt97.tiff.msk HTTP/1.1" 400 - 2021-06-15 19:33:08,593 - PYWPS - ERROR - Exception: code: 405, description: The method is not allowed for the requested URL., locator: Traceback (most recent call last): File "/home/lvu/.conda/envs/raven/lib/python3.9/site-packages/pywps/app/Service.py", line 284, in call wps_request = WPSRequest(http_request) File "/home/lvu/.conda/envs/raven/lib/python3.9/site-packages/pywps/app/WPSRequest.py", line 46, in __init__ request_parser = self._get_request_parser_method(http_request.method) File "/home/lvu/.conda/envs/raven/lib/python3.9/site-packages/pywps/app/WPSRequest.py", line 56, in _get_request_parser_method raise MethodNotAllowed() werkzeug.exceptions.MethodNotAllowed: 405 Method Not Allowed: The method is not allowed for the requested URL. 2021-06-15 19:33:08,594 - werkzeug - INFO - 127.0.0.1 - - [15/Jun/2021 19:33:08] "HEAD /outputs/0a02d78d-ce32-11eb-b0f7-3417ebcfda20/clipped_2ytqyt97.tiff.MSK HTTP/1.1" 405 - 2021-06-15 19:33:08,596 - PYWPS - ERROR - Exception: code: 400, description: service, locator: service NoneType: None 2021-06-15 19:33:08,596 - werkzeug - INFO - 127.0.0.1 - - [15/Jun/2021 19:33:08] "GET /outputs/0a02d78d-ce32-11eb-b0f7-3417ebcfda20/clipped_2ytqyt97.tiff.MSK HTTP/1.1" 400 - [NbConvertApp] Writing 144697 bytes to docs/source/notebooks/Extract_geographical_watershed_properties.nbconvert.ipynb make[1]: Leaving directory '/zstore/repos/raven' $ make refresh-notebooks Refresh all notebook outputs under docs/source/notebooks bash -c 'for nb in /zstore/repos/raven/docs/source/notebooks/*.ipynb; do make -f Makefile refresh-notebooks-impl NB_REFRESH_FILE="$nb"; done; cd /zstore/repos/raven' make[1]: Entering directory '/zstore/repos/raven' bash -c 'WPS_URL="http://0.0.0.0:9099" FINCH_WPS_URL="https://pavics.ouranos.ca/twitcher/ows/proxy/finch/wps" FLYINGPIGEON_WPS_URL="https://pavics.ouranos.ca/twitcher/ows/proxy/flyingpigeon/wps" jupyter nbconvert --to notebook --execute --ExecutePreprocessor.timeout=240 "/zstore/repos/raven/docs/source/notebooks/Assess_probabilistic_flood_risk.ipynb"; sed -i "s@http://0.0.0.0:9099/outputs/@https://pavics.ouranos.ca/wpsoutputs/@g" "/zstore/repos/raven/docs/source/notebooks/Assess_probabilistic_flood_risk.ipynb"' [NbConvertApp] Converting notebook /zstore/repos/raven/docs/source/notebooks/Assess_probabilistic_flood_risk.ipynb to notebook [NbConvertApp] Executing notebook with kernel: python3 (...) make[1]: Leaving directory '/zstore/repos/raven' make[1]: Entering directory '/zstore/repos/raven' bash -c 'WPS_URL="http://0.0.0.0:9099" FINCH_WPS_URL="https://pavics.ouranos.ca/twitcher/ows/proxy/finch/wps" FLYINGPIGEON_WPS_URL="https://pavics.ouranos.ca/twitcher/ows/proxy/flyingpigeon/wps" jupyter nbconvert --to notebook --execute --ExecutePreprocessor.timeout=240 "/zstore/repos/raven/docs/source/notebooks/Climatological_ESP_forecasting.ipynb"; sed -i "s@http://0.0.0.0:9099/outputs/@https://pavics.ouranos.ca/wpsoutputs/@g" "/zstore/repos/raven/docs/source/notebooks/Climatological_ESP_forecasting.ipynb"' [NbConvertApp] Converting notebook /zstore/repos/raven/docs/source/notebooks/Climatological_ESP_forecasting.ipynb to notebook [NbConvertApp] Executing notebook with kernel: python3 (...) ```
Looks like nbconvert changed, --output alone was working fine in commit 6f86e57. Fix the following error (repeated output dir), see comment #393 (comment): ``` [NbConvertApp] Converting notebook docs/source/notebooks/Extract_geographical_watershed_properties.ipynb to notebook [NbConvertApp] Executing notebook with kernel: python3 [NbConvertApp] Writing 144740 bytes to docs/source/notebooks/docs/source/notebooks/Extract_geographical_watershed_properties.ipynb Traceback (most recent call last): File "/home/my_user/miniconda3/envs/raven-dev1/bin/jupyter-nbconvert", line 11, in <module> sys.exit(main()) File "/home/my_user/miniconda3/envs/raven-dev1/lib/python3.8/site-packages/jupyter_core/application.py", line 254, in launch_instance return super(JupyterApp, cls).launch_instance(argv=argv, **kwargs) File "/home/my_user/miniconda3/envs/raven-dev1/lib/python3.8/site-packages/traitlets/config/application.py", line 845, in launch_instance app.start() File "/home/my_user/miniconda3/envs/raven-dev1/lib/python3.8/site-packages/nbconvert/nbconvertapp.py", line 350, in start self.convert_notebooks() File "/home/my_user/miniconda3/envs/raven-dev1/lib/python3.8/site-packages/nbconvert/nbconvertapp.py", line 524, in convert_notebooks self.convert_single_notebook(notebook_filename) File "/home/my_user/miniconda3/envs/raven-dev1/lib/python3.8/site-packages/nbconvert/nbconvertapp.py", line 490, in convert_single_notebook write_results = self.write_single_notebook(output, resources) File "/home/my_user/miniconda3/envs/raven-dev1/lib/python3.8/site-packages/nbconvert/nbconvertapp.py", line 450, in write_single_notebook write_results = self.writer.write( File "/home/my_user/miniconda3/envs/raven-dev1/lib/python3.8/site-packages/nbconvert/writers/files.py", line 126, in write with io.open(dest, 'w', encoding='utf-8') as f: FileNotFoundError: [Errno 2] No such file or directory: 'docs/source/notebooks/docs/source/notebooks/Extract_geographical_watershed_properties.ipynb' ``` Test: ``` $ make docs/source/notebooks/Extract_geographical_watershed_properties.ipynb.refresh Refreshing notebook docs/source/notebooks/Extract_geographical_watershed_properties.ipynb make[1]: Entering directory '/zstore/repos/raven' bash -c 'WPS_URL="http://0.0.0.0:9099" FINCH_WPS_URL="https://pavics.ouranos.ca/twitcher/ows/proxy/finch/wps" FLYINGPIGEON_WPS_URL="https://pavics.ouranos.ca/twitcher/ows/proxy/flyingpigeon/wps" jupyter nbconvert --to notebook --execute --ExecutePreprocessor.timeout=240 --output "docs/source/notebooks/Extract_geographical_watershed_properties.ipynb" --output-dir . "docs/source/notebooks/Extract_geographical_watershed_properties.ipynb"; sed -i "s@http://0.0.0.0:9099/outputs/@https://pavics.ouranos.ca/wpsoutputs/@g" "docs/source/notebooks/Extract_geographical_watershed_properties.ipynb"' [NbConvertApp] Converting notebook docs/source/notebooks/Extract_geographical_watershed_properties.ipynb to notebook [NbConvertApp] Executing notebook with kernel: python3 (...) 2021-06-15 20:02:02,768 - PYWPS - ERROR - Exception: code: 400, description: service, locator: service NoneType: None 2021-06-15 20:02:02,768 - werkzeug - INFO - 127.0.0.1 - - [15/Jun/2021 20:02:02] "GET /outputs/13c00c32-ce36-11eb-8da2-3417ebcfda20/clipped_gb9hiqxd.tiff.msk HTTP/1.1" 400 - 2021-06-15 20:02:02,769 - PYWPS - ERROR - Exception: code: 405, description: The method is not allowed for the requested URL., locator: Traceback (most recent call last): File "/home/lvu/.conda/envs/raven/lib/python3.9/site-packages/pywps/app/Service.py", line 284, in call wps_request = WPSRequest(http_request) File "/home/lvu/.conda/envs/raven/lib/python3.9/site-packages/pywps/app/WPSRequest.py", line 46, in __init__ request_parser = self._get_request_parser_method(http_request.method) File "/home/lvu/.conda/envs/raven/lib/python3.9/site-packages/pywps/app/WPSRequest.py", line 56, in _get_request_parser_method raise MethodNotAllowed() werkzeug.exceptions.MethodNotAllowed: 405 Method Not Allowed: The method is not allowed for the requested URL. 2021-06-15 20:02:02,770 - werkzeug - INFO - 127.0.0.1 - - [15/Jun/2021 20:02:02] "HEAD /outputs/13c00c32-ce36-11eb-8da2-3417ebcfda20/clipped_gb9hiqxd.tiff.MSK HTTP/1.1" 405 - 2021-06-15 20:02:02,770 - PYWPS - ERROR - Exception: code: 400, description: service, locator: service NoneType: None 2021-06-15 20:02:02,771 - werkzeug - INFO - 127.0.0.1 - - [15/Jun/2021 20:02:02] "GET /outputs/13c00c32-ce36-11eb-8da2-3417ebcfda20/clipped_gb9hiqxd.tiff.MSK HTTP/1.1" 400 - [NbConvertApp] Writing 144697 bytes to ./docs/source/notebooks/Extract_geographical_watershed_properties.ipynb make[1]: Leaving directory '/zstore/repos/raven' ===== $ make refresh-notebooks Refresh all notebook outputs under docs/source/notebooks bash -c 'for nb in /zstore/repos/raven/docs/source/notebooks/*.ipynb; do make -f Makefile refresh-notebooks-impl NB_REFRESH_FILE="$nb"; done; cd /zstore/repos/raven' make[1]: Entering directory '/zstore/repos/raven' bash -c 'WPS_URL="http://0.0.0.0:9099" FINCH_WPS_URL="https://pavics.ouranos.ca/twitcher/ows/proxy/finch/wps" FLYINGPIGEON_WPS_URL="https://pavics.ouranos.ca/twitcher/ows/proxy/flyingpigeon/wps" jupyter nbconvert --to notebook --execute --ExecutePreprocessor.timeout=240 --output "/zstore/repos/raven/docs/source/notebooks/Assess_probabilistic_flood_risk.ipynb" --output-dir . "/zstore/repos/raven/docs/source/notebooks/Assess_probabilistic_flood_risk.ipynb"; sed -i "s@http://0.0.0.0:9099/outputs/@https://pavics.ouranos.ca/wpsoutputs/@g" "/zstore/repos/raven/docs/source/notebooks/Assess_probabilistic_flood_risk.ipynb"' [NbConvertApp] Converting notebook /zstore/repos/raven/docs/source/notebooks/Assess_probabilistic_flood_risk.ipynb to notebook (...) [NbConvertApp] Writing 144845 bytes to /zstore/repos/raven/docs/source/notebooks/Assess_probabilistic_flood_risk.ipynb make[1]: Leaving directory '/zstore/repos/raven' make[1]: Entering directory '/zstore/repos/raven' bash -c 'WPS_URL="http://0.0.0.0:9099" FINCH_WPS_URL="https://pavics.ouranos.ca/twitcher/ows/proxy/finch/wps" FLYINGPIGEON_WPS_URL="https://pavics.ouranos.ca/twitcher/ows/proxy/flyingpigeon/wps" jupyter nbconvert --to notebook --execute --ExecutePreprocessor.timeout=240 --output "/zstore/repos/raven/docs/source/notebooks/Climatological_ESP_forecasting.ipynb" --output-dir . "/zstore/repos/raven/docs/source/notebooks/Climatological_ESP_forecasting.ipynb"; sed -i "s@http://0.0.0.0:9099/outputs/@https://pavics.ouranos.ca/wpsoutputs/@g" "/zstore/repos/raven/docs/source/notebooks/Climatological_ESP_forecasting.ipynb"' [NbConvertApp] Converting notebook /zstore/repos/raven/docs/source/notebooks/Climatological_ESP_forecasting.ipynb to notebook (...) ```
Fix broken refresh target ## Overview Fix the wrong output file path and not replacing the output url properly with the refresh target. See commit description for details. ## Related Issue / Discussion #393 (comment)
Extract_geographical_watershed_properties.ipynb: fix run failure in new Jupyter env Fixes #392 using hints from #388. Closes #388. Note I am not sure what I am doing as I do not understand the code. I simply try to get around the errors and produce similar graph. The old graph had `spatial_ref` in the title, the new one don't. Wonder if it's something critical. Clarification from Trevor: ========== Putting it simply, the object returned (`xarray.DataArray`) is different from what the following cell needed to handle for (`rasterio._io.RasterReader` → `numpy.ndarray`): ``` 23:00:58 Input: 23:00:58 # Note that geojson, and rasterio/rioxarray need to be installed for this to work. 23:00:58 # In the next birdy release, the tiff grid will be automatically converted to a DataArray. 23:00:58 # Here we need to manually convert it. 23:00:58 features, statistics, grid = stats_resp.get(asobj=True) 23:00:58 23:00:58 with rasterio.io.MemoryFile(grid[0]) as memfile: 23:00:58 with memfile.open() as dataset: 23:00:58 grid = rio.open_rasterio(dataset) 23:00:58 23:00:58 grid.plot() ``` The `spatial_ref`title is something that `rasterio` adds to the plot, and it isn't at all needed. The notebook should work perfectly so long as the client running it has `rioxarray`available in their ipython kernel. ========== With the new Jupypter env for latest RavenPy `0.5.2` from PR Ouranosinc/PAVICS-e2e-workflow-tests#75 `Extract_geographical_watershed_properties.ipynb` fails with the following error below. ``` 23:00:58 _ raven-master/docs/source/notebooks/Extract_geographical_watershed_properties.ipynb::Cell 7 _ 23:00:58 Notebook cell execution failed 23:00:58 Cell 7: Cell execution caused an exception 23:00:58 23:00:58 Input: 23:00:58 # Note that geojson, and rasterio/rioxarray need to be installed for this to work. 23:00:58 # In the next birdy release, the tiff grid will be automatically converted to a DataArray. 23:00:58 # Here we need to manually convert it. 23:00:58 features, statistics, grid = stats_resp.get(asobj=True) 23:00:58 23:00:58 with rasterio.io.MemoryFile(grid[0]) as memfile: 23:00:58 with memfile.open() as dataset: 23:00:58 grid = rio.open_rasterio(dataset) 23:00:58 23:00:58 grid.plot() 23:00:58 23:00:58 Traceback: 23:00:58 23:00:58 --------------------------------------------------------------------------- 23:00:58 ValueError Traceback (most recent call last) 23:00:58 <ipython-input-8-8b167a3ecdc9> in <module> 23:00:58 4 features, statistics, grid = stats_resp.get(asobj=True) 23:00:58 5 23:00:58 ----> 6 with rasterio.io.MemoryFile(grid[0]) as memfile: 23:00:58 7 with memfile.open() as dataset: 23:00:58 8 grid = rio.open_rasterio(dataset) 23:00:58 23:00:58 /opt/conda/envs/birdy/lib/python3.7/site-packages/rasterio/io.py in __init__(self, file_or_bytes, dirname, filename, ext) 23:00:58 103 """ 23:00:58 104 super(MemoryFile, self).__init__( 23:00:58 --> 105 file_or_bytes=file_or_bytes, dirname=dirname, filename=filename, ext=ext) 23:00:58 106 23:00:58 107 @ensure_env 23:00:58 23:00:58 rasterio/_io.pyx in rasterio._io.MemoryFileBase.__init__() 23:00:58 23:00:58 /opt/conda/envs/birdy/lib/python3.7/site-packages/xarray/core/common.py in __bool__(self) 23:00:58 127 23:00:58 128 def __bool__(self: Any) -> bool: 23:00:58 --> 129 return bool(self.values) 23:00:58 130 23:00:58 131 def __float__(self: Any) -> float: 23:00:58 23:00:58 ValueError: The truth value of an array with more than one element is ambiguous. Use a.any() or a.all() 23:00:58 23:00:58 _ raven-master/docs/source/notebooks/Extract_geographical_watershed_properties.ipynb::Cell 10 _ 23:00:58 Notebook cell execution failed 23:00:58 Cell 10: Cell execution caused an exception 23:00:58 23:00:58 Input: 23:00:58 unique, counts = numpy.unique(grid.sel(band=1), return_counts=True) 23:00:58 display(unique, counts) 23:00:58 23:00:58 # Pixels values at '127' are NaN and can be ignored. 23:00:58 plt.bar(unique[:-1], counts[:-1]) 23:00:58 plt.show() 23:00:58 23:00:58 grid.where(grid != 127).sel(band=1).plot.imshow(cmap="tab20") 23:00:58 plt.show() 23:00:58 23:00:58 Traceback: 23:00:58 23:00:58 --------------------------------------------------------------------------- 23:00:58 AttributeError Traceback (most recent call last) 23:00:58 <ipython-input-11-a26c52126e9c> in <module> 23:00:58 ----> 1 unique, counts = numpy.unique(grid.sel(band=1), return_counts=True) 23:00:58 2 display(unique, counts) 23:00:58 3 23:00:58 4 # Pixels values at '127' are NaN and can be ignored. 23:00:58 5 plt.bar(unique[:-1], counts[:-1]) 23:00:58 23:00:58 AttributeError: 'list' object has no attribute 'sel' 23:00:58 23:00:58 _ raven-master/docs/source/notebooks/Extract_geographical_watershed_properties.ipynb::Cell 11 _ 23:00:58 Notebook cell execution failed 23:00:58 Cell 11: Cell execution caused an exception 23:00:58 23:00:58 Input: 23:00:58 import cartopy.crs as ccrs 23:00:58 23:00:58 # Set a CRS transformation: 23:00:58 crs = ccrs.LambertConformal( 23:00:58 central_latitude=49, central_longitude=-95, standard_parallels=(49, 77) 23:00:58 ) 23:00:58 23:00:58 ax = plt.subplot(projection=crs) 23:00:58 grid.name = "Land Use Categories" 23:00:58 grid.where(grid != 127).sel(band=1).plot.imshow(ax=ax, transform=crs, cmap="tab20") 23:00:58 plt.show() 23:00:58 23:00:58 Traceback: 23:00:58 23:00:58 --------------------------------------------------------------------------- 23:00:58 AttributeError Traceback (most recent call last) 23:00:58 <ipython-input-12-f9fdb6f0e562> in <module> 23:00:58 7 23:00:58 8 ax = plt.subplot(projection=crs) 23:00:58 ----> 9 grid.name = "Land Use Categories" 23:00:58 10 grid.where(grid != 127).sel(band=1).plot.imshow(ax=ax, transform=crs, cmap="tab20") 23:00:58 11 plt.show() 23:00:58 23:00:58 AttributeError: 'list' object has no attribute 'name' ```
Looks like nbconvert changed, --output alone was working fine in commit 59cc9af. Fix the following error (repeated output dir), see comment #393 (comment): ``` [NbConvertApp] Converting notebook docs/source/notebooks/Extract_geographical_watershed_properties.ipynb to notebook [NbConvertApp] Executing notebook with kernel: python3 [NbConvertApp] Writing 144740 bytes to docs/source/notebooks/docs/source/notebooks/Extract_geographical_watershed_properties.ipynb Traceback (most recent call last): File "/home/my_user/miniconda3/envs/raven-dev1/bin/jupyter-nbconvert", line 11, in <module> sys.exit(main()) File "/home/my_user/miniconda3/envs/raven-dev1/lib/python3.8/site-packages/jupyter_core/application.py", line 254, in launch_instance return super(JupyterApp, cls).launch_instance(argv=argv, **kwargs) File "/home/my_user/miniconda3/envs/raven-dev1/lib/python3.8/site-packages/traitlets/config/application.py", line 845, in launch_instance app.start() File "/home/my_user/miniconda3/envs/raven-dev1/lib/python3.8/site-packages/nbconvert/nbconvertapp.py", line 350, in start self.convert_notebooks() File "/home/my_user/miniconda3/envs/raven-dev1/lib/python3.8/site-packages/nbconvert/nbconvertapp.py", line 524, in convert_notebooks self.convert_single_notebook(notebook_filename) File "/home/my_user/miniconda3/envs/raven-dev1/lib/python3.8/site-packages/nbconvert/nbconvertapp.py", line 490, in convert_single_notebook write_results = self.write_single_notebook(output, resources) File "/home/my_user/miniconda3/envs/raven-dev1/lib/python3.8/site-packages/nbconvert/nbconvertapp.py", line 450, in write_single_notebook write_results = self.writer.write( File "/home/my_user/miniconda3/envs/raven-dev1/lib/python3.8/site-packages/nbconvert/writers/files.py", line 126, in write with io.open(dest, 'w', encoding='utf-8') as f: FileNotFoundError: [Errno 2] No such file or directory: 'docs/source/notebooks/docs/source/notebooks/Extract_geographical_watershed_properties.ipynb' ``` Test: ``` $ make docs/source/notebooks/Extract_geographical_watershed_properties.ipynb.refresh Refreshing notebook docs/source/notebooks/Extract_geographical_watershed_properties.ipynb make[1]: Entering directory '/zstore/repos/raven' bash -c 'WPS_URL="http://0.0.0.0:9099" FINCH_WPS_URL="https://pavics.ouranos.ca/twitcher/ows/proxy/finch/wps" FLYINGPIGEON_WPS_URL="https://pavics.ouranos.ca/twitcher/ows/proxy/flyingpigeon/wps" jupyter nbconvert --to notebook --execute --ExecutePreprocessor.timeout=240 --output "docs/source/notebooks/Extract_geographical_watershed_properties.ipynb" --output-dir . "docs/source/notebooks/Extract_geographical_watershed_properties.ipynb"; sed -i "s@http://0.0.0.0:9099/outputs/@https://pavics.ouranos.ca/wpsoutputs/@g" "docs/source/notebooks/Extract_geographical_watershed_properties.ipynb"' [NbConvertApp] Converting notebook docs/source/notebooks/Extract_geographical_watershed_properties.ipynb to notebook [NbConvertApp] Executing notebook with kernel: python3 (...) 2021-06-15 20:02:02,768 - PYWPS - ERROR - Exception: code: 400, description: service, locator: service NoneType: None 2021-06-15 20:02:02,768 - werkzeug - INFO - 127.0.0.1 - - [15/Jun/2021 20:02:02] "GET /outputs/13c00c32-ce36-11eb-8da2-3417ebcfda20/clipped_gb9hiqxd.tiff.msk HTTP/1.1" 400 - 2021-06-15 20:02:02,769 - PYWPS - ERROR - Exception: code: 405, description: The method is not allowed for the requested URL., locator: Traceback (most recent call last): File "/home/lvu/.conda/envs/raven/lib/python3.9/site-packages/pywps/app/Service.py", line 284, in call wps_request = WPSRequest(http_request) File "/home/lvu/.conda/envs/raven/lib/python3.9/site-packages/pywps/app/WPSRequest.py", line 46, in __init__ request_parser = self._get_request_parser_method(http_request.method) File "/home/lvu/.conda/envs/raven/lib/python3.9/site-packages/pywps/app/WPSRequest.py", line 56, in _get_request_parser_method raise MethodNotAllowed() werkzeug.exceptions.MethodNotAllowed: 405 Method Not Allowed: The method is not allowed for the requested URL. 2021-06-15 20:02:02,770 - werkzeug - INFO - 127.0.0.1 - - [15/Jun/2021 20:02:02] "HEAD /outputs/13c00c32-ce36-11eb-8da2-3417ebcfda20/clipped_gb9hiqxd.tiff.MSK HTTP/1.1" 405 - 2021-06-15 20:02:02,770 - PYWPS - ERROR - Exception: code: 400, description: service, locator: service NoneType: None 2021-06-15 20:02:02,771 - werkzeug - INFO - 127.0.0.1 - - [15/Jun/2021 20:02:02] "GET /outputs/13c00c32-ce36-11eb-8da2-3417ebcfda20/clipped_gb9hiqxd.tiff.MSK HTTP/1.1" 400 - [NbConvertApp] Writing 144697 bytes to ./docs/source/notebooks/Extract_geographical_watershed_properties.ipynb make[1]: Leaving directory '/zstore/repos/raven' ===== $ make refresh-notebooks Refresh all notebook outputs under docs/source/notebooks bash -c 'for nb in /zstore/repos/raven/docs/source/notebooks/*.ipynb; do make -f Makefile refresh-notebooks-impl NB_REFRESH_FILE="$nb"; done; cd /zstore/repos/raven' make[1]: Entering directory '/zstore/repos/raven' bash -c 'WPS_URL="http://0.0.0.0:9099" FINCH_WPS_URL="https://pavics.ouranos.ca/twitcher/ows/proxy/finch/wps" FLYINGPIGEON_WPS_URL="https://pavics.ouranos.ca/twitcher/ows/proxy/flyingpigeon/wps" jupyter nbconvert --to notebook --execute --ExecutePreprocessor.timeout=240 --output "/zstore/repos/raven/docs/source/notebooks/Assess_probabilistic_flood_risk.ipynb" --output-dir . "/zstore/repos/raven/docs/source/notebooks/Assess_probabilistic_flood_risk.ipynb"; sed -i "s@http://0.0.0.0:9099/outputs/@https://pavics.ouranos.ca/wpsoutputs/@g" "/zstore/repos/raven/docs/source/notebooks/Assess_probabilistic_flood_risk.ipynb"' [NbConvertApp] Converting notebook /zstore/repos/raven/docs/source/notebooks/Assess_probabilistic_flood_risk.ipynb to notebook (...) [NbConvertApp] Writing 144845 bytes to /zstore/repos/raven/docs/source/notebooks/Assess_probabilistic_flood_risk.ipynb make[1]: Leaving directory '/zstore/repos/raven' make[1]: Entering directory '/zstore/repos/raven' bash -c 'WPS_URL="http://0.0.0.0:9099" FINCH_WPS_URL="https://pavics.ouranos.ca/twitcher/ows/proxy/finch/wps" FLYINGPIGEON_WPS_URL="https://pavics.ouranos.ca/twitcher/ows/proxy/flyingpigeon/wps" jupyter nbconvert --to notebook --execute --ExecutePreprocessor.timeout=240 --output "/zstore/repos/raven/docs/source/notebooks/Climatological_ESP_forecasting.ipynb" --output-dir . "/zstore/repos/raven/docs/source/notebooks/Climatological_ESP_forecasting.ipynb"; sed -i "s@http://0.0.0.0:9099/outputs/@https://pavics.ouranos.ca/wpsoutputs/@g" "/zstore/repos/raven/docs/source/notebooks/Climatological_ESP_forecasting.ipynb"' [NbConvertApp] Converting notebook /zstore/repos/raven/docs/source/notebooks/Climatological_ESP_forecasting.ipynb to notebook (...) ```
Fix broken refresh target ## Overview Fix the wrong output file path and not replacing the output url properly with the refresh target. See commit description for details. ## Related Issue / Discussion #393 (comment)
Fixes #392 using hints from #388. Closes #388.
Note I am not sure what I am doing as I do not understand the code. I simply try to get around the errors and produce similar graph. The old graph had
spatial_ref
in the title, the new one don't. Wonder if it's something critical.Clarification from Trevor:
==========
Putting it simply, the object returned (
xarray.DataArray
) is different from what the following cell needed to handle for (rasterio._io.RasterReader
→numpy.ndarray
):The
spatial_ref
title is something thatrasterio
adds to the plot, and it isn't at all needed. The notebook should work perfectly so long as the client running it hasrioxarray
available in their ipython kernel.==========
With the new Jupypter env for latest RavenPy
0.5.2
from PR Ouranosinc/PAVICS-e2e-workflow-tests#75Extract_geographical_watershed_properties.ipynb
fails with the following error below.