gojs 节点右键点击事件_SWMM快速建模方法(3)—建立管线上下游节点编号

    在SWMM中,管线需要输入上下游节点检查井编号,那么在GIS中可否实现自动获取上下游节点编号呢?思路是这样的,首先获得管线两端节点,然后对端点进行融合,删除重复的节点,最后根据坐标关系分别建立管线起点和终点与节点之间的联系。

    1. 先形成管线两端节点(实际41个):对于上一节形成的管线修正shp文件,选择DateManagement Tools—要素—要素折点转点工具—点类型(Both_Ends),形成管线折点shp文件,这里形成了78个节点。

2.再对重复节点删除:这里有两种方法,第一种方法是在管线折点shp文件的属性列表中添加X和Y坐标,DateManagement Tools—要素—添加XY坐标,然后删除XY坐标相同的节点,DateManagement Tools—常规—删除相同的—勾选XY坐标,删除后的节点还有44个,也即这种方法形成的节点数量还是与实际不符合。这里介绍第二种方法:构建缓冲区,原理是这样的,相连接的两个管线实际并严丝合缝连接在一起,也即两条线形成的端部节点并非完全重合,有一定的距离,可以分别对这两个节点画个圈圈即缓冲区,然后两个圈圈相交组合成一个大的圈圈,最后生成这个大圈圈的重心即为两条线端部相连接的唯一节点,当然这个唯一节点可能并非在管线上,但这没关系,后续还有解决的办法。

280c513ec8dc027c40e63a5d13c9152b.png

选择工具箱中AnalysisTools—邻域分析—缓冲区—线性单位300mm—融合类型ALL,形成缓冲区shp文件。这里的线性单位需根据CAD中绘图单位确定,比如CAD中以mm绘制管线,300这个数据是感觉着来的,也即两条管线如果不重合,缝隙间距约300mm,这个可以多尝试几次。

3adb71fd5c384c806bcfaacb43de7a1c.png

此时行的缓冲区为一个大的面图层,即所有的管线节点处画的大圈圈形成了一个大的面域,为了得到单个的节点,需要对其进行炸开操作,具体操作如下:

1)内容列表—缓冲区shp文件—右键选中选择编辑要素—开始编辑,进而使得该shp文件处于编辑状态;

2)然后上边工具栏空白处右键操作调出高级编辑工具栏;

3)接下来内容列表—缓冲区shp文件—右键选中选择全选,也即选择了整个面域作为炸开对象;

4)点击高级编辑工具栏—拆分多部件要素—停止编辑并保存,此时的缓冲区shp文件有一个面域形成了41个面,拆分就是把里面的圈圈分割成一个一个,至此删除并融合了管线节点形成了41个节点面。

677a5b5ac2d1683d0b476800b33354c7.png

3.将形成的41个面转化为节点,DateManagement Tools—要素—要素转点,将缓冲区shp文件转化为管线修正折点shp文件。随后对其添加XY坐标,同上。

4.对于两个几乎重合或本身就是重合的点而言,如何判断是否为一个点呢,最简单的办法是判断他们的坐标,单纯只匹配X坐标或Y坐标误差较大,比如X轴上的点X坐标始终都相同,但是点不同;其次,由于线端点始终在线上,而上述缓冲区形成的检查井节点未必在线上,就像线端点的X坐标是3.14,上述通过缓冲区形成的折点X坐标是3.1415,如何将这两个点匹配在一起呢,那么就需要对后者截断,只取3.1415中的3.14即可,这时候两个3.14就可以建立一一对应的关系了。再比如,管线起点坐标(2.1415,3.2658),管线起点处检查井坐标(2.1428,3.2673),按道理两个点应该是一致的,但是处理过程中出现了不一致,这时候需要拟合两者关系,通过建立文本字符串,管线起点字符串2.14-3.26,检查井字符串2.14-3.26,一次性的可以同时比对XY坐标,这时候两个数据一致了,就可以建立一一对应关系了。

5.建立管线修正折点,也即检查井处属性列表中“整合”文本字符串,通过字段计算器将X和Y坐标整合进该字段。X坐标和Y坐标均取整。

776dd047bfaba89107d5161ac2aeb6c3.png

在字段计算器中通过Python代码将XY坐标连接在在一起,连接符为-,代码如下:

def f(POINT_X,POINT_Y):

      a=str(POINT_X)

      b=a[:9]

      c=str(POINT_Y)

      d=c[:10]

      e=b+"-"+d

      return e

