999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于ArcPy的界址點坐標交換文件輸出

2022-06-21 04:19:22汪元超
科技創新與應用 2022年17期

汪元超

(成都市國土規劃地籍事務中心,四川 成都 610032)

在勘測定界中,生成專用格式的界址點坐標交換文件,通常的做法是從ArcGIS導出為CAD,將提取的坐標在Excel中編輯后輸出到文本文件,再編輯相關的表頭和其他信息,這種方法操作繁瑣、容易出錯、效率低下,也有利用ArcGIS自帶的模型構建器或其他語言實現了這種文件的輸出,但上述方法都存在自動化程度不高、操作繁瑣,不支持多部件、多邊形島(挖孔)等特殊格式的缺陷,為解決這些痛點,并提高工作效率和成果質量,有必要研究如何完美實現勘測定界界址點坐標TXT文件快速輸出。

1 文件格式簡介

界址點坐標交換文件是原國土資源部制定的以純文本格式明文存儲,以便于讀取和管理的標準文件格式。最早是應用于建設用地備案中,后陸續用于制作電子報盤數據、增減掛鉤備案、土地開發整理等,是自然資源系統(原國土系統)內廣泛使用的一種數據交換文件。

該文件包括文件頭屬性描述、地塊坐標兩大塊。文件頭屬性描述為12行的固定格式,格式如圖1所示的文件實例。地塊坐標部分根據具體的地塊數量為行數不定的數據塊,其中每一個數據塊由該地塊的屬性描述和該地塊的節點坐標組成,地塊的屬性描述格式為“界址點數,地塊面積,地塊編號,地塊名稱,記錄圖形屬性(點、線、面),圖幅號,地塊用途,地類編碼,@”,節點坐標的格式為“點號,地塊圈號,X坐標,Y坐標”。需要特別注意以下幾點:

(1)地塊屬性描述中的“地塊面積”單位為公頃,需保留4位有效數字。

(2)節點坐標中的“X坐標”“Y坐標”為測量學中定義的坐標軸,分別代表北坐標和東坐標,與ArcGIS、CAD和數學上定義的坐標軸相反。

(3)地塊必須閉合,每個地塊的最后一個坐標和該地塊的第一個坐標一致。

(4)對于有扣挖的宗地,扣挖出來的地塊需要使用不同的圈號來表示(如圖2所示:一個矩形內部挖掉了一個三角形和一個五邊形,矩形的圈號為1,內部的三角形和五邊形的圈號在1后面順序遞增,分別為2和3)。

圖1為圖2所示圖形輸出后的文件格式實例。

圖1 文件格式示例圖

圖2 示例圖形

2 相關基礎知識

2.1 ArcPy簡介

Python是一種通用的支持動態輸入的面向對象的解釋型語言,它簡潔易讀、易于學習、易于擴展,已成為最流行最熱門的編程語言。

ArcPy是以ArcgisScripting模塊為基礎并繼承了其功能進而構建的Python站點包。目的是以實用高效的方式通過Python執行地理數據分析、數據轉換、數據管理和地圖自動化創建基礎。

用ArcPy編寫ArcGIS應用程序的優勢在于,它不僅完整繼承了Python的易學、易用、易擴展的特性,還能夠完整使用ArcGIS自帶的很多工具包,使初學者能夠快速入門并編寫具有復雜功能的附加模塊。

2.2 ArcGIS中的Polygon對象簡介

本文編寫的相關代碼利用了ArcGIS內部的Polylgon對象,因此首先需要了解Polygon對象的相關特性和數據結構。

Polylgon對象是一個或多個Ring對象的有序集合,它可以由單個Ring對象構成,也可以由多個Ring組成。其數據結構如圖3所示。

圖3 Polylgon對象數據結構示意圖

從這張圖上可以看出Polygon是Rings構成,而Ring又是由Segment構成,Segment包含線(Line)、圓?。–ircular Arc)、橢圓?。‥lliptic Arc)、貝塞爾曲線(Bezier Curve)4種類型的曲線,這4種曲線都是由Points坐標集合構成。在代碼實現的過程中,我們只需要按照這個數據結構構造出Points坐標集合即可。需要注意的是,組成Polygon的是Ring,其中Ring可以分為OuterRing(外環)和InnerRing(內環)。外環和內環都是有方向的,它們的區別是外環的方向是順時針的,內環的方向是逆時針的。如圖4所示。

圖4 Ring的內外環示意圖

3 代碼實現

