Skip to main content

A Python client library for forecast model APIs (e.g., Météo-France).

Project description

meteole

Easy access to Météo-France weather models and data

CI Coverage Versions Python Downloads


Documentation: https://maif.github.io/meteole/home/

Repository: https://github.com/MAIF/meteole

Release article: Medium


Overview

Meteole is a Python library designed to simplify accessing weather data from the Météo-France APIs. It provides:

  • Automated token management: Simplify authentication with a single application_id.
  • Unified model usage: AROME and ARPEGE forecasts with a consistent interface.
  • User-friendly parameter handling: Intuitive management of key weather forecasting parameters.
  • Seamless data integration: Directly export forecasts as Pandas DataFrames
  • Vigilance bulletins: Retrieve real-time weather warnings across France.

Perfect for data scientists, meteorologists, and developers, Meteole helps integrate weather forecasts into projects effortlessly.

Installation

pip install meteole

🕐 Quickstart

Step 1: Obtain an API token or key

Create an account on the Météo-France API portal. Next, subscribe to the desired APIs (Arome, Arpege, etc.). Retrieve the API token (or key) by going to “Mes APIs” and then “Générer token”.

Step 2: Fetch Forecasts from AROME and ARPEGE

Meteole allows you to retrieve forecasts for a wide range of weather indicators. Here's how to get started with AROME and ARPEGE:

Characteristics AROME ARPEGE
Resolution 1.3 km 10 km
Update Frequency Every 3 hours Every 6 hours
Forecast Range Up to 51 hours Up to 114 hours
from meteole import AromeForecast

# Configure the logger to provide information on data recovery: recovery status, default settings, etc.
import logging
logging.basicConfig(level=logging.INFO)
logger = logging.getLogger("meteole")

# Initialize the AROME forecast client
# Find your APPLICATION_ID by following these guidelines: https://maif.github.io/meteole/how_to/?h=application_id#get-a-token-an-api-key-or-an-application-id
arome_client = AromeForecast(application_id=APPLICATION_ID)

# Check indicators available
print(arome_client.INDICATORS)

# Fetch weather data
df_arome = arome_client.get_coverage(
    indicator="V_COMPONENT_OF_WIND_GUST__SPECIFIC_HEIGHT_LEVEL_ABOVE_GROUND",  # Optional: if not, you have to fill coverage_id
    run="2025-01-10T00.00.00Z",                                                # Optional: forecast start time
    interval=None,                                                             # Optional: time range for predictions
    forecast_horizons=[0, 1, 2],                                               # Optional: prediction times (in hours)
    heights=[10],                                                              # Optional: height above ground level
    pressures=None,                                                            # Optional: pressure level
    long = (-5.1413, 9.5602),                                                  # Optional: longitude
    lat = (41.33356, 51.0889),                                                 # Optional: latitude
    coverage_id=None                                                           # Optional: an alternative to indicator/run/interval
)

Note: The coverage_id can be used instead of indicator, run, and interval.

The usage of ARPEGE is identical to AROME, except that you initialize the ArpegeForecast class

Step 3: Explore Parameters and Indicators

Discover Available Indicators

Use the get_capabilities() method to list all available indicators, run times, and intervals:

indicators = arome_client.get_capabilities()
print(indicators)

Fetch Description for a Specific Indicator

Understand the required parameters (forecast_horizons, heights, pressures) for any indicator using get_coverage_description():

description = arome_client.get_coverage_description(coverage_id)
print(description)

Geographical Coverage

The geographical coverage of forecasts can be customized using the lat and long parameters in the get_coverage method. By default, Meteole retrieves data for the entire metropolitan France.

Fetch Forecasts for Multiple Indicators

The get_combined_coverage method allows you to retrieve weather data for multiple indicators at the same time, streamlining the process of gathering forecasts for different parameters (e.g., temperature, wind speed, etc.). For detailed guidance on using this feature, refer to this tutorial.

Explore detailed examples in the tutorials folder to quickly get started with Meteole.

⚠️ VIGILANCE METEO FRANCE

Meteo France provides nationwide vigilance bulletins, highlighting potential weather risks. These tools allow you to integrate weather warnings into your workflows, helping trigger targeted actions or models.

from meteole import Vigilance

vigi = Vigilance(application_id=APPLICATION_ID)

df_phenomenon, df_timelaps = vigi.get_phenomenon()

bulletin = vigi.get_bulletin()

vigi.get_vignette()
vignette de vigilance

To have more documentation from Meteo-France in Vigilance Bulletin :

Contributing

Contributions are very welcome!

If you see an issue that you'd like to see fixed, the best way to make it happen is to help out by submitting a pull request implementing it.

Refer to the CONTRIBUTING.md file for more details about the workflow, and general hints on how to prepare your pull request. You can also ask for clarifications or guidance in GitHub issues directly.

License

This project is Open Source and available under the Apache 2 License.

🙏 Acknowledgements

The development of Meteole was inspired by the excellent work in the meteofranceapi repository by Antoine Tavant.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

meteole-0.1.1.tar.gz (29.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

meteole-0.1.1-py3-none-any.whl (25.3 kB view details)

Uploaded Python 3

File details

Details for the file meteole-0.1.1.tar.gz.

File metadata

  • Download URL: meteole-0.1.1.tar.gz
  • Upload date:
  • Size: 29.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.0.1 CPython/3.12.8

File hashes

Hashes for meteole-0.1.1.tar.gz
Algorithm Hash digest
SHA256 b992b1301d3028ea40ce068b26961937ebf4f5e579e5fdbed600d2c3c8538bca
MD5 15c0c37ac9219e83087f2f6d07e47ec2
BLAKE2b-256 8aa414179415456030eb39c83dedf46ce8468f43330c60be8480ab3889aeba85

See more details on using hashes here.

Provenance

The following attestation bundles were made for meteole-0.1.1.tar.gz:

Publisher: ci-cd.yml on MAIF/meteole

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file meteole-0.1.1-py3-none-any.whl.

File metadata

  • Download URL: meteole-0.1.1-py3-none-any.whl
  • Upload date:
  • Size: 25.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.0.1 CPython/3.12.8

File hashes

Hashes for meteole-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 1d62dbf64e119ffdbb640e2cc44548a9a38369a2e7b3020b2f92dd4fd9aa7f18
MD5 af50d06d82b89fb95684a0e340d983ad
BLAKE2b-256 513f1ff581fec6b0df4e41702f1444975342cdd44113addd2e00e9123ad3619f

See more details on using hashes here.

Provenance

The following attestation bundles were made for meteole-0.1.1-py3-none-any.whl:

Publisher: ci-cd.yml on MAIF/meteole

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page