Python教程

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

本文主要是介绍ArcGIS标注表达式与字段计算中的python应用,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

文章目录

  • 前言
  • 标注
    • 分行标注
    • 分类标注
    • 分行并分类标注
  • 字段计算
    • 字段截取与判断
    • 格式化桩号

前言

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

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

标注

分行标注

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

分类标注

目标:用不同颜色标注不同区间的数值
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>"

标注表达式设置与效果
分类标注

分行并分类标注

目标:为多行标注设置不同颜色分类
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>"

标注表达式设置与效果
分行分类标注

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

字段计算

字段截取与判断

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

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

计算与结果:
字段截取与判断

格式化桩号

目标:将长度、距离等数字,格式化为工程图中常用的标准桩号表达式,如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应用的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!