Introduction

Ce document présente un exemple complet d’utilisation du package meteo4DCE pour :

Prérequis : récupérer clé token sur le site de Météo France

Se connecter à https://portail-api.meteofrance.fr/ Souscrire à l’API Données Climatologiques. Générer un token de type API Key.

Il faut ensuite saisir ce token sous R.

Pour cela 2 options :

  1. de manière temporaire (perdu au redémarrage de R) avec la commande : Sys.setenv(MF_TOKEN = “votre_token_ici”)
  2. en saisissant le token dans les variables d’environnement de R.

Pour cette deuxième option, depuis R studio taper usethis::edit_r_environ() puis ajouter la ligne MF_TOKEN=votre_token_ici Le token ne doit avoir ni espace avant ou après, ni être saisi entre guillemets.

Dans R studio il est possible d’éditer le fichier .Renviron avec la commande suivante :

file.edit(“~/.Renviron”)

il faut ensuite rédémarrer R pour que la variable soit prise en compte.

Exemple de script

# Charger le package
library(meteo4DCE)

# Étape 1 : Récupérer le token d'authentification
token <- get_mf_token()

# Étape 2 : Récupérer les stations météo pour les départements 56 et 35 
# duree peut valloir soit "horaire" soit "quotidienne" selon si on veut récupérer les stations avec données horaires ou quotidiennes
stations <- get_precip_stations(c(56, 35), token, duree="quotidienne")

head(stations,3)
## Simple feature collection with 3 features and 7 fields
## Geometry type: POINT
## Dimension:     XY
## Bounding box:  xmin: -2.893333 ymin: 47.51267 xmax: -2.382667 ymax: 47.6215
## Geodetic CRS:  WGS 84
## # A tibble: 3 × 8
##   id       nom               posteOuvert typePoste   alt postePublic departement
##   <chr>    <chr>             <lgl>           <int> <int> <lgl>       <chr>      
## 1 56003001 ARRADON           FALSE               4    26 TRUE        56         
## 2 56004001 ARZAL             TRUE                2    26 TRUE        56         
## 3 56005001 ARZON PORT NAVALO FALSE               4    16 TRUE        56         
## # ℹ 1 more variable: geometry <POINT [°]>
# Étape 3 : Commander les données horaires pour la station RENNES-ST JACQUES
commande <- commande_donnees_horaires(
  id_station = "35281001",
  date_debut = "2024-01-01T00:00:00Z",
  date_fin   = "2024-01-02T00:00:00Z",
  token = token
)

# pause le temps que le fichier soit généré
Sys.sleep(30)

# Étape 4 : Télécharger les données dans un data.frame
data <- telecharger_commande_csv(commande, token)

