GIS在管网数据中的很重要的一个应用方向就是”管网空间分析“,其中包括连通性分析、上下游分析、爆管分析等等。下面是我使用postgis来实现“管网连通性分析”的解决方案,分享给大家,以便相互学习。
使用该分析之前确保已添加扩展postgis、pgrouting
CREATE EXTENSION postgis;
CREATE EXTENSION pgrouting;
导入数据
将数据导入到postgreSQL数据库,我是从ArcGIS直接导入的。
创建拓扑
这里我用的管网数据表名为pipe
创建拓扑,生成pipe_vertices_pgr,该操作类似于ArcGIS中创建路网数据。
为pipe添加管段起始编号pgr_source、结束编号pgr_target、管段长度pgr_length三个字段,其中管段长度是用于分析的权重值。
--添加起点id
ALTER TABLE postgres.pipe ADD COLUMN IF NOT EXISTS pgr_source integer;
--添加终点id
ALTER TABLE postgres.pipe ADD COLUMN IF NOT EXISTS pgr_target integer;
--添加权重值
ALTER TABLE postgres.pipe ADD COLUMN IF NOT EXISTS pgr_length double precision;