在树莓派上通过”weather”工具来以命令行的方式获取天气预报

作者: ludakailu
上传时间为: 2014-10-29 09:23 PM
2014-10-29
阅读:

“Weather”可以从树莓派的官方源上安装:

sudo apt-get install weather-util

“Weather”工具从METARs(Meteorological Aerodrome Reports), NOAA (the USA National Oceanic and Atmospheric Administration)和NWS (the USA National Weather Service)检索获取天气状况和预报信息。这使得这个工具主要以美国为中心,然而你也能获取到全球有国际机场的地区的天气信息。

最简单的获取天气状况的方法是使用ICAO代码(International Civil Aviation Organization Airport Code,国际民间航空组织机场代码,译注)查询最近的机场。所以要获取位于纽约的肯尼迪国际机场的天气你可以输入如下命令:

weather jfk

肯尼迪国际机场的完整ICAO代码实际上是”KJFK”(和所有美国邻近的机场一样以K开头)但是三个字母对于美国的机场来说同样有效,例 如”DFW”,”LAX”和”ATL”等。但是对于国际上的机场来说,必须使用完整的ICAO代码。所以伦敦希思罗机场是”EGLL”,巴黎夏尔戴高乐 机场是”LFPG”,阿姆斯特丹史基浦机场是”EHAM”等等。

要查看伦敦希思罗机场的天气,使用:

weather egll

另一种方式是使用邮政编码。”Weather”自带了一个用于获取距离最近的气象站的邮政编码列表。不幸的是这只适用于美国而不是全世界,但是邮政编码涵 盖了整个美国。举个例子,Linux基金会总部位于加利福尼亚州的旧金山,它的邮政编码是94110.你可以通过下面的命令来获取天气信息:

weather 94110

你也可以使用地名来获得天气信息,但是地名需要严格匹配。试试下面的命令:

weather 'new york'

Weather”将会告诉你search is too ambiguous(搜索词太过模糊)然后返回至少10条结果,包括”New York township – MO”,”New York City – NY”和”New York Mills city – MN”加拉瓜迪亚 国际机场。

如果你加入更准确的信息,你将得到想要的结果。试试这个:

weather 'new york city central park'

你可以通过”-f”选项获取7天的天气预报。获取洛杉矶国际机场附近的天气信息使用:

weather -f lax

.weatherrc

你或许注意到了获取天气信息将会花费几分钟的时间,特别是当你通过名字进行搜索的时候。这不是因为在网络上获取信息造成的延迟,而是因 为”weather”工具需要通过一个机场名字,地名和邮政编码的列表来进行查找。因为这些信息不是存在数据库里的,而是以文本形式列出的,所以搜索会很 慢。

为了加快搜索速度,你可以在”weather”的配置文件里为已经包含所有该工具用来直接访问网络的所需信息的数据起一个别名。

首先你需要找到最近的气象站名字。使用”–info”选项来做到这一点,它提供了天气预报来源的详细信息。下面是一个使用邮编为20560的搜索,它是位于华盛顿的史密森尼学会的邮编。

weather --info 20560

结果显示数据来源的气象站实际上离华盛顿国家机场只有2.5英里远。机场的代码是”kdca”。

在你的home目录下创建一个weather的配置文件(名叫 .weatherrc):

nano ~/.weatherrc

加入下面几行:

[smithsonian]
description = The Smithsonian Institution
metar = <a href="http://weather.noaa.gov/pub/data/observations/metar/decoded/KDCA.TXT">http://weather.noaa.gov/pub/data/observations/meta...</a>

注意:“metar = http…”需要保持在同一行。

现在通过Ctrl+X退出并保存。

要获取史密森尼学会的天气情况,只需要输入:

weather smithsonian

返回会非常快因为工具已经拿到它用来获取数据的所有信息而不用去查整个列表了。

可以在”.weatherrc”里为一个数据添加多个别名;你只需要把”metar”部分的信息写正确就可以了。

为什么不亲自试试”weather”呢,如果你有任何问题,欢迎到原博客地址下留言。

全部评论 ()
条评论
写评论

创建讨论帖子

登录 后参与评论
系统提示