网易首页 > 网易号 > 正文 申请入驻

【干货】ArcGIS字段计算器公式汇总

0
分享至

在GIS数据处理中,ArcGIS的字段计算器是一个强大的工具,它可以帮助我们进行各种数值计算、文本处理和逻辑判断。本文将为您整合和分类介绍ArcGIS字段计算器中的常用公式,并通过实例说明它们的应用。

数值计算类

基本四则运算

直接使用+、-、*、/进行加、减、乘、除操作。

 !面积1! + !面积2! - !面积3! * !面积4!

四舍五入

使用round()函数保留小数点后指定位数。

round(!Shape_Area!, 2)

向下取整

使用//操作符进行向下取整。

!Shape_Area! // 400

向上取整

结合//和+操作符实现向上取整。

!Shape_Area! // 400 + 2

随机数生成

使用Python的random模块生成随机数。

random.randint(0, 10)

文本处理类

字符串连接

使用+操作符或&符号连接字符串。

!字段1! + " " + !字段2!

字符串切片

使用[:]进行字符串切片操作。

!字符串01![:3] # 提取前3位

字符串替换

使用replace()方法替换字符串中的特定内容。

!字符串01!.replace('县', '市')

字符串格式化

使用format()函数进行字符串格式化。

format(!TBMJ!, '.5f')

日期和时间类

获取当前日期和时间

使用datetime.datetime.now()获取当前日期和时间。

datetime.datetime.now()

日期时间计算

使用DateAdd和DateDiff进行日期时间的计算。

DateAdd(!日期字段!, 10) # 增加10天

逻辑判断类

if-else语句

使用Python的if-else逻辑进行条件判断。

if !条件字段! == '条件值':
'结果1'
else:
'结果2'

条件最大值或最小值

使用max()和min()函数结合条件表达式。

max(if !条件字段! == '条件值1' then !值字段1! else 0, if !条件字段! == '条件值2' then !值字段2! else 0)

空间计算类

计算椭球面积

使用!shape.geodesicArea!计算要素的椭球面积。

!shape.geodesicArea!

计算要素的四至坐标

使用!shape.extent.XMax!、!shape.extent.XMin!获取要素的四至坐标。

东:!shape.extent.XMax!
西:!shape.extent.XMin!
南:!shape.extent.YMin!
北:!shape.extent.YMax!

高级应用类

自动生成编号

使用预逻辑脚本和全局变量实现自动编号。

rec=0
def Increment(Start=1, Interval=1):
global rec
if (rec == 0):
rec = Start
else:
rec = rec + Interval
return rec

重复记录自动编号

对重复的记录进行自动编号。

UniqueDict = {}
def isDuplicateIndex(inValue):
UniqueDict.setdefault(inValue, 0)
UniqueDict[inValue] += 1
return str(UniqueDict[inValue]).zfill(3)

随机编号

生成指定范围内的随机编号。

def getnums():
return arcgis.rand('Integer 5 15')

累积值计算

使用全局变量对字段值进行累积计算。

total = 0
def AccumulateValue(arg):
global total
if total:
total += arg
else:
total = arg
return total

顺序编号

为要素赋予顺序编号,通常用于排序或创建唯一标识符。

rec = 0
def SequentialNumber():
global rec
pStart = 1
pInterval = 1
if (rec == 0):
rec = pStart
else:
rec = rec + pInterval
return rec

移动点要素

在空间上移动点要素的位置。

def shiftXCoordinate(shape):
shiftValue = 100
point = shape.getPart(0)
point.X += shiftValue
return point

百分比变化计算

计算两个数值间的百分比变化。

lastValue = 0
def PercentChange(arg):
global lastValue
newValue = arg
if lastValue:
percentage = ((newValue - lastValue) / lastValue) * 100
else:
percentage = 0
lastValue = newValue
return percentage

度分秒转十进制度

将经纬度的度分秒格式转换为十进制度数。

def ss(a):
index1 = a.find(u'°')
index2 = a.find(u'′')
index3 = a.find(u'″')
degree = float(a[0:index1])
minutes = float(a[index1 + 1:index2])
seconds = float(a[index2 + 1:index3])
result = degree + minutes / 60 + seconds / 3600
return result

提取中文、英文、数字、特殊符号

使用正则表达式提取字符串中的特定字符。

import re
def ss(a):
va = re.findall(u'[\u4e00-\u9fa5]+', a)
result = ''.join(va)
return result

字段值前面补齐0

为数值字段前面补齐0至指定位数。

(8 - len(str(!数值01!))) * '0' + str(!数值01!)

字符串居中,两端填充

将字符串居中并在两端填充指定字符。

!你的字段!.center(8, "0")

