ARCGIS教程:图斑整理之字段计算器使用技巧
最新ARCGIS中字段计算器的使用说明

Field Calculator 的使用Field Calculator 工具可以在属性表字段点击右键,选择“Field Calculator ”,或者Data Management Tools->fields-> Calculate Field打开。
1.基本函数针对数值型:Abs:求绝对值Atn:求反正切值Cos:求余弦值Exp:求反对数值Fix:取整数部分,与Int 函数有区别的Int:取整数部分Int 和Fix 函数的区别在于如果number 参数为负数时,Int 函数返回小于或等于number 的第一个负整数,而Fix 函数返回大于或等于number 参数的第一个负整数。
MyNumber = Int(99.8) ' 返回99。
MyNumber = Fix(99.2) ' 返回99。
MyNumber = Int(‐99.8) ' 返回‐100。
MyNumber = Fix(‐99.8) ' 返回‐99。
MyNumber = Int(‐99.2) ' 返回‐100。
MyNumber = Fix(‐99.2) ' 返回‐99。
Log:求对数值Sin:求正弦值Sqr:开方Tan:求正切针对字符串型:Asc:返回与字符串的第一个字母对应的ANSI 字符代码Chr:将一个ASCII 码转为相应的字符,与它对应的是ASC()函数Format:返回根据格式String 表达式中包含的指令设置格式的字符串,例如Format(13.3,"0.00")=13.30Instr:返回某字符串在另一字符串中第一次出现的位置LCase:返回字符串的小写格式,例如LCase("ARCGIS")="arcgis" Left:返回字符串左边的内容,例如Left("arcgis",2)="ar" ,把[A]字段的前2个字符赋给[B]Len:返回字符串的长度,例如Len("arcgis")=6LTrim:去掉字符串左边的空格,例如LTrim(" arcgis")="arcgis" Mid:取出字符串中间的内容,例如Mid("arcgis",2,1)="r" 在name 字段前四个字符后面加一个空格,left([name],4) & " " & mid([name],5) QBColor:返回一个Integer 值,该值表示对应于指定的颜色编号的RGB 颜色代码Right:返回字符串右边的内容,例如Right("arcgis",2)="is" RTrim:去掉字符串右边的空格,例如RTim("arcgis ")="arcgis"Space:返回由指定数量空格组成的字符串,例如MyString = "Hello" & Space(10) & "World" ' 在两个字符串之间插入10 个空格。
ArcGIS10.2字段计算器FieldCalculator批量条件赋值用法总结

ArcGIS10.2字段计算器FieldCalculator批量条件赋值⽤法总结
花了⼏个⼩时专研这个批量处理,由于本⼈愚钝,所以费的时间较长,在⽹上搜的话,可以看到⼀⼤堆字段计算器按条件赋值的结果,但是就是没有⼈测试条件是汉字的哪⼀类。
我利⽤⽹上的答案,就是直接⽤的⼀个if语句然后就可以直接出来英⽂或是数字的结果,但是对于汉字则没有办法。
然后⼜参照⼀些其他的⽂档。
知道了,在ArcMap中使⽤python时需要将其转为utf-8,这样便可以按条件查询了。
还有就是python空格问题,不是空2就是空4 ,看得arcmap帮助⽂档得知。
然后下⾯是代码。
import os
import sys
import re
str1='超市'.decode('utf8')
str2='超市2'.decode('utf8') //需要decode是因为字段可能是ascii编码
def Reclass(kind):
if str1 in kind or str2 in kind :
return '超市'
else:
return '其他'
⽤法就是点击你要赋值的那⼀列,我这⾥是Kind,字段计算器,然后如上图写,下部的代码则是POIName则是你需要判断条件的字段
然后就出来了,各位看官要是觉得不错,点个推荐吧。
ArcGis中字段计算器及字段运算符

