第8章 處理幾何圖形 面向 ArcGIS的Python腳本編程

image-20250616092500817

一、折點坐標(.txt 或 .xlsx 或 .xls) ==> 點線面圖層(.shp)

(一).xlsx 或 .xls ==> .shp

新建一個文件夾,連接到該文件夾,并將其設置為工作空間

image-20250616092719274

在該文件夾下,新建一個pts.xlsx的文件,并輸入下圖內容

image-20250616093037270

其中,每行代表一個點,x代表經度,y代表緯度

文件|添加數據|添加XY數據

image-20250616093253665

選中pts.xlsx的Sheet1$

注:若無法打開.xlsx,參考這篇文章如何在 ArcGIS 中使用 Microsoft Excel 文件_20250614;或,將.xlsx 另存為.xls文件,其余步驟與.xlsx一樣

image-20250616093412494

可指定空間參考

點擊“確定”

image-20250616093436142

image-20250616094233730

右鍵[Sheet1$個事件]|數據|導出數據

image-20250616094341198

注意,將[保存類型]更改為[Shapefile]

image-20250616094437125

image-20250616094457006

image-20250616094519048

至此,已將 .xlsx 或 .xls 轉為點 .shp文件了

接下來,用【點集轉線】工具,將【點.shp】轉為【線.shp】

屏幕截圖 2025-06-16 094905

image-20250616095021631

接著,用【要素轉面】工具,將線.shp轉為面.shp

image-20250616095159698

image-20250616095228122

(二).txt ==> .shp

1. 前期準備: 添加Samples.tbx

右擊ArcMap,打開文件位置

屏幕截圖 2025-06-16 085206

右擊下圖的快捷方式,打開文件所在的位置

屏幕截圖 2025-06-16 085246

這時,進入的是bin文件夾

屏幕截圖 2025-06-16 085307

返回上一級目錄(文件夾)Desktop10.8

屏幕截圖 2025-06-16 085314

進入下圖目錄,點[三個小點],點擊[選項](注:筆者所用系統是WIN11,WIN10、WIN7可能不在同一地方)

屏幕截圖 2025-06-16 085537

在【高級設置】里勾選【顯示隱藏的文件、文件夾和驅動器】

屏幕截圖 2025-06-16 085555

這時,你會發現,目錄下多出一個隱藏的工具箱:Samples.tbx先生!

屏幕截圖 2025-06-16 085607

右擊Samples.tbx先生,打開【屬性】,取消勾選【隱藏】

屏幕截圖 2025-06-16 085631

復制一個Samples.tbx先生,并重命名,此處筆者將其命名為Samples_backup.tbx

屏幕截圖 2025-06-16 085658

在進行下一步之前,先將包含工具箱的路徑添加到文件夾連接里

屏幕截圖 2025-06-16 085851

屏幕截圖 2025-06-16 085912

在ArcToolbox里,右擊【ArcToolbox】|【添加工具箱】

屏幕截圖 2025-06-16 085822

注意,這里不要添加Samples.tbx,而是要添加Samples_backup.tbx,否則工具箱添加后不能下拉,沒有工具可用

屏幕截圖 2025-06-16 085933

添加后,就能使用該工具箱了

屏幕截圖 2025-06-16 085951

但筆者發現,一旦新建.mxd文檔,Sample工具箱就不能下拉、使用工具了,需重新添加工具箱,很麻煩,若大家有一勞永逸的解決方法,歡迎在評論區指出,不勝感激!

image-20250616110928452

2. .txt 轉為 .shp

點擊Samples工具箱下的【Create Features From Text File】工具,點擊【工具幫助】

屏幕截圖 2025-06-16 101543

幫助文檔里列出了語法和使用例子,現查現用即可

屏幕截圖 2025-06-16 101610

此處,筆者以最簡單的

  • Point
    id x y z m
    id x y z m
    ...
    END
    

為例

在工作空間目錄下,新建一個文本文件 pts.txt

文本文件的內容如下:

  • Point
    0 1.0 1.0 3.0 1.4
    1 2.0 2.0 1.0 3.2
    2 3.0 1.0 2.0 2.5
    3 2.0 0.0 1.0 1.0
    END
    

此處[Input Decimal Separator]是指小數點的樣式,一般為[.],其他國家可能有用[,]的,詳見該工具的幫助文檔

image-20250616102147586

至此,.txt已成功轉為點.shp

image-20250616102733497

