今天,将介绍使用ArcPy对矢量数据的属性表的字段进行增删改查操作。

1. 属性表字段查询

import arcpyfields = arcpy.ListFields(shpPath)

shpPath是shpfile的路径,fields得到的是包含Field对象的列表,Field对象具有字段名称、别名、长度、精度等属性信息,例如,你只想得到属性表中包含的字段名称,那么可以直接获取Field对象的name属性

import arcpyfield_names = [f.name for f in arcpy.ListFields(shpPath)]

2. 添加字段

arcpy.AddField_management(shpPath,"tempID","SHORT")

上面代码给shpfile添加了一个整型的名字叫做tempID的字段。第二个参数是字段名称,第三个参数是字段类型,除了整型,还可以是TEXT, FLOAT, DOUBLE, DATE等。

另外一个比较常见的场景是我们需要添加一个字段area,来自动计算每个要素的面积,比如当前的shpfile是某土地分类,或者是提取的水体、林地、建筑物等面矢量,有两种推荐的做法:

方法一:

# -*- coding: UTF-8 -*-import arcpydef calArea(shpPath):    field_names = [f.name for f in arcpy.ListFields(shpPath)]    if 'area' not in field_names:        arcpy.AddField_management(shpPath, 'area', 'DOUBLE')      arcpy.CalculateField_management(shpPath, 'area', "!shape.geodesicArea@SQUAREMETERS!", 'PYTHON_9.3')

上面的代码做了三件事情,先判断原本的属性表中有没有area这个字段,没用的话就添加,然后使用字段计算的功能自动计算了每个要素的面积。CalculateField_management不仅可以计算面积,还可以计算范围、长度、中心点等信息。另外上面的代码计算的是测地线面积,如果你的shpfile是投影坐标,计算面积使用"!shape.area@SQUAREMETERS!"即可。

方法二:

ArcPy实际上提供了更为方便的直接添加几何属性的操作。

arcpy.AddGeometryAttributes_management(shpPath, ['AREA_GEODESIC'], '', 'SQUARE_METERS', '') //地理坐标arcpy.AddGeometryAttributes_management(input, ['AREA'], '', 'SQUARE_METERS', '') //投影坐标

运行以上代码会直接在原本的shpfile中增加一个计算了要素面积的AREA_GEO字段。同样的,添加几何属性这个函数还可以添加长度、周长、包含的点的数量等。

3. 删除字段

arcpy.DeleteField_management(shpPath, ["area", "tempID"])

上面的代码能够同时删除输入的shpfile中area和tempID两个字段。

4. 更改字段

arcpy.AlterField_management(shpPath, field, new_field)

field是原来的字段名称,new_field是更改的新名字,更改字段这个操作用的少,不推荐使用,容易出错。

扩展:

以上我们是直接对shpfile或者说是features的属性表进行操作,但有时候我们需要处理的对象是Layer,layer对象是arcpy中一个常用的对象,对矢量数据进行查询和分析时经常会用到这个对象,对layer的属性字段操作需要用到FieldInfo类。

FieldInfo属性:

count:field的数量

FieldInfo常用方法:

findFieldByName (field_name):返回field_name的索引getFieldName (index):返回索引index处字段名称removeField (index):删除索引index处字段...

更多信息可以参考ArcPy的官方文档

