Я хочу извлечь (бесплатно) исторические данные о погоде для некоторых стран (точнее, провинций / штатов в некоторых странах) по широте / долготе, и мне нужны результаты в виде файла .csv или фрейма данных pandas. Я пробовал оболочку для Forecast.io / DarkSky (https://zeevgilovitz.com/python-forecast.io/), но он ограничен 1000 запросов в день. Так что мне было интересно, есть ли какой-нибудь бесплатный API, возвращает фрейм данных pandas или. формат CSV и поддерживает запросы долготы / долготы?
Вот что я попробовал (и что также работает, если вы хотите только 1000 запросов в день).
lat = 30
lng = 5
start_date = datetime.datetime(2016, 1, 1)
attributes = ["temperature", "humidity", "pressure", "windSpeed"]
def getWeatherData(lat, lng, start_date, attributes):
times = []
data = {}
for attr in attributes:
data[attr] = []
for offset in range(1, 1000):
forecast = forecastio.load_forecast(api_key, lat, lng, time=start_date+datetime.timedelta(offset), units="us")
h = forecast.hourly()
d = h.data
for p in d:
times.append(p.time)
for attr in attributes:
data[attr].append(p.d[attr])
weather_data = pd.DataFrame(data, index=times)
return weather_data