r - 如何根据坐标寻找最近的地方

标签 r distance spatial

我有一个包含多个气象站的主数据库。每个站都有十进制坐标。下面只是一个例子,因为坐标是组成的

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

关于r - 如何根据坐标寻找最近的地方,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66837461/

相关文章:

algorithm - 存储距离敏感空间数据的最佳数据结构是什么?

r - 内存和矢量化自定义函数

javascript - Jquery Google map 用户位置

geolocation - ElasticSearch——使用距点的距离影响查询相关性

elasticsearch - Elasticsearch查询文档,其中两个位置具有相对距离

MySQL POINT 字段的 PHP 数据类型

java - 使用 Hibernate Search 的空间查询始终返回空结果集

r - 如何获得 "nls"对象的漂亮 latex 输出

r - 在 ggplot2 中添加趋势线/箱线图(按组)

r - 透明符号、实线、格子::xyplot()