R: получить ближайшее измерение температуры воздуха для данного места / даты
У меня есть latitude
, longitude
и date
,
Q: Есть ли простой способ получить ближайший air_temperature
измерение оттуда?
data$air_temperature = fetch_nearest_parameter(latitude = lat, longitude = lon, date = mydate, parameter = "air_temperature")
Отличная вспомогательная функция для решения этой задачи: выбрать ближайшую станцию на широте / долготе, которая предлагает температуру воздуха на мою дату.
Это моя последняя попытка (на самом деле не работает) заключается в следующем. Шаг 1: выберите 50 ближайших станций. Шаг 2: для всех из них, попробуйте получить значение air_teuration на мою дату. Шаг 3: надеемся, что найдется хотя бы 1 совпадение, а затем воспользуйтесь этим. Проблема с этим подходом: на шаге 3 не бывает ни одного совпадения.
lat_lon_df <- data.frame(id = c("1"),
latitude = c(-33.8675),
longitude = c(151.2070))
# fetch 50 nearest stations
nearby_stations <- meteo_nearby_stations(lat_lon_df = lat_lon_df, limit=50, var = c("TMAX"),
station_data = station_data, year_min=2000, year_max=2017)
ns <- do.call(rbind, lapply(nearby_stations, data.frame, stringsAsFactors=FALSE))
mydate = 20160503
# check all 50 stations for air_temperature at my given date
# the column 'xxx' always ends up being filled 100 % with NAs
ns$xxx = lapply(ns$id, function(x) { return(tryCatch(coops_search(station_name = x, begin_date=mydate, end_date=mydate, product="air_temperature"), error=function(e) NA)) })