# Étape 5 : Afficher les premières lignes
head(data,3)
##      POSTE                DATE RR1 QRR1 DRR1 QDRR1 HNEIGEF QHNEIGEF NEIGETOT
## 1 35281001 2034-02-20 01:01:40   0    1    0     9      NA       NA        0
## 2 35281001 2034-02-20 01:01:41   0    1    0     9      NA       NA        0
## 3 35281001 2034-02-20 01:01:42   0    1    0     9      NA       NA        0
##   QNEIGETOT   T QT  TD QTD  TN QTN  HTN QHTN  TX QTX  HTX QHTX DG QDG T10 QT10
## 1         9 7.5  1 3.0   1 7.3   1 2357    9 7.8   1 2303    9  0   9 9.9    9
## 2         9 6.7  1 3.0   1 6.6   1   59    9 7.6   1    4    9  0   9 9.8    9
## 3         9 6.6  1 3.6   1 6.4   1  125    9 6.8   1  103    9  0   9 9.8    9
##    T20 QT20  T50 QT50 T100 QT100 TNSOL QTNSOL TN50 QTN50 TCHAUSSEE QTCHAUSSEE
## 1 10.2    9 10.8    9 11.3     9   5.3      9  6.5     9       7.5          9
## 2 10.2    9 10.8    9 11.3     9   3.9      9  5.3     9       7.4          9
## 3 10.1    9 10.8    9 11.3     9   4.1      9  5.5     9       7.3          9
##    TW QTW  PSTAT QPSTAT   PMER QPMER GEOP QGEOP PMERMIN QPMERMIN  FF QFF  DD
## 1 5.6   1 1004.8      1 1009.3     1   NA    NA  1008.9        1 4.4   1 220
## 2 5.2   1 1005.1      1 1009.6     1   NA    NA  1009.3        1 3.4   1 220
## 3 5.3   1 1005.4      1 1009.9     1   NA    NA  1009.7        1 4.6   1 230
##   QDD FXI QFXI DXI QDXI  HXI QHXI FXY QFXY DXY QDXY  HXY QHXY FF2 QFF2 DD2 QDD2
## 1   1 8.7    1 230    1 2309    9 5.4    1 220    1 2325    9  NA   NA  NA   NA
## 2   1 8.8    1 240    1    1    9 4.7    1 230    1    3    9  NA   NA  NA   NA
## 3   1 6.4    1 230    1  152    9 4.6    1 230    1  158    9  NA   NA  NA   NA
##   FXI2 QFXI2 DXI2 QDXI2 HXI2 QHXI2 FXI3S QFXI3S DXI3S QDXI3S HXI3S QHXI3S  U QU
## 1   NA    NA   NA    NA   NA    NA   8.2      1    NA     NA  2310      9 73  1
## 2   NA    NA   NA    NA   NA    NA   8.2      1    NA     NA    10      9 78  1
## 3   NA    NA   NA    NA   NA    NA   5.8      1    NA     NA   158      9 81  1
##   UN QUN  HUN QHUN UX QUX  HUX QHUX UABS QUABS DHUMI40 QDHUMI40 DHUMI80
## 1 71   1 2321    9 75   1 2301    9  5.9     1       0        9       0
## 2 73   1    1    9 78   1   52    9  5.9     1       0        9       0
## 3 78   1  101    9 81   1  138    9  6.1     1       0        9      35
##   QDHUMI80 DHUMEC QDHUMEC TSV QTSV ENTH QENTH INS QINS GLO QGLO DIR QDIR DIF
## 1        9     NA      NA 7.6    1 19.3     1   0    9   0    9  NA   NA  NA
## 2        9     NA      NA 7.6    1 18.6     1   0    9   0    9  NA   NA  NA
## 3        9     NA      NA 7.9    1 18.9     1   0    9   0    9  NA   NA  NA
##   QDIF GLO2 QGLO2 UV QUV INFRAR QINFRAR UV_INDICE QUV_INDICE  N QN NBAS QNBAS
## 1   NA    0     9 NA  NA     NA      NA        NA         NA NA NA    2     9
## 2   NA    0     9 NA  NA     NA      NA        NA         NA NA NA    1     9
## 3   NA    0     9 NA  NA     NA      NA        NA         NA  8  9    8     9
##   CL QCL CM QCM CH QCH N1 QN1 C1 QC1   B1 QB1 N2 QN2 C2 QC2 B2 QB2 N3 QN3 B3
## 1 NA  NA NA  NA NA  NA  2   9 NA  NA 1230   9 NA  NA NA  NA NA  NA NA  NA NA
## 2 NA  NA NA  NA NA  NA  1   9 NA  NA 5700   9 NA  NA NA  NA NA  NA NA  NA NA
## 3 NA  NA NA  NA NA  NA  8   9 NA  NA 5700   9 NA  NA NA  NA NA  NA NA  NA NA
##   QB3 C3 QC3 N4 QN4 C4 QC4 B4 QB4 WW QWW    VV QVV DVV200 QDVV200 W1 QW1 W2 QW2
## 1  NA NA  NA NA  NA NA  NA NA  NA  0   9 43127   9      0       9 NA  NA NA  NA
## 2  NA NA  NA NA  NA NA  NA NA  NA  0   9 36765   9      0       9 NA  NA NA  NA
## 3  NA NA  NA NA  NA NA  NA NA  NA  0   9 33835   9      0       9 NA  NA NA  NA
##   SOL QSOL SOLNG QSOLNG TSNEIGE QTSNEIGE TUBENEIGE QTUBENEIGE ESNEIGE QESNEIGE
## 1   1    9    NA     NA      NA       NA        NA         NA      NA       NA
## 2   1    9    NA     NA      NA       NA        NA         NA      NA       NA
## 3   1    9    NA     NA      NA       NA        NA         NA      NA       NA
##   HNEIGEFI3 QHNEIGEFI3 HNEIGEFI1 QHNEIGEFI1 TMER QTMER VVMER QVVMER ETATMER
## 1        NA         NA        NA         NA   NA    NA    NA     NA      NA
## 2        NA         NA        NA         NA   NA    NA    NA     NA      NA
## 3        NA         NA        NA         NA   NA    NA    NA     NA      NA
##   QETATMER DIRHOULE QDIRHOULE TLAGON QTLAGON UV2 QUV2 INS2 QINS2 INFRAR2
## 1       NA       NA        NA     NA      NA  NA   NA    0     9      NA
## 2       NA       NA        NA     NA      NA  NA   NA    0     9      NA
## 3       NA       NA        NA     NA      NA  NA   NA    0     9      NA
##   QINFRAR2 DIR2 QDIR2 DIF2 QDIF2
## 1       NA   NA    NA   NA    NA
## 2       NA   NA    NA   NA    NA
## 3       NA   NA    NA   NA    NA
# Étape 3 : Commander les données quotidiennes pour la station RENNES-ST JACQUES
commande <- commande_donnees_quotidiennes(
  id_station = "35281001",
  date_debut = "2024-01-01T00:00:00Z",
  date_fin   = "2024-01-02T00:00:00Z",
  token = token
)