ArcGis中字段计算器及字段运算符1、字段计算器是什么?字段计算器,一般即为属性字段计算器,是对字段属性进行快速计算,提高运行效率的一个工具模块,其可以采用编程语言如:vb、Python进行对话输入操作,也可直接使用模块工具用属性字段和一些简单运算符进行计算。
其打开方式有如下途径:选中内容列表中的要素内容>单击右键>跳出下拉条>选中打开属性表>选中属性表需计算的字段并单击>字段计算器。
如图18-1,所示即为字段计算器。
图18-1:2、字段有几种形式?如图18-2,所示为ArcGis中常见的几种字符类型。
分别是整数字符型:短整型和长整型,小数点字符型:浮点型和双精度型,文本型,日期。
图18-2:3、字段运算符的含义?是文件地理数据库、shapefile、coverage 和其他基于文件的数据源所支持的查询运算符的完整列表。
个人地理数据库和ArcSDE 地理数据库也支持这些运算符,但这些数据源可能使用不同的语法。
1、算术运算符算术运算符用于对数值进行加、减、乘、除的运算。
算术运算符表18-1运算符描述* 乘法算术运算符/ 除法算术运算符+ 加法算术运算符- 减法算术运算符2、比较运算符使用比较运算符可以将两个表达式进行比较。
比较运算符表18-2运算符描述< 小于。
适用于字符串(基于字母顺序进行比较)、数值和日期。
<= 小于或等于。
适用于字符串(基于字母顺序进行比较)、数值和日期。
<> 不等于。
适用于字符串(基于字母顺序进行比较)、数值和日期。
> 大于。
适用于字符串(基于字母顺序进行比较)、数值和日期。
>= 大于或等于。
适用于字符串(基于字母顺序进行比较)、数值和日期。
例如,以下查询将选择名称的开头字母是 M 到 Z 的所有县:"COUNTY_NAME" >= 'M'[NOT] BETWEEN x AND y 选择值大于等于x且小于等于y的记录。
Arcgis使用字段计算器对同一地类图斑自动编号

Arcgis使用字段计算器对同一地类图斑自动编号使用字段计算器对同一地类图斑自动编号(标记重复记录) 问题描述:在某个表中把某个字段(如字段一)中具有相同值的记录标出来,并且按照从小到大的排序自动增加一个编号,存储在字段二中,实现如下的效果:
FID 字段1 字段2
1 001 0011
2 001 0012
3 002 0021
4 002 0022
解决方法:在ArcGIS10中实现方法如下,字段2右键调出字段计算器,选择Python脚本,在代码块中写: UniqueDict = {}
def isDuplicateIndex(inValue):
UniqueDict.setdefault(inValue,0)
UniqueDict[inValue] += 1
return str(inValue)+str(UniqueDict[inValue])
(无须重复标记)
UniqueDict = {}
def isDuplicateIndex(inValue):
UniqueDict.setdefault(inValue,0)
UniqueDict[inValue] += 1
return UniqueDict[inValue]
在字段2=的语句下面写:
isDuplicateIndex( !字段1! )
即可实现问题中的要求,字段计算器是一个强大的为字段赋值的工具,支持Python和VBScript代码,并且可以在Model Builder中调用。
该代码可以按照地类对图斑进行编号,或者按某个行政区的字段对图斑进行编号。
arcgis 字段计算

