□浙江省統一征地事務辦公室 俞建康
ETL工具在數字城管內業處理中的應用
□浙江省統一征地事務辦公室 俞建康
隨著數字地球、數字城市的發展,數字城管也應運而生。數字城管是運用信息化手段和移動通信技術手段來處理、分析和管理整個城市的所有城管部件和城管事件信息,促進城市管理的現代化、信息化。數字城管平臺根據部件數據的特點,采用ArcGIS數據入庫來管理部件數據,ArcGIS數據入庫是一項很復雜的工作,在實際工作中摸索發現,ArcGIS軟件自帶的一個擴展模塊Spatial ETL Tool工具給數據入庫帶來很大的方便。
“數字城管”系統基于3S技術、大型空間數據庫、網絡通訊、地理編碼等信息技術,集成地理空間框架、單元網格、管理部件和時間、地理編碼等多種數據源,將信息技術與城市管理有機結合的城市綜合管理系統。城市管理部件的普查和建庫為“數字城管”系統建設提供基礎數據,數據的質量及可靠性是系統建設成敗的關鍵。實現數字化、信息化的關鍵在于基礎數據的支持,部件數據庫是數字城管系統的核心數據庫。
在《城市市政監管信息系統技術規范》中指出,“空間數據是系統運行的數據基礎”,空間數據的管理和展現需要采用地理信息系統(GIS)技術。以GIS為核心的地理空間信息技術是數字城管的核心應用技術,它與無線通信、寬帶網絡和無線網絡日趨融合在一起,為政府管理、城市居民生活和商務活動提供了一種立體的、多層面的信息服務系統。在數字城管的項目中應用GIS技術,不僅要考慮當前項目應用的具體需求,還要站在“數字城管”建設的高度上,綜合評價和選擇。
采用GIS技術有三點好處:首先,它使得每個城市部件有了自己的精確空間位置,并以地圖的方式直觀展現;其次,地物和地上設施是部件的重要參照系,全城市的大比例尺地形圖以及高分辨率影像圖被無縫集成管理,以圖形的方式展現出來,不論對于城市監督員還是指揮中心和監督中心,都可以對城市部件周圍的環境有一個全面、完整的了解,從而在事件處理上有更多的參考依據;最后,結合移動定位技術,監督中心可以在地圖上隨時掌握城管監督員的準確位置,實現有效地監督和調度。

▲圖1▲傳統內業處理流程圖

▲圖2▲創建要素類

