亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于ArcPy的界址點(diǎn)坐標(biāo)交換文件輸出

        2022-06-21 04:19:22汪元超
        科技創(chuàng)新與應(yīng)用 2022年17期
        關(guān)鍵詞:界址數(shù)據(jù)結(jié)構(gòu)代碼

        汪元超

        (成都市國(guó)土規(guī)劃地籍事務(wù)中心,四川 成都 610032)

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

        1 文件格式簡(jiǎn)介

        界址點(diǎn)坐標(biāo)交換文件是原國(guó)土資源部制定的以純文本格式明文存儲(chǔ),以便于讀取和管理的標(biāo)準(zhǔn)文件格式。最早是應(yīng)用于建設(shè)用地備案中,后陸續(xù)用于制作電子報(bào)盤數(shù)據(jù)、增減掛鉤備案、土地開(kāi)發(fā)整理等,是自然資源系統(tǒng)(原國(guó)土系統(tǒng))內(nèi)廣泛使用的一種數(shù)據(jù)交換文件。

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

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

        (2)節(jié)點(diǎn)坐標(biāo)中的“X坐標(biāo)”“Y坐標(biāo)”為測(cè)量學(xué)中定義的坐標(biāo)軸,分別代表北坐標(biāo)和東坐標(biāo),與ArcGIS、CAD和數(shù)學(xué)上定義的坐標(biāo)軸相反。

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

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

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

        圖1 文件格式示例圖

        圖2 示例圖形

        2 相關(guān)基礎(chǔ)知識(shí)

        2.1 ArcPy簡(jiǎn)介

        Python是一種通用的支持動(dòng)態(tài)輸入的面向?qū)ο蟮慕忉屝驼Z(yǔ)言,它簡(jiǎn)潔易讀、易于學(xué)習(xí)、易于擴(kuò)展,已成為最流行最熱門的編程語(yǔ)言。

        ArcPy是以ArcgisScripting模塊為基礎(chǔ)并繼承了其功能進(jìn)而構(gòu)建的Python站點(diǎn)包。目的是以實(shí)用高效的方式通過(guò)Python執(zhí)行地理數(shù)據(jù)分析、數(shù)據(jù)轉(zhuǎn)換、數(shù)據(jù)管理和地圖自動(dòng)化創(chuàng)建基礎(chǔ)。

        用ArcPy編寫ArcGIS應(yīng)用程序的優(yōu)勢(shì)在于,它不僅完整繼承了Python的易學(xué)、易用、易擴(kuò)展的特性,還能夠完整使用ArcGIS自帶的很多工具包,使初學(xué)者能夠快速入門并編寫具有復(fù)雜功能的附加模塊。

        2.2 ArcGIS中的Polygon對(duì)象簡(jiǎn)介

        本文編寫的相關(guān)代碼利用了ArcGIS內(nèi)部的Polylgon對(duì)象,因此首先需要了解Polygon對(duì)象的相關(guān)特性和數(shù)據(jù)結(jié)構(gòu)。

        Polylgon對(duì)象是一個(gè)或多個(gè)Ring對(duì)象的有序集合,它可以由單個(gè)Ring對(duì)象構(gòu)成,也可以由多個(gè)Ring組成。其數(shù)據(jù)結(jié)構(gòu)如圖3所示。

        圖3 Polylgon對(duì)象數(shù)據(jù)結(jié)構(gòu)示意圖

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

        圖4 Ring的內(nèi)外環(huán)示意圖

        3 代碼實(shí)現(xiàn)

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

        圖5 文件輸出處理流程圖

        4 結(jié)束語(yǔ)

        文本給出了完整的代碼,基于ArcPy實(shí)現(xiàn)了界址點(diǎn)坐標(biāo)交換文件的快速輸出。相比手動(dòng)編輯或其他方法,主要的改進(jìn)和提升:

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

        (2)自動(dòng)化程度高,不需要人工干預(yù)。

        相關(guān)代碼已大量運(yùn)用于實(shí)際工作項(xiàng)目中,相比其他方法極大提高了效率和準(zhǔn)確性,以前編輯一個(gè)地塊需要3~5 min,現(xiàn)在只需要不到10 s。

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

        猜你喜歡
        界址數(shù)據(jù)結(jié)構(gòu)代碼
        兩只小兔移界址
        兩只小兔移界址
        CASS地籍圖中界址信息批量轉(zhuǎn)出方法研究
        創(chuàng)世代碼
        創(chuàng)世代碼
        創(chuàng)世代碼
        創(chuàng)世代碼
        “翻轉(zhuǎn)課堂”教學(xué)模式的探討——以《數(shù)據(jù)結(jié)構(gòu)》課程教學(xué)為例
        高職高專數(shù)據(jù)結(jié)構(gòu)教學(xué)改革探討
        TRIZ理論在“數(shù)據(jù)結(jié)構(gòu)”多媒體教學(xué)中的應(yīng)用
        黑人巨大av在线播放无码| 少妇激情高潮视频网站| 国产亚洲精品熟女国产成人| 亚洲精品乱码8久久久久久日本| 一道久在线无码加勒比| 日韩在线视频不卡一区二区三区| 亚洲一区二区三区精品久久av| 搡女人真爽免费视频大全| 67194熟妇在线永久免费观看| 国产福利片无码区在线观看| 加勒比久草免费在线观看| 亚洲乱码中文字幕在线播放| 中文字幕+乱码+中文字幕一区| 97视频在线播放| 亚洲综合精品一区二区三区| 精品少妇一区二区av免费观看| 成人免费无码大片a毛片软件 | 亚洲成人免费久久av| 国产精品成人亚洲一区| 中文字幕免费不卡二区| 亚洲伊人久久成人综合网| 亚洲自偷自拍另类第一页| 国产精品天天看天天狠| 国产一女三男3p免费视频| 精品国产一区二区三区亚洲人| av中文字幕性女高清在线| 超碰人人超碰人人| 亚洲精品毛片一区二区三区| 精品人妻av区乱码| 国产三级不卡一区不卡二区在线| 国精品午夜福利视频不卡| 欧美另类视频在线| 男女搞黄在线观看视频| 国产精华液一区二区三区| 国产精品无码av一区二区三区| 国产精品无码a∨精品影院| 国产AV国片精品有毛| a级三级三级三级在线视频| 亚洲av无码乱码在线观看性色| 永久黄网站色视频免费| 区一区一日本高清视频在线观看|