arcgis 字段计算
字段计算是在 ArcGIS 中对现有字段进行值的更新和转换的过程。
字
段计算可以用于添加、删除、更新、转换和计算字段值,从而改善数据集
的质量和精度。
下面是 ArcGIS 中字段计算的一些示例:
1.添加新字段:可以通过字段计算来添加新的字段。
选择属性表中的
数据集,点击“添加字段”按钮,然后在“名称”和“类型”中输入新字
段的名称和类型。
接下来,使用字段计算来将新字段填充为所需的值。
2.删除字段:如果需要删除现有字段,可以在属性表中选择该字段,
然后点击“删除字段”按钮。
注意,在删除字段之前,必须先删除任何与
该字段相关联的数据。
3.更新字段:可以使用字段计算来更新现有字段的值。
例如,可以将
字段“年龄”更新为“年龄+1”,以便获得所有个体的当前年龄。
4.转换字段类型:有时,需要将字段的数据类型从一个类型转换成另
一个类型。
例如,可以将“字符串”类型的字段转换为“数字”或“日期”类型的字段,或者将“数字”类型的字段转换为“字符串”类型的字段。
5.计算字段值:可以使用计算表达式来计算字段值。
例如,可以使用
表达式“字段1+字段2”来计算两个字段的总和。
还可以使用表达式来计
算百分比、平均值和其他统计信息。
6.更改空值:可以使用字段计算来更改空值。
选择属性表中需要更改
的字段,然后使用计算表达式将空值更改为所需的值。
总之,字段计算是 ArcGIS 中非常重要的功能之一,它可以帮助用户
管理和优化数据集,并提高数据质量和准确性。
arcgis建模字段计算

arcgis建模字段计算ArcGIS是一款功能强大的地理信息系统软件,它不仅可以进行地图制作和空间数据管理,还可以进行空间分析和模型建立。
其中,建模字段计算是ArcGIS中的一个重要功能,它可以根据已有的字段数据进行计算,并生成新的字段数据。
本文将详细介绍ArcGIS中建模字段计算的使用方法和注意事项。
建模字段计算是指根据已有字段的数值或属性进行计算,然后将计算结果生成新的字段。
在ArcGIS中,可以通过使用字段计算器来实现这一功能。
字段计算器是ArcGIS提供的一个工具,它可以对字段进行各种数学运算、逻辑运算和文本处理等操作。
在使用字段计算器进行建模字段计算时,首先需要选择要进行计算的字段,然后选择合适的计算操作符和计算表达式。
例如,可以使用加法、减法、乘法、除法等运算符进行数值计算,也可以使用逻辑运算符进行条件判断和逻辑运算。
此外,还可以使用字符串函数进行文本处理和格式转换。
在进行建模字段计算时,需要注意以下几点。
首先,要确保所选取的字段数据类型与计算要求相匹配,否则可能会出现计算错误或结果不准确的情况。
其次,要注意处理空值和异常值,可以通过设置条件判断来避免出现错误结果。
另外,还需要注意计算顺序和计算精度,确保计算结果符合预期要求。
除了基本的数学运算和逻辑运算,ArcGIS的字段计算器还提供了丰富的函数库,可以进行各种高级计算和数据处理操作。
例如,可以使用统计函数进行数据汇总和分析,使用空间函数进行空间分析和空间计算,使用日期函数进行日期处理和时间计算等。
在进行建模字段计算时,还可以结合其他ArcGIS功能和工具进行更复杂的计算和分析。
例如,可以使用ArcGIS的空间分析工具对空间数据进行交叉分析和空间关联,然后根据分析结果进行建模字段计算。
此外,还可以使用ArcGIS的模型建立工具进行自动化建模和批量计算。
ArcGIS的建模字段计算是一项非常有用的功能,它可以根据已有的字段数据进行计算,并生成新的字段数据。
Arcgis-Wiki_04-字段计算器