▲圖3▲新建要素類設置字段屬性對話框
城市部件的建設和管理涉及到城市的多個職能部門的工作內容,主要存在以下特點。
一是類型復雜。涵蓋城市公共設施的各個方面。城市部件涉及7大類97個小類,城市街道、廣場等公共區域所能看到的公共設施需要全部分類測量采集、建庫。
二是產權單位和維護單位眾多。涉及園林、綠化、城建、規劃、市政公用、道橋等多個城市管理部門。
三是城市發展變化快,更新頻率大。城市建設的快速發展,不停的改變著城市的面貌及城市基礎設施,導致城市部件的更新普查頻率提高。
四是同一空間位置可能有多個城管部件。如路燈和路燈上廣告的空間坐標就相同。
GIS技術發展多年,市場上的GIS軟件多種多樣,應用在不同的領域。GIS的基礎作用在數字城管系統中是不可替代的,它管理著城市的基礎地理信息、地名信息和重要的部件信息,并通過工作流程實現了數據的共享。GIS平臺為數字城管提供了數據獲取、管理、分析等一整套解決方案,可廣泛應用于數字城管業務處理平臺的各個子系統中。根據部件數據類型復雜、更新速度快等特點以及數字城管系統的運行和管理特點,為避免由于GIS軟件的擴展性不強,無法支撐更高層次的應用,被迫放棄原有平臺,推倒重來,造成數據、經濟和時間的損失等缺陷,數字城管系統選用ERIS公司開發的ArcGIS軟件作為基礎GIS平臺。
ArcGIS具有強大的地圖制作、空間數據管理、空間分析、空間信息整合、發布與共享的能力,是分析功能最強大的GIS軟件。利用ArcGIS建立個人地理數據庫來管理城市部件數據,給數據處理與管理帶來很大的方便。空間數據庫系統可以充分利用RDBMS數據管理的功能,利用SQL語言對空間與非空間數據進行操作,同時可以利用關系數據庫的海量數據管理、事務處理(Transaction)、記錄鎖定、并發控制、數據倉庫等功能,與傳統的基于文件方式的空間數據管理模式相比較,具有安全性高、并發性能好、對海量數據的管理能力強等優點。
數字城管內業處理的主要任務是利用ArcGIS建立個人地理數據庫來管理外業測量的城市部件數據。傳統內業處理的作業流程如圖1所示。
1.整理EXCEL表格
外業測量人員把每個組每天外業測量的DAT數據導入到EXCEL表格中,內業人員按照外業的記錄表格整理數據。內業整理表格的標準格式如圖2所示。
表格內容包括:點號,該點的坐標X、Y、H,部件名稱,材質,狀態,照片,主管部門名稱,主管部門代碼,數據來源,規格,備注。外業測量人員把每個點號對應的部件名稱和相應屬性都會記錄在測量表格中,內業人員按照外業記錄將相應的屬性輸入到EXCEL表中。
按部件名稱將表格分類是一個比較復雜的過程,現采用某公司自主研發的軟件給工作帶來了很大的方便。
2.EXCEL表轉SHP文件
在ArcGIS的ArcCatalog下,將分類后的EXCEL表格轉為SHP文件。在Catalog根目錄下選擇要轉為SHP的目標表格的Sheet,單擊鼠標右鍵,在出現的快捷菜單欄中選擇創建要素類下的從XY表,如圖2所示。
在從XY表創建要素類的對話框中設置輸入字段,選擇輸入坐標的坐標系,指定輸出shipfile的路徑。這里需要注意的是:在X輸入字段的下拉框中選擇Y,在Y輸入字段的下拉框中選擇X,而坐標系的選擇則是根據外業測量所選擇的坐標系來確定,最后指定輸出shapefile文件的存儲路徑。
參數設置完成后點擊“確定”按鈕,SHP文件將按指定路徑存到指定的文件里。
3.創建個人地理數據庫
創建個人地理數據庫也是在Catalog軟件中進行的。首先在根目錄的目標文件夾下新建個人地理數據庫并對其重命名,命名規則為“×××數字城管”。在新建的數據庫下新建要素集,要素集名稱統一為Components,然后在Components要素集下新建要素類。新建要素類的命名規則為“區名拼音首字母縮寫”(大寫字母)+“_”+“部件大類”+“部件小類”+“_”+“部件名稱”,如泰安的上水井蓋命名為“TA_0101_上水井蓋”。根據所建要素類部件的類型選擇存儲要素的類型,如上水井蓋要選擇“點要素”。點擊“下一步”設置圖層要素的屬性字段,輸入字段名稱、選擇數據類型并設置字段長度,設置對話框如圖3所示。
圖層的字段名稱及對應的字段代碼、數據類型和字段長度祥見表1。
按上述步驟依次建立各個圖層,各個點狀圖層的字段屬性都是完全相同的,可以采用圖層復制,然后對復制圖層重命名的方法,這樣可以提高工作效率,避免重復工作。但是線狀圖層不能復制點狀圖層,新建線狀要素類時注意存儲類型的選擇,在存儲的要素類型中選擇“線要素”,如圖4所示。

表1▲部件數據基本屬性字段要求

▲圖4▲要素存儲類型的選擇

▲圖5▲用ETL處理內業流程圖
4.數據入庫
數據庫建成之后,即要進行數據入庫。數據入庫也是在Catalog根目錄下進行的,右擊新建數據庫下的要素類,在出現的下拉菜單中選擇“加載”項下的“數據加載”功能。點擊數據加載即出現簡單數據加載程序對話框,在輸入數據選擇框中選擇目標SHP文件,SHP文件打開之后需要注意的是必須點擊“添加”按鈕把目標SHP文件添加到要加載的源數據列表中。
點擊“下一步”按鈕,所有參數設置都為默認,繼續點擊“下一步”進入到選擇加載到目標字段中的源字段的界面,在匹配源字段的下拉框中選擇要加載到目標字段的對應字段。字段選擇完成后點擊“下一步”,出現選擇加載數據內容的對話框,在此對話框中選擇“加載全部源數據”,繼續點擊“下一步”,然后點擊“完成”按鈕,至此數據加載完成。
數據入庫就是按照上述步驟,將每個SHP圖層都一一加載到已經建好的數據庫中。這是一個很復雜的重復工作過程,既耗費時間又容易出現人為原因造成的錯誤。
Spatial ETL Tool相當于FME的Workbench。FME是加拿大Safe軟件公司針對ArcGIS開發的一個擴展模塊。其獨立的軟件稱為FME Suite(Feature Manipulate Engineering),FMESuite是一套完整的訪問空間數據的解決方案,可用于讀寫存儲和轉換各種空間數據,是功能更為強大的空間數據平臺。ETL是數據抽取(Extract)、轉換(Transform)、清洗(Cleansing)、裝載(Load)的過程,是構建數據庫的重要環節,用戶從數據源抽取出所需的數據,經過數據清洗,最終按照預先定義好的數據庫模型,將數據加載到數據庫中。
1.利用ETL工具進行內業處理
利用ETL工具內業處理的步驟,如圖5所示。
2.表格合并
合并表格前的整理工作很重要,要保持所有表格的表頭都相同,當然內容也要按表頭的順序排列。把整理好的表格全部放到同一個文件里,在該文件里新建一個EXCEL表,重命名為“合并”。打開新建的合并表,單擊視圖菜單,雙擊右上角的“宏”命令,創建一個新的“合并表”宏定義,將VB代碼粘貼到“合并表”宏中,點擊運行,文件夾內的所有表格就按順序合并到表“合并”內。

