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

news2024/10/6 18:26:05

前言

本节将介绍点线面对象的创建和处理。创建对象有三个类,分别是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 arcpy

pointList = [[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 arcpy

pointList = [[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 pt
    pl = arcpy.Polyline(arcpy.Array(pt))
    features.append(pl)

print features

arcpy.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 pt
    pl = arcpy.Polygon(arcpy.Array(pt))
    features.append(pl)

print features

arcpy.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.coloradmin.cn/o/719297.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

蚂蚁内容安全平台天鉴入选“北京市人工智能行业赋能典型案例”

近日&#xff0c;“2023全球数字经济大会”人工智能高峰论坛在京召开。会议发布了一批人工智能行业赋能典型案例&#xff0c;为行业提供重要的示范效应&#xff0c;以推动大模型应用加速赋能千行百业。其中&#xff0c;蚂蚁集团旗下数字藏品平台“鲸探”及内容安全平台“天鉴”…

rk3288-系统语言跟随客户luancher-②

rk3288-系统语言跟随客户luancher_旋风旋风的博客-CSDN博客rk3288-系统语言跟随客户luancherhttps://blog.csdn.net/longmin96/article/details/128265807?spm=1001.2014.3001.5501方法一: 通过修改这个给APK预制成系统软件来获取权限 方法二 客户需求是不修改成系统应用,因…

【计算机视觉 | 目标检测】arxiv 计算机视觉关于目标检测的学术速递(7 月 4 日论文合集)

文章目录 一、检测相关(15篇)1.1 Artifacts Mapping: Multi-Modal Semantic Mapping for Object Detection and 3D Localization1.2 Shi-NeSS: Detecting Good and Stable Keypoints with a Neural Stability Score1.3 HODINet: High-Order Discrepant Interaction Network for…

10 从0开始学PyTorch | 多层神经网络、激活函数、学习能力

前面的训练过程我们已经了解的差不多了&#xff0c;但是我们所用到的模型还是一个线性模型&#xff0c;这一小节就让我们正经开始神经网络的搭建&#xff0c;研究怎么把之前的线性模型替换成神经网络来解决我们的问题。 为了更好的理解神经网络&#xff0c;这里我们把假设的关…

【新版系统架构】第八章-系统质量属性与架构评估

软考-系统架构设计师知识点提炼-系统架构设计师教程&#xff08;第2版&#xff09; 第一章-绪论第二章-计算机系统基础知识&#xff08;一&#xff09;第二章-计算机系统基础知识&#xff08;二&#xff09;第三章-信息系统基础知识第四章-信息安全技术基础知识第五章-软件工程…

(六)python实战——使用Redis库完成redis基本数据类型数据的操作案例

前言 本节内容主要介绍一下在python环境下&#xff0c;使用Redis库实现redis基本数据类型String、List、Set、Zset、Hash等数据的操作&#xff0c;通过案例的演示&#xff0c;学习python环境下&#xff0c;redis缓存数据库的基本使用和操作。 正文 ①使用pip命令安装Redis依…

Redis10大性能优化点(上)

1.Redis真的变慢了吗&#xff1f; 对 Redis 进行基准性能测试 例如&#xff0c;我的机器配置比较低&#xff0c;当延迟为 2ms 时&#xff0c;我就认为 Redis 变慢了&#xff0c;但是如果你的硬件配置比较高&#xff0c;那么在你的运行环境下&#xff0c;可能延迟是 0.5ms 时就…

计算机基础--->数据结构(6)【AVL树(平衡二叉树)】

文章目录 AVL&#xff08;平衡二叉树&#xff09;树性质AVL树的操作&#xff08;Java&#xff09;节点的创建AVL树的插入1.判断平衡2.保持树的平衡3.判断是否AVL树4.删除节点 全部代码 AVL&#xff08;平衡二叉树&#xff09;树 平衡二叉树是一种特殊的二叉搜索树&#xff0c;他…

不再担心代码丢失!掌握同步代码到两个git仓库的绝妙方法!

最近&#xff0c;我手里的项目由于某些原因&#xff0c;需要从一个代码仓库把所有的代码复制到另一个代码仓库中&#xff0c;并且以后再同步代码的时候&#xff0c;需要同时把本地的代码同步到两个代码仓库。为了满足这一需求&#xff0c;我将为大家介绍两种方案。方案一可以实…

飞行动力学 - 第4节-part1-螺旋桨式飞机的最大最小速度 之 基础点摘要

飞行动力学 - 第4节-part1-螺旋桨式飞机的最大最小速度 之 基础点摘要 1. 最小功率和最大/最小速度概念2. 最小功率2.1 手工推导2.2 PPT推导 3. 最大速度和最小速度函数关系4. 参考资料 1. 最小功率和最大/最小速度概念 最小功率&#xff1a;类似抛物线底部斜率为零的位置最大…

Qt-事件(下)(事件过滤、自定义事件)

文章目录 事件过滤自定义事件 事件过滤 event()函数是一个protected的函数&#xff0c;这意味着我们要想重写event()&#xff0c;必须继承一个已有的组件类&#xff0c;——重写其event()函数。event()函数的确有一定的控制&#xff0c;不过有时候我的需求更严格一些&#xff…

使用Python+Autogluon对“员工自评”进行机器学习建模分析

建模核心代码 #员工自评AutoML from autogluon.tabular import TabularDataset, TabularPredictor import warnings warnings.filterwarnings(ignore) train_data TabularDataset(train_df2)# 预测标签 label 员工自评# 模型保存文件名 save_path ../data/AUO-train/model/…

一种快速拓扑聚类算法

使用场景&#xff0c;节点编号不重叠&#xff0c;可以缺损&#xff0c;确定每个节点的相互关系和最大的节点编号&#xff0c;对节点进行聚类。如下图所示&#xff0c;分三个簇&#xff0c;计算每个簇包含的元素。 插入代码&#xff0c;暂时没有继续优化的空间 // TopologicalC…

嵌入式软件开发面试题(一)

目录 1.用预处理指令表示一年有多少秒 2.写出float x 与“零值”比较的if语句 3.为什么说if(0x)比if(x0)好? 4.将地0x8000中存放的整形变量&#xff0c;清除bit1。 5.linux下用shell命令在当前目录下创建myfolder目录&#xff0c;并将此目录的权限设为拥有者可读写群组和…

携手共赢!润建股份与科士达达成战略合作

7月4日&#xff08;今日&#xff09;&#xff0c;润建股份有限公司&#xff08;以下简称”润建股份“&#xff09;与深圳科士达科技股份有限公司&#xff0c;在科士达光明工业园正式签署战略合作框架协议&#xff0c;双方将发挥各自领域的技术优势&#xff0c;在新能源与数字科…

Android开发之屏幕尺寸的兼容

屏幕尺寸和密度 本部分提供了具有特定屏幕配置&#xff08;由屏幕尺寸和密度定义&#xff09;的设备的相对数量数据。为了简化针对不同屏幕配置设计界面的过程&#xff0c;Android 将实际屏幕尺寸和密度的范围划分为多个区间&#xff08;如下表所示&#xff09;。 ldpi mdpitv…

MySQL之数据库引擎详解(内附面试题:InnoDB和MyISAM的联系与区别)

&#x1f973;&#x1f973;Welcome Huihuis Code World ! !&#x1f973;&#x1f973; 接下来看看由辉辉所写的关于MySQL数据库引擎的相关操作吧 目录 &#x1f973;&#x1f973;Welcome Huihuis Code World ! !&#x1f973;&#x1f973; 一. 数据库引擎是什么&#xff…

【kubernetes系列】Kubernetes之生命周期和重启策略

概述 Pod 遵循一个预定义的生命周期&#xff0c;起始于 Pending 阶段&#xff0c;如果至少 其中有一个主要容器正常启动&#xff0c;则进入 Running&#xff0c;之后取决于 Pod 中是否有容器以 失败状态结束而进入 Succeeded 或者 Failed 阶段。 在 Pod 运行期间&#xff0c;k…

(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;当飞行…

畅谈RocketMQ重复消费7个根源问题

在众多关于MQ的面试八股文中有这么一道题&#xff0c;“如何保证MQ消息消费的幂等性”。 为什么需要保证幂等性呢&#xff1f;是因为消息会重复消费。 为什么消息会重复消费&#xff1f; 明明已经消费了&#xff0c;为什么消息会被再次被消费呢&#xff1f; 不同的MQ产生的…