二、點線面圖層(.shp) ==> 折點坐標(.txt 或 .xlsx 或 .xls)

(一) 點.shp 轉為 .txt

1. 無空間參考

右擊工作空間文件夾,新建一個Shapefile

屏幕截圖 2025-06-16 103148

【要素類型】為【點】

屏幕截圖 2025-06-16 103221

右擊菜單欄空白處,打開【編輯器】工具條

image-20250616105115428

【編輯器】|【開始編輯】

屏幕截圖 2025-06-16 103231

打開【創建要素】

屏幕截圖 2025-06-16 103245

畫幾個點

屏幕截圖 2025-06-16 103324

點擊Samples工具箱下的【Write Features To Text File】工具

注,這里【Output Text File】要手動輸入 【.txt】文件擴展名

屏幕截圖 2025-06-16 103544

輸出的 point.txt 內容如下:

Point
0 92270856741.6 58229181438.9 nan nan
1 3.35937585224e+11 56437514317.7 nan nan
2 2.19479222347e+11 2.35604226437e+11 nan nan
3 70770851287.3 2.76812570225e+11 nan nan
4 -1.87229214165e+11 2.01562551135e+11 nan nan
5 -1.76479211438e+11 52854180075.3 nan nan
6 11645836287.8 -1.47812537499e+11 nan nan
7 1.76479211438e+11 -1.89020881286e+11 nan nan
8 3.41312586588e+11 -1.17354196438e+11 nan nan
9 5.90354316434e+11 -51062512954.1 nan nan
10 5.43770971283e+11 1.10187527954e+11 nan nan
END

2. 有地理坐標系

屏幕截圖 2025-06-16 104107

同上步,打開編輯器,畫幾個點

image-20250616105726243

image-20250616105708687

point_sr.txt內容如下:

Point
0 34937508863.3 1.26312532044e+11 nan nan
1 -60020848560.1 895833560.598 nan nan
2 2.76812570225e+11 -61812515681.3 nan nan
3 2.23062556589e+11 2.35604226437e+11 nan nan
4 -1.38854201893e+11 2.94729241437e+11 nan nan
5 -3.55645923557e+11 1.20937530681e+11 nan nan
6 -2.40979227801e+11 -1.06604193711e+11 nan nan
7 1.67520875832e+11 -2.96520908558e+11 nan nan
END

3. 帶 地理坐標系 & 投影坐標系

由于空間參考與之前不同,若在原.mxd無法用編輯器在point_prjed畫點

屏幕截圖 2025-06-16 110045

筆者猜測應該與數據框屬性有關,但打開數據框屬性后,發現無法修改數據框的空間參考

屏幕截圖 2025-06-16 110148

故干脆新建一個.mxd

屏幕截圖 2025-06-16 104140

畫幾個點

屏幕截圖 2025-06-16 110332

屏幕截圖 2025-06-16 111412

point_prjed.txt內容如下:

Point
0 -40182759.182 14978303.9466 nan nan
1 -19249225.9554 7759844.21328 nan nan
2 -4331075.83997 6195844.6044 nan nan
3 -6.83869883582e-09 13414304.3377 nan nan
4 -24422455.4309 -11008151.0933 nan nan
5 -11068304.9244 -14978303.9466 nan nan
6 3127999.21776 -13053381.351 nan nan
7 1443691.94666 -2586614.73776 nan nan
8 -39701528.5331 5594306.2933 nan nan
END

4. 【計算幾何】可計算點的x,y坐標

在point_prjed.shp屬性表新建字段

屏幕截圖 2025-06-16 111545

image-20250616111746936

屏幕截圖 2025-06-16 111608

屏幕截圖 2025-06-16 111623

image-20250616111642308

(二) 線.shp 轉為 .txt

1. 一條線

屏幕截圖 2025-06-16 112708

屏幕截圖 2025-06-16 112752

屏幕截圖 2025-06-16 112837

polyline_prjed.txt內容如下:

Polyline
0 0
0 -33987312.9473 10293475.7753 nan nan
1 -36195874.7995 -3273404.17375 nan nan
2 -22944503.6864 591579.067546 nan nan
3 -21366959.5063 9820212.52126 nan nan
4 -24758679.4936 14868353.8977 nan nan
5 -27124995.7638 13448564.1355 nan nan
6 -26809486.9277 9583580.89424 nan nan
7 -24679802.2846 6665124.16102 nan nan
8 -29333557.6159 3904421.8458 nan nan
9 -29806820.87 8479299.96816 nan nan
10 -29885698.079 12186528.7914 nan nan
END

