计量工作室

stata计算shp文件中的最近距离

2020-04-01  本文已影响0人  咳咳唐

距离计算中常会需要求点与点、点与线,甚至设置点与面之间的最短距离。ArcGis本身可以完成这样的工作,本文将要介绍的是基于stata命令的计算方法。

案例:我们有一个包含特许学校位置的数据集mnch和一个包含湖泊边界的数据集mnlakes,我们希望找到离每个学校最近的湖泊。

首先绘制一下具体的空间分布情况

use http://pped.org/mnch, clear
merge using http://pped.org/mnlakes
twoway area lat lon, nodropbase cmiss(n) col(navy) || scatter y x, msymbol("o") mcolor(red) msize(small) mlcolor(black) legend(position(11) lab(1 "lake") lab(2 "school")) scheme(burd)
image

最小距离的计算

use http://pped.org/mnch, clear  // 学校点数据
local n = _N // 学校的总个数
g double m = .
merge using http://pped.org/mnlakes  // 湖泊面文件

qui forvalues i = 1/`n' {
    vincenty lat lon y[`i'] x[`i'], v(d)  //计算所有湖泊到每一个学习的距离
    su d, meanonly
    replace m = r(min) in `i'  // 提取最小距离
    drop d
}

最终得到的变量m便是每个学校距离湖泊的最短距离。也可用同样的思路计算空间权重矩阵,这里就不再详述。



往期回顾

  1. 使用stata的twoway系列命令绘制地图
  2. 如何使用R、matlab、arcgis进行趋势面分析
  3. 使用R进行空间自相关检验
  4. 空间权重矩阵的那些事(八)-球面距离权重矩阵
  5. R中空间权重矩阵的处理
  6. 使用R进行地图可视化
  7. 使用QGIS进行地图可视化
  8. 南海九段线可以这样处理
  9. Stata 绘图也可以很好看
image
上一篇 下一篇

猜你喜欢

热点阅读