Arcgis小技巧【15】 您所在的位置:网站首页 根号计算器怎么用的 Arcgis小技巧【15】

Arcgis小技巧【15】

2023-12-09 13:36| 来源: 网络整理| 查看: 265

之前写过一篇【字段计算器的简单用法和示例】:

https://blog.csdn.net/xcc34452366/article/details/128776450

说了一些字段计算的使用方法,主要是针对python的用法。

不是很完整,这里再补充一些内容。

欢迎关注同名微信公众号,更多文章推送:

1、数字前填充0

一般用在编号中, 例如取【OBJECTID】的数字并在前面填充0至5位,注意计算的字段必须是字符串型。因为【OBJECTID】的值是数字,所以要加str()转成字符串:

str(!OBJECTID!).zfill(5)

2、小数点后保留固定位数,不足部分用0填充

正常情况下用round()函数可以保留固定位数,但是因为生成的是数值型,所以如果最后位是0会自动消掉。如果想要实现不足部分用0填充,则需要字段为字符串型,并如下计算:

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

3、文本居中,两端填充

再整点活,如果想在文本两端都进行填充。例如要在文本前后都填充【0】至文本长度为8:

!JQDLMC!.center(8,"0")

4、文本左右对齐,另一端填充

例如文本左对齐,右侧填充至8位:

!JQDLMC!.ljust(8,"%")

相反的话则是:

!JQDLMC!.rjust(8,"%") 5、获取特定字符在字符串的位置

例如获取字符串中【8】的位置,注意是从左开始获取第一个【8】的位置:

!BSM!.find("8")

 如果是从右开始获取:

!BSM!.rfind("8") 6、获取多个数字型字段值中的最大值或最小值

取最大值:

max(!TBMJ!,!Shape_Area!)

取最小值:

min(!TBMJ!,!Shape_Area!) 7、获取随机数

例如要获取0至10之间的随机整数:

random.randrange(0,10)

在代码块中输入:

import random

8、赋空值

空值不是空格:

None 9、计算数字的百分比变化

例如计算图斑的面积变化,以百分比的方式表达:

PercentChange(!TBMJ!)

在代码块中输入:

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

10、计算数字的累积值

例如逐个累积图斑的面积之和:

AccumulateValue(!TBMJ!)

在代码块中输入:

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

11、给图斑顺序编号

结果输入:

SequentialNumber()

在代码块中输入:

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

12、获取面要素的折点数

可以获取面要素折点线,需注意获取的折点数包括首末点,比你看上去的要多一个。选择一个整型字段进行计算:

getVertexCount(!shape!)

在代码块中输入:

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 13、移动点要素

在【shape】字段上点击计算字段,实现点要素x坐标增加100:

shiftXCoordinate(!SHAPE!)

在代码块中输入:

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



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有