整合=f( !POINT_X! , !POINT_Y! )

代码含义是将X坐标和Y坐标均由双精度数据转化为字符串数据,然后字符串长度分别取9和10,也即X和Y坐标均取整数,然后再对这两个取整后的字符串合并在一起,之所以合并是为了增加匹配的精度,可以同时匹配XY数据。

6.对于管线采用同样的方法,在管线修正属性表中增加QX、QY、ZX、ZY、QZ、ZZ字段,前四个字段分别为起点和终点的XY坐标,后两个分别为起点坐标整合和终点坐标整合。

df3428b0bc3ab90136bf0172acd8e5e7.png

   7. 建立连接关系,也即一一对应关系,内容列表—管线修正shp右键选择连接和关联—连接,将管线终点整合ZZ和管线修正折点属性表中的整合建立一一对应连接。可以看出有3个管线没有匹配上,这是因为管线终点与检查井离得太远,按照上述方法拟合了也不行,这时候需要手动编辑建立关系。然后将该数据框整体导出形成管线终点对应shp文件,同理在此文件基础上再对管线起点整合QZ和管线修正折点整合一一对应,建立连接关系,之后再次形成数据框,形成新的管线一一对应shp文件。

cf3975ee8aa8f495f7d5a173e67c9e16.png

0525c3fa91b4605f35a121a7e89f188d.png

    对于没有建立一一对应关系的检查井标号,需要处于编辑状态下手动需填写井的编号,当然这个工作量很小。

至此,管线上下游编号建立完成

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/550097.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

android 设置setmultichoiceitems设置初始化勾选_Linux内核启动:虚拟盘空间设置和内存管理结构初始化...

1. 设置虚拟盘并初始化接下来main函数将对外设中的虚拟盘区进行设置。 检查makefile文件中"虚拟盘使用标志"是否设置, 以此确定系统是否使用了虚拟盘(假设有虚拟盘,大小设置为2 MB)。 操作系统从缓冲区的末端起开辟2MB内存空间设置为虚拟盘&am…

centos7 Failed to start iptables.service: Unit not found

在CentOS 7或RHEL 7或Fedora中防火墙由firewalld来管理 添加 firewall-cmd --zonepublic --add-port80/tcp --permanent (--permanent永久生效,没有此参数重启后失效)firewall-cmd --zonepublic --add-port1000-2000/tcp --permanent 重新载…

关闭mysql服务的方法有哪些_MySQL--启动和关闭MySQL服务

介绍了启动服务器的两种方式,以及可能遇到的问题第一种:系统服务1)可以通过右击方式一步步找到服务右击计算机->选择管理->找到服务,然后双击打开,找到mysql,我安装的是mysql8.0所以服务的名称显示是mysql80&…

[浪风分享]很简单的查看电脑所支持的最大内存的方法--磨刀不误砍柴工

硬件操作系统====决定支持的最大内存  在开始---运行处输入cmd(或者按住winkdyR键输入CMD),打开命令窗口,输…

mysql mysar_使用mysar分析squid日志(日志存mysql)

需要的包:php5-mysql #安装后php才能联系数据库php5-commonphp5-cli #执行php脚本需要mysql-server开始安装:下载最新的mysar包tar zxvf mysar-2.0.6.tar.gz -C /usr/local-#将mysar解压到/usr/local下ln -s /usr/local/mysar/etc/mysar.apache /etc/apache2/…

mysql语句怎么记_Mysql常用语句(记一下,免得忘)

1、去掉某列记录中的特殊字符例如:/r,update test_table set keyreplace(key, char(13), );其他特殊字符类似。2、查询重复的记录Select weixinid From dianxin_highda_detail Group By weixinid Having Count(*)>1;3、从txt向数据库导入记录load dat…

ZSH终端 乱码问题

参考链接 CSDN 转载于:https://www.cnblogs.com/eat-too-much/p/11216073.html

mysql将数据导入mgr_MySQL 8.0.20 MGR数据迁移过程以及注意事项

1.背景近期由于业务调整,需要将Windows Server 2008 MySQL5.5数据库迁移到Windows Server 2012 MySQL8.0集群MGR中,由于实际部署时,有一台机器硬盘损坏,只能构建双节点MGR,在迁移以及应用迁移过程中遇到许多参数与迁移…

安装 搜狗输入法 ubuntu 18

