Arcgis字段计算器实现自动顺序编号(进位用字母表示)

领导要求,用【Arcgis字段计算器】给字段编号,格式为"字母+数字",从"A001"开始编,依次递增,编到"A999",下一个进位为"B000",接着继续以"B"开头进行递增,到"B999",下一个进位为"C000"。

不理解,但尊重   ┑( ̄Д  ̄)┍

方法很简单,打开需要计算的字段,解析程序选为【Python】,勾选【显示代码块】,代码如下:

rec = 0 

def autoIncrement():
    global rec  
    pInterval = 1  
    
    rec += pInterval 
   
    letter_index = rec // 1000
    number_part = rec % 1000
    
    letter_part = chr(65 + letter_index)
    formatted_number = str(number_part).zfill(3)
    
    return letter_part + formatted_number



autoIncrement()

一些解释

rec 是一个全局变量,它用于跟踪当前的编号。初始化为0,意味着我们从"A000"开始

autoIncrement 是一个函数,它用于生成下一个编号

global rec 告诉Python,我们想要在函数内部使用并修改全局变量rec

pInterval 是一个局部变量,表示每次调用autoIncrement时编号递增的值。在这个例子中,每次递增1

每次调用autoIncrement时,rec的值都会增加pInterval(在这个例子中是1),这样编号就会递增

letter_index 是通过将rec除以1000得到的,它表示当前的字母部分(例如,如果rec是1000,那么letter_index是1,对应字母"B")

number_part 是通过取rec对1000的余数得到的,它表示当前的数字部分(例如,如果rec是1003,那么number_part是3)

chr(65 + letter_index) 将数字索引转换为对应的ASCII字符。ASCII码中,65对应于"A",所以通过加letter_index,我们可以得到从"A"开始的字母

str(number_part).zfill(3) 将数字部分转换为字符串,并使用zfill(3)确保数字部分是6位数,不足的部分用0填充

最后,函数返回由字母部分和格式化后的数字部分组成的编号字符串

### 修改 ArcGIS 中数值的进位方式 在 ArcGIS 中调整数值的进位设置主要涉及到字段计算以及图层属性中的显格式。对于存储于地理数据库内的要素类或表格,其字段类型决定了数据精度;而针对地图文档(.mxd) 或者项目文件 (.aprx),可以在图层属性里自定义渲染器来控制标签、标注乃至图表中数字的表现形式。 当处理 shapefile 文件时,由于 dBASE 表格结构限制了浮点数的有效位数,因此建议先转换成 geodatabase 要素类再做进一步操作[^1]。具体来说,在 ArcMap 或 ArcGIS Pro 的环境中: - **通过字段计算器改变现有字段内容** 如果已经有一个包含小数值得字段,并希望按照特定规则四舍五入这些值,可以利用 Python 解释器编写表达式完成此任务。例如,假设存在名为 `Elevation` 的双精度型字段,现在想要创建一个新的整数字段 `Rounded_Elev` 来保存按指定的小数位数取整后的高程读数,则可在添加新字段之后打开字段计算器并输入如下脚本(此处以保留一位小数为例): ```python round(!Elevation!, 1) ``` - **设定 symbology 层级分类或比例尺下的数值呈现样式** 对于仅需影响视觉效果而不实际改动底层数据的情形,可通过配置 layer properties 下的 Symbology 面板实现。选择 Quantities -> Graduated colors/symbols 后点击 Classify...按钮进入 Classification dialog box ,在这里除了能指定断点外还能编辑 Label column 设置精确度选项,从而间接达到调节显精度的目的[^2]。 - **定制化报表与布局视图里的统计汇总表单** 当制作报告或者导出 PDF 地图时,往往也会遇到需要对某些统计数据应用特殊格式的情况。此时可借助 Data Driven Pages 功能配合 Layout View 完成复杂排版工作的同时灵活运用 Text Element 和 Dynamic Text 实现动态更新带有恰当格式化的文字说明。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值