在ArcGIS字段计算器中使用函数使用方法

B站影视 韩国电影 2025-05-22 07:25 2

摘要:在ArcMap或ArcGIS Pro中,右键点击目标字段 → 字段计算器(Field Calculator)。

在ArcGIS字段计算器中使用函数需结合表达式编写,以下是具体步骤和示例:

一、打开字段计算器

1. 在ArcMap或ArcGIS Pro中,右键点击目标字段 → 字段计算器(Field Calculator)。

2. 选择 Python 或 VB Script 脚本引擎(默认Python,功能更灵活)。

二、基础用法:直接调用函数

1. 数学函数

- 示例1:计算面积(平方米转公顷)

!面积! / 10000 # 直接运算

round(!面积! / 10000, 2) # 四舍五入保留2位小数

- 示例2:绝对值转换

abs(!海拔高度!) # 取绝对值

2. 字符串函数

- 示例1:拼接地址

!省! + "省" + !市! + "市" # 字符串拼接(Python用+)

- 示例2:提取前3个字符

!地名![0:3] # 切片提取前3位(Python语法)

3. 日期函数

- 示例:计算天数差

(datetime.datetime.now - !日期字段!).days # 当前日期与字段日期的间隔天数

注:需先导入日期模块:

import datetime # 在字段计算器的“预逻辑脚本代码”中添加

三、进阶用法:逻辑判断与复杂表达式

1. 条件判断(if-else)

- 示例:分级赋值

def grade(value):

if value >= 80:

return "优秀"

elif value >= 60:

return "合格"

else:

return "不合格"

grade(!分数!) # 在表达式中调用自定义函数

步骤:

1. 在“预逻辑脚本代码”中编写函数;

2. 在表达式中直接调用函数名。

2. 统计函数(需结合数据驱动)

- 示例:计算分组平均值

需配合 数据驱动表(Data-Driven Pages) 或 按属性选择,逐个分组计算:

# 假设按“区域”分组计算“产量”平均值

from statistics import mean

mean(!产量!) # 需先选中目标分组数据

四、常用技巧

1. 字段引用:

- Python中用 !字段名! (需关闭“使用VB表达式”)。

- VB Script中用 [字段名] 。

2. 数据类型匹配:

- 字符串需用引号(如 '市区' ),数值直接写(如 100 )。

3. 调试工具:

- 先在脚本编辑器中测试表达式,再复制到字段计算器。

- 用 print(!字段名!) 输出字段值检查逻辑。

五、示例:批量生成唯一编号

需求:按“区域”字段生成如 A-001 、 B-001 的唯一编号。

# 预逻辑脚本代码

rec = {} # 全局字典存储区域计数

def get_code(area):

if area not in rec:

rec[area] = 1

else:

rec[area] += 1

return f"{area}-{rec[area]:03d}" # 格式化为A-001样式

# 表达式

get_code(!区域!)

注意事项

- 权限问题:需确保图层可编辑(非只读)。

- 性能优化:大数据量时建议用 计算字段(Calculate Field)工具 替代手动输入。

- 引擎切换:VB Script兼容性强但语法老旧,Python更灵活(推荐)。

通过以上方法,可灵活运用函数完成字段计算、数据清洗、批量赋值等操作。

来源:皓轩教育

相关推荐