基于AUTO CAD的GIS數據采集方法
1 引言
為專題或應用型GIS(如電力GIS、電信GIS和城市網格化管理系統等)采集數據是目前測繪技術應用的主要領域。與GIS數據采集最密切的測繪技術是數字化測圖技術,它們的最大區別是,前者在采集地理實體幾何數據的同時,還要調查其屬性信息。 另外,為了保證采集數據的可靠性和完整性,為GIS采集的數據必須經過檢驗和進一步的處理才能進入GIS,一方面地理實體的空間位置、幾何形狀和一些屬性信息等需要參照地理底圖才能檢驗其正確性,例如某些地理實體與周圍地理要素的相對位置關系是否正確等;另一方面有些地理實體的幾何圖形和屬性信息需要參照地理底圖才能確定,例如一些地理實體的幾何圖形需要參照周圍地理要素才能繪制完整,有些地理實體的位置描述等不便編碼的屬性信息需要參照地理底圖才能較好地確定;有些地理信息則需要直接從地理底圖上采集。可見,GIS數據采集是一項遠比數字化測圖技術復雜的工作,因此,根據專題或應用型GIS的特點和要求,研究其數據采集技術具有重要的意義。
目前,為電力GIS、電信GIS和城市網格化管理系統等GIS采集數據最常用的方法是,用全站儀或GPS采集地理實體的空間數據,同時填寫地理實體的屬性信息表,這種方法速度慢且容易出錯,所以工作效率低下。另外,考慮到AUTO CAD具有較強的圖形繪制和編輯功能,目前大部分數字化測圖內業處理工作都是在基于AUTO CAD開發的軟件下進行的,本文參照數字化測圖技術提出了基于AUTO CAD數字化采集GIS數據的方法。其工作流程如表1所示:
表1:基于AUTO CAD數字化采集GIS數據的工作流程
第一步 外業采集數據 外業采集
第二步 數據轉入AUTO CAD
內業處理
第三步 檢查與處理數據
第四步 數據轉出AUTO CAD
該方法需要解決以下3個問題:一是地理實體屬性信息的編碼,二是實體信息在AUTO CAD圖形數據庫中的存放方法,三是數據從AUTO CAD轉入GIS的方法。
2 屬性編碼
地理實體的屬性信息是用來描述地理實體的屬性(如名稱、質量、數量和等級等)特征的信息[1],這些屬性信息可以分為數字的(如描述實體各種數量屬性的面積、長度等)和文字的(如實體的名稱、性質等),其中文字的屬性信息又可分為可編碼的(如實體的性質和質量)與不可編碼的(如宗地的四至等實體的位置描述信息),在文字形式的屬性信息中,可編碼的屬性信息占大多數。
在為GIS采集數據時,為了避免填寫實體屬性信息調查表,便于進行數字化調查,需要把實體可編碼的屬性信息進行編碼(不可編碼的屬性信息可在內業處理時參照地理底圖和已調查的屬性信息確定),這也是GIS管理地理信息的要求。編碼的實質就是把文字形式的屬性信息轉換成數字編碼(代碼)以便于計算機處理,也是GIS定性查詢信息的主要依據和手段[1]。
本文以城市部件調查為例介紹實體屬性信息編碼的方法。屬性編碼除了遵循“科學性、唯一性、完整性、可擴充性、適用性和規范性”等一般的原則外,應該盡可能減少代碼的位數,以便于記憶和外業使用。例如,城市部件的歸屬或管理部門可參照表1進行編碼。
表2 城市部件歸屬部門代碼表
序號 單位類別 大類 單位編碼 專業部門名稱
1 行政機關 1 01 城管大隊
… …
2 事業單位 2 01 園林綠化局
… …
3 企業單位 3 01 自來水公司
… …
為了節省計算機空間,有時可將兩個屬性聯合起來進行編碼,用一位數字表示兩個屬性。例如,部件的狀態和現勢性是指現狀使用情況,分完好、破損、占用、丟失四種情況填寫。現勢性則是指部件在使用還是廢棄了,可參照下表編制代碼。
表3 部件現勢性與狀態代碼表
現勢性 狀態 編碼 顏色
在用 完好 1 紅色
在用 破損 2 黃色
在用 丟失 4 青色
在用 占用 6 紫色
作廢 破損 3 綠色
作廢 丟失 5 藍色
作廢 占用 7 白色
作廢 完好 8 灰色
外業調查時在測量部件位置的同時,可用如下代碼格式確定其屬性信息。
□□□ □□□ □
現勢性與狀態代碼
歸屬部門代碼
部件分類編碼
圖1 城市部件屬信信息編碼格式
部件的標識碼則在內業數據處理時由程序根據部件的分類編碼和測其位置時儀器自動生成的流水號自動生成。
3 GIS數據在AUTO CAD中的存儲方法
3.1 AUTO CAD的XDATA
AUTO CAD的DWG圖形數據庫以圖元為單位記錄數據,即一個實體或圖元對應一條數據記錄。一個實體或圖元的數據記錄中通常只包括基本數據,它主要存儲圖元的幾何數據和幾何特性(如線型、圖層、顏色、字體等)。另外,AUTO CAD的DWG圖形數據庫允許用戶在任何一個圖元的數據記錄中,再加入一部分其他信息,這就是擴展的對象數據XDATA。
XDATA是用戶向AUTO CAD幾何實體添加的自定義信息,用戶可以利用XDATA向存在的幾何實體添加數據,它可以處理包括字符串、實數、整數和實體句柄等許多類性信息,但要求的數據量不超過16K。AUTOCAD可以與管理基本幾何實體數據一樣管理XDATA,但必須應用程序操作。擴展的對象數據是在對象數據記錄中以-3碼為前導的一個項。在一個圖元中,可以加入擴展的對象數據大小為:16383字節[2]。
用XDATA不需要有“塊”充當容器,而且有更快的速度、更多的靈活性、更小的數據體積;一般說來,16KB的數據容量對于一個對象要攜帶的非圖形數據足夠用。同時,這些非圖形信息仍舊是以圖形為索引之一的數據,且不必將圖形作成塊。這種擴展對象數據結構特色的性能是:始終跟隨所屬對象,即使將來對這個對象作了COPY、EXPLOD、EBLOCK、GROUP等可能引起數據庫重新組建的操作,也會保持或繼承這些擴展的數據記錄,除非刪掉這個對象。這一點使得擴展的對象數據結構,與類似的其他方法相比,具有特殊的實用價值[2]。因此,XDATA可以存放圖元所表示地理實體的屬性信息。
3.2 GIS數據的存儲
外業采集的數據需要轉入AUTO CAD進行檢查和進一步的完善處理。為了便于檢查、編輯和進一步處理,轉入時將代碼再變為文字形式的屬性信息。
在AUTO CAD中通常用一個圖塊“INSERT”表示點狀地理實體,而用多段線"LWPOLYLINE"表示線狀和面狀實體,其中用閉合的二維多段線表示面狀實體。下面分別介紹用這兩個圖元的數據記錄存儲地理實體信息的方法。
表4為表示地理實體圖元的數據記錄,其中以-1碼為前導的一系列表為數據記錄的基本項,主要存儲圖元的幾何數據,以-3碼為前導的表為擴展數據XDATA,主要存儲圖元的屬性數據。XDATA主要由11個組碼組成,其中組碼為1001的登記的應用名,可以存放長度不大于31字符位的ASCII碼字符串,是必須使用的表,一般存放實體的標識碼較為合適;組碼為1000的表可以存放長度不大于255字符位的ASCII碼字符串,在一般情況下,用來存儲實體的屬性信息,其空間是足夠了。
表4:表示地理實體圖元的數據記錄說明
CAD 圖塊“INSERT”的數據記錄 多段線"LWPOLYLINE"的數據記錄 GIS
基本數據 ((-1 . <圖元名: 406162c8>) (0 . "INSERT") (330 . <圖元名: 400d1248>) (5 . "FB3330F59") (100 . "AcDbEntity") (67 . 0) (410 . "Model") (8 . "射燈") (6 . "Continuous") (100 . "AcDbBlockReference") (2 . "f120") (10 496498.0 47234.1 120024945) (41 . 1.0) (42 . 1.0) (43 . 1.0) (50 . 0.0) (70 . 0) (71 . 0) (44 . 0.0) (45 . 0.0) (210 0.0 0.0 1.0) ((-1 . <圖元名: 40619830>) (0 . "LWPOLYLINE") (330 . <圖元名: 400d1248>) (5 . "FB333214E") (100 . "AcDbEntity") (67 . 0) (410 . "Model") (8 . "綠地") (6 . "Continuous") (100 . "AcDbPolyline") (90 . 4) (70 . 129) (43 . 0.0) (38 . 405003405) (39 . 0.0) (10 496213.0 47233.0) (40 . 0.0) (41 . 0.0) (42 . 0.998349) (10 496213.0 47235.5) (40 . 0.0) (41 . 0.0) (42 . 0.0) (10 496140.0 47235.5) (40 . 0.0) (41 . 0.0) (42 . 0.99436) (10 496140.0 47232.9) (40 . 0.0) (41 . 0.0) (42 . 0.0) (210 0.0 0.0 1.0) 幾何數據
擴展數據 (-3 ("120024945" (1002 . "{") (1000 . "射燈*市建設局*紅星街南段西側*網格代碼111111") (1002 . "}")))) (-3 ("405003405" (1002 . "{") (1000 . "綠地*區城市綠化隊*中心街東側*網格代碼222222") (1002 . "}")))) 屬性數據
存儲點狀實體的地理信息 存儲線狀實體和面狀實體的地理信息
注:表中加粗數字為實體的標識碼。
4 數據轉換
采集的數據成果在AUTO CAD中經過檢查和進一步完善后,需要將其轉換成相應的GIS軟件要求的格式如ARC GIS的SHAPE格式才能進入GIS。
在AUTO CAD的圖形數據庫中地理實體的幾何數據和屬性數據雖然存放在同一個記錄中,但在成果轉換時,一般情況下,AUTO CAD的基本數據即實體的幾何數據可通過DWG或DXF格式直接被GIS讀取,但GIS通常不能讀取AUTO CAD的擴展數據,即實體的屬性數據,它可用其它程序讀取為數據庫格式如EXCEL,再轉入GIS,這就需要解決圖形和屬性的掛接問題。
為此需要給實體的空間數據和屬性數據同一個且唯一的ID號,這個ID號可選用實體的標識碼,也可選用圖元的HANDLE(句柄)。HANDLE是AUTO CAD具有的對幾何實體的唯一訪問工具,而且CAD打開實體句柄開關后,分配給每個實體的句柄永久不變,所以,一般把實體句柄當作實體的標志符,但它是由AUTO CAD軟件自動生成的,不能由人工改動。若選用實體的標識碼時,把實體的標識碼存為部件對應圖元的高程值(圖塊的高程,二維多段線的標高),這樣實體的空間數據和屬性數據就可一一對應了(如表4中加粗的數字),分開轉入GIS后就可通過標識碼掛接了。
5 結束語
本文介紹的基于AUTO CAD的數字化采集GIS數據的方法,主要適用于小區域內以大比例尺地圖為地理底圖,以較為密集的實體為管理對象的GIS,如電力GIS、電信GIS和城市網格化管理系統等。該方法是作者在甘肅省白銀市的城市部件調查項目中研發出來并在項目中經過實踐檢驗的,相信對目前廣泛開展的各類應用型GIS數據采集工作具有重要的參考價值
聲明①:文章部分內容來源互聯網,如有侵權請聯系刪除,郵箱 cehui8@qq.com
聲明②:中測網登載此文出于傳遞更多信息之目的,并不意味著贊同其觀點或證實其描述,文章內容僅供參考。
加群提示:我們創建了全國32個省份的地方測繪群,旨在打造本地測繪同行交流圈,有需要請聯系管理員測小量(微信 cexiaoliang)進群,一人最多只能進入一個省份群,中介人員勿擾