?

自動填報技術在烏魯木齊建筑物承載體普查中的應用

2024-01-08 10:42李寶明徐玲
城市勘測 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,"http://button[text()='調查']").click() #查找到調查按鈕并點擊,進入填報頁面

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

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

……

driver.find_element(By.XPATH,"http://input[@id='層數' ]").send_keys(層數) #填寫層數

if 結構類型 = "鋼筋混凝土結構": #選擇結構類型

driver.find_element(By.XPATH,"http://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測量技術的應用探究
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合