This repository demonstrates how to access Destination Earth (DestinE) Digital Twin (DT) data availability notifications using the Aviso service hosted on the LUMI Databridge.
It provides simple example scripts to:
- Listen for new DT data notifications
- Replay historical notifications
- Trigger automated workflows when new data becomes available
- 1. Overview
- 2. Getting Started
- 3. Running the Examples
- 4. Description of Example Scripts
- 5. Aviso Quota Limits for DestinE
The examples use the pyaviso client to subscribe to notification
topics exposed by Destination Earth and LUMI.
The scripts demonstrate:
- Real-time notification listening
- Recovery of missed notifications
- Replay of historical notifications
- Integration with the Earthkit ecosystem for automated workflows
- Python >= 3.6
- Outbound HTTPS connectivity to: aviso.lumi.apps.dte.destination-earth.eu (TCP port 443)
If operating within a corporate or institutional network, ensure that firewall, proxy, and network security policies permit outbound access to this endpoint.
This can be checked with:
curl -v https://aviso.lumi.apps.dte.destination-earth.euAuthentication is currently not required. Support for Destination Earth credentials will be added in the future.
Install the Aviso Python client from PyPI:
pip install pyavisoIf running the Earthkit integration example, install additional dependencies:
pip install earthkitAll scripts can be executed directly with Python.
Run:
python3 aviso-extremes-dt.pyAs output you should expect something like:
loaded config:
{'auth_type': 'none',
'configuration_engine': {'host': 'aviso.lumi.apps.dte.destination-earth.eu',
'https': True,
'port': 443},
'notification_engine': {'host': 'aviso.lumi.apps.dte.destination-earth.eu',
'https': True,
'port': 443},
'remote_schema': True,
'schema_parser': 'generic'
}
Listening to /de/data/ at aviso.lumi.apps.dte.destination-earth.eu:443...Upon execution, the client loads its configuration and subscribes to the specified notification topic. Notifications will be printed to standard output as they are received.
Terminate execution using:
Ctrl + CThis script:
- Defines a request dictionary describing the notification topic.
- Connects to the Aviso notification engine.
- Executes an echo trigger for each notification (prints to screen).
- Continues polling until interrupted.
⚠️ IMPORTANT NOTE:
Before listening to new notifications, Aviso:
- Checks the last received notification.
- Retrieves any missed notifications.
- Then switches to real-time listening.
On first execution, no previous notifications are returned.
This ensures users do not miss notifications after machine reboots or interruptions.
This script demonstrates:
- Searching for historical notifications from a specified time.
- Executing a trigger function for each retrieved notification.
- Continuing with live listening afterward.
The trigger function in this example simply prints notifications, but it can be replaced with custom processing logic.
This example demonstrates a complete automated workflow:
- Listen for new Extremes DT data notifications.
- Trigger a function when a notification is received.
- Retrieve temperature data via Polytope.
- Regrid to a coarser resolution (for faster processing)
- Generate a plot of the data bounded by Europe using Earthkit plots library.
It shows how Aviso can act as an event-driven entry point for data processing pipelines.
To ensure system stability and fair usage, the following limits apply:
- Rate Limit: Up to 50 requests per second (may be adjusted depending on system load)
- Concurrent Operations: Currently not limited
Please design your workflows accordingly to avoid service interruptions.