【QGIS基础操作】QGIS插件功能记录

本系列用于总结项目过程中用到的QGIS基础操作、分析方法

内容如下:

1. 线相交:将两矢量层在交点处产生点

2.缓冲区+相交:道路沿线100m的POI数量

3.距最近枢纽(线到枢纽):道路沿线最近的POI数量

4.按位置连接属性:用于分析道路相接道路

1. 线相交:将两矢量层在交点处产生点

输入两个相同的道路矢量图层,可产生所有的相交路线的交叉口点坐标

运行前->运行后:

2.缓冲区+相交

建立道路图层的缓冲区,距离为0.001时半径为100m,选择融合结果就是缓冲区中间的黑色线条被隐去,但是对于点图层的连接操作,其中的覆盖影响仍然存在

 

 通过相交两个图层将POI点连接至缓冲区,导出“相交”图层为csv格式

统计每个路段连接到的POI即可得到意义上的 “道路沿线100m的POI数量”。

不太美妙的一点是每个POI只能连接到一个道路上,即使是融合结果也只能连在最上面那条道路上

3.距最近枢纽(线到枢纽)

与距最近枢纽(点)的区别在于前者以线图层展示,后者以点图层展示

首先将用工具“提取顶点”生成路段的端点图层

导入大学POI(详情见另外两篇系列文章)

选择工具:距最近枢纽(线到枢纽),源点图层选择待统计的POI点图层,目标枢纽图层选择路段顶点图层,枢纽图层名属性选择路段顶点唯一索引——序号,计量单位选米。运行结果如以下第三个图所示:

 

 枢纽距离图层的属性如上所示,HubName为POI连接的路段序号,对序号出现次数进行统计即可得到路段连接的最近POI数量。(将该属性表导出,统计用到的python代码附于文末)

 4.按位置连接属性

该插件可用于分析路段相接路段的情况。

两个图层均选择南京路段,几何图形空间关系选择接触,连接类型选择(一对多)

连接出来的图层即为与道路相接触的道路,将其数据形式改变可用于后续分析

 

=========================================================================

统计每条道路连接的POI数量的python代码:

road_num = {} #建立字典

with open("枢纽距离.csv","r") as df:
    for line in df: #遍历文件
        list_tmp = line.split(",") #将文件每行按照,分隔成列表
        if list_tmp and list_tmp[-2] != "HubName": #第一行的hubname不进入统计
            if list_tmp[-2] not in road_num :
                road_num[list_tmp[-2]] = 1 #如果字典中没有则创建
            else:
                road_num[list_tmp[-2]] += 1

print(len(road_num))

with open("南京道路.csv","r",encoding="gb2312") as rf: #打开路况文件只读
    with open("南京道路_最近的大学数量.csv",'w',encoding="gb2312") as wf: #新建立匹配文件只写
        for line in rf:
            list_tmp2 = line.split(',') #list_tmp2就是rf的内容

            if list_tmp2[0].rstrip() in road_num: 
                list_tmp2.insert(1,str(road_num[list_tmp2[0].rstrip()])) #在list_tmp2第2列里插入字典里对应的值
            else:
                if list_tmp2[0] == "序号":
                    list_tmp2.insert(1, "大学poi") #标题栏填充
                else:
                    list_tmp2.insert(1,"0")
            wf.write(",".join(list_tmp2)) #list_tmp2以csv格式写入wf
  • 4
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值