ArcGIS统改属性.docx
《ArcGIS统改属性.docx》由会员分享,可在线阅读,更多相关《ArcGIS统改属性.docx(11页珍藏版)》请在冰豆网上搜索。
![ArcGIS统改属性.docx](https://file1.bdocx.com/fileroot1/2022-11/17/8ff151f7-7456-407b-a361-a3a255f2996b/8ff151f7-7456-407b-a361-a3a255f2996b1.gif)
ArcGIS统改属性
ArcGIS统改属性
ArcMap修改属性值(ArcGIS统改属性)
结合了网上和论坛的一些帖子,以及之前看的一些资料,整理了一下,如果还有新的方法,就共同分享吧。
首先推荐
法一:
选择特定要素修改其属性值
打开编辑器>开始编辑>选择编辑器工具条上“属性“按钮,打开属性对话框
即看到属性对话框,窗口可以停靠到ArcMap应用,同时默认垂直布局。
(Arcgis10的界面)
在正式开始之前,我们还需要设置显示字段内容(关于现实标注请看三楼),为后面方便选择要素做准备:
右键图层属性>显示选项卡>表达式:
在表达式对话框中编写表达式:
我用"属性+编号:
"&[属性]&"/"&[编号]作为我的表达式,一会就可以看到效果:
如上图:
每个被选的要素显示的都是前面的文字提示所显示的字段名和字段值。
我们选择一个要素类,则看到:
如果选择两个或多个要素类:
按下CTRL+鼠标左键,同时选中刚才选择的两个或多个要素
(发现,相同属性值的部分会显示他们共同的值,不同的就会空白显示),我们在字段名“编号”后的空白文本框中输入“西北向“,回车确认。
如
如将某一字段值的内容复制到另一字段值中:
前提条件:
两个字段的字段属性须遵循一定的规则(短整型、长整形、双精度、单精度都可向文本复制,但是文本复制不到数值中,多尝试几次)
1.
一个字段的值全部复制到另一个字段值中操作,
详见该贴的叙述:
http:
//bbs.esrichina-
2.
只复制其中的几个字段值,或只给某些特定属性的其他字段值统一赋值(即统改属性)
具体见楼下的:
指定计算表达式
指定计算表达式
此对话框允许您通过指定一个计算表达式来计算字段的值。
如果当前在表中选择了一些记录,则只会计算所选记录。
可以直接在框中输入表达式,或者通过单击对话框中的字段、函数和运算符将它们添加到框中。
在字段计算表达式中:
-当使用VBScript时,字段用方括号([])括起,而对于Python,则使用惊叹号(!
!
)括起。
这些字段标记并不显示在“字段计算器”对话框列出的“字段”中,但双击某个字段将其添加到表达式中时,会自动将这些字段标记添加到表达式中字段名的两侧。
-文本字符串用双引号括起:
"文本"。
如何在计算表达式中使用函数
可以在定义的计算表达式中包含任何VBScript或Python的数值、字符串或日期函数。
对话框中列出了当前所选数据类型的常用函数。
例如,以下计算表达式对数值字段使用INT()函数以返回名为DIST_MILES的数值字段中数字的整数部分:
INT([DIST_MILES])
而以下计算表达式则对字符串字段使用Python的replace()函数以将名为CODE的文本字段中出现的所有小写“p”用大写“P”替换:
!
CODE!
.replace("p","P")
文本串联运算符(&)可以与文本字段和字符串函数一起使用。
例如,以下表达式采用名为Name的文本字段中的字符串,并将其与名为CODE的文本字段中字符串最左边的三个字符串联:
[NAME]&Left([CODE],3)
要了解此对话框中列出的VBScript函数的用法,请参阅MicrosoftDeveloperNetwork在线帮助,网址为:
要了解此对话框中列出的Python函数的用法,请参阅在线Python帮助和教程,网址为:
http:
//docs.python.org/tutorial/introduction.html#strings
http:
//docs.python.org/tutorial/introduction.html#numbers
http:
//docs.python.org/tutorial/stdlib.html#dates-and-times
有关附加信息,可通过在Desktop帮助的“搜索”选项卡中输入“计算字段示例”来搜索Desktop帮助中的此主题。
有关常见转换常量的列表,可通过在Desktop帮助的“搜索”选项卡中输入“关于设置距离单位”来搜索此主题,然后查找该主题中可启动转换常量表的链接。
如何在计算表达式中使用Python代码
选中显示代码块复选框以输入将要在执行计算表达式之前处理的Python代码。
这可用于以多种方法准备或预处理准备好进行计算的数据。
下面列出了一些常用的VBA示例。
1.这些代码示例使用Python来返回“双精度”类型值,因此可以使用它们来计算现有的“双精度”类型字段或已添加到表中的新“双精度”类型字段。
2.选中“显示代码块”。
您将看到两个空的文本输入框。
3.将这些代码示例中的一段代码输入标有“预逻辑脚本代码”的最上面的框中。
提示:
可以选择此帮助主题中的代码,右键单击并选择“复制”,然后将其粘贴到框中。
基于间隔计算顺序ID或数字:
代码块:
rec=0
defautoIncrement():
globalrec
pStart=1#adjuststartvalue,ifreq'd
pInterval=1#adjustintervalvalue,ifreq'd
if(rec==0):
rec=pStart
else:
rec=rec+pInterval
returnrec
表达式:
autoIncrement()
表达式类型:
PYTHON_9.3
计算数值字段的累积值:
代码块:
total=0
defaccumulate(increment):
globaltotal
iftotal:
total+=increment
else:
total=increment
returntotal
表达式:
accumulate(!
FieldA!
)
表达式类型:
PYTHON_9.3
计算数值字段的百分比增量(以百分比格式显示结果,将“字段属性”对话框中的数字设置更改为以百分比显示):
代码块:
lastValue=0
defpercentIncrease(newValue):
globallastValue
iflastValue:
percentage=((newValue-lastValue)/lastValue)*100
else:
percentage=0
lastValue=newValue
returnpercentage
表达式:
percentIncrease(float(!
FieldA!
))
表达式类型:
PYTHON_9.3
4.将要使用的特定示例的“表达式:
”的值输入到对话框底部的“表达式”文本框中。
5.单击“确定”
计算包含几何测量值(如要素的面积或长度)的字段
地理数据库要素类的属性表包含面积(Shape_Area)、长度(Shape_Length)和周长(Shape_Length)字段,这些字段由ArcGIS自动维护。
您不必手动创建或更新这些字段。
但是,您可能想要向要素类的属性表中添加其他字段,以不同单位显示这些测量值。
或者您使用的可能是shapefile、SDC要素类或CAD要素类等非地理数据库数据源,这些数据源的属性表中不包含存储面积、长度和周长等测量值的字段。
如果要计算的字段为记录表示的要素的面积、周长、长度、xy位置或xy质心位置,则使用“计算几何”对话框来执行计算,而不使用“字段计算器”对话框。
“计算几何”对话框是ArcGIS9.2中的新增功能,通过它可很容易地以所选单位为表示几何测量值的字段计算值。
使用“计算几何”对话框计算某字段的值后,您可以在“字段计算器”对话框中使用该字段计算其他字段的值,例如,使用面积字段来计算密度值或每平方英亩的价格等。
要启动“计算几何”对话框,在表窗口中右键单击要计算的字段,然后选择“计算几何”命令。
使用“计算几何”对话框计算的字段不会在编辑要素时自动更新。
例如,如果在计算多边形shapefile的属性表中要成为多边形面积的字段后,对该多边形进行编辑或添加新多边形,那么之前添加的面积字段会过期。
您可以使用“计算几何”对话框重新计算来更新字段值。
请记住,当Shape_Area和Shape_Length字段位于存储在地理数据库的要素类的属性表中时,您不必进行此操作,因为那些Shape字段会保留并自动更新。
如何使用Python脚本计算几何测量值
您可以在“字段计算器”对话框中使用“代码块”中的Python代码来计算使用几何测量值的字段。
虽然执行这些计算的最简单方法是使用上述“计算几何”对话框,但在有些情况下,您可能要使用Python代码在“字段计算器”中执行这些计算。
这些示例将对此操作方式进行说明。
1.这些代码示例返回“双精度”类型值,因此可以使用它们来计算现有的“双精度”类型字段或已添加到表中的新“双精度”类型字段。
2.将这三行代码示例中的一行输入到文本框中。
提示:
可以选择此帮助主题中的Python代码,右键单击并选择“复制”,然后将其粘贴到框中。
计算要素的面积(以英亩为单位):
!
shape.area@acres!
计算要素的长度(以码为单位):
!
shape.length@yards!
计算某一要素的最大x坐标:
!
shape.extent.XMax!
4.单击“确定”
计算的值的单位将为存储要素时使用的单位,而不是当前使用的数据框的地图单位或显示单位。
因此,如果以英尺为单位存储数据,计算的值也将以英尺为单位。
如果希望计算的数据使用与数据不同的单位,您可以向计算表达式添加转换,或者(更简单地)将数据投影到使用该值要采用的单位的坐标系中,然后执行计算。
为什么当我右键单击ArcMap的表窗口中的某个字段时“字段计算器”命令有时处于禁用状态?
如果“字段计算器”命令被禁用,可能的原因如下:
-已选字段由ArcGIS自动管理,因此无法手动进行编辑,例如:
-ObjectID(FID)字段
-地理数据库中要素类的Shape_Length和Shape_Area字段
-coverage中点或多边形要素类的“面积”、“周长”和#字段
-coverage中Arc要素类的FNODE#、TNODE#、LPOLY#、RPOLY#、长度和#字段
-您未处于编辑会话中,只有处于编辑状态才能计算数据。
例如,当处理参与地理数据库拓扑或几何网络的版本化ArcSDE数据或要素类时,必须处于编辑会话中。
要启动编辑会话,从“编辑器”工具栏的“编辑器”下拉菜单中选择“开始编辑”。
开始编辑后,如果地图包含多个文件夹或数据库中的数据,将提示您选择要对哪个文件夹或数据库中的数据进行编辑。
在这种情况下,如果您正在查看某个要素类或独立表的属性,则选择包含该要素类或独立表的文件夹或数据库。
提示:
对该表启动了编辑会话后,您会在“选项”按钮右边的“表窗口”中看到一个铅笔符号。
-右键单击的字段可能属于已连接到此表的表。
您只能计算源表中字段的值。
这部分内容是帮助提示,直接复制过