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

2024-01-27 05:18

本文主要是介绍Arcpy基础入门-6、arcpy要素属性操作,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

空间数据具有三大特征:空间特征、属性特征和时间特征,同样组成一个几何要素的对象也包括空间几何、属性以及时间表达.

这一节我们以一个实例来说一下arcpy对几何对象属性的操作,属性的操作和数据库的操作基本相同,包括查询、添加、更改和删除,添加和删除主要是针对整个属性添加或者删除一个字段,查询和更改是针对一个要素的属性进行操作,我们来先看一个实例:

import time,os
import arcpyprint '程序开始:' + str(time.ctime())
arcpy.env.workspace = r"C:\Users\ljb\Desktop\高程数据"
#输入要素
inFeatures = "TERLK_LN.shp"
#添加一个字段用来标记高程是否可以整除10
fieldName1 = "Mark"
fieldPrecision = 2
fieldAlias = "整除10标记"#列出所有字段
fieldObjList = arcpy.ListFields(inFeatures)
# Create an empty list that will be populated with field names        
fieldNameList = []
# For each field in the object list, add the field name to the
#  name list.  If the field is required, exclude it, to prevent errors
for field in fieldObjList:if not field.required:fieldNameList.append(field.name)
print fieldNameList
if fieldName1 in fieldNameList:arcpy.DeleteField_management(inFeatures, fieldName1)print"删除已有字段"#添加字段函数
arcpy.AddField_management(inFeatures, fieldName1, "LONG", fieldPrecision, "", "",fieldAlias, "NULLABLE")field1 = "Elev"
field2 = "Mark"#更新查询
cursor = arcpy.UpdateCursor(inFeatures)
for row in cursor:# field2 will be equal to field1 multiplied by 3.0if((int)(row.getValue(field1))%10 == 0):row.setValue(field2, 1)else:row.setValue(field2, 0)cursor.updateRow(row)
print '程序结束:' + str(time.ctime())

添加和删除就是简单的功能函数的问题,其中删除的时候要判断一下现有的字段中是否已经存在。最为关键的是查询,arcpy包括了两种方式的查询,一种是arcpy包里自带的三种游标InsertCursor、SearchCursor、UpdateCursor,另外一种是arcpy数据获取模块也就是arcpy.da模块里带的InsertCursor、SearchCursor、UpdateCursor。两种的主要区别:

1、arcpy.insertcursor只能对表进行插入,不能插入相应的几何要素;而arcpy.da.insertCursor即可以插入表,也可以插入几何要素(如点、线、面);

2、arcpy.updateCursor只能通过row.setValue(字段名,值)和row.getValue(字段名)这两个函数对要素的值进行获取和更改,而arcpy.da.updateCursor可以功过下标的方式对要素的值进行获取和更新如row[0],而且可以查询出要素的坐标、M、Z以及面积长度等等;

3、arcpy.da.SearchCursor可以通过属性字段设置的方式查询要素的坐标、M、Z以及面积长度等,还可以通过下标进行值得获取,arcpy.SearchCursor只能进行普通的属性进行查询,不能使用下标;


至于两者的性能区别,我们后面再说,这里先简单的进行一个入门。

程序和实验数据

这篇关于Arcpy基础入门-6、arcpy要素属性操作的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/649163

相关文章

使用Java将各种数据写入Excel表格的操作示例

《使用Java将各种数据写入Excel表格的操作示例》在数据处理与管理领域,Excel凭借其强大的功能和广泛的应用,成为了数据存储与展示的重要工具,在Java开发过程中,常常需要将不同类型的数据,本文... 目录前言安装免费Java库1. 写入文本、或数值到 Excel单元格2. 写入数组到 Excel表格

Python中pywin32 常用窗口操作的实现

《Python中pywin32常用窗口操作的实现》本文主要介绍了Python中pywin32常用窗口操作的实现,pywin32主要的作用是供Python开发者快速调用WindowsAPI的一个... 目录获取窗口句柄获取最前端窗口句柄获取指定坐标处的窗口根据窗口的完整标题匹配获取句柄根据窗口的类别匹配获取句

Python位移操作和位运算的实现示例

《Python位移操作和位运算的实现示例》本文主要介绍了Python位移操作和位运算的实现示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一... 目录1. 位移操作1.1 左移操作 (<<)1.2 右移操作 (>>)注意事项:2. 位运算2.1

Python ZIP文件操作技巧详解

《PythonZIP文件操作技巧详解》在数据处理和系统开发中,ZIP文件操作是开发者必须掌握的核心技能,Python标准库提供的zipfile模块以简洁的API和跨平台特性,成为处理ZIP文件的首选... 目录一、ZIP文件操作基础三板斧1.1 创建压缩包1.2 解压操作1.3 文件遍历与信息获取二、进阶技

Java中字符串转时间与时间转字符串的操作详解

《Java中字符串转时间与时间转字符串的操作详解》Java的java.time包提供了强大的日期和时间处理功能,通过DateTimeFormatter可以轻松地在日期时间对象和字符串之间进行转换,下面... 目录一、字符串转时间(一)使用预定义格式(二)自定义格式二、时间转字符串(一)使用预定义格式(二)自

Java字符串操作技巧之语法、示例与应用场景分析

《Java字符串操作技巧之语法、示例与应用场景分析》在Java算法题和日常开发中,字符串处理是必备的核心技能,本文全面梳理Java中字符串的常用操作语法,结合代码示例、应用场景和避坑指南,可快速掌握字... 目录引言1. 基础操作1.1 创建字符串1.2 获取长度1.3 访问字符2. 字符串处理2.1 子字

Android Mainline基础简介

《AndroidMainline基础简介》AndroidMainline是通过模块化更新Android核心组件的框架,可能提高安全性,本文给大家介绍AndroidMainline基础简介,感兴趣的朋... 目录关键要点什么是 android Mainline?Android Mainline 的工作原理关键

Python 中的 with open文件操作的最佳实践

《Python中的withopen文件操作的最佳实践》在Python中,withopen()提供了一个简洁而安全的方式来处理文件操作,它不仅能确保文件在操作完成后自动关闭,还能处理文件操作中的异... 目录什么是 with open()?为什么使用 with open()?使用 with open() 进行

Linux ls命令操作详解

《Linuxls命令操作详解》通过ls命令,我们可以查看指定目录下的文件和子目录,并结合不同的选项获取详细的文件信息,如权限、大小、修改时间等,:本文主要介绍Linuxls命令详解,需要的朋友可... 目录1. 命令简介2. 命令的基本语法和用法2.1 语法格式2.2 使用示例2.2.1 列出当前目录下的文

mysql的基础语句和外键查询及其语句详解(推荐)

《mysql的基础语句和外键查询及其语句详解(推荐)》:本文主要介绍mysql的基础语句和外键查询及其语句详解(推荐),本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋... 目录一、mysql 基础语句1. 数据库操作 创建数据库2. 表操作 创建表3. CRUD 操作二、外键