前面的推文中介绍过ISD-LITE的气象站点信息获取
R语言+QGIS处理NOAA全球气象数据(一)气象站点信息提取
,不过这篇推文里面使用的在线地图加载代码不好用了,这次使用中科星图星图地球数据云替换一下。
R里面调用星图地球数据云
申请token
在R里面调用星图地球数据云之前,需要先申请token,详见以前的推文介绍:
QGIS又多了一个在线底图新选择,星图地球数据云测评,超好用!真香!
调用影像和注记服务
在R语言中可以使用
leaflet
包来调用在线地图服务。先把token保存为一个变量
geovis_token
,把星号部分替换成自己的token即可。
在这里使用了星图地球数据云的影像和影像注记服务,服务调用地址可以看星图地球数据云网站或前面
星图地球数据云测评推文
。
使用leaflet将影像和影像注记服务组合成一个leaflet在线地图服务geovismap,供后面调用。
library(tidyverse)
library(leaflet)
#添加中科星图数据云作为在线底图
geovis_token = "****"
geovis_satellite_url = paste0("https://tiles1.geovisearth.com/base/v1/img/{z}/{x}/{y}?format=webp&tmsIds=w&token=", geovis_token)
geovis_label_url = paste0("https://tiles1.geovisearth.com/base/v1/cia/{z}/{x}/{y}?format=webp&tmsIds=w&token=", geovis_token)
geovismap = leaflet() %>%
addTiles(urlTemplate = geovis_satellite_url) %>%
addTiles(urlTemplate = geovis_label_url)
GSODR获取气象站信息并预览
使用
GSODR
包获取气象站点信息,指定经纬度中心点,还有搜索半径,将气象站获取结果
x
这个数据框转换为
sf
对象,用于在地图上进行预览。
使用
leafem
包进行预览,以前面设置好的星图地球数据云作为底图,点击弹窗显示气象站名称。
library(GSODR)
library(sf)
#获取气象站
x #中国中心经纬度103,36,扩展4000公里
x_sf = st_as_sf(x, coords = c(x = "LON", y= "LAT")) #将气象站点信息组成一个sf对象
leafem::addFeatures(geovismap, x_sf, popup = x_sf$NAME)