Arcgis-Wiki_04-字段计算器前⾔使⽤键盘输⼊值并不是编辑表中值的唯⼀⽅式。
在某些情况下,为了设置字段值,可能要对单条记录甚⾄是所有记录执⾏数学计算。
您可以对所有记录或选中记录执⾏简单计算和⾼级计算。
此外,还可以在属性表中的字段上计算⾯积、长度、周长和其他⼏何属性。
简单计算计算字符串如内容为数值(字符串中可以存储数值,相反则不可以),直接输⼊即可。
如内容为字符串,要使⽤英⽂双引号引起来。
涉及到字符串的连接,将多个字段使⽤&连接即可,例如想要将SHENG和XIAN两个字段连接,同时中间以“-”隔开(Python状态下字段名⽤!引起,连接使⽤+):[SHENG]&"-"&[XIAN]计算数值简单的加减乘除运算,如计算男⼈MEN和⼥⼈WOMEN的总数:[MEN]+[WOMEN]使⽤内置函数VBScript 函数字符串操作Asc 返回指定字母的ASCII代码Chr 根据ASCII代码返回对应的字符String(数⽬,字符串) 返回具有指定长度的、重复字符组成的字符串,(重复字符取字符串的第⼀位)例:MyString = String(5,"*") '返回"*****"MyString = String(5,"ABC") '返回"AAAAA"Lcase 英⽂字符转为⼩写MyString = Lcase("BIGHEAD") '返回"bighead"Ucase 英⽂字符转为⼤写MyString = Ucase("bighead") '返回"BIGHEAD"Ltrim 去除左端空格MyString = Ltrim(" BIGHEAD") '返回"BIGHEAD"Rtrim 去除右端空格MyString = Rtrim("BIGHEAD ") '返回"BIGHEAD"Trim 去除左右端空格MyString = Trim(" BIGHEAD ") '返回"BIGHEAD"Left([字段名],length) ⾃左侧取length个字符MyString = Left("BIGHEAD",3) '返回"BIG"Right([字段名],length) ⾃右侧取length个字符MyString = Right("BIGHEAD",4) '返回"HEAD"Mid([字段名],起始字符序号,长度) ⾃第⼏个字符向右取指定长度的字符(索引从1开始,包含起始字符,长度参数可以省略),例:MyString = "Mid Function Demo" '创建⼀个字符串FirstWord = Mid(MyString, 1, 3) ' 返回 "Mid"LastWord = Mid(MyString, 14, 4) '返回 "Demo"MidWords = Mid(MyString, 5) '返回 "Function DemoLen([字段名]) 获取字段长度Len("BIGHEAD") '返回7Space(空格个数) 返回指定个数的空格(可与连字符结合使⽤在字符串前⾯或者后⾯加固定个数的空格)MyString = Space(3) & "BIGHEAD" '返回 " BIGHEAD"Replace([字段名],"替换前的字符","替换后的字符")MyString = Replace("ABC","B","C") '返回 "ACC"拓展⼀下结合上⾯函数,组合⼀个:字段前⾯补零成为固定长度字符串String(⽬标长度-Len([⽬标字段]),"0") & [⽬标字段]数值操作ABS([字段名]) 取绝对值ATN ([字段名]) 反正切值SIN COS TAN 三⾓函数FIX([字段名]) 返回数的整数部分FIX(-8.4) '返回 -8FIX(8.4) '返回 8INT ([字段名]) 返回数的整数部分Int(-8.4) '返回 -9Int(8.4) '返回 8SQR ([字段名]) 返回数的平⽅根SQR(4) '返回 2LOG EXP 对数,不常⽤Python函数Python 计算表达式字段将使⽤惊叹号 (!!) 括起。
ArcMap中属性字段计算器(FieldCalculator)的使用技巧

