meteofetch


Namemeteofetch JSON
Version 0.5.1 PyPI version JSON
download
home_pageNone
SummaryPackage python pour récupérer les données modélisées de prévision de MétéoFrance et de l'ECMWF
upload_time2025-04-20 21:57:14
maintainerNone
docs_urlNone
authorCyril Joly
requires_python>=3.8
licenseNone
keywords
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            <div align="center">
  
[![PyPI - Version](https://img.shields.io/pypi/v/meteofetch)](https://pypi.org/project/meteofetch/)
[![conda-forge](https://anaconda.org/conda-forge/meteofetch/badges/version.svg)](https://anaconda.org/conda-forge/meteofetch)
[![Documentation Status](https://img.shields.io/readthedocs/meteofetch?logo=read-the-docs)](https://meteofetch.readthedocs.io)
[![Unit tests](https://github.com/CyrilJl/meteofetch/actions/workflows/pytest.yml/badge.svg)](https://github.com/CyrilJl/meteofetch/actions/workflows/pytest.yml)
[![Codacy Badge](https://app.codacy.com/project/badge/Grade/e9c19a5585b94cb884b738fba87073a1)](https://app.codacy.com/gh/CyrilJl/MeteoFetch/dashboard?utm_source=gh&utm_medium=referral&utm_content=&utm_campaign=Badge_grade)

  <a href="https://github.com/CyrilJl/meteofetch">
    <img src="https://raw.githubusercontent.com/CyrilJl/MeteoFetch/main/_static/logo.svg" alt="Logo" width="250"/>
  </a>

</div>

``MeteoFetch`` est un client python qui permet de récupérer **sans clé d'API** les dernières prévisions de :

- MétéoFrance : Arome (0.025°, 0.01°, et les cinq domaines Outre-Mer) et Arpege (0.25° et 0.1°) : plus de précisions sur <https://meteo.data.gouv.fr>
- l'ECMWF : IFS, chaîne ``ope``, deux runs par jour : plus de précisions sur <https://www.ecmwf.int/en/forecasts/datasets/open-data>

L'utilisateur peut choisir de :

- télécharger les fichiers grib correspondant dans le dossier de son choix
- charger les données de son choix dans un dictionnaire de ``xr.DataArray`` prêts pour l'analyse (les fichiers grib sont téléchargés dans un dossier temporaire et supprimés après chargement des données souhaitées). Les ``xr.DataArrays``  [respectent le standard CF](https://cfchecker.ncas.ac.uk/) ([Climate and Forecast](https://cfconventions.org/))

Pour connaître les champs téléchargeables pour chaque modèle, des nomenclatures sont disponibles à <https://meteofetch.readthedocs.io>.

# Installation

Le package est disponible sur Pypi :

```console
pip install meteofetch
```

Le package est également disponible sur conda-forge :

```console
conda install -c conda-forge meteofetch
```

Ou :

```console
mamba install meteofetch
```

# Utilisation rapide

```python
from meteofetch import Arome0025

datasets = Arome0025.get_latest_forecast(paquet='SP3')
datasets['ssr']
```

Par défaut, ``meteofetch`` sert à l'utilisateur toutes les variables contenues dans le paquet requêté.
Il est cependant conseillée de préciser les variables voulues pour limiter l'usage mémoire :

```python
from meteofetch import Arome001

datasets = Arome001.get_latest_forecast(paquet='SP1', variables=('u10', 'v10'))
datasets['u10']

datasets = Arome001.get_latest_forecast(paquet='SP2', variables='sp')
datasets['sp']
```

Vous pouvez ensuite utiliser les méthodes usuelles proposées par ``xarray`` pour traiter les ``DataArray`` :

```python
import xarray as xr
import matplotlib.pyplot as plt
from meteofetch import Arpege01

dim = "points"
coords = ["Paris", "Edimbourg"]
x = xr.DataArray([2.33, -3.18], dims=dim)
y = xr.DataArray([48.9, 55.95], dims=dim)

datasets = Arpege01.get_latest_forecast(paquet="SP1", variables="t2m")

plt.figure(figsize=(8, 3))
datasets["t2m"].sel(lon=x, lat=y, method="nearest").assign_coords(
    {dim: coords}
).plot.line(x="time")
```

![output_code_1](https://raw.githubusercontent.com/CyrilJl/MeteoFetch/main/_static/time_series.png)

Ou encore :

```python
from meteofetch import Arome001

datasets = Arome001.get_latest_forecast(paquet='SP3', variables='h')

datasets['h'].plot(cmap='Spectral_r', vmin=0, vmax=3000)
```

![output_code_2](https://raw.githubusercontent.com/CyrilJl/MeteoFetch/main/_static/plot_map.png)

Les domaines Outre-Mer sont également disponibles :

```python
from meteofetch import (
    AromeOutreMerAntilles,
    AromeOutreMerGuyane,
    AromeOutreMerIndien,
    AromeOutreMerNouvelleCaledonie,
    AromeOutreMerPolynesie,
)

datasets = AromeOutreMerIndien.get_latest_forecast(paquet="SP1")
datasets["t2m"].mean(dim="time").plot(cmap="Spectral_r")
```

![output_code_3](https://raw.githubusercontent.com/CyrilJl/MeteoFetch/main/_static/plot_map_indien.png)

``meteofetch`` permet également de charger les fichiers gribs de la prévision souhaitée à l'endroit où le souhaite l'utilisateur.

```python
from meteofetch import Ecmwf

path = 'your/folder/'
Ecmwf.get_latest_forecast(path=path, return_data=False)
```

            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "meteofetch",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.8",
    "maintainer_email": null,
    "keywords": null,
    "author": "Cyril Joly",
    "author_email": null,
    "download_url": "https://files.pythonhosted.org/packages/c8/d7/294baa5b5ce345b2d7110493bb3a814121462850360ae027f56835d0abe8/meteofetch-0.5.1.tar.gz",
    "platform": null,
    "description": "<div align=\"center\">\n  \n[![PyPI - Version](https://img.shields.io/pypi/v/meteofetch)](https://pypi.org/project/meteofetch/)\n[![conda-forge](https://anaconda.org/conda-forge/meteofetch/badges/version.svg)](https://anaconda.org/conda-forge/meteofetch)\n[![Documentation Status](https://img.shields.io/readthedocs/meteofetch?logo=read-the-docs)](https://meteofetch.readthedocs.io)\n[![Unit tests](https://github.com/CyrilJl/meteofetch/actions/workflows/pytest.yml/badge.svg)](https://github.com/CyrilJl/meteofetch/actions/workflows/pytest.yml)\n[![Codacy Badge](https://app.codacy.com/project/badge/Grade/e9c19a5585b94cb884b738fba87073a1)](https://app.codacy.com/gh/CyrilJl/MeteoFetch/dashboard?utm_source=gh&utm_medium=referral&utm_content=&utm_campaign=Badge_grade)\n\n  <a href=\"https://github.com/CyrilJl/meteofetch\">\n    <img src=\"https://raw.githubusercontent.com/CyrilJl/MeteoFetch/main/_static/logo.svg\" alt=\"Logo\" width=\"250\"/>\n  </a>\n\n</div>\n\n``MeteoFetch`` est un client python qui permet de r\u00e9cup\u00e9rer **sans cl\u00e9 d'API** les derni\u00e8res pr\u00e9visions de :\n\n- M\u00e9t\u00e9oFrance : Arome (0.025\u00b0, 0.01\u00b0, et les cinq domaines Outre-Mer) et Arpege (0.25\u00b0 et 0.1\u00b0) : plus de pr\u00e9cisions sur <https://meteo.data.gouv.fr>\n- l'ECMWF : IFS, cha\u00eene ``ope``, deux runs par jour : plus de pr\u00e9cisions sur <https://www.ecmwf.int/en/forecasts/datasets/open-data>\n\nL'utilisateur peut choisir de :\n\n- t\u00e9l\u00e9charger les fichiers grib correspondant dans le dossier de son choix\n- charger les donn\u00e9es de son choix dans un dictionnaire de ``xr.DataArray`` pr\u00eats pour l'analyse (les fichiers grib sont t\u00e9l\u00e9charg\u00e9s dans un dossier temporaire et supprim\u00e9s apr\u00e8s chargement des donn\u00e9es souhait\u00e9es). Les ``xr.DataArrays``  [respectent le standard CF](https://cfchecker.ncas.ac.uk/) ([Climate and Forecast](https://cfconventions.org/))\n\nPour conna\u00eetre les champs t\u00e9l\u00e9chargeables pour chaque mod\u00e8le, des nomenclatures sont disponibles \u00e0 <https://meteofetch.readthedocs.io>.\n\n# Installation\n\nLe package est disponible sur Pypi :\n\n```console\npip install meteofetch\n```\n\nLe package est \u00e9galement disponible sur conda-forge :\n\n```console\nconda install -c conda-forge meteofetch\n```\n\nOu :\n\n```console\nmamba install meteofetch\n```\n\n# Utilisation rapide\n\n```python\nfrom meteofetch import Arome0025\n\ndatasets = Arome0025.get_latest_forecast(paquet='SP3')\ndatasets['ssr']\n```\n\nPar d\u00e9faut, ``meteofetch`` sert \u00e0 l'utilisateur toutes les variables contenues dans le paquet requ\u00eat\u00e9.\nIl est cependant conseill\u00e9e de pr\u00e9ciser les variables voulues pour limiter l'usage m\u00e9moire :\n\n```python\nfrom meteofetch import Arome001\n\ndatasets = Arome001.get_latest_forecast(paquet='SP1', variables=('u10', 'v10'))\ndatasets['u10']\n\ndatasets = Arome001.get_latest_forecast(paquet='SP2', variables='sp')\ndatasets['sp']\n```\n\nVous pouvez ensuite utiliser les m\u00e9thodes usuelles propos\u00e9es par ``xarray`` pour traiter les ``DataArray`` :\n\n```python\nimport xarray as xr\nimport matplotlib.pyplot as plt\nfrom meteofetch import Arpege01\n\ndim = \"points\"\ncoords = [\"Paris\", \"Edimbourg\"]\nx = xr.DataArray([2.33, -3.18], dims=dim)\ny = xr.DataArray([48.9, 55.95], dims=dim)\n\ndatasets = Arpege01.get_latest_forecast(paquet=\"SP1\", variables=\"t2m\")\n\nplt.figure(figsize=(8, 3))\ndatasets[\"t2m\"].sel(lon=x, lat=y, method=\"nearest\").assign_coords(\n    {dim: coords}\n).plot.line(x=\"time\")\n```\n\n![output_code_1](https://raw.githubusercontent.com/CyrilJl/MeteoFetch/main/_static/time_series.png)\n\nOu encore :\n\n```python\nfrom meteofetch import Arome001\n\ndatasets = Arome001.get_latest_forecast(paquet='SP3', variables='h')\n\ndatasets['h'].plot(cmap='Spectral_r', vmin=0, vmax=3000)\n```\n\n![output_code_2](https://raw.githubusercontent.com/CyrilJl/MeteoFetch/main/_static/plot_map.png)\n\nLes domaines Outre-Mer sont \u00e9galement disponibles :\n\n```python\nfrom meteofetch import (\n    AromeOutreMerAntilles,\n    AromeOutreMerGuyane,\n    AromeOutreMerIndien,\n    AromeOutreMerNouvelleCaledonie,\n    AromeOutreMerPolynesie,\n)\n\ndatasets = AromeOutreMerIndien.get_latest_forecast(paquet=\"SP1\")\ndatasets[\"t2m\"].mean(dim=\"time\").plot(cmap=\"Spectral_r\")\n```\n\n![output_code_3](https://raw.githubusercontent.com/CyrilJl/MeteoFetch/main/_static/plot_map_indien.png)\n\n``meteofetch`` permet \u00e9galement de charger les fichiers gribs de la pr\u00e9vision souhait\u00e9e \u00e0 l'endroit o\u00f9 le souhaite l'utilisateur.\n\n```python\nfrom meteofetch import Ecmwf\n\npath = 'your/folder/'\nEcmwf.get_latest_forecast(path=path, return_data=False)\n```\n",
    "bugtrack_url": null,
    "license": null,
    "summary": "Package python pour r\u00e9cup\u00e9rer les donn\u00e9es mod\u00e9lis\u00e9es de pr\u00e9vision de M\u00e9t\u00e9oFrance et de l'ECMWF",
    "version": "0.5.1",
    "project_urls": {
        "Documentation": "https://meteofetch.readthedocs.io",
        "Homepage": "https://github.com/CyrilJl/meteofetch"
    },
    "split_keywords": [],
    "urls": [
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "13022fdc4180479047b7a6cd5a3e41d601fade7ed961611c49fab1242c269529",
                "md5": "5ab27f04a1e128f4241699fa2058c0fa",
                "sha256": "0d5649c12a0aa2e1f42b189d009ea12f2883cb40792d7f44c4b9989756cac499"
            },
            "downloads": -1,
            "filename": "meteofetch-0.5.1-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "5ab27f04a1e128f4241699fa2058c0fa",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.8",
            "size": 35679,
            "upload_time": "2025-04-20T21:57:12",
            "upload_time_iso_8601": "2025-04-20T21:57:12.664593Z",
            "url": "https://files.pythonhosted.org/packages/13/02/2fdc4180479047b7a6cd5a3e41d601fade7ed961611c49fab1242c269529/meteofetch-0.5.1-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "c8d7294baa5b5ce345b2d7110493bb3a814121462850360ae027f56835d0abe8",
                "md5": "0efae5d90a970ead9931b5f43f844ff3",
                "sha256": "1a1570b1968df4a8cbd979a69f60b731e8efa01af0f61f65932f65f90113c7e4"
            },
            "downloads": -1,
            "filename": "meteofetch-0.5.1.tar.gz",
            "has_sig": false,
            "md5_digest": "0efae5d90a970ead9931b5f43f844ff3",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.8",
            "size": 1161993,
            "upload_time": "2025-04-20T21:57:14",
            "upload_time_iso_8601": "2025-04-20T21:57:14.245560Z",
            "url": "https://files.pythonhosted.org/packages/c8/d7/294baa5b5ce345b2d7110493bb3a814121462850360ae027f56835d0abe8/meteofetch-0.5.1.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-04-20 21:57:14",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "CyrilJl",
    "github_project": "meteofetch",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "lcname": "meteofetch"
}
        
Elapsed time: 1.15836s