专栏名称: 锐多宝
遥感技术教程、资讯与前沿论文
目录
相关文章推荐
新闻广角  ·  李飞飞团队训练出媲美DeepSeek ... ·  2 天前  
新闻广角  ·  默沙东:暂停向中国市场供应HPV疫苗 ·  3 天前  
新闻广角  ·  微信又上新功能!网友:年度最有效功能 ·  3 天前  
51好读  ›  专栏  ›  锐多宝

QGIS计算省会城市距离并绘制OD线

锐多宝  · 公众号  ·  · 2024-08-26 23:31

正文

有学员问如何计算城市之间的距离矩阵,前面讲过的我看是用ArcGIS PRO做的,这次使用QGIS做一下。

省会筛选

从1:100万基础地理数据库中可以筛选省级行政单位地名,也就是省会所在地。

选取省会点

上图的代码:

 "CLASS"  =  'AB' 

将选取的省会进行数据的导出,另存为一个新的GeoPackage,也就是QGIS的数据库。

在QGIS中将选择的省会点另存

由于1:100万基础地理数据库包含中国周边地区,存在部分国外的点,这里我们打开属性表,然后启动编辑,删除非国内省会的点。

小技巧:在AGNP图层中,有GNID字段是中国的行政区划代码,在这里把行政区划代码为空的选中,就是国外的点了。

点击铅笔按钮,启动编辑,删除国外的点

选几个点叠加中科星图数据云的底图查看一下,位置匹配的还是非常准确的,1:100万基础地理数据库中省会地名点的位置就是省政府所在地。

山西省政府
河北省政府
北京市政府

距离矩阵计算

QGIS中有专门的距离矩阵计算工具。从Vector菜单中Analysis Tools找到Distance matrix工具打开,即可计算距离矩阵。

Distance matrix工具参数设置

对于省会城市距离矩阵计算,在参数设置中,Input point layer和Target point layer均设置为前面导出的省会地名点图层即可。为了方便查看是那个城市到哪个城市的距离,这里Input unique ID field和Target unique ID field都选的NAME字段,也就是各省的名称。

Output matrix type,这个参数指定了输出距离矩阵的样式:

  1. Linear (N * k x 3) distance matrix :

  • 这种类型的矩阵为每个输入点报告到_k_个最近目标点的距离。输出矩阵由多达_k_行组成,每行包含三个列:_InputID_, TargetID 和 _Distance_。
  • Standard (N x T) distance matrix :

    • 这是一个标准的矩阵类型,生成的就是常规意义上的距离矩阵,和我们平时看到的一致。
  • Summary distance matrix (mean, std. dev., min, max) :

    • 这种类型的矩阵为每个输入点报告其目标点的距离统计信息,包括平均值、标准偏差、最小值和最大值。
    使用距离矩阵工具进行计算

    三种距离矩阵输出结果

    Linear (N * k x 3) distance matrix,结果是线性的,fid字段是默认的,每个矢量要素都有,剩下的三个字段分别是起点、终点ID,还有它们之间的距离,单位是“米”。

    Linear (N * _k_ x 3) distance matrix

    Standard (N x T) distance matrix这个就是我们平时常见的距离矩阵了,看着更舒服一些。

    Standard (N x T) distance matrix

    Summary distance matrix (mean, std. dev., min, max)这种就是对距离矩阵进行汇总的结果,没有每个城市之间的具体距离,输出的是统计的均值、标准差、最大最小值结果。

    Summary distance matrix (mean, std. dev., min, max)

    结果验证

    使用QGIS中的测量工具对计算结果进行了验证对比,结果表明,QGIS距离计算结果单位为米。

    计算结果验证

    绘制OD流线

    获取起点终点坐标

    给省会地名点计算x,y坐标,用来准备挂接得到起点坐标。

    给省会地名点添加x,y坐标

    检查发现,距离矩阵Linear (N * k x 3) distance matrix生成的点要素为终点,在这里之间使用字段计算功能得到 to_x to_y 两个字段,也就是终点坐标。

    计算终点的坐标

    在省会最临近矩阵图层图层属性中设置挂接,将省会地名点图层的属性表挂接过来,以获取起点XY坐标。

    使用字段计算器将省会地名点图层的xy坐标计算到省会最临近矩阵图层,计算得到 from_x from_y 两个起始点XY坐标。

    使用字段计算器将省会地名点图层的xy坐标计算到省会最临近矩阵图层

    从图层属性中取消挂接,这样我们就得到了带有起终点XY坐标的属性表,有了这个属性表,我们就可以构造OD线了。







    请到「今天看啥」查看全文