2. >=2條線

image-20250616113428593

polyline2.txt內容如下:

Polyline
0 0
0 -37379032.9346 5560843.23493 nan nan
1 -30832224.5871 -5008702.77189 nan nan
2 -14662396.7408 8637054.38617 nan nan
3 -21840222.7604 14079581.8076 nan nan
4 -26020714.8377 13054178.0905 nan nan
5 -26099592.0467 8715931.59517 nan nan
1 0
0 -33750681.3203 -10530107.4023 nan nan
1 -26415100.8827 -13211932.5085 nan nan
2 -20026046.9532 -9031440.4312 nan nan
END

三條及三條以上的線,以此類推

(三) 面.shp 轉為 .txt

1. 一個面

屏幕截圖 2025-06-16 113644

Polygon
0 0
0 98903083.583 60472171.105 nan nan
1 280884757.376 18650295.7614 nan nan
2 236102095.547 -176214800.302 nan nan
3 54120421.7548 -134392924.958 nan nan
4 98903083.583 60472171.105 nan nan
END

2. >=2個面請讀者自行嘗試

三、總結

image-20250616121026149

image-20250616121002498

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/85189.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/85189.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/85189.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

使用(h3.js)繪制六角網格碼

今天來記錄一篇關于h3.js插件庫的使用,他可以很高效的計算出地球上某個經緯度坐標六邊形頂點。 前段時間領導突然給我個售前功能,要求是使用h3.js插件在地球上繪制出六邊形網格碼,本來以為挺棘手的,結果看完文檔后發現也挺簡單的…

GO 1.25

