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

Extract_geographical_watershed_properties.ipynb: fix run failure in new Jupyter env #393

Merged
merged 5 commits into from
Jun 15, 2021

Conversation

tlvu
Copy link
Contributor

@tlvu tlvu commented Jun 10, 2021

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.RasterReadernumpy.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_reftitle 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 rioxarrayavailable 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'

…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'
```
@review-notebook-app
Copy link

Check out this pull request on  ReviewNB

See visual diffs & provide feedback on Jupyter Notebooks.


Powered by ReviewNB

@Zeitsperre
Copy link
Contributor

I'll take a look at this this afternoon!

Copy link
Contributor

@Zeitsperre Zeitsperre left a 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.RasterReadernumpy.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_reftitle 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 rioxarrayavailable in their ipython kernel.

Copy link
Contributor Author

@tlvu tlvu left a 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 !

@Zeitsperre
Copy link
Contributor

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.

I think the method of file path parsing needs some tweaking. Failing with:

FileNotFoundError: [Errno 2] No such file or directory: 'docs/source/notebooks/docs/source/notebooks/Extract_geographical_watershed_properties.ipynb'

Will try re-running manually for now.

@tlvu
Copy link
Contributor Author

tlvu commented Jun 14, 2021

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.

I think the method of file path parsing needs some tweaking. Failing with:

FileNotFoundError: [Errno 2] No such file or directory: 'docs/source/notebooks/docs/source/notebooks/Extract_geographical_watershed_properties.ipynb'

@Zeitsperre How did you get this error? What was your $PWD when you launch make?

Will try re-running manually for now.

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?

@richardarsenault
Copy link
Contributor

@tlvu Yes it's all good for the summer school, thanks!

"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Metalink content-type detected.\n",
Copy link
Contributor Author

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.".

Copy link
Contributor

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.

@Zeitsperre
Copy link
Contributor

Zeitsperre commented Jun 14, 2021

FileNotFoundError: [Errno 2] No such file or directory: 'docs/source/notebooks/docs/source/notebooks/Extract_geographical_watershed_properties.ipynb'

@Zeitsperre How did you get this error? What was your $PWD when you launch make?

/my_user/git/raven/. Here's the full stack:

Refreshing notebook docs/source/notebooks/Extract_geographical_watershed_properties.ipynb
make[1]: Entering directory '/home/my_user/git/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" "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
[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'
make[1]: Leaving directory '/home/my_user/git/raven'

Could it be that this particular make command doesn't work in zsh? I can't think of why else it would fail.

EDIT: Tried from bash. No difference in output.

@tlvu
Copy link
Contributor Author

tlvu commented Jun 14, 2021

Could it be that this particular make command doesn't work in zsh? I can't think of why else it would fail.

EDIT: Tried from bash. No difference in output.

This is really odd. This works for me on my machine.

Can you try this command direct in your shell?

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" "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"'

@Zeitsperre
Copy link
Contributor

Can you try this command direct in your shell?

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" "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"'

https://gist.github.com/Zeitsperre/e430dda569c6e93ff9903d7c323020e3

@Zeitsperre
Copy link
Contributor

So it looks like this works with nbconvert 6.0.7. --output must only be the name of the file. --output-dir is to specify the new location, but by default it will use the same location as source.:

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 "Extract_geographical_watershed_properties.ipynb" "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" 

tlvu added a commit to Ouranosinc/PAVICS-e2e-workflow-tests that referenced this pull request Jun 15, 2021
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
```
@tlvu tlvu merged commit e0af129 into master Jun 15, 2021
@tlvu tlvu deleted the fix-nb-for-new-jupyter-env branch June 15, 2021 21:49
@tlvu
Copy link
Contributor Author

tlvu commented Jun 15, 2021

Merged anyways since the build error not related to the notebook I changed:

tests/test_wps_hydrobasins_shape_selection.py .
/home/runner/work/_temp/09d6c889-d3e4-47f8-a805-4f001914160b.sh: line 4:  4210 Segmentation fault      (core dumped) env RAVENPY_TESTDATA_PATH=$GITHUB_WORKSPACE/raven-testdata pytest tests

tlvu added a commit that referenced this pull request Jun 15, 2021
…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

(...)

```
tlvu added a commit that referenced this pull request Jun 16, 2021
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

(...)

```
@tlvu tlvu mentioned this pull request Jun 16, 2021
tlvu added a commit that referenced this pull request Jun 16, 2021
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)
Zeitsperre pushed a commit that referenced this pull request Aug 17, 2023
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'
```
Zeitsperre pushed a commit that referenced this pull request Aug 17, 2023
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

(...)

```
Zeitsperre pushed a commit that referenced this pull request Aug 17, 2023
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)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
3 participants