Hey all, I was hoping to get some help setting up birds in
I have deployed to a docker server using
birdhouse-deploy and I've registered the available birds (hummingbird, finch, flyingpigeon, malleefowl) along with my own bird. The issue is that none of the bird's processes are working. When trying to run one I get an error message stating "Error: Could not read status document after 5 retries. Giving up.". This happens for all the birds and I'm not sure exactly how to fix it. I've looked through the code but don't have a strong understanding of what exactly the status document is. Any tips would be very much appreciated!
birdy? https://flyingpigeon.readthedocs.io/en/latest/notebooks/index.html or https://ouranosinc.github.io/pavics-sdi/notebooks/climate_indices.html ?
birdyis a python client to call the services. easy to install, and handy to use https://github.com/bird-house/birdy
birdya try. It's another WPS client.
birdyalready installed together with a bunch of other useful libraries. To try it quickly, you can try the one on our PAVICS instance: https://pavics.ouranos.ca/jupyter/
Sorry I was afk for lunch.
@nilshempelmann its in our github repo so feel free to have a look! It's still fairly early on so if you have any comments or suggestions those are welcome.
@tlvu thanks for the info, I'll give it a try.
thunderbirdon my local mashin. Well as far as I see, it't empty so far.
# import the WPS client and connet to the server from birdy import WPSClient import birdy tb_server = 'http://localhost:8094/wps' # link to the local thunderbird server # simple connection (not recommended for larger processing) tb = WPSClient(tb_server) # asyncron connection with progess status requests tb_i = WPSClient(url=tb_server, progress=True)
thunderbirdon port 8094, per default it is on 5000.
ModuleNotFoundError: No module named 'nchelpers'
ERROR: Command errored out with exit status 1: command: /home/nils/anaconda3/envs/thunderbird/bin/python -c 'import sys, setuptools, tokenize; sys.argv = '"'"'/tmp/pip-install-rz37xr0m/netCDF4/setup.py'"'"'; __file__='"'"'/tmp/pip-install-rz37xr0m/netCDF4/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' egg_info --egg-base /tmp/pip-install-rz37xr0m/netCDF4/pip-egg-info cwd: /tmp/pip-install-rz37xr0m/netCDF4/ Complete output (23 lines): Package hdf5 was not found in the pkg-config search path. Perhaps you should add the directory containing `hdf5.pc' to the PKG_CONFIG_PATH environment variable No package 'hdf5' found /tmp/pip-install-rz37xr0m/netCDF4/setup.py:161: DeprecationWarning: The SafeConfigParser class has been renamed to ConfigParser in Python 3.2. This alias will be removed in future versions. Use ConfigParser directly instead. config = configparser.SafeConfigParser() Traceback (most recent call last): File "<string>", line 1, in <module> File "/tmp/pip-install-rz37xr0m/netCDF4/setup.py", line 341, in <module> _populate_hdf5_info(dirstosearch, inc_dirs, libs, lib_dirs) File "/tmp/pip-install-rz37xr0m/netCDF4/setup.py", line 306, in _populate_hdf5_info raise ValueError('did not find HDF5 headers') ValueError: did not find HDF5 headers reading from setup.cfg... using nc-config ... HDF5_DIR environment variable not set, checking some standard locations .. checking /home/nils ... checking /usr/local ... checking /sw ... checking /opt ... checking /opt/local ... checking /usr ... ---------------------------------------- ERROR: Command errored out with exit status 1: python setup.py egg_info Check the logs for full command output.
Don't worry about the chat flood, its interesting for the others as well.
the dependencies should be included. Better in the
environment.yml to be able to install the
thunderbird like the other birds with:
conda env create
cdo it looks like there is missing more:
No package 'hdf5' found
The reason I stuck with
pip was because I wasn't sure how to apply the
-i flag (pointing to the pcic pypi) to install our
I've seen that
hdf5 error more times than I like haha. I think installing a few more things should fix it:
sudo apt-get update && apt-get install -y \ build-essential \ cdo \ # HDF5 libraries for cdo libhdf5-serial-dev \ netcdf-bin \ libnetcdf-dev
That is the full process as far as I remember. Let me know if it works.
@nilshempelmann using birdy with a local instance of thunderbird works fine. To test it I just run the
hello process. I would also like to get an instance running on docker such that other people around the office would be able to test it out (plus I'd like to test heavier processing). I am able to successfully get capabilities using the url and port number but when I try and run a process using birdy this line loops endlessly:
2020-03-24 12:47:44,973: hello [0/100] - PyWPS Process hello accepted
So it seems the process "starts" but never actually executes (at least that is my assumption). Is there something I am not doing correctly here?
birdyneeds to be installed in the flyingpigoen env as well to run the notebook tests. Is there a way to keep
requirements_dev.txtwhere additional dev related dependencies are specified: https://github.com/bird-house/finch/blob/4e9d2baaad0166a76c3e49481934c1eb56af007a/requirements_dev.txt#L7-L9
assert reference_output == test_output failed: '<img src="ht...width="400"/>' == '<img src="ht...width="400"/>' - <img src="http://127.0.0.1:8093/outputs/STATUS_FILE/tmpirlo_k7d.png" width="400"/> ? ^^ ---- + <img src="http://127.0.0.1:8093/outputs/STATUS_FILE/tmplwz7aplo.png" width="400"/> ? ^^^^^^