Git Product home page Git Product logo

hda's Introduction

WEkEO HDA API Client

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.

HDA is a RESTful interface allowing users to search and download WEkEO datasets.

Documentation about its usage can be found at https://www.wekeo.eu/.

Requirements

  • Python 3
  • requests
  • tqdm

Install the WEkEO HDA Key

  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.

  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:

     url: https://wekeo-broker.apps.mercator.dpi.wekeo.eu/databroker
     user: [username]
     password: [password]
    

Install the WEkEO HDA client

The WEkEO HDA client is a python based library. It provides support for both Python 2.7.x and Python 3.

You can Install the WEkEO HDA client via the package management system pip, by running on Unix/Linux the command shown below.

pip install hda

This will also install the required dependencies.

Use the WEkEO HDA client for data access

Once the WEkEO HDA API client is installed, it can be used to request data from the datasets listed in the WEkEO catalogue.

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.

The client can be used directly into another python script as in the following example:

from hda import Client

c = Client(debug=True)

query = {
    "datasetId": "EO:CODA:DAT:SENTINEL-3:OL_1_EFR___",
    "dateRangeSelectValues": [{
        "end": "2019-07-03T14:03:00.000Z",
        "name": "dtrange",
        "start": "2019-07-03T13:59:00.000Z"
    }],
    "stringChoiceValues": []
}
matches = c.search(query)
print(matches)
matches.download()

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.

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.

Reference

There are a number of options the drives the Client instance:

  • url: The HDA URL. Normally set in the .hdarc file, can be overwritten directly by passing a value to the client.
  • user: The HDA user. Normally set in the .hdarc file, can be overwritten directly by passing a value to the client.
  • password: The HDA password. Normally set in the .hdarc file, can be overwritten directly by passing a value to the client.
  • 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.
  • quiet: Pass True to disable logging. Default: False.
  • debug: Pass True to enable debug. Requires quiet to be False. Default: False.
  • verify: Whether to verify for SSL certificate of the HDA or not. Normally there is no need to modify the default value. Default: None.
  • timeout: The time, in seconds, before the client should stop waiting for a response. Default: None.
  • retry_max: The number of retries before the client should stop trying to get a successful response. Default: 500.
  • sleep_max: The time, in seconds, to wait between two attempts. Default: 120.
  • info_callback: A callback function that can be attached to the info logging level messages. Will replace the default logging. Default: None.
  • warning_callback: A callback function that can be attached to the warning logging level messages. Will replace the default logging. Default: None.
  • error_callback: A callback function that can be attached to the error logging level messages. Will replace the default logging. Default: None.
  • debug_callback: A callback function that can be attached to the debug logging level messages. Will replace the default logging. Default: None.
  • progress: Whether to show or hide a progress bar. Default: True.

Contribution

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.

Pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change.

Please make sure to update this README as appropriate - changes on the interface, version etc.

Licence

Please refer to LICENSE.txt

hda's People

Contributors

b8raoult avatar germanoguerrini avatar ricardo-correa avatar wekeo avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.