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

这一节我们以一个实例来说一下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要素属性操作相关推荐

  1. Arcpy基础入门-3、arcpy创建地理处理工具

    接着说arcpy的使用.地理处理工具是arcgis的核心所在.Arcgis桌面版软件围绕地理处理构建了一个完整的可扩展的地理处理框架:arctoolbox.Modelbuilder.Commend l ...

  2. Arcpy基础入门-4、arcpy工具进阶

    在使用arcmap工具箱里的工具的时候,如果已经加载相应的图层或者数据,就可以使用下拉列表的方式进行选择,也就是说工具会自动加载这些图层只需要选择即可.这一节就说下如何自动化的选择图层和数据. 1. ...

  3. Arcpy基础入门-2、arcpy的批处理功能

    教程1中我们简单的说了arcpy的使用方法,这应该特符合中国的国情吧,先会用再说.我们这一节还是讲arcpy的使用.说一下arcpy的批处理功能. ArcGIS作为世界领先的平台GIS软件,其应用的广 ...

  4. php教程目录,php基础入门篇-文件和目录操作_PHP教程

    一篇关于php 入门的朋友参考的关于文件和目录的各种操作函数与实例应用,有需要的朋友可以简单的参考一下. 本章可以算是上一章的延续,介绍了除文件实际内容之外的附加信息,包括文件的大小.目录.访问权限等 ...

  5. HTML零基础入门之标签、属性选择器、元素选择器

    这里写目录标题 一.什么是 `HTML5` 二.`HTML5 ` 新增标签 三.多媒体音频标签 四.多媒体视频标签 五.新增 input 标签 六.新增表单属性 七.`CSS3 ` 属性选择器(上) ...

  6. Python基础入门:常用的os操作

    Python自动的os库是和操作系统交互的库,常用的操作包括文件/目录操作,路径操作,环境变量操作和执行系统命令等. 文件/目录操作 获取当前目录(pwd): os.getcwd() 切换目录(cd) ...

  7. Python基础入门:高效的集合操作

    Python中有两种可以遍历的容器类型. 序列类型:包含字符串.列表.元祖 映射(哈希)类型:包含字典.集合 序列类型是线性表,就像数组一样,是在内存中开辟一块连续空间,连续存储的,那么查找某个元素时 ...

  8. CSS3基础入门02

    目录 CSS3 基础入门02 边框相关属性 border-radius border-image box-shadow CSS3 弹性盒子模型 什么是弹性盒子模型 新旧版本的弹性盒子 相关概念 弹性容 ...

  9. Grid布局基础入门

    Grid布局基础入门 一.容器属性 1.display属性 (1)display:gird :容器元素是块级元素 (2)display:inline-grid :容器元素是内联元素 2.grid-te ...

最新文章

  1. ARCGIS中某字段递增赋值
  2. 6、Cocos2dx 3.0游戏开发的基本概念找个小三场比赛
  3. Fedora 30将获得Bash 5.0,淘汰Yum推迟到Fedora 31
  4. mongodb,redis,mysql 简要对比
  5. linux 自动配置 mysql数据库,Linux下配置mysql数据库主从自动备份
  6. PHP的自动加载__autoload spl_autoload_register
  7. 提前(qian)庆祝 “1024程序员节” ,价值 1500 元的京东卡免费送!
  8. 配置 Hdp 4 Window 中的一些问题
  9. 黄聪:Microsoft Enterprise Library 5.0 系列教程(四) Logging Application Block
  10. 计算机统考分数短信显示合格,今年起全省八年级网考信息技术 成绩不合格不能升高中...
  11. 2007-11-7学习EXT第一天:EXT简介
  12. Django之Apache2部署
  13. DHCP服务器如何检测穿过中继代理的IP地址冲突(gratuitous ARP肯定是不行的)
  14. 单例模式及多线程安全(C++版)
  15. java 前后台传参数为json格式,如何取出
  16. eyoucms 网页制作软件有哪些 这些你都知道吗
  17. 贪心算法及几个常用的例题
  18. 三星note10 android q,【极光ROM】-【三星NOTE10/NOTE10+/5G N97XX-9825】-【V5.0 Android-Q-TE9】...
  19. matlab dlt标定,实验三 Matlab图像处理基本操作及摄像机标定(DLT)
  20. Apple开发账号添加团队成员

热门文章

  1. linux的各种自带库-lz -lrt -lm -lc都是什么库
  2. Apache POI 设置Excel单元格的宽度和高度
  3. 电脑连上网,可以登录qq、微信,但是打不开网页,怎么办?
  4. Python数据分析第八课:初识Matplotlib
  5. 机器学习:浅谈先验概率,后验概率
  6. IntelliJ IDEA 创建Java项目
  7. 计算机软件logo设计,硕思logo设计师(logo设计软件)
  8. 3 移动机器人路径规划(1- 栅格地图绘制)
  9. Java数据类型+练习
  10. Asp.Net 汉字转(拼音)