|
1 | 1 | # WEkEO HDA API Client
|
| 2 | + |
2 | 3 | This package provides a fully compliant Python 3 client that can be used to search and download products using the Harmonized Data Access WEkEO API.
|
3 | 4 |
|
4 | 5 | HDA is a RESTful interface allowing users to search and download WEkEO datasets.
|
5 | 6 |
|
6 | 7 | Documentation about its usage can be found at https://www.wekeo.eu/.
|
7 | 8 |
|
8 |
| -## Requirements |
9 |
| -- Python 3 |
10 |
| -- requests |
11 |
| -- tqdm |
12 |
| - |
13 |
| -## Install the WEkEO HDA Key |
14 |
| - |
15 |
| -1) If you don't have a WEkEO account, please self register at the WEkEO registration page https://www.wekeo.eu/web/guest/user-registration and go to the steps below. |
16 |
| - |
17 |
| -2) Copy the code below in the file `$HOME/.hdarc` in your Unix/Linux environment. Adapt the following template with the credentials of your WEkEO account: |
18 |
| - |
19 |
| - url: https://wekeo-broker.apps.mercator.dpi.wekeo.eu/databroker |
20 |
| - user: [username] |
21 |
| - password: [password] |
22 |
| - |
23 |
| - |
24 |
| -## Install the WEkEO HDA client |
25 |
| - |
26 |
| -The WEkEO HDA client is a python based library. It provides support for both Python 2.7.x and Python 3. |
27 |
| - |
28 |
| -You can Install the WEkEO HDA client via the package management system pip, by running on Unix/Linux the command shown below. |
29 |
| - |
30 |
| - pip install hda |
31 |
| - |
32 |
| -This will also install the required dependencies. |
33 |
| - |
34 |
| - |
35 |
| -## Use the WEkEO HDA client for data access |
36 |
| - |
37 |
| -Once the WEkEO HDA API client is installed, it can be used to request data from the datasets listed in the WEkEO catalogue. |
38 |
| - |
39 |
| -On the WEkEO portal, under DATA, each dataset search has a 'Show API request' button, it displays the json request to be used. The request can be formatted using the interactive form. The API call must follow the syntax. |
40 |
| - |
41 |
| -The client can be used directly into another python script as in the following example: |
42 |
| - |
43 |
| -```python |
44 |
| -from hda import Client |
45 |
| - |
46 |
| -c = Client(debug=True) |
47 |
| - |
48 |
| -query = { |
49 |
| - "datasetId": "EO:CODA:DAT:SENTINEL-3:OL_1_EFR___", |
50 |
| - "dateRangeSelectValues": [{ |
51 |
| - "end": "2019-07-03T14:03:00.000Z", |
52 |
| - "name": "dtrange", |
53 |
| - "start": "2019-07-03T13:59:00.000Z" |
54 |
| - }], |
55 |
| - "stringChoiceValues": [] |
56 |
| -} |
57 |
| -matches = c.search(query) |
58 |
| -print(matches) |
59 |
| -matches.download() |
60 |
| -``` |
61 |
| - |
62 |
| -Note that the query must be a json valid object. Please refer to the official documentation of the HDA for instructions on how to get the list of the available parameters. |
63 |
| - |
64 |
| -Alternatively, it can be wrapped into a script to be executed from the command line. Please refer to the ``demos/demo.py`` file for a simple demostration. |
65 |
| - |
66 |
| -## Reference |
67 |
| -There are a number of options the drives the `Client` instance: |
68 |
| -- `url`: The HDA URL. Normally set in the `.hdarc` file, can be overwritten directly by passing a value to the client. |
69 |
| -- `user`: The HDA user. Normally set in the `.hdarc` file, can be overwritten directly by passing a value to the client. |
70 |
| -- `password`: The HDA password. Normally set in the `.hdarc` file, can be overwritten directly by passing a value to the client. |
71 |
| -- `token`: Credentials can be passed directly with a valid JWT Token that will take precedence over user and password. Normally unused, as the client will require a fresh token upon any API call. |
72 |
| -- `quiet`: Pass `True` to disable logging. Default: `False`. |
73 |
| -- `debug`: Pass `True` to enable debug. Requires `quiet` to be `False`. Default: `False`. |
74 |
| -- `verify`: Whether to verify for SSL certificate of the HDA or not. Normally there is no need to modify the default value. Default: `None`. |
75 |
| -- `timeout`: The time, in seconds, before the client should stop waiting for a response. Default: `None`. |
76 |
| -- `retry_max`: The number of retries before the client should stop trying to get a successful response. Default: 500. |
77 |
| -- `sleep_max`: The time, in seconds, to wait between two attempts. Default: 120. |
78 |
| -- `info_callback`: A callback function that can be attached to the `info` logging level messages. Will replace the default logging. Default: `None`. |
79 |
| -- `warning_callback`: A callback function that can be attached to the `warning` logging level messages. Will replace the default logging. Default: `None`. |
80 |
| -- `error_callback`: A callback function that can be attached to the `error` logging level messages. Will replace the default logging. Default: `None`. |
81 |
| -- `debug_callback`: A callback function that can be attached to the `debug` logging level messages. Will replace the default logging. Default: `None`. |
82 |
| -- `progress`: Whether to show or hide a progress bar. Default: `True`. |
| 9 | +The documentation for this package can be found at: https://hda.readthedocs.io/en/latest/ |
83 | 10 |
|
84 | 11 | ## Contribution
|
85 | 12 | Contribute to the development of this client by creating an account on GitHub. You can follow this guidelines for a general overview of the needed steps: https://github.com/firstcontributions/first-contributions.
|
|
0 commit comments