计算R中的大圆距离

时间:2019-05-21 15:12:54

标签: r matlab latitude-longitude great-circle

过去,在MATLAB中,我使用大圆弧距离计算来计算给定点的纬度和经度的点的索引。我将与您分享我的代码。对于R中的等效函数是什么样子还是on是否存在,我感到很困惑。我发现一些代码可以显示两点之间的距离,但是没有任何代码可以帮助我索引数据。

这是我的MATLAB代码!

%% Define latlon grid and coordinates (lon follows lat) 

lon_grid = transpose([40.1 40.12 40.14; 40.3 40.32 40.34; 40.5 40.52 40.54]);
lat_grid = transpose([30 30.2 30.4;30.02 30.22 30.42; 30.04 30.24 30.44]);
coord = [30.4125 40.4043];

%% Compute great circle distance
dist = distance('gc',coord(1),coord(2),lat_grid,lon_grid);

%% Retrieve index of minimum distance
[value,array_index] = min(distance(:));
[i,j] = ind2sub(size(dist),array_index);

“ dist”计算在这里有点像派对。您应该能够使用提供的代码重现结果,并查看我希望在R中实现的目标。

同样,我可以得到以下R中的可比函数: 纬度点网格 经度网格 对于我的位置的经度和纬度,以度为单位,为2分。

1 个答案:

答案 0 :(得分:0)

也许可行:

library(geoshpere)

dist<-apply(coord, 1, FUN=function(p) distHaversine(p, lonlat_matrix))