Arcpy 点要素的那些事儿(一)

(3)ArcPy:创建点线面要素及添加字段 使用ArcPy创建常用的要素文件时(shapefile),如、点、线面要素,其创建步骤基本相同。线、面要素与点要素创建的不同在于,点要素使用单个点坐标创建,线和面则是将一组点放入一个数组中,使用数组来创建线或者面。下面展示创建要素的基本步骤: 均为在PyCharm中进行 ## 创建要素的基本步骤: # 1.输入数据 # 2.定义空间参考 # 3.确定创建要素的路径、名称 # 4.创建要素类 # 5.创建要素字段 # 6.创建游标 # 7.创建点,遍历所有数据 # 8.新建要素、新建行 # 9.将新建的行写入 阅读详情

前言

在GIS里,点要素作为矢量数据的三大巨头之一,是每个giser都必须知道的。在日常中,我们使用ArcMap可以轻松操作点要素,那么在Arcpy开发的世界里,点要素又是如何创建、使用和进行分析,,这背后有着十分精彩的故事。

点与点要素

点(Point) 与点要素(Point Geometry) 是两种需要进行区分的事物,虽然他们都是由坐标组成,但在地理学里,点要素是指具有空间参考信息的点,是有实际地理意义的。而点,实质上就只是一对数值,不具有地理意义,因此,在开始创建点要素之前,我们需要区分好这两个概念。

创建点要素的核心工具

在Arcpy里创建点要素的方法有很多,从整体上划分,有创建单个点要素和多点要素两种,而在多个点要素创建里头,各种方法层出不穷,但主要可以分为以下几类:

  1. 将坐标值保存到属性表里,主要运用游标进行属性更新。
  2. 通过坐标值直接创建点,进而转成点要素,通过迭代的方法重复上述过程生成点要素列表,最后将点要素列表转成所需数据

无论使用哪种方法,在创建点要素的时候需要使用的函数也相差无异。主要用到以下几个函数:

  1. arcpy.Point(x,y) -- 用于生成点(*注意不是点要素,是点!!!*)
  2. arcpy.PointGeometry(point,spatial_reference) -- 生成点要素

创建单个点要素

创建单个点要素的方法比较简单,只需要有经纬度坐标即可,代码如下:

#创建点
test_point= arcpy.Point(-77.4349451, 37.5408265)

#创建点要素
test_geo = arcpy.PointGeometry(test_point,spef)

#保存点要素
arcpy.CopyFeatures_management(test_geo,'test3.shp') 

上面保存点要素用到的方法是一个叫做CopyFeatures_management的函数,这里有两个核心参数:

1. 需要保存的要素类
2. 第二个是保存的文件名。

注意记得设置好工作环境,不然容易报错~

创建多点要素

上面讲过主要有游标和迭代两种方法,游标法比较常见,官网示例也是用的游标,那我就选择用迭代的方法来弥补一下这块的空缺吧。

我的做法是用一个存储经纬度的表来批量新建点要素。通过相应的字段传给点的X、Y,当然我这里用pandas库来实现读取和迭代。
在这里插入图片描述
代码如下:

# -*— coding: utf-8 -*-
import arcpy
import sys
reload(sys)
import pandas as pd
sys.setdefaultencoding("utf-8")

#设置工作空间
arcpy.env.workspace = 'D:/New Desktop/2019全国行政区划'

#准备了一个带有经纬度信息的表
table = 'XY.txt'

#迭代过程中存储点要素的列表
pointList = []

#读取经纬度表
XY_table = pd.read_table(table,sep=',')

#定义空间参考,众所周知4326是我们熟悉的wgs84
spef = arcpy.SpatialReference(4326)

#使用pandas里的iterrows方法进行迭代,该方法会返回每一行的索引和内容
for index,row in XY_table.iterrows():
    X = row['X']
    Y = row['Y']

    #将x、y传入Point()中生成点
    point = arcpy.Point(X,Y)
    point_geo = arcpy.PointGeometry(point,spef)
    
    #生成点要素之后将其放进列表中
    pointList.append(point_geo)

#将该要素保存为test2.shp,并输出到工作路径下
arcpy.CopyFeatures_management(pointList,'test2.shp')

在这里插入图片描述

总结

我觉得这个方法是比较简单的,而且在没有字段要求的时候也不用设置插入、更新游标,核心过程简单且功能简单。如果需要添加字段的话可以用其他函数封装,无需在创建点要素的过程中增加其他功能,这样可拓展性不仅下降了,而且对于阅读者来说也增加难度。

