CAD擴展屬性的提取--FME方式
一、CAD的擴展屬性
了解一下CAD的擴展屬性方式,CAD的擴展屬性包括二類:
基於CAD二次開發的軟件產品(例如南方cass),其擴展屬性是附屬在圖形(點、多段線、註記、面)上面的,它是以XRecord數據容器的形式,以實體級字典的形式存放,此類擴展方式比較常見;
還有一類比較特殊的,就是此擴展屬性是基於塊參照的形式展示的(即屬性塊),它的表現形式比較特殊,它的實體是一個快參照,顯示內容根據不同的屬性值而不同。示例如下(此對象的顯示內容受【地塊編號】和【用地代碼】的屬性字段值控制,修改此值後,塊參照顯示會自動更新)。
針對這兩種類型的擴展屬性的讀寫,FME都是支持的。
前一種方式,FME的分析提取屬性可以在網上搜索的相關的文章,接下來的章節會著重介紹。
針對後一種類型的拓展屬性,可使用ArcGIS也可以直接將其提取到圖層的表字段中。但是FME提取的時候會有所不同,首先,在提取數據的時候需要註意提取參數的設置。
此時,FME提取的是此塊參照的中心點,並且附帶塊參照的名稱和編號,這樣設置可以更精確的提取塊信息。塊參照的屬性將以list的形式展示(如下,第一個屬性的信息可以通過fme_attrid_info{0}.field_name和fme_attrid_info{0}.field_value):
通過暴露以上的屬性,然後通過Attributerename轉換器將fme_attrid_info{N}.field_value重命名,就可以依次獲得相應的屬性字段信息。
以上就是關於CAD數據的擴展屬性的分析。
二、CAD二次開發 XRecord實體級數據的提取
這裏主要用到FME的數據轉換功能,即把CASS的擴展屬性不丟失轉換到ARCGIS的字段中。
2.1 CASS的擴展屬性的存儲形式
先看下下面這組代碼
("south" (1000 . "310000")) 對應圖斑屬性編碼“310000”;
("TBBH" (1000 . "7"))對應圖斑號“7”;
("DLDM" (1000 . "111")) 對應地類號;
("QSXZ" (1000 . "集體"))("ZYFS" (1000 . "")) 、("SHI" (1000 . "惠州")) ("XIAN" (1000 . "惠陽")) ("XIANG" (1000 . "大亞灣")) ("CUN" (1000 . "")) ("ZU" (1000 . "")),
分別是權屬性質,占用方式,市,縣,鄉鎮,村,組等CASS的字段名縮寫。
2.2 FME Universal Viewer打開CAD
FME2011最新的版本可以支持CAD幾類不同的版本:從早期的Release9一直到現在Release2010,默認的創建新目標數據的版本為CAD2007的版本。
若在寫目標數據集時,不確認原始數據CAD的版本信息,但又新目標數據文件的版本和源數據版本一致時,可以在加載寫入數據文件時設置參數(file Contents的2項內容,選擇模版文件為源數據,然後設置CAD版本為最後一項:same_as_template)。
用FME Universal Viewer打開CAD格式的圖斑文件查看屬性的存放方式。
可以在右邊的屬性欄看到如下信息:
extended_data_list{0} application_name:south extended_data_list{1} string:310000 extended_data_list{10} application_name:PDJB extended_data_list{11} string:
在這裏:
extended_data_list{0} application_name:south, south表示轉換後的字段名;
string:310000是對應的字段內容。偶數為字段名,奇數為字段內容,一會在轉換連接時用到。清楚了CAD的數據屬性後,再用FME來轉換就容易了。
2.3 FME轉換的過程思路
用FME加載DWG格式的圖斑數據,記得轉換後的格式為SHP。
在FME Universal Viewer可以看到extended_data_list共有“0-33”一起34個,在下圖中找到extended_data_list{} 設置如下,數量是34。
因為只轉換面,因此只保留DLJ_polygon,其他刪除不用。
看下圖,點開DLJ_polygon右上角,再點開中間菜單“user attributes”,建字段。設置字段名,類型,寬度。我這裏全用的是字符型。
點確定後,進行連接。再看回第二步,看如下信息:
extended_data_list{0} application_name:south
extended_data_list{1} string:310000
extended_data_list{10} application_name:PDJB
extended_data_list{11} string:
字段名已建好,因此只把字段內容連接到對應的字段名上,就OK了。
偶數對應字段名,奇數對應字段內容
看圖解說如下:
連接完成後,點擊運行,選擇保存路徑。
4.打開ARCGIS,加載轉換後的數據,可以看到內容還不標準,修改一下就完美了。
打開編輯,替換“string:”和“real:”“16Bit_integer:”為空後,完全符合要求了。
看圖示:
保存編輯,完成操作。
參考文章
怕冷的企鵝,FME對CAD擴展屬性的讀寫, 2011-04
醉意人間,南方CASS土地調查圖斑屬性完美轉SHP--適用於其他CAD擴展屬性轉SHP,2010-8
CAD擴展屬性的提取--FME方式