Go 1.25 發布說明(草案) Go 1.25 尚未發布。 本文檔是正在編寫中的發布說明。Go 1.25 預計于 2025 年 8 月發布。 語言變更 Go 1.25 中沒有影響 Go 程序的語法變更。然而,在語言規范中,“核心類型”(core types&…

解析Android SETUP_DATA_CALL 鏈路信息字段

Android 對象返回的log信息經常都不是標準的JSON字符串,排查字段不直觀,比如下面的日志: 06-13 15:56:36.204 8076 8407 D RILJ : [1655]> SETUP_DATA_CALL,reason=NORMAL,accessNetworkType=EUTRAN,dataProfile=[DataProfile=[ApnSetting] IMS, 2318, 310260, ims,…

跨語言RPC:使用Java客戶端調用Go服務端的HTTP-RPC服務

在構建分布式系統時,實現不同編程語言之間的無縫通信是一個常見的需求。本文將詳細介紹如何使用Go語言創建一個HTTP-RPC服務,并通過Java客戶端進行遠程調用。我們將探索整個過程,包括服務端的實現、客戶端的編寫以及測試驗證。 一、背景介紹…

CVPR2024遷移學習《Unified Language-driven Zero-shot Domain Adaptation》

摘要 本文提出了一個名為 Unified Language-driven Zero-shot Domain Adaptation(ULDA)的新任務設置,旨在使單一模型能夠適應多種目標領域,而無需明確的領域標識(domain-ID)知識。現有語言驅動的零樣本領域…

AI安全風險監測平臺:全周期防護體系構建

AI安全風險監測平臺通過構建全生命周期防護體系,實現對人工智能系統研發、部署、運行、迭代各階段的安全風險動態監測。該平臺融合算法審計、行為分析、合規驗證等核心能力,建立覆蓋模型安全、數據安全、應用安全的立體防御網絡,為智能系統提…

數據集-目標檢測系列- 杯子 數據集 bottle >> DataBall

數據集-目標檢測系列- 杯子 數據集 bottle >> DataBall 貴在堅持! * 相關項目 1)數據集可視化項目:gitcode: https://gitcode.com/DataBall/DataBall-detections-100s/overview 2)數據集訓練、推理相關…

視頻點播web端AI智能大綱(自動生成視頻內容大綱)的代碼與演示

通過AI技術將視頻課程自動生成結構化大綱和摘要,支持PPT教學視頻、企業內訓等場景應用。核心功能包括:自動匹配視頻知識點生成文本大綱、快速內容定位、降低課程制作成本。系統采用模塊化架構,包含Vue2.7前端組件、JS邏輯庫和演示項目&#x…

Linux: errno: EINPROGRESS-115

在connect接口的使用說明里,有這個錯誤:EINPROGRESS。 The socket is nonblocking and the connection cannot be completed immediately. It is possible to select(2) or poll(2) for completion by selecting the socket for writing. After select(2…

Node.js特訓專欄-基礎篇:3. Node.js內置模塊的使用

🔥 歡迎來到 Node.js 實戰專欄!在這里,每一行代碼都是解鎖高性能應用的鑰匙,讓我們一起開啟 Node.js 的奇妙開發之旅! Node.js 特訓專欄主頁 Node.js內置模塊:強大功能的基石 在Node.js的世界里&#xff…

基于MATLAB實現的Capon、MUSIC、ESPRIT和PM算法進行DOA

使用Capon、MUSIC、ESPRIT和PM多種算法進行doa估計,通過譜峰搜索函數估計到達角,并使用蒙特卡洛方法估計各算法的RMSE。(可能計算時間較長,如需節省時間可以減小蒙特卡洛次數) PM.m , 574 RMSE.m , 274 TLS_ESPRIT.m …

某網站極驗4滑塊驗證碼逆向分析

文章目錄 1. 寫在前面2. 接口分析3. w逆向分析4. JSON參數分析5. 距離識別6. RSA純算還原7. AES純算還原【??作者主頁】:吳秋霖 【??作者介紹】:擅長爬蟲與JS加密逆向分析!Python領域優質創作者、CSDN博客專家、阿里云博客專家、華為云享專家。一路走來長期堅守并致力于…

深入理解 C++ inline:三大語法特性 + 七大高頻考點全解析

一、什么是內聯函數 編譯器嘗試將 inline 函數的代碼直接插入調用處(類似宏展開),避免函數調用的壓棧、跳轉、返回等額外開銷。適用于短小頻繁調用的函數:如簡單的 getter/setter、數學運算等。inline 只是 建議,編譯…

Flink 與 Hive 深度集成

引言 在大數據生態中,Flink 的流批一體化處理能力與 Hive 的數據存儲分析優勢結合,通過 Flink Connector for Hive 實現無縫對接,能顯著提升數據處理效率。本文將系統解析 Flink 與 Hive 集成的核心操作,涵蓋配置、讀寫、優化全流…

Axios面試常見問題詳解

axios面試常問題目及其詳解 以下是前端面試中關于 Axios 的常見問題及詳細解答,涵蓋核心原理、實戰場景和進階優化,幫助你在面試中清晰展示技術深度。 1. Axios 是什么?它與原生 Fetch API 有何區別? 回答要點: Axi…

14.2 《3小時從零搭建企業級LLaMA3語言助手:GitHub配置+私有化模型集成全實戰》

3小時從零搭建企業級LLaMA3語言助手:GitHub配置私有化模型集成全實戰 關鍵詞:GitHub 倉庫配置, 項目初始化, 目錄結構設計, 私有化模型集成, 開發環境標準化 Fork 并配置 GitHub 項目倉庫 本節將手把手完成 LanguageMentor 項目的倉庫克隆、環境配置和…

生物制藥自動化升級:Modbus TCP與Ethernet/IP協議轉換實踐

為優化生物制藥生產流程,我司計劃將現有的Allen-Bradley PLC控制系統與新型生物反應器進行集成。由于兩者采用不同的通信協議(AB PLC使用Modbus TCP,而生物反應器支持Ethernet/IP),直接通信存在障礙。為此通過穩聯技術…

商業云手機核心優缺點分析

商業云手機核心優缺點分析,綜合技術性能、成本效率及場景適配性等多維度對比: 核心優勢? 成本革命? 硬件零投入?:免除實體手機采購(旗艦機均價6000元),企業百臺規模可省60萬 CAPEX。 彈性計費?&…

Windows 遠程桌面添加 SSL 證書指南

Windows 遠程桌面添加 SSL 證書指南 🧾 準備工作🔐 第一步:使用 Certbot 申請 SSL 證書📦 第二步:生成 PFX 格式證書文件📁 第三步:導入證書到 Windows 證書管理器🔒 第四步&#xf…

項目實訓技術實現——核心關鍵:基于二叉分割的布局生成算法

核心關鍵:基于二叉分割的布局生成算法 上一篇針對llava這種為每個元素分別預測每個元素的框的方法進行了分析,已經證實這條路難以行得通。因此,我們考慮直接按照板塊劃分整個背景布局,然后在板塊內,進一步劃分出我們需…