combine_station_payloads <- function(station_payloads, station_lookup) { station_payloads <- Filter(function(x) !is.null(x) && nrow(x), station_payloads) if (!length(station_payloads)) { return(NULL) } combined <- do.call("rbind.data.frame", station_payloads) station_column <- c("POSTE", "geo_id_insee") station_column <- station_column[station_column %in% names(combined)][1] if (is.na(station_column)) { return(combined) } combined$Nom_usuel <- unname(station_lookup[as.character(combined[[station_column]])]) combined } # Define function getAllFromCoord <- function(coord, start_date, end_date, allstations, N = 3, headers, base = "https://public-api.meteofrance.fr",btw_station_sleep = 1, within_statio_sleep=5,endpoint="public/DPClim/v1/") { three_station = getIdFromCoords(coord, allstations, N = N) alldata = lapply(three_station$Id_station, function(statid) { print(paste("recuperer station", statid)) allstat = tryCatch( getStationData(start_date = start_date, end_date = end_date, station_id = statid, headers = headers, base = base, timesleep=within_statio_sleep,dpclim=endpoint), error = function(e) {print(e); NULL} ) print(paste("done, sleep",btw_station_sleep,"sec")) print(dim(allstat)) Sys.sleep(btw_station_sleep) return(allstat) }) ids = three_station$Nom_usuel names(ids) = three_station$Id_station combine_station_payloads(alldata, ids) } # Define function getAllFromCoordDPObs <- function(coord, start_date, end_date, allstations, N = 3, headers, base = "https://public-api.meteofrance.fr",btw_station_sleep = 1, within_statio_sleep=5,endpoint="public/DPClim/v1/") { three_station = getIdFromCoords(coord, allstations, N = N) alldata = lapply(three_station$Id_station, function(statid) { print(paste("recuperer station", statid)) allstat = tryCatch( getStationDataDPObs(start_date = start_date, end_date = end_date, station_id = statid, headers = headers, base = base, timesleep=within_statio_sleep,dpclim=endpoint), error = function(e) {print(e); NULL} ) print(paste("done, sleep",btw_station_sleep,"sec")) print(dim(allstat)) Sys.sleep(btw_station_sleep) return(allstat) }) ids = three_station$Nom_usuel names(ids) = three_station$Id_station combine_station_payloads(alldata, ids) }