获取特定字符在字符串的位置

获取字符串中特定字符的位置。

!BSM!.find("8")#例如这里我找8的位置

计算要素的折点数

计算面要素的折点数,包括首末点。

def getVertexCount(feat):
partnum = 0
partcount = feat.partCount
pntcount = 0
while partnum < partcount:
part = feat.getPart(partnum)
pnt = part.next()
while pnt:
pntcount += 1
pnt = part.next()
if not pnt:
pnt = part.next()
partnum += 1
return pntcount

字段动态计算

根据字段值的大小,赋予不同的分类标签。

"大" if !数值字段! > 100 else "中" if !数值字段! > 50 else "小"

面积转换

将面积单位从平方米转换为公顷或亩。

round(!Shape_Area! / 10000, 2)#转换公顷保留2位
round(!Shape_Area! / 10000*15, 2)#转换亩保留2位

字符串编码

对字符串进行编码,转换为URL参数。

import urllib.parse
urllib.parse.quote_plus(!字符串字段!)

字符串解码

对URL参数进行解码,还原为原始字符串。

import urllib.parse
urllib.parse.unquote(!编码字符串字段!)

多条件判断

使用复杂的逻辑判断来决定字段值。

"优" if !成绩! >= 90 else "良" if !成绩! >= 75 else "中" if !成绩! >= 60 else "差"

条件字段格式化

根据条件判断,对字段进行格式化。

format(!数值字段!, '.2f') if !条件字段! else "N/A"

计算两点间距离

计算两个点要素之间的距离。

!shape1!.distanceTo(!shape2)!

点是否在多边形内

判断点是否在多边形内。

!shape_point!.within(!shape_polygon!)

字段值累计求和

对一组记录的字段值进行累计求和。

def runningTotal():
total = 0
for val in !数值字段!:
total += val
yield total

基于时间的动态计算

根据时间字段的值进行动态计算。

!日期字段!.year + (!日期字段!.month - 1) // 3

经纬度转换为UTM坐标

将经纬度坐标转换为UTM坐标。

arcpy.Point(!经度字段!, !纬度字段!).toUTM()

字段值的统计分析

对字段值进行统计分析,如计算平均值、中位数等。

统计平均值 = !数值字段!.sum() / float(!数值字段!.count())

地理编码

将地址字段转换为地理坐标。

arcpy.Geocoding.GeocodeAddresses(!地址字段!, !X坐标字段!, !Y坐标字段!)

字段值的标准化

将数值字段标准化到0-1范围内。

