纬度和经度明智的分布

时间:2018-02-17 03:32:32

标签: r google-maps

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

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个点。
  2. 因此,最终数据框看起来像(最近点)

    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. 代码如下 - 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)
      

      但这不像我的最终输出。我希望数据帧格式与距离。

1 个答案:

答案 0 :(得分:0)

  

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

您可以从输出中创建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)