Arcgis之Python的Arcpy的点线面对象的创建处理和通过pandas读取txt中的经纬度坐标创建几何对象

前言

本节将介绍点线面对象的创建和处理。创建对象有三个类,分别是PointMultipointPointGeometry,创建线对象的类为Polyline,创建对象的类为Polygon

一、点对象的创建——Point

点对象经常与光标配合使用。点要素将返回单个点对象而不是点对象数组。而其他要素类型(面、折线和多点)都将返回一个点对象数组,并且当这些要素具有多个部分时,则返回包含多个点对象数组的数组。

**点并非几何类,但通常用于构造几何。**即其他的几何类都是通过点对象来构造的,无论是线和面。其实都是通过点进行构造的,学过gis的应该知道。

在这里插入图片描述

在这里插入图片描述

# 创建点对象(经度,纬度,高程,路径测量值,ID)参数都是可选的
point = arcpy.Point(120.34, 31.34, 50)print "Point properties:"
print "ID:{0}".format(point.ID)  # 不填ID则默认从0开始
print "X:{0}".format(point.X)
print "Y:{0}".format(point.Y)
print "Z:{0}".format(point.Z)
Point properties:
ID:0
X:120.34
Y:31.34
Z:50.0

二、几何单点对象的创建——PointGeometry

将一个Point对此传递给PointGeometry,可以创建一个几何单点,即能在arcgis中看到的点。

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

我们下面的代码是通过是三个Point对象去创建三个几何单点对象,即创建的几何单点对象是能在arcgis中查看显示的。代码如下:

import arcpypointList = [[1, 2], [3, 5], [7, 3]]  # 坐标的列表对象point = arcpy.Point()  # 创建一个空的point对象
pointGeometryList = []  # 用来存放pointGeometry对象for pt in pointList:point.X = pt[0]point.Y = pt[1]pointGeometry = arcpy.PointGeometry(point)pointGeometryList.append(pointGeometry)# 使用CopyFeatures_management工作生成要素类
print pointGeometryList
arcpy.CopyFeatures_management(pointGeometryList, r'E:\arcpy_study\我得学城\几何对象文件\几何点对象创建.shp')
print 'done!'

要素类如图:
在这里插入图片描述
在这里插入图片描述

三、几何多点对象的创建——Multipoint

Multipoint 对象就是点的有序集合。可以将一个包含多个Point对象的数组当成参数传给Multipoint,一次性创建多个几何单点。

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

下面的代码将多个Point对象存在一个数组中,用来创建几何多点对象:

import arcpypointList = [[1, 2], [3, 5], [7, 3]]  # 坐标的列表对象# 用于存储多点对象
# pt = [<Point (1.0, 2.0, #, #)>, <Point (3.0, 5.0, #, #)>, <Point (7.0, 3.0, #, #)>]
# pt是包含三个点对象的列表
pt = [arcpy.Point(*coords) for coords in pointList]# 将多点对象转换为MultiPoint能识别的地理数组
# g_pt = <geoprocessing array object object at 0x0714D200>
g_pt = arcpy.Array(pt)# 使用array创建几何多点对象
mp = arcpy.Multipoint(g_pt)arcpy.CopyFeatures_management(mp, r'E:\arcpy_study\我得学城\几何对象文件\几何多点对象创建.shp')
print 'done!'

效果如图:
在这里插入图片描述
在这里插入图片描述

四、线对象的创建——Polyline

我们使用一个包含多个Point对象的数组来创建Polyline对象,所得到的折线是由这几个点相连接所形成的。

在这里插入图片描述
在这里插入图片描述

示例代码如下:

import arcpy# 三维数组,相当于两条折线,一个二维数组一条折线
feature_info = [[[1, 2], [2, 4], [3, 7]],[[6, 8], [5, 7], [7, 2], [9, 5]]]# 用来存放线对象
features = []for feature in feature_info:pt = [arcpy.Point(*coords) for coords in feature]print ptpl = arcpy.Polyline(arcpy.Array(pt))features.append(pl)print featuresarcpy.CopyFeatures_management(features, r'E:\arcpy_study\我得学城\几何对象文件\线对象创建.shp')
print 'done!'

效果如下:
在这里插入图片描述

在这里插入图片描述

五、面对象的创建——Polygon

我们使用一个包含多个Point对象的数组来创建Polygon对象,所得到的折线是由这几个点首尾相连所形成的。

在这里插入图片描述

在这里插入图片描述

示例代码:

import arcpy# 三维数组,相当于两条折线,一个二维数组一条折线
feature_info = [[[1, 2], [2, 4], [3, 7]],[[6, 8], [5, 7], [7, 2], [9, 5]]]# 用来存放线对象
features = []for feature in feature_info:pt = [arcpy.Point(*coords) for coords in feature]print ptpl = arcpy.Polygon(arcpy.Array(pt))features.append(pl)print featuresarcpy.CopyFeatures_management(features, r'E:\arcpy_study\我得学城\几何对象文件\面对象创建.shp')
print 'done!'

效果如下:
在这里插入图片描述

在这里插入图片描述

六、读取txt中的坐标创建几何对象

我们通过pandas库来读取txt文件中的经纬度坐标,TXT文件如下,文件命名为经纬度.txt

1 118.897901 32.099258
2 118.898200 32.099075
3 118.901593 32.096570
4 118.904799 32.094134
5 118.904801 32.094180

