歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux教程 >> 在樹莓派上獲取天氣預報

在樹莓派上獲取天氣預報

日期:2017/2/28 14:34:33   编辑:Linux教程

大家似乎都很關注天氣預報,當然啦,獲取准確的天氣預報對你的出行計劃和其他一些活動來說非常的有用。天氣預報信息可以在很多地方獲取到,例如網頁,大多數的智能手機或是平板電腦。現在你也可以在樹莓派上通過”wether”工具來以命令行的方式獲取天氣預報信息了。

“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 = http://weather.noaa.gov/pub/data/observations/metar/decoded/KDCA.TXT

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

現在通過Ctrl+X退出並保存。

要獲取史密森尼學會的天氣情況,只需要輸入:

weather smithsonian

返回會非常快因為工具已經拿到它用來獲取數據的所有信息而不用去查整個列表了。

可以在”.weatherrc”裡為一個數據添加多個別名;你只需要把”metar”部分的信息寫正確就可以了。

為什麼不親自試試”weather”呢,如果你有任何問題,歡迎到原博客地址下留言。

Copyright © Linux教程網 All Rights Reserved