(!数值字段! - !数值字段!.min()) / (!数值字段!.max() - !数值字段!.min()

结语

以上就是ArcGIS字段计算器公式的全面总结,涵盖了数值计算、文本处理、日期时间、逻辑判断以及空间计算等多个方面。掌握这些公式,将大大提高GIS数据处理的效率和灵活性。希望这篇文章能成为您工作中的得力助手。

注意:本文整合的公式基于ArcGIS的字段计算器功能,实际使用时请根据具体字段名和数据情况进行调整。如有任何疑问或需要进一步的帮助,欢迎在评论区留言讨论。

社群交流/原创投稿/ 商务合作

来源:GIS民工

特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相关推荐
热点推荐
预测亚洲女排锦标赛-决赛 中国女排 - 泰国女排,中国赢

预测亚洲女排锦标赛-决赛 中国女排 - 泰国女排,中国赢

林子说事
2026-08-30 16:59:25
梅艳芳母亲覃美金102岁去世,遗产争夺案23年后大结局

梅艳芳母亲覃美金102岁去世,遗产争夺案23年后大结局

扬子晚报
2026-08-30 18:09:19
毛主席曾对尼泊尔首相说:你想把珠峰全部划归贵国?还有更好办法

毛主席曾对尼泊尔首相说:你想把珠峰全部划归贵国?还有更好办法

究竟谁主沉浮
2026-08-17 20:19:17
重庆奉节落石砸中一轿车致2死2伤,死者亲属:两女子带孩子返回县城途中遭不幸 当地称仍在处理中

重庆奉节落石砸中一轿车致2死2伤,死者亲属:两女子带孩子返回县城途中遭不幸 当地称仍在处理中

红星新闻
2026-08-30 16:19:29
澳洲热销"中国烟", 被检测出大量致癌物! 比普通烟高出60%, 千万别抽了

澳洲热销"中国烟", 被检测出大量致癌物! 比普通烟高出60%, 千万别抽了

澳微Daily
2026-08-29 16:00:29
曾参与8.1级地震救援的女警文燕在泥石流灾害中失联

曾参与8.1级地震救援的女警文燕在泥石流灾害中失联

黄河新闻网吕梁
2026-08-30 09:26:48
孙宇晨背景被扒:外公副市长、父亲公务员,85 亿身家却 8 年回不了国

孙宇晨背景被扒:外公副市长、父亲公务员,85 亿身家却 8 年回不了国

一盅情怀
2026-08-29 13:04:10
92岁中国大爷在韩国斩获跳远世界冠军,网友笑评:跳了多远不重要,得先活到这个岁数

92岁中国大爷在韩国斩获跳远世界冠军,网友笑评:跳了多远不重要,得先活到这个岁数

极目新闻
2026-08-30 19:26:15
吉尔吉斯斯坦青年说:我们眼中的中国

吉尔吉斯斯坦青年说:我们眼中的中国

金台资讯
2026-08-30 14:23:25
媒体人:国家不欠刘翔的!他自己非要留在体制内 享受最顶级待遇

媒体人:国家不欠刘翔的!他自己非要留在体制内 享受最顶级待遇

念洲
2026-08-30 09:09:35
央视新闻发布了救援图片,如果没有那棵小树,我们不知道这次灾难的威力

央视新闻发布了救援图片,如果没有那棵小树,我们不知道这次灾难的威力

蜜桔娱乐
2026-08-29 09:27:31
伊朗最高领袖军事顾问公开表示:有关伊朗密谋暗杀特朗普之子巴伦的指控都是内塔尼亚胡用来欺骗特朗普的重大谎言

伊朗最高领袖军事顾问公开表示:有关伊朗密谋暗杀特朗普之子巴伦的指控都是内塔尼亚胡用来欺骗特朗普的重大谎言

吉刻新闻
2026-08-30 07:50:54
突发利空!加息了!

突发利空!加息了!

星图金融研究院
2026-08-30 14:07:19
朝鲜国防相努光铁被免职,“调离党中央领导机构”

朝鲜国防相努光铁被免职,“调离党中央领导机构”

中国新闻周刊
2026-08-30 16:04:29
美国风投中国AI行内部信:中国开源模型正在变成西方的底座

美国风投中国AI行内部信:中国开源模型正在变成西方的底座

风向观察
2026-08-29 22:59:56
新瓜,孙宇晨彻底吊打景甜!

新瓜,孙宇晨彻底吊打景甜!

财经要参
2026-08-29 07:05:19
泥浆封洞三天,尼泊尔一隧道救出208人,军方钻探送氧,幸存者:仅有20秒反应时间

泥浆封洞三天,尼泊尔一隧道救出208人,军方钻探送氧,幸存者:仅有20秒反应时间

红星新闻
2026-08-30 15:58:25
全世界都被普京骗了?打乌克兰只是幌子,真正目标其实已悄悄布局四年

全世界都被普京骗了?打乌克兰只是幌子,真正目标其实已悄悄布局四年

扶苏聊历史
2026-08-27 16:15:02
真是没想到!怒怼体育局仅2天,43岁刘翔真实家底曝光,一年保底1400万仅是皮毛,更大头还在后边!他到底想要什么?

真是没想到!怒怼体育局仅2天,43岁刘翔真实家底曝光,一年保底1400万仅是皮毛,更大头还在后边!他到底想要什么?

锐评利物浦
2026-08-29 14:00:44
星宇以为道个歉就能翻篇,奔驰回执一到,陷入全面被动!

星宇以为道个歉就能翻篇,奔驰回执一到,陷入全面被动!

再战五百回合
2026-08-29 19:12:55
2026-08-30 20:39:00
测绘之家 incentive-icons
测绘之家
有测绘的地方,就有测绘之家!
7149文章数 3581关注度
往期回顾 全部

科技要闻

OpenClaw:红过,爱过,散了

头条要闻

金正恩主持会议 朝鲜最高军事领导层现重大调整

头条要闻

金正恩主持会议 朝鲜最高军事领导层现重大调整

体育要闻

梅西登顶美职联射手榜 任意球双响+1v3炫技

娱乐要闻

梅艳芳母亲覃美金离世,享年102岁

财经要闻

净利润暴跌94%,影石崩了?

汽车要闻

巨幕长联屏/天神之眼/云辇-C 方程豹钛9将于四季度上市

态度原创

亲子
手机
健康
艺术
军事航空

亲子要闻

人生的四个底线,一定要说给孩子听

手机要闻

曝华为Mate XT 2非凡大师三折叠首发搭载麒麟9050 Pro处理器

脑出血两大夺命风险,早治早保命!

艺术要闻

吴冠中 印尼行带回的热带红,值1150万!

军事要闻

金正恩主持会议 朝鲜最高军事领导层现重大调整

无障碍浏览 进入关怀版