如何根据坐标寻找最近的地方
How to look for the closest place based on coordinates
我有一个包含多个气象站的主数据库。每个站都有十进制坐标。下面只是一个例子,因为坐标是组成的
stationid lon lat
1a 80 104
1b 84 110
1c 85 111
此外,我有一个较小的地点数据集。我需要将每个地方与主数据库中最近的气象站相匹配(希望有指定的距离阈值)
place lon lat
2a 80.5 104.1
3b 83 109
因此生成的较小数据库将显示
place lon lat stationid
2a 80.5 104.1 1a
3b 83 109 1b
将不胜感激任何想法
尝试 geosphere::distm
+ max.col
df2$stationid <- df1$stationid[max.col(-distm(rev(df2[-1]), rev(df1[-1])))]
这给出了
place lat lon stationid
1 2a 80.5 104.1 1a
2 3b 83.0 109.0 1b
我有一个包含多个气象站的主数据库。每个站都有十进制坐标。下面只是一个例子,因为坐标是组成的
stationid lon lat
1a 80 104
1b 84 110
1c 85 111
此外,我有一个较小的地点数据集。我需要将每个地方与主数据库中最近的气象站相匹配(希望有指定的距离阈值)
place lon lat
2a 80.5 104.1
3b 83 109
因此生成的较小数据库将显示
place lon lat stationid
2a 80.5 104.1 1a
3b 83 109 1b
将不胜感激任何想法
尝试 geosphere::distm
+ max.col
df2$stationid <- df1$stationid[max.col(-distm(rev(df2[-1]), rev(df1[-1])))]
这给出了
place lat lon stationid
1 2a 80.5 104.1 1a
2 3b 83.0 109.0 1b