ArcMap中属性字段计算器(FieldCalculator)的使⽤技巧很多时候,我们在使⽤ArcGIS进⾏属性数据编辑时,需要批量修改某些字段值,这时候ArcGIS提供的属性字段计算器(Field Calculator)就是⼀把利器。
下⾯我就Field Calculator实际使⽤的经验跟⼤家来分享,希望对⼤家的使⽤能够起到⼀定的帮助。
我遇到的问题是需要添加⼀个字段根据已有的字段(ID)来设置该字段的内容信息。
ID是从1开始⾃增的字段,需要添加的是该ID对应的视频流访问地址(如:“assets/video/M2U00430.flv”),由于测试数据⽬前的视频只能提供(M2U00430-M2U00455)的数据。
也就是说我需要把ID字段计算后与字符串拼合。
Field Calculator使⽤有两种⽅式:A.简单模式;B.⾼级模式;⾸先,使⽤简单⽅式来做,思路就是对ID字段进⾏取余数据计算,也就是将ID除以26,就可以得到0-25的数据,然后累加30,再进⾏数值到字符的转换,最后拼接。
操作如下:新建url字段,类型为⽂本类型,简单模式下选择Python脚本,然后输⼊表达式:"assets/video/M2U004"+str(int( !ID!%26+30))+".flv",其中%为取余;int为取整;str为数值转字符。
对于简单的计算,简单模式就可以完成,不需要⾼级模式,但是为了便于⼤家掌握Field Calculator的使⽤,下来我们来看下如何在⾼级模式下来完成相应的操作。
⾼级模式的操作界⾯如下图:所谓⾼级模式,就是在简单模式的对话框上勾选中间的显⽰代码块(Show Codeblock),然后就可以添加⽐较复杂的处理脚本,需要指出的Python脚本参数,⼤家注意下⾯调⽤函数的参数是字段名称加!!当然,因为是⾼级模式就可以引⼊其他的库,如random,那么我的函数也可以这么写:引⽤random函数库, x=random.randint(30,55) result="assets/video/M2U004"+str(x)+".flv",这样更加⽅便。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
ArcGIS教程:图斑整理之字段计算器使用技巧
1.字段计算器简介
在数据整理过程中经常要用到对属性表的处理,即为字段进行赋值或运算。
字段计算器(Field Calculator)是一个强大的处理字段值的工具,不仅可以实现快速批量赋值,还支持Python和VBScript,可以通过代码进行复杂条件的赋值工作,并且字段计算器还可以在Model Builder中调用,构建空间模型。
在某个属性字段的右键菜单中即可调出字段计算器,在该界面中即可对该字段进行统一批量赋值,如果勾选Show Codeblock可以编写代码实现条件赋值、复杂计算或是几何体的计算。
下面我们就以国土行业的图斑数据整理为例,看看灵活而强大字段计算器是如何应用的。
2.应用实例
已有的图斑数据的属性表如下,两个字段分别代表二级地类的编码(DLBM)和名称(DLMC)。
截取拼接字符串
问题描述:从已有的DLBM(二级地类编码)中提取一级地类的编码,由于前两位即是一级地类编码,我们可以通过字符串的截取来实现
解决方法:创建字段YJDL,在字段计算器内选择Python,输入!DLBM![0:2]
注:Python中对字符串的处理非常简单,直接通过下标位置的索引来提取,拼接字符串则可使用加号来连接字段即可。
条件赋值
问题描述:根据一级地类的代码为其增加具体描述信息
解决方法:创建字段YJDLMC(一级地类名称),勾选Show Codeblock,根据YJDL的代码为其赋值,在YJDLMC=下面输入CalDLMC(!YJDL!),在上面的Pre-Logic Script Code空白处输入代码如下:
def CalDLMC(code):
if(code==’01’):
return“耕地”
elif(code==’02’):
return“园地”
else:
return“”
为重复记录进行编号
问题描述:将同一地类图斑自动编号(标记重复记录),例如根据DLBM字段,把具有相同值的记录标出来,并且按照从小到大的排序自动增加一个编号,实现如下效果:
解决方法:增加DLCOUNT字段,计算每种用地类型有多少块,即同类型的DLBM按顺序从1开始赋值,勾选ShowCodeblock,编写代码:
UniqueDict={}
defisDuplicateIndex(inValue):
UniqueDict.setdefault(inValue,0)
UniqueDict[inValue]+=1
return str(UniqueDict[inValue])
计算几何体信息
计算图斑面积:!Shape.Area!
质心X坐标:!Shape.CENTROID.X!
质心Y坐标:!Shape.CENTROID.Y!
字段间运算
在上一步计算得到的面积基础上进行单位转换,如将平方米转换为平方公里
!Area!/1000000
顺序赋值,即为每条记录进行唯一值编号。