第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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈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这种为每个元素分别预测每个元素的框的方法进行了分析,已经证实这条路难以行得通。因此,我们考虑直接按照板块划分整个背景布局,然后在板块内,进一步划分出我们需…