马世龙,冯松松,郑素文
(1.河南测绘职业学院,河南 郑州 450046;2.河北省地质矿产勘查开发局第九地质大队,河北 邢台 054000)
在城市建设过程中,道路修建、建筑施工、水利工程建设等行为都会涉及到对地面的开挖。如果开挖行为不当,可能会导致地下管网遭受严重破坏,进而影响整个城市的正常运转。随着城市管线数字化工作的不断推进,国内许多城市住建及城管部门已经建立了相对完善的城市管线数据库,以及成熟的管线调查、生产和更新机制,这为深化数字应用、提升数字治理水平提供了良好的平台。基于以上数据基础以及GIS(Geographic Information System,地理信息系统)算法研究工作的不断深入,一些学者使用三维GIS 软件进行了二次技术开发[1-2],对地下管网数字化管理以及开挖平面和深度对管网整体影响情况进行预测,取得了较好的成果,如我国学者王海涛等[3]利用ArcEngine 软件模拟地下管线开挖,详细介绍了算法的实现过程,并通过工程实例验证该算法可行性;宋锟等[4]以SuperMap 软件为基础,建立了城市三维综合管网信息系统,实现了城市地下管网的综合数字化管理;王卫东等[5]使用Skyline 和Arcgis 软件设计了地下管线二维、三维一体化的信息管理系统,为地下管线的可视化管理提供方法。然而上述商业软件在使用过程中存在运行成本高、程序冗余等问题。基于此,本文在已有成果研究的基础上,兼顾开挖工作中遇到的一些实际情况及系统使用兼容性,提出一种基于PostGIS 的管网开挖计算的新方法,为城市地下管线开挖前的安全决策提供科学依据。
地下管线开挖计算是基于地面开挖的范围和开挖深度,分析开挖空间内是否存在可能受开挖影响的地下管线。本文开挖计算设计的主要流程如图1 所示。
图1 管线开挖分析流程
将开挖区域和地下管网数据用数学集合的形式表示,那么与开挖平面相交管线集的计算公式为:
式(1)中,集合A表示开挖平面范围,集合P表示所有管线数据,Φ表示开挖范围与管线在平面上的交集。
Φ集合中管线与开挖区域A 存在三种关系,如图2 所示。图2(1)表示管线完全处于开挖平面范围内,此情况下分析计算时,仅考虑管线的起点与终点在开挖区域内的位置;图2(2)表示管线的一端位于开挖区域内,另一端则位于开挖区域外,这种情况需要分别求出管线起终点以及管线与开挖平面相交点的坐标;图2(3)表示管线两端均穿过开挖区域,该情况下只需计算出管线与开挖平面相交处的两个交点坐标即可。
图2 俯视视角下管线与开挖面的关系
当管线完全处于开挖平面内,管线起点和终点的坐标可作为开挖计算的临界条件点。而对于开挖平面与管线部分相交的问题,如图2(2)中的情况,不仅要计算出开挖平面内所有管线起点、终点以及与开挖平面交点处的坐标,还要进一步判断开挖平面内管线端点的类型,并把判定结果和交点坐标作为开挖计算的临界条件点。对于图2(3)中与开挖面完全相交的情况,则直接把计算出两个交点坐标作为临界条件点。通过以上三种情况的分析,可得出不同情况下最终临界条件点γ。
管线最浅埋深通常是指地下管线上壁的埋深。当计算出开挖平面临界点的坐标后,还要进一步计算临界点的最浅埋深。一般情况下,资料库可以直接获取到的管线埋深,是指管线埋设处从地表面到管线管底的垂直距离。因此,需要根据管线的管径来计算管线最浅埋深,计算公式为:
式(2)中,h表示管线埋深,dn表示管径尺寸,min(d)表示最浅埋深。大多数情况下,管线管壁较薄,内径和外径大小可视为一致,直接使用公式(2)即可计算最浅埋深。如果管壁较厚,测量的内径和外径不相等,则需要根据管壁厚度对公式(2)做适当调整。
管线起点和终点的埋深,可根据资料库中已有的管线属性信息直接获取。而对于临界点的埋深,则需要根据管线埋设坡度以及起点或终点与临界点的位置关系进行估算。根据图3 中管线埋设示意图,可推算出交点埋深的计算公式,如式(3)~(4)所示。
图3 管线纵断面视角埋深情况
式(3)~(4)中,P代表交点坐标,P(a)代表管线起点坐标,P(b)代表管线终点坐标,Distance 代表两坐标点之间的平面距离,i代表从b点至a点管线的埋设坡度,h代表交点处的埋深,h(a)代表管线起点埋深,h(b)代表管线终点埋深。
对开挖结果进行分析计算时,除了要考虑管线最浅埋深和地面开挖深度外,还要考虑保护管线安全的最浅覆土深度。所谓的覆土深度是指埋地线道管顶至土层表面的垂直距离[6]。如果开挖过深,会造成覆土深度不符合管线铺设标准,从而容易导致地下管线被外界因素损坏。根据2.3 计算出的最浅埋深、管线开挖深度以及最浅覆土深度铺设标准,可得出最终的开挖结果,如式(5)所示。
式(5)中,min(d)表示最浅埋深,F表示最浅覆土深度标准,D表示开挖深度,O表示最终开挖对管线影响。当O≥0 时,表示本次开挖地下管线不受影响,当O<0,表示开挖结果会影响到地下管线安全。
PostGIS 是对象关系型数据库系统PostgreSQL 的一个扩展,PostGIS 提供空间对象、空间索引、空间操作函数和空间操作符等空间信息服务功能。同时,PostGIS 遵循OpenGIS 的规范。PostGIS 的版权被纳入到GNU 的GPL 中,也就是说任何人可以自由得到PostGIS 的源码并对其做研究和改进[7]。目前PostGIS被广泛应用于道路流量分析[8]、遥感数据检索[9]、矢量瓦片组装[10]等方面的研究上。
本文实验采用我国某市主城区燃气管线实测数据,管线的分布情况如图4 所示。采用的管线数据量共有4 699 段。坐标系采用2 000 国家大地坐标系(简称,CGCS2000),高程基准采用1985 国家高程基准,原始数据为*.mdb 数据库格式。管线数据属性包含了管线的编号、起止点编号、起止点高程、起止点埋深、管径、材质等内容。
图4 某市主城区管线
对于本文算法的实现和使用而言,理论上采用的硬件性能越好,计算的效率会更高效。本文实验采用2 核CPU、4G 内存的服务器作为硬件,操作系统为CentOS8,基于操作系统安装Postgresql12.4 和PostGIS3.0.6,验证在此配置下计算结果的准确性以及资源的消耗情况。
(1)通过ArcGIS 或者其它工具使原始数据库中mdb 格式的管线数据,转化为shapefile 格式数据。通过ogr2ogr 工具使shapefile 文件导入到目标数据库中。
(2)为了能提高查询效率,对数据创建索引,常见的空间索引包括RBush 和GIS-T。本文在此使用GIS-T 索引,主要代码如下:
(3)根据目标区域计算相交的管线。主要代码如下:
(4)根据上一步骤的st_intersection 命令对相交管线进行分类。分别查询出每段管线起点和终点的经纬度、埋深、管径等情况。为提升程序在不同区域通用性,本文实验采用CGCS2000 地理坐标,如果市政工程中遇到开挖面或管线是平面坐标的情况,可通过ST_Transform 函数对平面坐标值进行转换,从而得到一致的坐标系。
(5)根据不同相交类型,计算临界点处于管线比例,计算不同情况的最浅埋深。
(6)生成最终的开挖结果。
本文选取12 块不同位置、大小、形状、开挖深度的开挖区域,使用上述方法进行计算,得出结果见表1 所示。
本文通过使用PostGIS 的空间计算能力以及一些数学计算方法,可以准确高效地计算出地面开挖对城市地下管线的潜在影响,减少开挖前现场勘测工作,提高管网开挖安全性。并且PostGIS 是开放的计算模块,避免商业软件对平台环境的限制。但值得注意的是,本文分析结果受原始测量数据准确性影响较大,地面开挖实际行为还受到水文地质等条件的限制,本文的分析成果可以作为管线开挖的一个必要不充分条件。