▲圖6▲新建Spatial▲ETL▲Tool

▲圖7▲Spatial▲ETL▲Tool界面
3.利用ETL分層
按上面講述的步驟把合并后的表格轉為SHP文件。把SHP文件按上述數據入庫的步驟導入到事先建立好的數據庫中,這里的數據庫只需建立三個圖層,即點層、線層、面層。SHP文件導入數據庫后相應的字段就被賦予標準的格式,然后再導出為SHP文件。這樣SHP文件就轉為標準格式了。
Spatial ETL Tool是ArcGIS軟件自帶的一個擴展模塊,是ArcMAP中ArcToolbox下自定義的一個應用工具。利用Spatial ETL Tool工具按部件名稱分層的工作流程:
打開ArcMap,右鍵點擊ArcToolbox的根目錄,選擇“New Toolbox”項,點擊新建一個Toolbox,重命名為LayerTools。
右鍵點擊新建的LayerTools工具箱,依次選擇〉〉New〉〉Spatial ETL Tool菜單項,如圖6所示。
在新建Spatial ETL Tool后,會出現設置向導對話框,設置好輸入文件的格式。該工具是一個強大的數據交換平臺,支持上百種數據格式的交互,在下拉框中輸入文件格式或者點擊下拉框后方的按鈕,打開格式選擇對話框選擇格式,在輸入格式時可以體會下該工具方便易用的智能提示功能。要處理的原始數據是shape文件,在數據格式下拉框中選擇ESRI Shape的數據格式。
點擊下一步按鈕,彈出原數據選擇對話框,選擇原始數據。
點擊下一步按鈕,彈出目標數據格式選擇對話框,設置好對應的ESRI Shape格式。
點擊下一步按鈕,彈出指定文件參數對話框,點擊Paramerters按鈕選擇文件參數,Shape File Type選擇2D(ArcView 3.0),其他參數選擇默認值。
點擊下一步按鈕,在下一步彈出的對話框中點擊完成按鈕,彈出Spatial ETL Tool界面,對應FME的Workbench。圖7中褐色區域表示原數據,淺黃色區域表示目標數據。
點擊目標數據淺黃色框的屬性按鈕,彈出要素類型屬性對話框,選擇Fanout by Attribute的分類方法,并在其下拉框里選擇OBJNAME。
最后,點擊Run Translation,設置目標數據輸出路徑,稍等片刻,分類處理即可完成。
總之,SHP文件內的所有部件都按部件名稱分為單個的圖層,把各個圖層導入到空數據庫即可。這里只需建一個空數據庫,無需建立各個分圖層,但是需要注意的是數據入庫選擇的是導入而不是前面的加載。兩者的區別在于加載數據是一個層一個層的加載,而導入是把所有的SHP圖層一次性全部加入到數據庫中。
利用ETL工具進行數據入庫可以極大提高內業處理的工作效率,按照傳統的入庫工作流程,在表格整理完成后的工作,也需要一段時間,而且這個工作是一個重復枯燥的過程,需要工作人員精神高度集中,稍不留神就容易出錯。利用ETL工具不僅降低了工作人員的勞動強度,而且減少了人為因素造成的錯誤,從而降低了錯誤率、提高了工作效率。另外,ETL工具對數據進行的是整體處理,保證了數據的完整性和一致性。