国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于AutoCAD VBA 和ArcGIS 模型構建器的Dwg 轉換為Shape 格式方法

2020-07-22 09:41閆煒亮陳俊任
江西測繪 2020年1期
關鍵詞:數(shù)據(jù)格式圖層實體

閆煒亮 陳俊任

(江西核工業(yè)二六八測繪院 江西玉山 334700)

1 引言

在測繪地理信息項目生產中,數(shù)據(jù)的前端采集和數(shù)據(jù)編輯都采用了數(shù)據(jù)格式為Dwg 的AutoCAD和南方Cass 軟件,但這兩種軟件建庫及分析能力欠佳,而建庫及分析能力較強的主流GIS 軟件一般通用支持格式為Shape 文件格式,且Shape 格式是地理信息系統(tǒng)界公認的標準格式[1],故探索Dwg 向Shape 格式的優(yōu)化轉換方法對提高生產效率有重要意義。本文以農村不動產調查房地數(shù)據(jù)為例,設計了AutoCAD VBA 結合ArcGIS 模型構建器的Dwg 文件轉Shape 文件方法,提高了生產效率。

2 軟件平臺簡介

2.1 AutoCAD 和南方Cass 簡介

AutoCAD 軟件是由美國歐特克有限公司(Autodesk)開發(fā)的一款在自動制圖領域廣泛使用的自動計算機輔助設計軟件。因其強大的數(shù)據(jù)編輯功能,良好的人機交互設計以及完善的二次開發(fā)和用戶定制接口,在測繪地理信息行業(yè)得到廣泛應用。AutoCAD 平臺提供了針對多種開發(fā)方式的擴展接口,可通過VBA、Lisp、C++等多種語言進行擴展開發(fā),為數(shù)據(jù)處理提供了更多的可能性。南方Cass 軟件是廣東南方數(shù)碼科技股份有限公司在AutoCAD平臺開發(fā)進行二次開發(fā)出品的一套軟件,該軟件在地形、地籍、工程應用、土石方量算等領域應用廣泛。南方Cass 與AutoCAD 常用數(shù)據(jù)格式均為Dwg 格式。AutoCAD VBA 開發(fā)環(huán)境如圖1 所示。

圖1 AutoCAD VBA 開發(fā)環(huán)境

2.2 ArcGIS 模型構建器簡介

