如何通过天气 api 获取降水/降雨?
Posted
技术标签:
【中文标题】如何通过天气 api 获取降水/降雨?【英文标题】:How to get precipitation/rainfall through weather api? 【发布时间】:2014-09-13 14:19:03 【问题描述】:我厌倦了Open Weather Map,因为文档说它有“雨”,但当我称之为它时没有。所以我尝试了Python Weather API,但这些来自weather.com、noaa 或yahoo 天气的选项都没有降雨或降水。所以我尝试了Wunderground,但这似乎只适用于美国城市,除此之外,我也懒得买钥匙了。
有人知道从这里去哪里吗?
在打开的天气地图上显示有雨,但我没有在结果中看到:
JSON 调用示例
"coord":"lon":139,"lat":35,
"sys":"country":"JP","sunrise":1369769524,"sunset":1369821049,
"weather":["id":804,"main":"clouds","description":"overcast clouds","icon":"04n"],
"main":"temp":289.5,"humidity":89,"pressure":1013,"temp_min":287.04,"temp_max":292.04,
"wind":"speed":7.31,"deg":187.002,
"rain":"3h":0, # on this line
"clouds":"all":92,
"dt":1369824698,
"id":1851632,
"name":"Shuzenji",
"cod":200
但是,当我这样称呼它时
from pprint import pprint
import requests
r = requests.get('http://api.openweathermap.org/data/2.5/weather?q=Vancouver')
pprint(r.json())
我得到一些没有降雨/降水的东西。
u'base': u'cmc stations',
u'clouds': u'all': 0,
u'cod': 200,
u'coord': u'lat': 49.25, u'lon': -123.12,
u'dt': 1406042326,
u'id': 6173331,
u'main': u'humidity': 77,
u'pressure': 862,
u'temp': 289.33,
u'temp_max': 290.93,
u'temp_min': 288.15,
u'name': u'Vancouver',
u'sys': u'country': u'CA',
u'message': 0.1867,
u'sunrise': 1406032353,
u'sunset': 1406088323,
u'weather': [u'description': u'Sky is Clear',
u'icon': u'01d',
u'id': 800,
u'main': u'Clear'],
u'wind': u'deg': 104.001, u'speed': 2.75
【问题讨论】:
【参考方案1】:我找到了雨;)这并不容易,但它成功了。它存在。
fetch(https://api.openweathermap.org/data/2.5/weather?q=$city&units=metric&appid=$apiKey)
.then(res => res.json())
.then(data =>
console.log(data);
const pressure, temp, humidity = data.main;
const speed, deg = data.wind;
const description = data.weather[0];
const rain = data.rain['1h'];
console.log(rain)
);
【讨论】:
【参考方案2】:根据documentation、weather
、rain.3h
、snow.3h
都是optional
参数,提示不会一直包含在结果中。
我的解释是,如果当时没有下雨或下雪,则不会报告下雨和下雪 - 例如在您的示例中,它显示“天空晴朗” - 但也有可能这意味着他们只是不保证雨/雪数据。
【讨论】:
我不确定。我所在的地方开始疯狂下雨,所以我测试了一下,仍然没有下雨的钥匙。 通常会在几个小时内累积降雨量值后上报雨场。在 OpenWeatherMap 中,这是 3 小时。 这真的很奇怪,他们的水瓶是否无法支持基本测量和服务器 - 推测结果?每隔几分钟实时报告(价值,推测性:bool)将允许更多......但是,这不是用户体验讨论。以上是关于如何通过天气 api 获取降水/降雨?的主要内容,如果未能解决你的问题,请参考以下文章
python批量处理气象站点降雨数据1——处理成正确的降水索引数据