命令 sudo dpkg -i sogoupinyin_2.2.0.0108_amd64.deb sudo apt --fix-broken install 转载于:https://www.cnblogs.com/eat-too-much/p/11216083.html

devstack mysql_DevStack部署OpenStack开发环境 - 问题总结

建议在使用DevStack搭建OpenStack开发环境前,先安装好开发工具包组.特别是gcc,主要一定是在yum update -y 之前,否则更新完系统后,在安装开发工具包会出现很多依赖包因为版本更新而无法安装.要部署OpenStack需要注意若电脑配置不高,我自己的经验是先最小化或基本Web安装,然后,再…

docker+mysql创建用户名密码_docker构建私有仓库并设置仓库用户和密码

#搭建私有镜像仓库[rootdocker_test opt]# docker pull registryUsing default tag: latestlatest: Pulling from library/registryGet https://registry-1.docker.io/v2/library/registry/manifests/sha256:b1165286043f2745f45ea637873d61939bff6d9a59f76539d6228abf79f87774…

linux 安装RabbitMQ 注意版本

Linux下安装RabbitMQ 一下载依赖包 1.下载Rabbitmq 所依赖的环境gcc、erlang包和rabbitmq包,这里演示是网上下载gcc 依赖 1yum install build-essential openssl openssl-devel unixODBC unixODBC-devel make gcc gcc-c kernel-devel m4 ncurses-devel tk tc xzerla…

mysql更新写入数据_七、MySQL插入、更新与删除数据

存储在系统中的数据是数据库管理系统(DBMS)的核心,数据库被设计用来管理数据的存储、访问和维护数据的完整性。MySQL中提供丰富的数据管理语句,包括插入数据的INSERT、更新数据的UPDATE以及删除数据的DELETE语句。7.1、插入数据为表的所有字段插入数据使…

mysql语句随机数_程序生成随机数与SQL语句生成随机数

随机数可以通过程序生成,也可以通过SQL语句生成。通过程序生成随机数时一般采用硬件的编号时间作为种子,这种方法在瞬间插入数据库N条数据的时候会影响随机数的效果,生成很多相邻的插入值相同。所以频繁插入时可以使用SQL语句的内置函数生成随…

BPM的四大主要类型

随着网络的发展,移动BPM、社交BPM、云端BPM将顺应市场需求,成为BPM发展的新趋势,最终成为企业即时管控有效工具。BPM将不断促进制造业信息化的转型与发展。所以很少人会否认业务流程管理(BPM)的价值,更不用说给BPM一个全面定义。根…

jquery.js把我的时间修改了为什么?_电气老手在PLC程序调试修改时的几个必备小窍门,看你知道几个?...

我们工程师在设计程序,调试程序,修改程序的时候,为了方便以后对程序的理解,最好是对程序进行注释,能够对程序进行注释也是比较好的一个习惯。为什么这么说呢?因为我们人的脑容量是有限的,或多或…

rpm命令包安装mysql_CentOS7使用rpm包安装mysql 5.7.18

说明本文写于2017-05-20,使用MySQL-5.7.18。操作系统为64位CentOS Linux release 7.2.1511 (Core),以桌面形式安装。卸载MariaDBCentOS7默认安装MariaDB而不是MySQL,而且yum服务器上也移除了MySQL相关的软件包。因为MariaDB和MySQL可能会冲突…

mysql phpmyadmin远程_phpmyadmin登录远程mysql数据库

之前只用phpmyadmin登录本地的mysql,管理另一个远程数据库的时候发现,单纯用命令行处理字符串、换行符实在是不好使,所以配置了远程登录mysql,很简单的问题结果没有搜到合适的方法,所以记录下我的配置方式。phpmyadmin…

远程创建的git仓库,第一次与本地仓库进行联动,需要强制推送。

简介 远程创建的git仓库,第一次与本地仓库进行联动,需要强制推送。 参考链接 cnblog 转载于:https://www.cnblogs.com/eat-too-much/p/11220873.html

mysql自带的卸数工具_数据库卸数必备工具下载-数据库数据导出工具(DBexport)下载v1.3官方版-西西软件下载...

DBexport是一款专业的数据库数据导出工具,支持多数据源导出,目前已测试Oracle,MySQL,SQL_SERVER无明显BUG,目前支持图片种的数据库,支持扩展功能,只要有对应的数据库jar和jdbc等信息&#xff0c…