让QGIS从“数据源展示器”走向“路网编辑器”
在交通领域,数据的统一编目编码是一个绕不过去的好习惯,尤其是以node / link文件表征的道路网络 ,例如node 1号的坐标是(xxxxx,xxxxx),后续所有出现node 1号的地方,这个坐标都必须保持一致,这样在link文件中,也只需要以node 1号这个名称去表征对应节点,而不用再次存储坐标。
由于对QGIS 功能的不熟悉,上篇导出的临时图层数据只有点位的坐标,而丢失了点位的统一编号。
这虽然在QGIS功能里可以通过复制要素表的方式来解决,但是在实际操作时,本着不想动脑子,手上麻烦点也行的原则,也可以通过检索原始文件,还原点位编号的形式,在excel工具的帮助下,在原始node文件里找到临时图层各点的编号,并存储在对应的那一行。这就是:
一个用低版本excel的小技巧(VLOOKUP平替)
VLOOKUP工具贼好用,但是老版本的excel不能完成这个工作
通俗来说,现有的工具LOOKUP函数,只能根据一个条件,找一个数据
类似于,我这儿有全年级的考试成绩
LOOKUP函数只能是,你问我 奥特曼同学语文考多少啊,在奥特曼的名字后面,告诉你一个结果;然后再得问,奥特曼同学数学考多少啊,再输出数学成绩,不能一次问好几门成绩
VLOOKUP工具可以一次问好几科成绩,但是老版本的excel还没有这个函数,为了这个工具装行的office全家桶也不值得,我懒。
此时需要把多列数据合并为一列,用逗号分隔,等找到对应数据,输出后,再展开为多列不就行了嘛
也就是我之前写过的
先用 & 把多列合并成一列,完成任务后再用excel-数据-分列-以“,”分隔,拆散,完成类似于批量筛选+数据提取功能。当然,此处用逗号分隔只是因为逗号方便,别的东西也完全ok
最后说说LOOKUP函数怎么写
LOOKUP(①查找值,②查找值所在区域,③返回的结果)
=LOOKUP(Q2,B:B,P:P)
也就是说 R2单元格里面东西是,我在 B列 搜索Q2格的内容,如果找到了,就把对应的 P列 数据放进R2单元格
也就是,我在node文件的 node_id 字段搜索 Q2格子里的45号节点,找到后,把P列的45号节点坐标填入R2 格子
最后再把 R2 格子里的坐标从逗号处拆开,那个就简单了
至此,我们就算完成了数据准备的所有工作
目前
我们手上有经过编辑的路网
这个路网以node / link文件的形式存储
包含路网的连通关系、路段长度、名称、等级。。。