APP下载

自动填报技术在乌鲁木齐建筑物承载体普查中的应用

2024-01-08李宝明徐玲

城市勘测 2023年6期
关键词:图斑层数外业

李宝明,徐玲

(乌鲁木齐市城市勘察测绘院,新疆维吾尔自治区 乌鲁木齐市 830018)

0 引 言

2018年10月,习近平总书记在中央财经委员会第三次会议上专门研究提高自然灾害防治能力,部署安排将实施“灾害风险调查和重点隐患排查工程”作为提高自然灾害防治能力“九项重点工程”的第一项基础性工程,开展全国自然灾害综合风险普查。后经国务院批准,决定于2020年至2022年开展第一次全国自然灾害综合风险普查工作。在普查工作中,房屋等建筑物作为承灾体,因其数量多、情况复杂及与人民生产生活密切相关等特性,是本次全国自然灾害风险普查工作的重点之一。乌鲁木齐市第一次全国自然灾害综合风险普查建筑物调查项目从2021年至2022年实施,按工作要求,以自治区建设厅统一的房屋建筑普查工作平台为作业平台进行普查,该平台的后台基底数据为高分辨率卫星遥感影像图层和依托高分辨率卫星影像采集的疑似建构筑物轮廓图层(任务图斑),系统中建筑物仅包含轮廓信息,其他建筑物基本信息、建筑信息、抗震设防信息、使用情况、房屋建筑照片等需要实地调查、拍照,调查软件平台包括基于B/S架构的电脑端和基于Android的App客户端。

在乌鲁木齐市历年的相关地理信息建设项目中,积累了一定数量的相关数据,如结构、概略建筑面积、层数、两违(指违法用地和违法建设行为)数据、农村房屋安全隐患排查整治数据、兴趣点等,这些数据包含了大量的普查任务所需信息,能将这些数据利用好,提前将已知的信息数据填入普查系统数据库,待外业实地普查时,只进行现场核实和个别属性信息普查,则可极大地减轻外业普查工作量、提高普查工作效率。但矛盾点是普查软件平台由省级建设主管部门提供,仅开放B/S架构的网页前端界面和基于Android系统的移动端系统,无批量数据统一提交填报接口,仅能通过人工逐条比对填报。

因此,如何将收集到的基础地理信息数据、违法用地和违法建设行为数据、农村房屋安全隐患排查整治数据和其他可利用专题信息数据在普查系统中进行自动化填报,形成外业普查核实的基底数据,最大限度减轻外业普查工作量、缩短普查工期是本文的研究核心内容。

1 网络自动填报技术

