ArcGIS标注表达式与字段计算中的python应用

文章目录

前言

在数据处理和符号化与标注设置过程中,python一个很方便的工具,限于本人的代码水平,每次需要的时候都是一点一点百度拼凑出来,可能不是最优解,也基本能满足需求,希望把用到过的python表达式或者函数记录下来,一点点积累。

ArcGIS环境:ArcGIS pro,与ArcMap的界面区别较大,功能一致

标注

分行标注

目标:两个或多个字段分行标注
python表达式:[市]+'\n'+[NUM]
设置与效果:
ArcGIS标注表达式与字段计算中的python应用
对齐细节:默认情况下,多行标注都是居中对齐的,但有时需要左对齐或者右对齐,可在标注的 堆叠 中进行设置
ArcGIS标注表达式与字段计算中的python应用

分类标注

目标:用不同颜色标注不同区间的数值
python表达式:

def FindLabel ( [NUM] ):
    if int([NUM]) <= 50:
        return "<CLR red='200'>"+[NUM]+"</CLR>"
    else :
        return "<CLR red='50' green='150' blue='200'>"+[NUM]+"</CLR>"

标注表达式设置与效果
ArcGIS标注表达式与字段计算中的python应用

分行并分类标注

目标:为多行标注设置不同颜色分类
python表达式:

def FindLabel ( [市],[NUM] ):
    if int([NUM]) <= 30:
        return "<CLR red='168'>"+[市]+'\n'+[NUM]+"</CLR>"
    elif int([NUM])<=80:
        return "<CLR green='168'>"+[市]+'\n'+[NUM]+"</CLR>"
    else :
        return "<CLR blue='168' >"+[市]+'\n'+[NUM]+"</CLR>"

标注表达式设置与效果
ArcGIS标注表达式与字段计算中的python应用

PS:对齐方式同样可在 堆叠 中进行设置

字段计算

字段截取与判断

目标:判断省市中省份是否正确
python表达式:

def pd(a,b):
    if a[0:2]==b[0:2]:
        return "正确"
    else:
        return "不正确"

计算与结果:
ArcGIS标注表达式与字段计算中的python应用

格式化桩号

目标:将长度、距离等数字,格式化为工程图中常用的标准桩号表达式,如K1+123.456

思路:把每一部分提取出来,然后进行拼装

python函数

def ZHLable(ZH):
	strdist=format(ZH,'.3f')
	loc=str(ZH).find('.')
	fractionalpart=str(strdist)[loc+1:loc+4]
	hundredpart = str(format(int(ZH%1000),'0>3d'))
	thousandpart = str(int(ZH/1000))
	ZHL = 'K'+thousandpart+'+'+hundredpart+'.'+fractionalpart
	return ZHL

计算结果
ArcGIS标注表达式与字段计算中的python应用

上一篇:ArcGIS10.6的安装


下一篇:时空知识图谱应用初探