以圖2為例,圖中包含2個地塊,通過數據訪問模塊“da.SearchCursor”按行逐條讀取數據,可以直接獲得要素的節點個數和面積屬性。而對于節點坐標,尤其是圖2右側地塊這種有挖孔的多邊形島形式(挖孔)的地塊,很多文獻中是無法處理的,或者處理的方法冗長,這里筆者經過反復調試,通過將讀取的每一條要素轉成JSON格式再通過字典轉成List數組的形式,實現快速讀取要素內部部件的每一個節點坐標,除開前面幾行固定需要寫入的文件頭屬性描述,核心的節點坐標輸出功能只用了20多行代碼,整體代碼塊一共50行即實現了相關功能,充分體現了ArcPy簡潔、高效的特性。數據處理流程如圖5所示,完整代碼如下。

圖5 文件輸出處理流程圖

4 結束語

文本給出了完整的代碼,基于ArcPy實現了界址點坐標交換文件的快速輸出。相比手動編輯或其他方法,主要的改進和提升:

(1)完美支持多部件、多邊形島(挖孔)等各種特殊格式。

(2)自動化程度高,不需要人工干預。

相關代碼已大量運用于實際工作項目中,相比其他方法極大提高了效率和準確性,以前編輯一個地塊需要3~5 min,現在只需要不到10 s。

本文僅用不到50行代碼即實現了上述功能,充分體現了ArcPy簡潔、高效的特點。用ArcPy編寫ArcGIS應用程序的優勢在于,它不僅完整繼承了Python的易學、易用、易擴展的特性,還能夠完整使用ArcGIS自帶的很多工具包,使初學者也能夠快速入門并編寫具有復雜功能的附加模塊。本文為ArcPy應用于各種矢量和柵格數據的批處理提供了一些方法和思路。

主站蜘蛛池模板: 亚洲天堂啪啪| 久久天天躁夜夜躁狠狠| 另类专区亚洲| 免费Aⅴ片在线观看蜜芽Tⅴ| 伊人久久大香线蕉影院| 国产免费人成视频网| 亚洲欧美综合在线观看| 午夜在线不卡| 亚洲国产天堂久久九九九| 九九九精品成人免费视频7| 亚洲人成成无码网WWW| 亚洲精品不卡午夜精品| 国产精品护士| 精品国产一区二区三区在线观看| 亚洲中文在线看视频一区| 成人国产免费| 91福利国产成人精品导航| 在线日韩日本国产亚洲| 欧美区在线播放| a在线观看免费| 2020最新国产精品视频| 美女国内精品自产拍在线播放| 久久频这里精品99香蕉久网址| 国产毛片一区| 亚洲黄色网站视频| 亚洲永久色| 精品成人免费自拍视频| 欧美色综合久久| 国产18在线播放| 性做久久久久久久免费看| 成人福利在线视频免费观看| 国产区成人精品视频| 日韩精品久久久久久久电影蜜臀| 国产精品久久久久无码网站| 97国产成人无码精品久久久| 色婷婷狠狠干| 思思热在线视频精品| 精品91在线| 亚洲一区毛片| 亚洲一区免费看| 香蕉综合在线视频91| 日韩av在线直播| 亚洲高清在线天堂精品| AV网站中文| 伊人久久青草青青综合| 在线观看精品自拍视频| 国产无遮挡裸体免费视频| 国产 日韩 欧美 第二页| 欧美一区二区自偷自拍视频| 国产精品自在自线免费观看| 夜夜操国产| 欧美www在线观看| 91久久偷偷做嫩草影院| hezyo加勒比一区二区三区| 国产精品入口麻豆| 久久精品国产电影| 日韩无码视频播放| 日韩免费毛片| 91精品福利自产拍在线观看| 国产综合精品一区二区| 欧美中文一区| 亚洲无码视频图片| 国产精品区网红主播在线观看| www精品久久| 久久这里只有精品66| 一级看片免费视频| 91福利在线观看视频| 又污又黄又无遮挡网站| 欧美日本不卡| 91精品国产自产91精品资源| 性视频久久| 欧美黄色网站在线看| 亚洲综合极品香蕉久久网| 国产精品欧美日本韩免费一区二区三区不卡| 亚洲精品成人7777在线观看| 成人免费网站久久久| 亚洲Av激情网五月天| 成年A级毛片| 久久伊伊香蕉综合精品| 亚洲国产成人精品无码区性色| 免费欧美一级| 亚洲 欧美 偷自乱 图片|