Selenium是一个用于Web应用程序测试的爬虫工具。利用开发语言(Java、C#、Python)Selenium、WebDriver开发的工具可以模拟人工动作直接运行在常见浏览器中,其动作根据程序的控制实现完全的拟人化操作,就像真实用户在操作一样,目前支持的浏览器包括IE,Mozilla Firefox,Google Chrome、Opera等[3]。因此,Selenium+WebDriver常用于B/S架构软件系统的测试和网络数据爬取,基于该技术近年来的相关研究也较多,如高艳利用Selenium框架爬取了互联网中岗位大数据并进行了统计分析[4],侯志江研究了基于Selenium WebDriver自动交互式数据采集技术进行情报数据采集的可行性[5]等。

本文中,采取逆向思维,基于Python和Selenium进行技术开发,实现网页自动化打开、目标信息自动填报、自动提交功能,即将前步中经空间分析运算形成的包含了结构、层数、建筑物名称、概略建筑面积、建筑高度、地址等普查任务所需绝大部分信息的普查任务图斑数据,按程序进行自动化填报。

2 总体技术路线

本文目标为利用网络自动填报技术,根据已有地理信息数据对普查任务数据进行逐条自动化地预填报,将一部分普查任务转变为核实任务,减轻外业普查工作量、缩短普查周期,总体技术思路为,以基础地理信息数据、违法用地和违法建设行为数据(两违数据)、农村房屋安全隐患排查整治数据、兴趣点数据、地址数据和普查任务图斑为输入数据,利用相交分析、空间拓扑分析和空间统计等空间分析技术,将普查任务所需的结构、层数、建筑物名称、概略建筑面积、建筑高度、地址等信息挂接在普查任务图斑上,再基于Selenium、WebDriver网络爬虫技术研发程序,以普查任务图斑的编码号为关联信息,打开B/S结构的普查平台填报页面,实现普查信息的自动化填报,形成外业普查核实基底数据,将部分外业普查任务转变为内业前置工作。

总体技术流程如图1所示。

图1 总体技术路线图

3 关键代码及实现

在利用Selenium爬虫技术开发过程中,主要应用到的属性和方法包括对象元素定位、对象元素操作、鼠标键盘事件模拟等。对象元素定位方法主要用于定位B/S结构系统的网页元素,以便后续对该控件进行自动化操作,主要方法包括按要素ID号查找(find_element_by_id)、按要素名称查找(find_element_by_name)、按要素CSS属性查找(find_element_by_css)和按要素类名称查找(find_element_by_class_name)等;对象元素操作是对定位到的对象要素进行操作,主要方法包括文本框内容清除(clear)、文本框内容输入(send_keys)、要素点击(click)、要素属性获取(get_attribute)、要素选择(select_by_index、select_by_value等);鼠标键盘事件模拟是模拟鼠标或键盘对定位到的要素进行操作,主要包括ActionChains类封装的鼠标右击、双击、悬停、拖拽等功能和Keys类中封装的模拟键盘动作(send_keys)。

自动填报功能的程序编写过程中,编写的关键过程函数有目标数据定位查找、数据自动填报和成果提交,关键过程代码如下:

Def upload_auto()

{

For datanum =1 to datacount:

{

driver.find_element(By.ID,"房屋编号").send_keys(图斑编号)

driver.find_element(By.ID,"按编号查找").click() #按普查图斑编号查找并定位要素

……

driver.find_element(By.XPATH,"//button[text()='调查']").click() #查找到调查按钮并点击,进入填报页面

driver.find_element(By.ID,"地址ID").send_keys(地址) #填写地址;

driver.find_element(By.ID,"权利人").send_keys(权利人姓名) #填写权利人信息;

……

driver.find_element(By.XPATH,"//input[@id='层数' ]").send_keys(层数) #填写层数

if 结构类型 = "钢筋混凝土结构": #选择结构类型

driver.find_element(By.XPATH,"//input[@id='钢筋混凝土结构' and @name='结构']/..").click()

driver.find_element(By.ID,"调查面积").send_keys(面积) #填报面积

…… #其他信息的填报

driver.find_element(By.ID,"保存提交").click() #单击保存进行提交

driver.find_element(By.ID,"返回").click() # 单击"返回"按钮,返回到查询界面,进行下一条

}

}

4 结 语

第一次全国自然灾害综合风险建筑物普查项目是国务院近年来开展的重大专项普查项目,任务量大,项目工期短,项目质量控制难度大[6],如何结合好城市地理信息建设过程中积累的各类数据资源,变“普查”“调查”为“核查”,最大限度地减轻外业普查时的工作量,缩短项目周期,提高普查质量,是值得研究的问题,本文利用地理信息空间分析技术和网络爬虫技术,将乌鲁木齐市历年积累的与普查相关的地理信息数据资料应用于本次普查任务,将与自然灾害综合风险建筑物普查相关信息进行了提取组合,并实现了将这些信息在普查系统中的自动化填报,将原本的大部分外业普查工作变成了核查,根据项目实施情况,现场普查时间平均缩短了二分之一左右,尤其是农村中的无人院落,极大地减轻了外业普查工作量,缩短了项目普查周期,效果明显,为其他具有类似需求的普查项目的开展提供了一定参考经验。

猜你喜欢

图斑层数外业
地理国情监测中异形图斑的处理方法
填筑层数对土石坝应力变形的影响研究
上海发布药品包装物减量指南
基于C#编程的按位置及属性值自动合并图斑方法探究
基于移动 GIS 的公路工程外业调查系统研究
土地利用图斑自动检测算法研究
MoS2薄膜电子性质随层数变化的理论研究
基于市政管线外业采集命名规则和辅助软件开发
天津市第一次全国地理国情普查外业调绘核查
公路外业测量中GPS RTK测量技术的应用探究