ArcPy高级开发教程—属性表字段操作相关推荐

  1. mysql 设置 0、1 用什么数据类型_MySQL数据库教程-数据表字段约束

    MySQL数据库教程-数据表字段约束 为保证数据库中存储数据的规范化,一般需要在定义字段时进行字段规范与约束的定义.保证在进行数据录入时,数据库能够通过这个规则.约束.规范检查所录入的数据,防止错误及 ...

  2. Cocos2d-x高级开发教程:制作自己的《捕鱼达人》

    <Cocos2d-x高级开发教程:制作自己的<捕鱼达人>> 基本信息 作者: 火烈鸟网络科技 丛书名: 图灵原创 出版社:人民邮电出版社 ISBN:9787115317964 ...

  3. arcgis属性表选择两个条件_arcgis中给属性表字段按条件批量赋值

    1.金锄头文库是"C2C"交易模式,即卖家上传的文档直接由买家下载,本站只是中间服务平台,本站所有文档下载所得的收益全部归上传人(卖家)所有,作为网络服务商,若您的权利被侵害请及时 ...

  4. 【笔记】Cocos2d-x高级开发教程:制作自己的捕鱼达人 笔记一:序_前言_第一章

    [笔记]Cocos2d-x高级开发教程:制作自己的<捕鱼达人> 笔记一:序_前言_第一章 转载请注明出处:http://blog.csdn.net/l_badluck/article/de ...

  5. ArcGIS属性表字段自动编号

    2018.11.8学习记录 ArcGIS属性表字段自动编号 属性表字段--字段计算器 Parser: PythonExpression: accumulate(!FieldA!)Code Block: ...

  6. Python图形用户界面设计-Delphi For Python高级开发教程

    目录 简介........................................................................ 5 谁应该阅读这本教程........... ...

  7. 快速开发平台业务表字段设置的用法

    在快速开发平台 15版本增加了业务表字段设置,和表结构中字段设置类似,可以定义业务表字段的相关属性,关于业务表字段设置,说明如下: 1.初始默认继承于表结构的字段设置. 2.当业务表字段被修改,并且与 ...

  8. arcgis更改字段名_ArcGIS怎么修改属性表字段名称

    1.打开ArcMap,选择"Add Data",加入刚才修改了字段的属性表: 2.选择"Editor"->"start editing" ...

  9. ArcGIS arcpy代码工具——将要素属性表字段及要素截图插入word模板

    专栏文章 ArcGIS arcpy代码工具--批量对MXD文件的页面布局设置修改 ArcGIS arcpy代码工具--数据驱动工具批量导出MXD文档并同步导出图片 文章目录 专栏文章 功能说明 1 准 ...

最新文章

  1. 认识实时动态测量技术
  2. Visual Studio 2017 调试 windows server 2016 Docker Container
  3. P5163-WD与地图【tarjan,整体二分,线段树合并】
  4. leetcode初级算法6.字符串转整数(atoi)
  5. java代码审计ssrf危险函数_某租车系统Java代码审计之后台注入漏洞分析
  6. Scrapy 爬虫去重效率优化之 Bloom Filter的算法的对接
  7. 信息学奥赛一本通C++语言——1005:地球人口承载力估计
  8. mysql语法中的join_MySQL JOIN 语法说明与 图解
  9. mlock家族:锁定物理内存
  10. java webservice soap请求_使用Java对WebService的SOAP请求
  11. 深蓝学院-视觉SLAM从理论到实践基础知识导图
  12. Codejam Qualification Round 2019
  13. Web页面输出Excel的数字问题解决方法
  14. 【python】函数和模块
  15. python 爬虫保存为word_微信公众号文章爬虫,本地word文档保存
  16. MAC OS读取NTFS格式硬盘
  17. 三星android截屏快捷键是什么,三星s10截屏快捷键是什么
  18. 利用Audacity对浊音、清音、爆破音进行时域、频域分析
  19. Python基础知识-字典dictionary
  20. 如何逼自己玩命学习,这几款超奶思的学习APP,让你爱上学习!

热门文章

  1. LDblock绘制连锁不平衡和单体型图
  2. c语言 机构体传给指针,注意使用结构体指针给函数传递参数。
  3. 头像编辑助手微信小程序源码/带流量主
  4. EPUB文档格式在线转换DOCX文档格式
  5. 抚安克.安抚呼吸调理配方
  6. Linux系统管理-用户管理-组管理-2
  7. unity3d 滚动字幕
  8. 计算机网络体系结构基础知识
  9. html图片怎么加动画效果,css打造一个动画效果的图片墙
  10. 受伤的皇后(超详细)--蓝桥杯真题DFS