我有一个主数据库,里面有几个气象站。每个桩号都有以十进制度表示的坐标。下面只是一个例子,因为坐标是由
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
会很欣赏你的想法
发布于 2021-03-28 09:31:37
试用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
https://stackoverflow.com/questions/66837461
复制相似问题