【问题标题】:Latitude and longitude wise distrubution经纬度分布
【发布时间】:2018-02-17 03:32:32
【问题描述】:

目前我正在处理纬度和经度数据集。我想研究纬度/经度分布并找出每个纬度/经度的最近点。我已经做了几件事,但我仍然面临一些问题。我的数据集如下所示

Latitude    Longitude
38.929596   -77.2478813
38.929596   -77.2478813
38.9295887  -77.2478945
38.9295048  -77.247922
38.9294865  -77.2479055
38.9294865  -77.2479055
38.9294865  -77.2479055
38.9294773  -77.2478712
38.9294773  -77.2478712
38.9294773  -77.2477417
38.9294773  -77.2477417
38.9292972  -77.247649
38.9292972  -77.247649
38.9292972  -77.247649
38.9291838  -77.2475982
38.9291838  -77.2475982
38.9290903  -77.2467052
38.9289893  -77.2462247
38.9290013  -77.2462322
38.9290008  -77.2462207
38.9290468  -77.2456722
  1. 假设每行包含 1 个点。

所以,最终的数据框看起来像(对于最近的点)

No  Latitude    Longitude      nearest_points(lat)  nearest_points(lon)   Distance
1   38.929596   -77.2478813          .....                ....              ...
2   38.929596   -77.2478813
3   38.9295887  -77.2478945
4   38.9295048  -77.247922
5   38.9294865  -77.2479055
6   38.9294865  -77.2479055
7   38.9294865  -77.2479055
8   38.9294773  -77.2478712
9   38.9294773  -77.2478712
10  38.9294773  -77.2477417
11  38.9294773  -77.2477417
12  38.9292972  -77.247649
13  38.9292972  -77.247649
14  38.9292972  -77.247649
15  38.9291838  -77.2475982
16  38.9291838  -77.2475982
17  38.9290903  -77.2467052
18  38.9289893  -77.2462247
19  38.9290013  -77.2462322
20  38.9290008  -77.2462207
21  38.9290468  -77.2456722
  1. 分布是什么意思?是简单的直方图吗?

代码如下 - 2.

data = read.csv('Data.csv')

library(raster)
distribution <- pointDistance(data[, c("Longitude", "Latitude")], lonlat=TRUE)

distribution_matrix <- as.matrix(as.dist(distribution))
diag(distribution_matrix) <- NA

现在我为分布目的创建一个 nxn 矩阵,即计算与每个点的距离。现在如何测量 R 中的分布?

1.同时计算最近点。代码是 -

i <- apply(distribution_matrix, 1, which.min)

p <- cbind(1:nrow(distribution_matrix), i)  

distribution_matrix[p]
apply(distribution_matrix, 1, min, na.rm=TRUE)

但这不像我的最终输出。我想要有距离的数据框格式。

【问题讨论】:

  • 最接近什么?赤道和本初子午线的交点?
  • @r2evans - 这是一个距离..两点之间的最近距离
  • 抱歉,但 “找到每个纬度/经度的最近点” 有点含糊,而且是特定于上下文的。好的,没关系,这似乎是比较经典的distance,带有半正弦函数,是吗?
  • @r2evans - 你是对的......实际上我的目标是进行聚类......但在此之前我想测量每个点的距离并想知道最近的一对点。另一件事是“pointDistance”给我公里/米的距离吗?

标签: r google-maps


【解决方案1】:

但我不喜欢我的最终输出。我想要数据框格式 距离。

您可以从输出中创建一个 data.frame。

i <- apply(distribution_matrix, 1, which.min)
j <- apply(distribution_matrix, 1, min, na.rm=TRUE)

dd <- data.frame(data, nearpoint=i, dist=j)

【讨论】:

  • 感谢您的帮助。只需两个简单的问题 - i.如何衡量分布? ii.距离的单位是什么?是米还是公​​里?
  • “分布”是一个广义的术语,可以用不同的方式来衡量。您可以编辑您的问题以解释您的目标。一些空间分布或聚类的度量?单位是米;见?pointDistance
  • RobertH - 感谢您的宝贵帮助。我的最终目标是进行聚类,但在此之前我想研究空间分布。如何在 R 中完成?
猜你喜欢
  • 2013-09-09
  • 2016-11-02
  • 2012-04-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-01-04
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多