R语言: 如何快速获取一个地方的气象数据?

作者介绍:

周甜,北京大学硕士研究生,高级分析师,主要从事环保数据分析,擅长于污染溯源和PM2.5源解析,知乎id:周小甜。

获取气象数据十分困难,但是气象数据对于空气质量分析至关重要,那么如何获取一个地方的气象数据(包括温度、风向、风速、气压、相对湿度等)呢?

本篇采用“worldmet”包,获取机场的小时气象数据,包括风向、风速、温度、露点、大气压、相对湿度。关于“worldmet”包,可参考大神github网页:https://github.com/envhyf/worldmet。

1.下载安装“worldmet”

require(devtools)
install_github('davidcarslaw/worldmet')

2.根据一个城市经纬度,找到最近机场信息

library("worldmet")
#以延庆区的经纬度为例,纬度40.458N,经度115.98E
getMeta(lat = 40.458, lon = 115.98)
#系统会搜索到此点位周边的机场站点

3.结果示例

结果示例:从结果来看,最近的站点为“HUAILAI”站点,编码544050-99999,数据从1956-08-20就有数据。

# A tibble: 10 x 15
   USAF    WBAN STATION     CTRY  ST    CALL  latitude longitude `ELEV(M)` BEGIN     
                                  
 1 544050 99999 HUAILAI     CH            40.4      116.     538   1956-08-20
 2 545110 99999 BEIJING - ~ CH      ZBAA      40.1      117.      35.4 1945-10-31
 3 543080 99999 FENGNING    CH            41.2      117.     661   1957-06-01
 4 544010 99999 ZHANGJIAKOU CH            40.8      115.     726   1956-08-20
 5 535930 99999 YU XIAN     CH            39.8      115.     910   1956-08-20
 6 544230 99999 CHENGDE     CH            41.0      118.     423   1956-08-20
 7 545270 99999 TIANJIN     CH            39.1      117.       5   1956-08-20
 8 545273 99999 BINHAI      CH      ZBTJ      39.1      117.       3   1981-11-25
 9 542080 99999 DUOLUN      CH            42.2      116.    1247   1956-08-20
10 546020 99999 BAODING     CH            38.7      115.      17   1956-08-20
# ... with 5 more variables: END , code , longR , latR ,
#   dist 

R语言: 如何快速获取一个地方的气象数据?_第1张图片

点位周边的机场站点搜索结果

4.导出最近机场的气象数据

#选取2015、2016、2017年,代码为544050-99999(“HUAILAI”站点)
dat <- importNOAA(code = "544050-99999", year = c(2015,2016,2017))
#保存文档为CSV
write.csv(dat, file = "huailai_met.csv", row.names = FALSE)
R语言: 如何快速获取一个地方的气象数据?_第2张图片气象数据导出文本示例

说明:其余功能大家可以安装worldmet包实践操作,也欢迎与我交流~~

你可能感兴趣的:(R语言: 如何快速获取一个地方的气象数据?)