#chargement des librairies
library(rjson)
library(ggplot2)
library(httr)
#Récupération des informations
url_service='https://api.geosas.fr/edr/collections/safran-isba/'
data_info = fromJSON(file=url_service)
for (parametre in data_info$parameter_names) {
name=names(parametre)
print(name)
print(parametre[[name]]$description)
}
## [1] "DRAINC_Q"
## [1] "Drainage (cumul quotidien 06-06 UTC)"
## [1] "ETP_Q"
## [1] "Evapotranspiration potentielle (formule de Penman-Monteith)"
## [1] "FF_Q"
## [1] "Vent (moyenne quotidienne)"
## [1] "PRELIQ_Q"
## [1] "Précipitations liquides (cumul quotidien 06-06 UTC)"
## [1] "PRENEI_Q"
## [1] "Précipitations solide (cumul quotidien 06-06 UTC)"
## [1] "SSI_Q"
## [1] "Rayonnement atmosphérique (cumul quotidien)"
## [1] "TINF_H_Q"
## [1] "Température minimale des 24 températures horaires"
## [1] "TSUP_H_Q"
## [1] "Température maximale des 24 températures horaires"
## [1] "T_Q"
## [1] "Température (moyenne quotidienne)"
On veut télécharger les températures moyennes du mois de juillet 2022 au point de coordonnées X=349598 Y=6798263 en projection Lambert 93 (EPSG:2154) au format CoverageJson
param_name='T_Q'
# Pour coord nécessite de remplacer l'espace par %20
# sinon la librairie rjson plante
#'POINT(349598 6798263)' devient :
coord='POINT(349598%206798263)'
projection='EPSG:2154'
formatage='CoverageJSON'
date='2022-07-01/2022-07-31'
requete=sprintf('%sposition?coords=%s&crs=%s¶meter-name=%s&f=%s&datetime=%s',
url_service,coord,projection,param_name,formatage,date)
print(requete)
## [1] "https://api.geosas.fr/edr/collections/safran-isba/position?coords=POINT(349598%206798263)&crs=EPSG:2154¶meter-name=T_Q&f=CoverageJSON&datetime=2022-07-01/2022-07-31"
data = fromJSON(file=requete)
# Mise dans une dataFrame
date_value <- data$domain$axes$t$values
values <- data$ranges[[param_name]]$values
cat("Exemple de date pour définir le format:", date_value[1], "\n")
## Exemple de date pour définir le format: 2022-07-01T00-00-00Z
df=data.frame(date=date_value,parametre=values)
df$date <- as.POSIXct(df$date , format='%Y-%m-%dT%H-%M-%SZ')
colnames(df)[2] <- param_name
print(df)
## date T_Q
## 1 2022-07-01 15.4
## 2 2022-07-02 17.1
## 3 2022-07-03 16.1
## 4 2022-07-04 16.1
## 5 2022-07-05 16.8
## 6 2022-07-06 18.7
## 7 2022-07-07 18.4
## 8 2022-07-08 20.1
## 9 2022-07-09 22.0
## 10 2022-07-10 22.7
## 11 2022-07-11 24.8
## 12 2022-07-12 26.7
## 13 2022-07-13 25.6
## 14 2022-07-14 20.7
## 15 2022-07-15 20.9
## 16 2022-07-16 23.1
## 17 2022-07-17 26.3
## 18 2022-07-18 30.9
## 19 2022-07-19 24.1
## 20 2022-07-20 21.0
## 21 2022-07-21 20.0
## 22 2022-07-22 18.1
## 23 2022-07-23 20.4
## 24 2022-07-24 23.4
## 25 2022-07-25 20.3
## 26 2022-07-26 18.9
## 27 2022-07-27 17.7
## 28 2022-07-28 20.5
## 29 2022-07-29 22.5
## 30 2022-07-30 21.7
## 31 2022-07-31 22.2
for (parametre in data_info$parameter_names) {
name <- names(parametre)
if (name == param_name) {
unit <- parametre[[name]]$unit$label
description <- parametre[[name]]$description
break
}
}
ggplot(df, aes(x = date, y = .data[[param_name]])) +
geom_line() +
theme_minimal() +
theme(axis.text.x = element_text(angle = 45, hjust = 1)) +
labs(title = description, y = unit)
Je veux télécharger l’évapotranspiration potentielle, les précipitations liquides et la température de 2020 à 2023 pour l’ensemble de la Bretagne définie géographiquement par son coin inférieur gauche (X=90000,Y=6693915) et son coin supérieur droit (X=410874,Y=6902748) en projection Lambert 93 (EPSG:2154), au format CSV :
param_name='ETP_Q,PRELIQ_Q,T_Q'
box='90000,6693915,410874,6902748'
projection='EPSG:2154'
formatage='CSV'
date='2020-01-01/2023-12-31'
requete=sprintf('https://api.geosas.fr/edr/collections/safran-isba/cube?bbox=%s&crs=%s¶meter-name=%s&f=%s&datetime=%s',
box,projection,param_name,formatage,date)
print(requete)
## [1] "https://api.geosas.fr/edr/collections/safran-isba/cube?bbox=90000,6693915,410874,6902748&crs=EPSG:2154¶meter-name=ETP_Q,PRELIQ_Q,T_Q&f=CSV&datetime=2020-01-01/2023-12-31"
tmp <- tempfile()
GET(requete, write_disk(tmp))
## Response [https://api.geosas.fr/edr/collections/safran-isba/cube?bbox=90000,6693915,410874,6902748&crs=EPSG:2154¶meter-name=ETP_Q,PRELIQ_Q,T_Q&f=CSV&datetime=2020-01-01/2023-12-31]
## Date: 2024-01-31 16:25
## Status: 200
## Content-Type: text/csv; charset=utf-8
## Size: 60.3 MB
## <ON DISK> /tmp/RtmpZYUYsP/file666f450fe578
data <- read.csv(tmp)