# ***数据准备***
# 1.三维数据预处理
# 2.核心内容检查
2.1有无重复管线 管点
2.2有无断开管线 管点(尤其三通管线处未断开)
2.3三通弯头管点分类标注错误
2.4生成管线的起点和终点坐标
2.5管点的id的生成
2.6拿到SHP数据后对数据进行要素转点获取几何数据的XY坐标,拆分线表的起点终点XY坐标为QAQB RARB
2.7在navicat 中筛选出三通数据的点线表以及弯头数据的点线表
# 3.数据处理
3.1因为弯头数据以及三通数据没有和点表进行融合也就是弯头的点,三通的点没有关联到其他点比如三通有四个点相连的三个管线加上交点,弯头也是如此交点加相连的两个管线现在要把三通点表 以及弯头点表关联上其他的点,形成一条数据是一个点集方便后续导出CSV画图
3.2弯头点表新建两个字段sgs egs 代表弯头线表中起点startpid和终点endpid的同一个pointid 的重复数量因为方向矢量的关系有三种所以sgsegs 会出现11 20 02 三种情况如果sgs egs 和不等于2必定是数据错误需要纠正数据
3.3新建关联线表的起点终点XY坐标WAWB WCWD,先把1 1的这种情况下的WAWBWCWD进行关联 把弯头线表的QAQB RARB赋值过来,当SGS等于1是说明起点是交点应该把线表的RARB取过来赋值给WCWD,当egs等于1时说明终点是交点应该取线表的QAQB赋值给WAWB,当sgs等于2 egs=0时说明筛选出来有两条数据两条数据都是取RARB第一条结果赋值给WAWB 第二条结果赋值给WCWD sgs egs是 0 2 则是相反
3.4坐标在2.2处理完了接下来弯头点表继续新建wtsizeA wtsizeB wtsize 三个字段同理取出线表对应的size 给wtsizeA wtsizeB然后比较AB 取出最大的值给wtsize这样就能知道弯头数据中管径大的连管径小的弯头时大管径的半径了避免了大管套小管还是取小管半径出现穿模的问题了
4.4三通也是一样的处理sgs egs 不一样地方是这个和是3不是2了因为除去交点还有三个点所以存在12 21 03 30 其他的都是错的需要检查数据同理获取坐标SA SB SC SD SE SF以及size 这里就是四个字段了也是取出最大的管径作为三通的管径。
# 4.数据成果
经过上面的操作就得到两个新表分别是二通点表,一个是三通点表。二通点表包括点坐标与之相连的两根管线的另外两个点坐标(WA WB) (WC WD),三通则是点坐标与之相连的三个管线的三个点坐标(SA SB) (SC SD) (SE SF)如果含有四通和上面的操作方法类似