R語言獲取全球氣象數據(ISD)

R語言 GitHub 大氣科學 RStudio R語言愛好者 R語言愛好者 2017-08-28

ISD是NOAA下屬國家氣候數據中心(NCDC)發起的地表(氣象)數據庫(簡稱ISD),覆蓋全球20000多個地面觀測站。該項目將地表的小時數據整合為常見的文本文件,解決了各個不同來源數據的不一致和主觀性。本文介紹利用stationaRy包下載並使用這些數據。

ISD數據集簡介

R語言獲取全球氣象數據(ISD)

ISD數據庫至今包含了全球20000多個地表觀測站的氣象數據,上圖展示了不同時期ISD數據庫全球地表測站的分佈情況。目前,有11000多個活躍的站點仍持續監測中,其中常見的監測指標有風速,風向,陣風風速,溫度,露點溫度,雲層信息,氣壓,能見度,降雨等信息。

staionaRy簡介、安裝

改程序包用於上述ISD數據庫的站點信息獲取,選擇站點,站點地圖展示,下載等功能。並將原始下載的數據中的部分常見氣象指標轉化為類似於data.frame的內存對象。

library(devtools)install_github('rich-iannone/stationaRy')

作者在github上面的開發版我們可以通過上述代碼安裝,cran上也提供了下載。對源代碼感興趣的朋友可以自行下載源文件自行研究,可以看出作者使用的是rstudio編譯程序包的,如何使用直接參考http://blog.csdn.net/xmuecor/article/details/42031449中的第5步即可。

直接獲取數據的例子

舉個例子,我們從武漢氣象站中獲取數據需要知道它的USAF和WBAN的ID,經查閱武漢的USAF=574940,WBAN=99999。我們使用station_id = “574940-99999”來獲取數據。

library(stationaRy)met_data <- get_isd_station_data(station_id = "574930-99999", startyear = 2009, endyear = 2010)

上述代碼獲取了武漢氣象站的數據資料,但是問題來了,你怎麼知道武漢的USAF和WBAN的編號呢?事實上,我也沒有記這些編號,這些信息被保存在了站點信息裡面。通過get_isd_stations函數我們可以獲取整個數據庫的站點基本信息,基本信息裡面包含了站點的名稱,所屬國家,經緯度等信息。

獲取站點信息並畫地圖

library(stationaRy)isdInfo<-get_isd_stations(lower_lat = 30,upper_lat = 31,lower_lon = 114,upper_lon = 115)print(isdInfo)
## Source: local data frame [2 x 16]
map_isd_stations(isdInfo)

上述代碼讓我們用經緯度範圍的方式篩選了站點,並將其展示在leaflet地圖中。可以看出,武漢的氣象站在天河機場(TIANHE沒想到吧!),另外一個站點漢口(HANKOW)1948年以後就沒有數據了。isdInfo中的usaf和wban告訴了我們信息。

其他說明

其他一個有用的函數就是select_isd_station函數,它主要是用於進一步鑽取並獲得我們需要的站點信息使用,因為get_isd_station_data一次只能獲取一個站點的數據。get_isd_station_data返回的對象可以繼承data.frame類的所有方法,大家可以將其當為data.frame使用。 下面的鏈接可以方便讀者進一步瞭解stationaRy包的使用,獲取的氣象數據變量除了風速,溫度等以外,還包含了其他信息,列名用“2個字母+數字”的形式標記,讀者可以嘗試其他的氣象站點查看這類信息。 https://github.com/rich-iannone/stationaRy

來源:Adam Smith,Rich-Iannone 編譯:亮亮

相關推薦

推薦中...