有人在后台留言问我,使用python通过ezdxf自动生成管口方位没有续集了吗?和大家汇报一下,整个程序我都重写了,代码可能长到2000多行,在这将近一年多的时间了,我陆陆续续思索了很多,做了很多尝试,也使用了不同的模块,最近算是定稿了。其具体原理是通过调用PDMS的DRAFT全自动化导出底图,在底图上再做标注,这样这个程序的通用性就强了很多,不管什么样的设备,程序后期处理的只关注管口方位的处理,而不用花大的精力去处理整个设备的投影。
最近在这些管口方位数的处理用了两个新的模块pandas和numpy,想和大家分享几期内容短小而十分有趣的经验,就叫“剑走偏锋”主题系列吧。
JSON
数据记录管口方位数据
JSON:一种与开发语言无关的、轻量级的数据存储格式,全称JavaScript Object Notation,一种数据格式的标准规范,起初来源于JavaScript这门语言,后来随着使用的广泛,几乎每门开发语言都有处理JSON的API,当然python也不例外。
下面的截图是通过PDMS调用PML提取出来的一个设备的管口方位数据(按json数据结构存储),在这个数据表中记录了如下数据:
项目编号:"projid":"Proj1",
项目代号:"projcode":"XAA",
尺寸长度单位:"unit":"MM Bore MM Distance",
MDB数据库:"mdb":"/MDBDB",
设备位号:"eqpTag":"/TK202",
设备定位:"eqpOriPos":"E 487500 N 239500 U 9900",
设备体的空间起始:"eqpLovl":"484200 236200 -450 490800 242800 45610",
管口信息:"Nozzinfo":
由上图可以看出json数据可以将多种信息(并非一定要规格的表格式数据)可以存储在同一json文件里。
JSON数据的在线
查看数据的结构及记录
使用浏览器在线解析
python读取数据
本次使用的是Jupyter Notebook
json数据实际上是类似字典的存储结构
将Nozzinfo(管口信息数据)读取进”大名鼎鼎”的pandas中对数据的处理就可以“随心所欲了”。比如说将上面中的管口坐标转化成XYZ坐标。
长按识别二维码获取更多