# Données météo

{/* Page générée par scripts/generate.mjs depuis le dépôt : ne pas modifier à la main. */}

Lit les données climatologiques quotidiennes Météo-France stockées sur le SSP Cloud et extrait deux périodes (1950-1985 et 1986-2024) : précipitations et températures par station.

| | |
|---|---|
| **Script** | [Données météo.R](https://github.com/maximehautin/hackathon_dge_gestion_des_flux/blob/main/Donn%C3%A9es%20m%C3%A9t%C3%A9o.R) |
| **Langage** | R |
| **Paquets** | `arrow`, `dplyr`, `readr` |
| **Authentification** | Accès S3 du SSP Cloud (à régler dans les paramètres du fichier sur datalab.sspcloud.fr). |
| **Documentation** | [https://meteo.data.gouv.fr/](https://meteo.data.gouv.fr/) |

:::caution{title="Accès"}
Accès S3 du SSP Cloud (à régler dans les paramètres du fichier sur datalab.sspcloud.fr). Ne jamais publier une clé dans le dépôt : la lire depuis une variable d'environnement (`Sys.getenv("MA_CLE")`).
:::

## Ce que fait le script

1. Ouvrir le jeu sur le stockage S3 du SSP Cloud avec arrow, en fixant le schéma des colonnes.
2. Filtrer la période voulue et garder les colonnes utiles (station, coordonnées, altitude, date, RR, TN, TX, TM).
3. Vérifier puis exporter le résultat.

## Code

```r title="Données météo.R"
#### 1986-2024 ####

#Cette première partie est faite pour récupérer le fichier dans son emplacement
#sur datalab.sspcloud.fr de l'Insee (Onyxia). Il faut changer les clés d'accès
#selon ce qui est indiqué dans les paramètres d'emplacement du fichier communes d'Isere en .csv

install.packages("arrow", repos = "https://cloud.r-project.org")

Sys.setenv(AWS_PROFILE = "default")
library(arrow)

fs <- S3FileSystem$create(
  region = "us-east-1",
  endpoint_override = "minio.lab.sspcloud.fr",
  scheme = "https"
)

mon_schema <- schema(
  NUM_POSTE = string(),
  NOM_USUEL = string(),
  LAT = float64(),
  LON = float64(),
  ALTI = float64(),
  AAAAMMJJ = int64(),
  RR = float64(),
  QRR = string(),
  TN = float64(),
  QTN = string(),
  HTN = string(),
  QHTN = string(),
  TX = float64(),
  QTX = string(),
  HTX = string(),
  QHTX = string(),
  TM = float64(),
  QTM = string(),
  TNTXM = string(),
  QTNTXM = string(),    
  TAMPLI = string(),
  QTAMPLI = string(),
  TNSOL  = string(),    
  QTNSOL = string(),      
  TN50 = string(),
  QTN50 = string(),
  DG            = string(),
  QDG           = string(),
  FFM           = string(),
  QFFM = string(),
  FF2M = string(),
  QFF2M = string(),
  FXY          = string(),
  QFXY         = string(),
  DXY = string(),
  QDXY         = string(),
  HXY = string(),
  QHXY = string(),
  FXI = string(),
  QFXI = string(),
  DXI = string(),
  QDXI = string(),
  HXI = string(),
  QHXI = string(),
  FXI2 = string(),
  QFXI2 = string(),
  DXI2 = string(),
  QDXI2 = string(),
  HXI2 = string(),
  QHXI2       = string(),
  FXI3S = string(),
  QFXI3S = string(),
  DXI3S = string(),
  QDXI3S = string(),
  HXI3S = string(),
  QHXI3S = string(),
  DRR = string(),
  QDRR = string(),
  STATUS_FXI3S = string(),
  STATUS_DXI3S = string(),
)

dataset <- open_dataset(
  "maximehautin/Q_38_previous-1950-2024_RR-T-Vent.csv.gz",
  filesystem = fs,
  format = "csv",
  delimiter = ";",
  schema = mon_schema,
  skip = 1
)

# ============================================================
# Filtrer les données Météo-France : 1986 à 2024
# ============================================================

# Afficher la structure du dataset
schema(dataset)

# ------------------------------------------------------------
# 1. Filtrer les dates
# ------------------------------------------------------------

# Filtrer les données entre 1986 et 2024
library(dplyr)

dataset_1986_2024 <- dataset |>
  dplyr::filter(
    AAAAMMJJ >= 19860101,
    AAAAMMJJ <= 20241231
  ) |>
  dplyr::select(
    NUM_POSTE,
    NOM_USUEL,
    LAT,
    LON,
    ALTI,
    AAAAMMJJ,
    RR,
    TN,
    TX,
    TM,
  )

# ------------------------------------------------------------
# 2. Vérifier le résultat
# ------------------------------------------------------------

# Afficher quelques lignes
dataset_1986_2024 |>
  head()

# ------------------------------------------------------------
# 3. Exporter le résultat
# ------------------------------------------------------------

donnees_meteo_1986_2024 <- dataset_1986_2024 |>
  dplyr::collect()

library(readr)

write_csv(
  donnees_meteo_1986_2024,
  "RR-T-Vent_1986-2024.csv"
)

rm(list=ls())

###### 1950-1985 #####

#Cette première partie est faite pour récupérer le fichier dans son emplacement
#sur datalab.sspcloud.fr de l'Insee (Onyxia). Il faut changer les clés d'accès
#selon ce qui est indiqué dans les paramètres d'emplacement du fichier communes d'Isere en .csv

install.packages("arrow", repos = "https://cloud.r-project.org")

Sys.setenv(AWS_PROFILE = "default")
library(arrow)

fs <- S3FileSystem$create(
  region = "us-east-1",
  endpoint_override = "minio.lab.sspcloud.fr",
  scheme = "https"
)

mon_schema <- schema(
  NUM_POSTE = string(),
  NOM_USUEL = string(),
  LAT = float64(),
  LON = float64(),
  ALTI = float64(),
  AAAAMMJJ = int64(),
  RR = float64(),
  QRR = string(),
  TN = float64(),
  QTN = string(),
  HTN = string(),
  QHTN = string(),
  TX = float64(),
  QTX = string(),
  HTX = string(),
  QHTX = string(),
  TM = float64(),
  QTM = string(),
  TNTXM = string(),
  QTNTXM = string(),    
  TAMPLI = string(),
  QTAMPLI = string(),
  TNSOL  = string(),    
  QTNSOL = string(),      
  TN50 = string(),
  QTN50 = string(),
  DG            = string(),
  QDG           = string(),
  FFM           = string(),
  QFFM = string(),
  FF2M = string(),
  QFF2M = string(),
  FXY          = string(),
  QFXY         = string(),
  DXY = string(),
  QDXY         = string(),
  HXY = string(),
  QHXY = string(),
  FXI = string(),
  QFXI = string(),
  DXI = string(),
  QDXI = string(),
  HXI = string(),
  QHXI = string(),
  FXI2 = string(),
  QFXI2 = string(),
  DXI2 = string(),
  QDXI2 = string(),
  HXI2 = string(),
  QHXI2       = string(),
  FXI3S = string(),
  QFXI3S = string(),
  DXI3S = string(),
  QDXI3S = string(),
  HXI3S = string(),
  QHXI3S = string(),
  DRR = string(),
  QDRR = string(),
  STATUS_FXI3S = string(),
  STATUS_DXI3S = string(),
)

dataset <- open_dataset(
  "maximehautin/Q_38_previous-1950-2024_RR-T-Vent.csv.gz",
  filesystem = fs,
  format = "csv",
  delimiter = ";",
  schema = mon_schema,
  skip = 1
)

# ============================================================
# Filtrer les données Météo-France : 1950 à 1985
# ============================================================

# Afficher la structure du dataset
schema(dataset)

# ------------------------------------------------------------
# 1. Filtrer les dates
# ------------------------------------------------------------

# Filtrer les données entre 1950 et 1985
library(dplyr)

dataset_1950_1985 <- dataset |>
  dplyr::filter(
    AAAAMMJJ >= 19500101,
    AAAAMMJJ <= 19851231
  ) |>
  dplyr::select(
    NUM_POSTE,
    NOM_USUEL,
    LAT,
    LON,
    ALTI,
    AAAAMMJJ,
    RR,
    TN,
    TX,
    TM,
  )

# ------------------------------------------------------------
# 2. Vérifier le résultat
# ------------------------------------------------------------

# Afficher quelques lignes
dataset_1950_1985 |>
  head()

# ------------------------------------------------------------
# 3. Exporter le résultat
# ------------------------------------------------------------

donnees_meteo_1950_1985 <- dataset_1950_1985 |>
  dplyr::collect()

library(readr)

write_csv(
  donnees_meteo_1950_1985,
  "RR-T-Vent_1950_1985.csv"
)

rm(list=ls())
```