# pause le temps que le fichier soit généré
Sys.sleep(30)

# Étape 4 : Télécharger les données dans un data.frame
data <- telecharger_commande_csv(commande, token)

# Étape 5 : Afficher les premières lignes
head(data,3)
##      POSTE       DATE   RR QRR DRR QDRR   TN QTN  HTN QHTN   TX QTX  HTX QHTX
## 1 35281001 2024-01-01 11.5   1 868    9  5.7   1  518    9 13.4   1  545    9
## 2 35281001 2024-01-02  7.1   1 525    9 11.0   1 1801    9 14.6   1 1402    9
##     TM QTM  TMNX QTMNX TNSOL QTNSOL TN50 QTN50 DG QDG TAMPLI QTAMPLI TNTXM
## 1  9.6   1  9.55     1   2.6      9  3.9     9  0   9    7.7       1   9.6
## 2 12.8   1 12.80     1   9.9      9 10.6     9  0   9    3.6       1  12.8
##   QTNTXM  PMERM QPMERM PMERMIN QPMERMIN FFM QFFM  FXI QFXI DXI QDXI  HXI QHXI
## 1      1 1008.2      1  1002.2        1 5.5    1 19.1    1 240    9 2306    9
## 2      1  998.5      1   994.1        1 7.7    1 22.7    1 220    1 1222    9
##    FXY QFXY DXY QDXY  HXY QHXY FF2M QFF2M FXI2 QFXI2 DXI2 QDXI2 HXI2 QHXI2
## 1 10.8    1 210    9 2300    9   NA    NA   NA    NA   NA    NA   NA    NA
## 2 12.2    1 210    1 1116    9   NA    NA   NA    NA   NA    NA   NA    NA
##   FXI3S QFXI3S DXI3S QDXI3S HXI3S QHXI3S UN QUN  HUN QHUN UX QUX  HUX QHUX
## 1  17.3      1    NA     NA  2310      9 73   1    1    9 95   1 1726    9
## 2  19.0      1    NA     NA  1044      9 75   1 1551    9 94   1  110    9
##   DHUMI40 QDHUMI40 DHUMI80 QDHUMI80 TSVM QTSVM DHUMEC QDHUMEC UM QUM INST QINST
## 1       0        9    1100        9 10.4     9     NA      NA 86   1  176     9
## 2       0        9    1315        9 12.9     9     NA      NA 87   1   86     9
##   GLOT QGLOT DIFT QDIFT DIRT QDIRT SIGMA QSIGMA INFRART QINFRART UV_INDICEX
## 1  351     9   NA    NA   NA    NA    36      9      NA       NA         NA
## 2  161     9   NA    NA   NA    NA    17      9      NA       NA         NA
##   QUV_INDICEX NB300 QNB300 BA300 QBA300 NEIG QNEIG BROU QBROU ORAG QORAG GRESIL
## 1          NA    NA     NA    NA     NA    0     9    0     9    0     9     NA
## 2          NA    NA     NA    NA     NA    0     9    0     9    0     9     NA
##   QGRESIL GRELE QGRELE ROSEE QROSEE VERGLAS QVERGLAS SOLNEIGE QSOLNEIGE GELEE
## 1      NA    NA     NA    NA     NA       0        9       NA        NA     0
## 2      NA    NA     NA    NA     NA       0        9       NA        NA     0
##   QGELEE FUMEE QFUMEE BRUME QBRUME ECLAIR QECLAIR ETPMON QETPMON ETPGRILLE
## 1      9     0      9     0      9     NA      NA    0.8       9       0.7
## 2      9     0      9     0      9     NA      NA    1.0       9       1.0
##   QETPGRILLE UV QUV TMERMAX QTMERMAX TMERMIN QTMERMIN HNEIGEF QHNEIGEF
## 1          9 NA  NA      NA       NA      NA       NA      NA       NA
## 2          9 NA  NA      NA       NA      NA       NA      NA       NA
##   NEIGETOTX QNEIGETOTX NEIGETOT06 QNEIGETOT06
## 1         0          9          0           9
## 2         0          9          0           9