ArcGIS 模型構建器英文名為ArcGIS Model builder,其本質是一種可視化的編程語言,可根據(jù)生產需求構建用于自動化執(zhí)行數(shù)據(jù)管理和空間分析流程的地理處理工作流。使用ArcGIS 模型構建器可創(chuàng)建并修改模型構建器中的地理處理模型,并通過添加地理處理工具、地圖圖層、數(shù)據(jù)集以及其他數(shù)據(jù)類型并將其連接到流程來構建模型,同時,使用Python語言可以輕易的對模型構建器功能進行拓展。其優(yōu)點有:1.處理大量重復操作。程序化的本質使其可以自動重復處理各種文件。2.可視化編程。既可以以代碼構建補充功能,又可用易于理解的圖表顯示工作流順序。3.調試方便??煞植秸{試,查看結果,提高開發(fā)效率。4.移植性強。模型只需簡單處理,即移植到其他PC 或用于另一Python 腳本。ArcGIS 模型構建器如圖2 所示。

圖2 ArcGIS 模型構建器

3 轉換文件分析

3.1 Dwg 文件

Dwg 文件為AutoCAD 軟件的常用數(shù)據(jù)格式,其本質是一個集成了點、線、面的二進制格式[2]的圖形數(shù)據(jù)庫。一個Dwg 文件由圖紙信息和各種圖元對象組成,分為無圖形表示類和有圖形表示類,其中無圖形表示類包括圖層、線型;有圖形表示類包括以塊表方式存放的對象。

Dwg 文件根據(jù)內容可以分為四個部分:

(1)索引部:索引部存儲了AutoCAD 的版本信息及各部的首地址、各分表的首地址、長度及個數(shù)信息。

(2)環(huán)境部:環(huán)境部存儲了系統(tǒng)變量、屬性設置及當前狀態(tài)等信息。

(3)實體部:實體部存儲了所有圖形實體的描述,一個Dwg 文件的大部分圖形信息存儲在實體部。圖形實體又分為簡單圖形實體和復雜圖形實體。簡單圖形實體是點、直線等基本圖形,如Point 實體、Line 實體等;復雜圖形實指由多段線、圖塊等基本圖形實體組成的圖形,如PolyLine 實體、Block 實體。

(4)名表部:名表部存儲了所有實體的描述,如圖層名稱、字體類型、線型名稱等。

Dwg 文件的屬性存儲能力較弱,可通過擴展屬性(XData)存儲一定的屬性。使用AutoCAD VBA 語言,可以對擴展屬性進行存儲和導出,從而有了Dwg向Shape 文件格式帶屬性轉換的基礎。

3.2 Shape 文件

Shape 文件格式屬于一種矢量圖形格式,它能夠保存幾何圖形的位置及相關屬性,它在20 世紀九十年代初的ArcView GIS 的第二個版本被首次應用。目前,主流GIS 軟件都可以讀取Shapefile。

Shape 實質上由多個文件組成的。這其中“.shp”,“.shx”與“.dbf”三個文件是必須的,表示同一個Shape 文件的文件名必須相同,另外還有八個可以增強空間數(shù)據(jù)的表達能力的可選文件。文件格式說明如下:

(1)*.shp:Shape 文件的主要圖形格式,保存了要素的幾何實體。

(2)*.shx:Shape 文件的圖形索引格式。記錄了每個實體在shp 文件中的位置,通過它可實現(xiàn)對實體的快速搜索。

(3)*.dbf:Shape 文件的屬性數(shù)據(jù)格式,以Dbase數(shù)據(jù)表格式存儲了實體的屬性數(shù)據(jù)。

Shape 文件的三個必須文件決定了Shape 文件的圖形和屬性是一體的,轉換時要同時考慮圖形和屬性的對應關系。

4 轉換方法設計和實現(xiàn)

4.1 轉換方法設計

對于Dwg 文件,一個文件中包含了點線面各種圖形數(shù)據(jù),各圖形數(shù)據(jù)分布在各圖層,對應的擴展屬性可以存儲一定的屬性數(shù)據(jù);而Shape 文件一個文件只對應一種數(shù)據(jù)類型,如點的Shape 文件只存儲點數(shù)據(jù)格式,不能接受其他數(shù)據(jù)格式,屬性隨圖形一并存儲。Dwg 文件要轉換為Shape 文件,須按數(shù)據(jù)類型對原始文件進行分層處理,使之與對應的轉換后的數(shù)據(jù)類型對應,同時轉換后圖形和屬性的對應關系應正確,以此為關鍵點進行轉換方法設計。

轉換步驟:

(1)為了使轉換后數(shù)據(jù)類型對應,先對待轉換數(shù)據(jù)進行預處理,按數(shù)據(jù)類型和圖層分別存儲,對Dwg文件的圖層進行標準化規(guī)范,使其內部圖層名稱符合要求,使用VB 語言,在AutoCAD VBA 環(huán)境下進行開發(fā)。編寫CAD 數(shù)據(jù)分層和實體擴展屬性的導出程序,完成圖形的預處理和屬性的導出。

(2)在ArcGIS 模型構建器中,編寫Dwg 文件轉換為Shape 文件的工作流模型,實現(xiàn)各圖層、各類型數(shù)據(jù)轉線,轉面,轉點等操作,其中,轉點操作主要是將AutoCAD 中的Annotation 注記轉換為點文件,實現(xiàn)將其注記內容轉換為其屬性的功能。然后通過空間連接,關聯(lián)各類型文件之間的關鍵字段,實現(xiàn)各文件之間的關系關聯(lián)。

(3)在ArcGIS 模型構建器中,對轉換后的各類型文件,通過屬性連接(Join)方法,關聯(lián)圖形和第一步導出的擴展屬性,如果需要加入其它屬性,也可以通過Excel 表格或Dbf 表格進行屬性連接。關聯(lián)可以使用AutoCAD 的Handle 字段作為關鍵字段,也可使用第二步已連接的關鍵字段。屬性連接完成后將文件通過過程庫過濾,過濾掉無用字段,然后導出即可。

(4)將編寫好的模型保存為ArcGIS ToolBox 工具箱,實現(xiàn)轉換功能的封裝,便于移植到其它PC 機使用。轉換設計流程圖如圖3 所示。

圖3 轉換流程設計

4.2 轉換方法實現(xiàn)

農村不動產調查房地數(shù)據(jù)主要為宗地面及其屬性,自然幢面及其屬性,分層分幢圖及其屬性。以宗地面和自然幢面的Dwg 數(shù)據(jù)為例,詳述轉換方法的實現(xiàn)。

4.2.1 CAD/CASS 圖層處理

CAD/CASS 圖層處理主要是對Dwg 文件中的點線面要素分層處理和保存,在規(guī)范了圖層命名(標準化)后,可以較容易的基于AutoCAD VBA 開發(fā)出相應功能。此功能的設計思路是:拷貝一份Dwg 數(shù)據(jù)并將文件名稱命名為需要的圖層名,讀取這份拷貝后文件名稱,刪除這份文件中除了文件名圖層外的所有內容,只保留與文件名相同的圖層,其他圖層以此類推,實現(xiàn)Dwg 圖層的分離。處理后,每個Dwg 文件中只有一個圖層,與Shape 文件在形式上已經對應。

Dwg 文件的打開方法為:

ThisDrawing.Application.Documents.OpenshlFolder.Items.Item.path&""&Dwg_Name

Dwg 文件的另存方法為:

ThisDrawing.SaveAs shlFolder.Items.Item.path &"" & Dwg_Name

圖層實體的刪除方法為:

Del_Entity.Delete

4.2.2 CAD/CAS 擴展屬性導出

自定義擴展AutoCAD 圖形屬性信息的方法有兩種[3],一是通過ObjectARX 以添加XData 屬性的方式擴展,擴展數(shù)據(jù)是以結果緩存的形式附加在圖形實體上;二是通過ObjectARX 以添加數(shù)據(jù)庫詞典(DBDictionary)的方式進行屬性擴展。

以XData 屬性導出為例,基于AutoCAD VBA 進行代碼編寫,獲取擴展屬性代碼如下:

Ent.GetXData "SOUTH", XOutDataType,XOutData

4.2.3 ArcGIS 模型構建器開發(fā)

ArcGIS 模型構建器主要實現(xiàn)圖形轉換、空間連接和屬性掛接功能,這些功能ArcGIS 內置函數(shù)已提供,可直接調用,如需拓展功能,使用Python 語言也可很快進行開發(fā)。模型構建圖如圖4 所示。

圖4 模型構建圖

(1)圖形轉換

圖形轉換功能主要使用 ArcGIS 的FeatureToPolygon 函數(shù)和FeatureToPoint 函數(shù)。

FeatureToPolygon 函數(shù)允許將輸入的線或面要素所封閉的區(qū)域生成的面的要素類,同時其ATTRIBUTES 參數(shù)可以在輸出要素類中保留標注要素的屬性。以宗地面和其宗地號為例,將宗地面Dwg轉換為宗地面Shape,并將宗地號賦值給宗地面的Python 語句為:arcpy.FeatureToPolygon_management("''", ZD_Polygon, "", "ATTRIBUTES", 宗 地 號_DWG_Annotation)。

FeatureToPoint 函數(shù)允許輸入要素的代表位置生成的點的要素類,可以將點、面轉換為點要素,同時附帶有相應屬性。如面轉換為點后可以方便的通過空間連接將屬性賦給另一面要素。宗地面轉為點的Python 語句為:arcpy.FeatureToPoint_management(ZD_shp, ZD_Point, "INSIDE")。

(2)空間連接

空間連接主要使用ArcGIS 的SpatialJoin_analysis函數(shù)。其可以根據(jù)空間關系將一個要素類的屬性連接到另一個要素類的屬性,目標要素和來自連接要素的被連接屬性寫入到輸出要素類。

以自然幢面為例,一個宗地有多個自然幢,將宗地號賦值給自然幢面的思路為先將宗地面轉換為點,再通過點對自然幢面賦值。Python 實現(xiàn)語句如下 :arcpy.SpatialJoin_analysis (ZRZ, ZD_Point,ZRZ_Polygon, "JOIN_ONE_TO_ONE", "KEEP_ALL","ORIG_FID "ORIG_FID" true true false 0 Long 0 0,First,#,C:\ 農房\Shape\z1.shp,ORIG_FID,-1,-1", "INTERSECT", "", "")。

(3)屬性連接

屬性連接主要使用ArcGIS的AddJoin_management函數(shù)和CalculateField_management函數(shù),前者根據(jù)相同字段建立圖與圖、或圖與表的連接,后者對屬性表中的字段進行各種計算。建立基于宗地代碼的連接的Python 語句為:arcpy.AddJoin_management (宗地面, "ZDDM", 連接工作薄_表或mdb_, "ZDNUM", "KEEP_ALL"),計算字段的Python 語句為:arcpy.CalculateField_management (連接-中間數(shù)據(jù), "ZD.OWNER", "[zdinfo.QUANLI]", "VB", "")。

4.2.4 數(shù)據(jù)導出

處理后的要素數(shù)據(jù)包含有很多過程字段,最終結果并不需要,需建立過濾數(shù)據(jù)庫,將過程數(shù)據(jù)導入進行過濾處理,然后導出為Shape 格式文件,即可得到最終數(shù)據(jù)。過濾數(shù)據(jù)庫本質是一個模板數(shù)據(jù)集,規(guī)范化設計了每個字段的格式,長度,是否允許空值等數(shù)據(jù)庫條件。

5 案例應用

圖5 是農村不動產調查的宗地面,其上有宗地代碼注記,數(shù)據(jù)格式為DWG 格式;圖6 是經過本文設計方法轉換后得到的宗地面,宗地代碼已賦值進其屬性里,其他擴展屬性已連接,數(shù)據(jù)格式為Shape格式。測試數(shù)據(jù)量150 宗,轉換過程耗時15 秒,效率較高。

圖5 宗地Dwg(部分)

圖6 宗地Shape(部分)

6 結束語

本文研究了Dwg 和Shape 格式數(shù)據(jù),并對其進行細致分析,基于AutoCAD VBA 和ArcGIS 模型構建器,設計了Dwg 轉換為Shape 格式的方法,該方法開發(fā)速度快,運行效率高,在以農村不動產調查為首的測繪地理信息項目中發(fā)揮了較大作用,接下來將進一步優(yōu)化方法,提高轉換效率。

猜你喜歡
數(shù)據(jù)格式圖層實體
前海自貿區(qū):金融服務實體
解密照片合成利器圖層混合模式
實體的可感部分與實體——兼論亞里士多德分析實體的兩種模式
兩會進行時:緊扣實體經濟“釘釘子”
振興實體經濟地方如何“釘釘子”
基于RFID的戶外廣告監(jiān)管系統(tǒng)的設計與實現(xiàn)
一種融合多業(yè)務的信息化系統(tǒng)框架研究
跟我學添加真實的光照效果
國外建筑CAD圖層標準發(fā)展現(xiàn)狀與研究
基于ArcGIS的規(guī)劃數(shù)據(jù)格式轉換研究
铁岭县| 涡阳县| 邮箱| 平山县| 于都县| 鸡西市| 成安县| 乌鲁木齐县| 宜兰县| 乐至县| 探索| 广东省| 灵寿县| 翼城县| 孝感市| 西畴县| 涿鹿县| 泗水县| 民丰县| 漳州市| 博白县| 岳池县| 枣庄市| 泗水县| 浙江省| 滦南县| 会东县| 乐至县| 邵东县| 盖州市| 潼关县| 德阳市| 富锦市| 梁河县| 赣州市| 明水县| 延长县| 定襄县| 抚州市| 邯郸县| 义乌市|