这里注意一下,我用的是Arcgis,自带的python版本是2.7,但是如果直接装pandas的话,最新的pandas是不支持python2的,只能降低版本,降低pandas的版本到0.23.4及以下才行。

代码如下:

视频教程地址:https://www.bilibili.com/video/BV1ab4y1h7dv/?p=8&spm_id_from=pageDriver&vd_source=5f425e0074a7f92921f53ab87712357b

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/13050.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

VOC数据集介绍以及读取(目标检测object detection)

VOC&#xff08;Visual Object Classes&#xff09;数据集是一个广泛使用的计算机视觉数据集&#xff0c;主要用于目标检测、图像分割和图像分类等任务。VOC数据集最初由英国牛津大学的计算机视觉小组创建&#xff0c;并在PASCAL VOC挑战赛中使用。 VOC数据集包含各种不同类别…

Java安全——安全提供者

Java安全 安全提供者 在Java中&#xff0c;安全提供者&#xff08;Security Provider&#xff09;是一种实现了特定安全服务的软件模块。它提供了一系列的加密、解密、签名、验证和随机数生成等安全功能。安全提供者基础设施在Java中的作用是为开发人员提供一种扩展和替换标准…

ChatGPT 提示词设置

提示词 Prompt&#xff08;提示词&#xff09;&#xff1a;当我们询问GPT时&#xff0c;发送的消息就是Prompt。 通过给出合适的Prompt&#xff0c;可以让GPT了解我们的想法&#xff0c;在根据我们的想法做出更加合适的判断&#xff0c;帮助我们完成任务&#xff0c;提高效率。…

2023测试开发,需要具备的9项能力

作为一名测试开发&#xff0c;需要具备多项能力才能胜任测试开发工作。这些能力涵盖了技术和软技能两个方面。这些能力是相互关联的&#xff0c;相辅相成的&#xff0c;只有不断提升这些能力&#xff0c;才能更好地胜任测试开发工作&#xff0c;本篇文章就分享下我个人的理解 1…

(30)精准降落和悬停(IRLock)

文章目录 30.1 概述 30.2 哪里可以买到 30.3 连接到自动驾驶仪 30.4 安装到框架上 30.5 通过任务规划器进行设置 30.6 飞行和测试 30.1 概述 Copter 支持使用 IR-LOCK 传感器(IR-LOCK sensor)和声纳或激光雷达(sonar or lidar)进行精确着陆。使用该系统&#xff0c;当飞行…

NXP文档AN13000解读-基于S32K116的无感BLDC六步换相控制策略(预定位/开环启动/反电动势过零点检测)

目录 六步换相控制 单极性PWM 反电动势过零点检测技术 反电动势的测量 总线电流的测量 电机状态切换 Alignment Start-up Run 算法用到的各模块 各模块间的连接 ADC触发顺序 芯片的初始化 时钟配置与电源管理 FTM Trigger MUX Control (TRGMUX) PDB ADC LPS…

设计团队管理秘籍:打造高效团队的必备技巧!

一个成功的设计团队取决于正确的人员、良好的沟通和高效的流程。作为设计团队的经理&#xff0c;你有责任确保团队的所有成员都能很好地合作&#xff0c;并有效地产生预期的结果。这里有一些关于如何管理好一个设计团队的技巧。 1、雇佣正确的人: 当你组建你的设计团队时&#…

依次判断数组中的各元素是否以指定后缀作为结尾numpy.char.endswith()

【小白从小学Python、C、Java】 【计算机等考500强证书考研】 【Python-数据分析】 依次判断数组中的各元素 是否以指定后缀作为结尾 numpy.char.endswith() [太阳]选择题 下列代码最后输出的结果是&#xff1f; import numpy as np s np.array([teacher, student]) print(&…

【雕爷学编程】Arduino动手做(154)---AFMotor电机扩展板模块

37款传感器与执行器的提法&#xff0c;在网络上广泛流传&#xff0c;其实Arduino能够兼容的传感器模块肯定是不止这37种的。鉴于本人手头积累了一些传感器和执行器模块&#xff0c;依照实践出真知&#xff08;一定要动手做&#xff09;的理念&#xff0c;以学习和交流为目的&am…

创建台虚拟机并安装上window10系统(NETBASE 第一课)

虚拟机&#xff08;Virtual Machine&#xff09;是一种基于软件的模拟技术&#xff0c;它可以将一台物理计算机模拟成多个虚拟计算机运行不同的操作系统和应用程序&#xff0c;从而实现资源的虚拟化和隔离。在虚拟机中&#xff0c;每个虚拟计算机都拥有自己的独立的操作系统和应…

aidl原理

aidl 流程 为了方便理解&#xff0c;先将binder看做是一个黑盒子 aidl的流程图如下 demo连接添加链接描述 Androidstudio 会帮我们生成emotionAidlService&#xff0c;具体目录在n\build\generated\aidl_source_output_dir\debug\out\com\example\emotion\emotionAidlServic…

web安全php基础_php之string对象详解

PHP 字符串 字符串变量用于包含有字符的值。 在创建字符串之后&#xff0c;我们就可以对它进行操作了。您可以直接在函数中使用字符串&#xff0c;或者把它存储在变量中。 在下面的实例中&#xff0c;我们创建一个名为 txt 的字符串变量&#xff0c;并赋值为 “Hello world!…