当然,至于迭代的方法快还是用游标更新属性表的速度快,我没有认真比较,因此可能思考不够全面,记录下来以后方便反省!

初探Arcpy——用arcpy批量创建空要素类并写入数据 1、需求 偶然间了解到之前的课题组老板提出了一个我认为既无聊又充满挑战的需求,无聊是因为我认为做出来的数据意义不大,充满挑战是因为我认为我现阶段是时候入门一下arcpy了。有某地区若干气象站30年每天的温度表格数据(最高温度、最低温度、平均温度),现在需要将每一天的数据进行插值(所以,得到的数据需要怎么分析?)。原始的数据很乱,我把原始的站点气象数据进行了整理,加上了经纬度以方便后续工作的开展,最终整理成下面的表格,总共47万多行,数据说大不大,说小不小: 2、用arcpy怎么做? 对于我之前有用过GP工具 阅读详情

相关推荐

【arcpy】 | 要素类、图层、要素集的区别

要素类是。

IMRYZ的博客 1839

使用arcpy进行简单的要素编辑

类似上篇博客内容,这次直接对要素属性内容考试编辑 import arcpy from arcpy import env env.workspace=r”C:UsersyaoDocumentsArcGISDefault.gdb” print “修改之前:” Cur=arcpy.SearchCursor(“地级市”,”回族 for row in Cur:     aa = row.get

GIS大奔 3284

Arcpy基础入门-6、arcpy要素属性操作

空间数据具有三大特征:空间特征、属性特征和时间特征,同样组成一个几何要素的对象也包括空间几何、属性以及时间表达. 这一节我们以一个实例来说一下arcpy对几何对象属性的操作,属性的操作和数据库的操作基本相同,包括查询、添加、更改和删除,添加和删除主要是针对整个属性添加或者删除一个字段,查询和更改是针对一个要素的属性进行操作,我们来先看一个实例: import time,os import

GIS on the road happy_h 2万+

arcpy 获取空间数据库中要素类名称和要素个数

import arcpy from arcpy import env import sys import os reload(sys) sys.setdefaultencoding(‘utf8’) path = “C:\Code\XYBASE.gdb” print(path) arcpy.env.workspace = path for fds in arcpy.ListDatasets(’’,’’): for fc in arcpy.ListFeatureClasses(’’, ‘’, fds): num

XiaoCai 5008

ArcGIS中如何提取矢量数据的每个要素(Arcpy)

ArcGIS中提取矢量数据的每个要素 有一次实验需要把一个渔网拆分成单独的小格子,如果数量少的话倒是可以一个一个导出,但是我的有1万多个,想想还是上网求助,找到了可以使用arcpy脚本导出所有要素的方法,今天写个详细的教程。 下面的是我的渔网 多的就不说了,把代码块给大家搬上来: # -*- coding:utf-8 -*- import arcpy import os from arcpy import env env.workspace = "C:/Users/Administrator/Desktop

baidu_41688799的博客 6613

利用Arcpy实现批量分割多个要素类

有多个矢量数据文件,需要根据行政单元(或其他矢量面数据)进行分割并分别保存

qq_28225887的博客 2642

ArcPy之读取几何要素(shapefile)的坐标

简单介绍介绍如何使用ArcPy读取几何要素的坐标,后续会介绍如何生成一个shp文件。 掌握arcgis软件及其开发技巧对于任何一个giser都是必备的基本功,说来简单,没有大量的实践和练习一切都是扯淡。虽然已经有很多学者在倡导去arcgis化,但有机会还是要认真练习的,毕竟它的很多技术和理念一直引领者gis界的潮流。 即便很熟悉软件的操作,你还是会发现,实际做事的时候,自己面对的工作总有...

zhoujiaaw的博客 1万+

第七节.arcpy中的几何信息表达(3.PointGeometry类)

WKT:Well-known text是一种文本标记语言,用于表示矢量几何对象、空间参照系统及空间参照系统之间的转换,是OGC(Open Geospatial Consortium:开放地理联盟)所定义的两种表示空间对象的标准方式之一(还有一种就是WKB)。在ArcGIS/GeoScene的Python环境自带的juypter里面,如果你的对象能够解析成matplotlib能够识别的空间几何对象,就会自动绘制出来。Point对象只需要有XY坐标即可,但是没有坐标系,你也就无法通过XY知道在地球的哪个位置。

JData_Engineer的博客 541

基于Arcpy根据属性表XY坐标生成点要素文件

基于Arcpy根据属性表XY坐标生成点要素文件转载自:https://www.sircourse.com/72.html尊重原创,转载时请注明来源 一、需求描述这是一次在执行近邻分析后发生的故事在项目实施过程中,如果执行近邻分析,会在原有数据属性表的基础上,获得近邻要素的坐标信息。这时若需要将这些近邻要素进行导出,并生成新的要素类,当前arcgis软件的操作较为复杂。因此,通过编写arcpy脚本,...

qq_28225887的博客 3729

arcpy创建基本要素:点和多点

当谈到地理信息系统(GIS)数据处理和分析时,Python中的ArcPy库是一个强大的工具。在本篇博客中,我将向大家介绍如何使用ArcPy在ArcGIS环境中创建点(Point)和多点(Multipoint)要素,从创建空间参考到插入记录,逐步展开讲解。以下是每个部分的详细内容以及相应的代码示例。

weixin_44853840的博客 743

(一)Arcpy 提取面要素文件的质心

提取江苏省县区级行政区域的质心,形成一个点类型shape文件,至少含有县区名称属性。

Lucky_云佳的博客 2138

ArcPy高级开发教程—要素操作

由于经常使用ArcPy处理数据,本人会分享一些常用的ArcPy数据处理教程,并附上代码,如果有需求,可以留言或者私戳。 除了ENVI,ArcGIS也可以做波段计算,虽然效率低点,麻烦点,但如果你不熟悉IDL开发,那做批处理的时候,也是可以用ArcGIS将就一下的,本文将给出使用ArcPy进行批量提取水体或植被的代码 首先,ArcPy处理一张多光谱影像,大概包括以下流程: 1.提取单波段,比如...

tuoyakan9097的博客 5711

在arcgis10.3中,python实现批量txt文件生成点要素类文件

在arcgis10.3中,python实现批量txt文件生成点要素类文件。ps:尝试在8g内存的电脑上运行会出现runtime error,在32g内存电脑上运行没有问题

arcgis的arcpy写入几何怎么创建一个空心面要素并读取几何和属性信息

转载请注明作者(独孤尚良dugushangliang)出处:https://blog.youkuaiyun.com/dugushangliang/article/details/83861447 路漫漫其修远兮,经过不懈的摸索,终于找到了一个解决办法。 做这个肯定要参考官方文档,下面附上两个链接,是arcpy的读取几何和写入几何。 http://pro.arcgis.com/zh-cn/pro-a...

dugushangliang的博客 4559

C语言 在合并编译 ( 多.c文件 ) 情况下 实现 linked list ( 链表 ) 教程 . 更新ing

写在前面  依旧是参考借鉴了 浙江大学 温老师 的视频教程,很不错,在中国大学MOOC上,强力推荐!  虽说有借鉴,但是能保证的是每一行代码都是我自己经过理解后手敲出来的,所以才来做了这部分的教程。  最后,带 * 字符是我个人觉得可以添加的功能,按理来讲是可以不看的,而且大概率是可以有更好的改进的。  PS: 文章还在更新,如果文字蓝了(有超链接),说明写完了,如果没蓝,说明我在开军舰.jpg 源代码:  这里→源代码. 第一步:前置工作  先说一下每一篇都会出现 main 函数的,stage1 只是给没

weixin_47287635的博客 526

Tube-based MPC完全指南:RCI集合构造与Matlab实现

模型预测控制(MPC)在实际工程中常因模型失配和外部扰动导致硬约束被突破,而鲁棒控制中的Tube-based MPC通过将单条预测轨迹扩展为“管道”集合,为不确定性提供了严格的安全边界。其核心在于利用鲁棒控制不变集(RCI)离线构造安全域,再结合在线标称MPC与反馈校正实现约束的硬保证。针对非线性系统,利普希茨条件为等效扰动的放大和RCI的构造提供了理论基础,使得算法既能保留非线性描述,又不牺牲在线计算效率。该方法适用于带扰动和参数漂移的机械系统、过程控制及嵌入式控制场景。本文以摩擦力非线性系统为例,从RC

weixin_32642109的博客 216

arcpy利用XY创建点

参考了很多博客吧,最后把自己都改蒙了,这个博客有分析arcpy创建带高程的点图层、 # -*- coding: utf-8 -*- """ Created on Sun Apr 7 15:32:24 2019 @author: """ # XYTableToPoint.py # Description: Creates a point feature class from input ...

XinemaChen的博客 1981

mfcc总结,这个mel三角滤波器分组到底是如何起作用的呢?

先看fft频谱图(这是4096字节取样fft计算,横轴频率是从0到512,后边意义不大,未取,纵轴是振幅),那些我随便画的蓝色线,你有什么联想?: 再看,这绿色线,是否有一种上升后,便逐渐式微的感觉,都是三角形的,这或许也是mel当初和绝大多数人看到的: 如果在振幅上加上一条限制的黑线(振幅门槛限制),黑色线以下很多频率就没有意义了,你看,有用的频率连一半(512/2=256)都占不到...

ganggangwawa的博客 9908

Python中ArcPy实现ArcGIS自动批量制图与地图要素批量设置

本文介绍Python中ArcPy实现ArcGIS自动批量制图、图层批量导出与地图要素批量配置的方法~

疯狂学习GIS的博客 8262

QT-使用ECharts显示地图,还有更多惊艳的图表等待你的使用

QT-使用ECharts显示地图前言一、使用步骤1.下载示例2. QT使用HTML文件配置3.使用HTML文件4. 数据交互及自适应总结注意:这个地图是百度的在线地图,需要百度API密钥和在联网的状态下使用。离线使用图表 前言 我上文QT图表chart-饼状图,使用qt自带的图表库charts来显示图表,实现数据可视化,但是QT自带的图表库显示效果并不佳,通俗说,就是不好看。 然而,有这么一个开源图表库,图表种类极多,并且效果良好,能够实现具有很好的视觉冲击的数据可视化。 它就是Apache ECharts

博咯的博客 4898

手把手教你学PCIE(9.3)--pcie常见故障及原因:配置错误介绍

PCIe 设备的配置错误可能涉及操作系统设置、BIOS 设置、驱动程序设置和配置文件设置等多个方面。通过以上方法,可以有效地诊断和解决 PCIe 设备的配置错误。

MHD0815的博客 2440

【Arcpy】shp的读取与创建

最近又觉得自己得多写写博客做记录,遇到机会就开始做补完,再基础也要整理。今天就整理一下使用arcpy创建shp的相关内容吧。需要说明的是,arcgis的矢量数据模型——要素,从文件的角度是有shp和gdb两种存储方式的,这里选择shp主要是出于个人习惯。 首先我们看看arcpy中的要素、要素类是如何存在的。有AE开发经验就会知道,一个shp文件读取后就对应着一个Feature...

猴扯 7734

华为OD机试真题 新系统 2026-04-19 C语言 实现【8位LED控制器】

有一个8位LED控制器,包含8个LED灯(编号0-7),初始状态全灭,用8位二进制表示为:00000000。控制器可以接收以下三种指令: Lx:L表示点亮操作,x表示LED的编号(0一7),操作得到的结果是:点亮第x个LED灯,把状态设为1。 Dx:D表示熄灭操作,x表示LED的编号(0-7),操作得到的结果是:熄灭第x个LED灯,把状态设为0。 Tx:T表示切换操作,x表示LED的编号(0-7),操作得到的结果是:切换第x个LED灯的状态,若状态为0则变为1,为1则变为0。 现在给定一组指令字符串(0<

MISAYAONE的博客 149

arcpy处理mdb中的要素数据集和要素类

最近在测试如何获取mdb中的要素数据集,并且查询mdb要素类的属性表内容。 测试数据 使用ArcMap的python环境(‪C:\Python27\ArcGIS10.7\python.exe),并使用下述代码进行测试,发现能够将mdb中要素数据集名称获取到,并且能够查询指定要素类的内容。 import arcpy import os ws = r"E:\test\testcwd.mdb...

gislaozhang 4296

基于方差分解分析气象/水文干旱驱动因素(含MATLAB全代码)

简介基于方差分解方法分析气象/水文干旱驱动因素

WW、forever的博客 801

Open3D 计算点云配准的旋转和平移误差

通过计算旋转误差和平移误差来量化配准结果与真实变换之间的偏差。

点云侠的博客 253
上一篇: Arcpy使用字段计算器进行赋值
下一篇: Arcgis基于格网的道路密度分析
Giser@lin
博客等级 码龄7年 4652粉丝 18原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值