beaumontmeteo/meteofranceapi.R

155 lines
5.7 KiB
R

library(jsonlite)
library(httr)
devtools::load_all()
source("secrets")
# Create a Bearer token header
headersLIM <- add_headers(
accept = "*/*",
apikey = token2
)
headersLIM2 <- add_headers(
accept = "*/*",
apikey = token
)
headersPaquet <- add_headers(
accept = "*/*",
apikey = yearTokenPaquer
)
# Test the function with dates and station ID
start_date <- as.Date("2024-03-24")
end_date <- as.Date("2024-08-14")
station_id <- "38269004"
#allstations=getStations(headersLIM)
allstations=read.csv("allstations.csv")
#write.csv(file="allstations.csv",allstation,row.names=F)
lacouch.coor <- c(45.3722971,5.6387118)
lamure.coor <- c(44.9167, 5.8000)
vignass.coor=c(44.8550665,5.8441789)
lamure.id=38269004
lavaldens.id=38269004
lacouch.id=38269004
lacouch.stats=getIdFromCoords(lacouch.coor,allstations,N=3)
lamure.stats=getIdFromCoords(lamure.coor,allstations,N=3)
vignass.stats=getIdFromCoords(vignass.coor,allstations,N=3)
allvignass=getStationData(start_date="2024-06-24",end_date="2024-08-14",station_id=lamure.id,headers=headersLIM)
alllavaldens=getStationData(start_date="2024-06-24",end_date="2024-08-14",station_id=38207001,headers=headersLIM)
allcouch=getStationData(start_date="2024-06-24",end_date="2024-08-16",station_id=lacouch.id,headers=headersLIM)
today=format(Sys.Date(), "%Y-%m-%d")
monthan=format(Sys.Date()-45, "%Y-%m-%d")
allvignass=lapply(vignass.stats$Id_station,function(statid){print(paste("recuperer station",statid));Sys.sleep(5);getStationData(start_date=monthan,end_date=today,station_id=statid,headers=headersLIM);paste("done, sleep 5 sec");Sys.sleep(5)})
alllacouch=lapply(lacouch.stats$Id_station,function(statid){print(paste("recuperer station",statid));statdat=tryCatch(getStationData(start_date=monthan,end_date=today,station_id=statid,headers=headersLIM),error=function(e)NULL);paste("done, sleep 5 sec");Sys.sleep(5);statdat})
getStationData(start_date="2024-07-04",end_date="2024-08-16",station_id=vignass.stats$Id_station[3],headers=headersLIM)
allvignass.df=do.call("rbind.data.frame",allvignass)
allvignass.df=allvignass.df[allvignass.df[,3]>0,]
ids=vignass.stats$Nom_usuel
names(ids)=vignass.stats$Id_station
cols=palette.colors()[1:nrow(vignass.stats)]
names(cols)=vignass.stats$Id_station
plot(getDate(allvignass.df[,2]),allvignass.df[,3],pch=20,col=cols[as.character(allvignass.df[,1])],cex=2)
legend("topleft",col=cols,legend=ids[names(cols)],pch=20,cex=2)
abline(v=as.numeric(as.POSIXlt("2024-08-07",format="%Y-%m-%d")),lwd=3,col="red")
alllacouch=do.call("rbind.data.frame",alllacouch)
alllacouch=alllacouch[alllacouch[,3]>0,]
ids=lacouch.stats$Nom_usuel
names(ids)=lacouch.stats$Id_station
cols=palette.colors()[1:nrow(lacouch.stats)]
names(cols)=lacouch.stats$Id_station
plot(getDate(alllacouch[,2]),alllacouch[,3],pch=20,col=cols[as.character(alllacouch[,1])],cex=2)
legend("topleft",col=cols,legend=ids[names(cols)],pch=20,cex=2)
paquetLamure=getStationPaquet(id_station=lamure)
allal=getStationData(start_date="2024-01-24",end_date="2024-08-13",station_id=staupre,headers=headersLIM)
plot(getDate(alllavaldens[,2]),alllavaldens[,3],lwd=3,type="l",col="red")
plot(getDate(allmure[,2]),allmure[,3],pch=20,type="o",col="blue",ylab="preciptitation (mm)",main="La Mure/Lavalends",ylim=range(c(alllavaldens[,3],allmure[,3]),na.rm=T),cex=2)
points(getDate(alllavaldens[,2]),alllavaldens[,3],pch=20,col="red",cex=2,type="o")
points(getDate(allcouch[,2]),allcouch[,3],pch=20,col="green",cex=2,type="o")
legend("topleft",col=c("blue","red","green"),legend=c("La Mure","Lavaldens","St Aupre"),cex=2,pch=20)
plot(allmure[,3],alllavaldens[,3],col="red")
library(httr)
# Token to be included in the Authorization header (example token placeholder)
df <- getStations()
plot(df$Longitude,df$Latitude,xlim=c(-5.1,9.6),ylim=c(41.2,51.1),pch=21)
# La Mure coordinates (latitude and longitude)
la_mure_latitude <- 44.9167
la_mure_longitude <- 5.8000
# Define the bounding box for the region around La Mure in Isère
# Adjust these values as needed to capture the desired area
lat_min <- 44.5
lat_max <- 45.5
lon_min <- 5.4
lon_max <- 6.2
# Filter data for the region around La Mure
df_la_mure <- df[df$Latitude >= lat_min & df$Latitude <= lat_max &
df$Longitude >= lon_min & df$Longitude <= lon_max,]
# Plot Latitude and Longitude for the region around La Mure
plot(df_la_mure$Longitude, df_la_mure$Latitude,
main = "Region around La Mure, Isère, France Plot", xlab = "Longitude", ylab = "Latitude")
text(df_la_mure$Longitude, df_la_mure$Latitude,labels=df_la_mure$Nom_usuel,pos=3)
text(df_la_mure$Longitude, df_la_mure$Latitude,labels=df_la_mure$Id_station,pos=1)
library(ggmap)
ggmap::register_google(key="AIzaSyBF0l8LHg5kBQInFgR9sD65H1ek0qvn2Yw")
# Geocode La Salle en Beaumont using the Google Maps API
location <- "La Salle en Beaumont, France"
la_salle_geocode <- geocode(location)
# Print the latitude and longitude of La Salle en Beaumont
print(la_salle_geocode)
library(osmdata)
# Geocode La Salle en Beaumont using OpenStreetMap
location <- "La Salle en Beaumont, France"
la_salle_geocode <- osm_geocode(location)
# Print the latitude and longitude of La Salle en Beaumont
print(la_salle_geocode)
library(tmap)
datetime_obj <- as.POSIXlt(as.character(allmure[,2]), format = "%Y%m%d%H%M")
datetime_obj <- as.POSIXlt(as.character(alllavaldens[,2]), format = "%Y%m%d%H%M")
# Create the date object using the format argument
plot(datetime_obj,alllavaldens[,3],lwd=2,type="l",col=2)
# Print the date object
# Convert temperature from Kelvin to Celsius
temperature_celsius <- temperature_kelvin - 273.15
location <- "La Couchonnier, Saint Etienne de Crossey, France"
couch <- geocode(location)
couch <- osm_geocode(location)
# Print the latitude and longitude of La Salle en Beaumont
print(la_salle_geocode)
45.3722971,5.6387118