Informations sur une station météo

Le code suivant permet de rappatrier les informations sur une fonction météo particulière.

head(get_infos_stations(id_station="35281001", token),20)
##                                              id 
##                                      "35281001" 
##                                             nom 
## "SAINT-JACQUES-DE-LA-LANDE (RENNES-ST JACQUES)" 
##                                         lieuDit 
##                               "AEROPORT RENNES" 
##                                          bassin 
##                                          "J722" 
##                                       dateDebut 
##                           "1940-07-17 00:00:00" 
##                                         dateFin 
##                                              "" 
##                                 typesPoste.type 
##                                             "0" 
##                            typesPoste.dateDebut 
##                           "1940-07-17 00:00:00" 
##                              typesPoste.dateFin 
##                                              "" 
##                                  parametres.nom 
##            "AMPLITUDE ENTRE TN ET TX QUOTIDIEN" 
##                            parametres.dateDebut 
##                           "1945-01-01 00:00:00" 
##                              parametres.dateFin 
##                                              "" 
##                                  parametres.nom 
##               "BASE DE LA 1ERE COUCHE NUAGEUSE" 
##                            parametres.dateDebut 
##                           "1949-01-01 00:00:00" 
##                              parametres.dateFin 
##                                              "" 
##                                  parametres.nom 
##               "BASE DE LA 2EME COUCHE NUAGEUSE" 
##                            parametres.dateDebut 
##                           "1949-01-01 00:00:00" 
##                              parametres.dateFin 
##                                              "" 
##                                  parametres.nom 
##               "BASE DE LA 3EME COUCHE NUAGEUSE" 
##                            parametres.dateDebut 
##                           "1949-01-02 00:00:00"

Remarques

Le format de date utilisé est ISO 8601 avec fuseau UTC. La fonction telecharger_commande_csv() retourne un data.frame issu d’un fichier CSV texte.

Les colonnes de data correspondent aux éléments suivants :

  • POSTE Identifiant de la station météo
  • DATE Date et heure de l’observation
  • RR1 Précipitations horaires (mm)
  • QRR1 Qualité de la donnée RR1
  • T Température instantanée (°C)
  • QT Qualité de la température
  • TN Température minimale horaire
  • TX Température maximale horaire
  • FF Vitesse moyenne du vent (m/s ou km/h selon contexte)
  • QFF Qualité de la vitesse du vent
  • DD Direction du vent (degrés)
  • FXI Rafale instantanée maximale
  • PMER Pression au niveau de la mer (hPa)
  • UV_INDICE Indice UV
  • N, CL, CM, CH Nébulosité totale, basse, moyenne, haute

L’ensemble des significations et unités est listé dans le tableau de données inclus dans le package : “parametres_meteo”

data("parametres_meteo", package = "meteo4DCE")
library(DT)
DT::datatable(parametres_meteo, 
              options = list(pageLength = 10), 
              caption = "Paramètres climatiques horaires")

Pour les paramètres quotidiens, on se réfère au tableau ci-dessous :

data("parametres_meteo_quotidiens", package = "meteo4DCE")
library(DT)
DT::datatable(parametres_meteo_quotidiens, 
              options = list(pageLength = 10), 
              caption = "Paramètres climatiques quotidiens")