Arcgis小技巧【15】 | 您所在的位置:网站首页 › 根号计算器怎么用的 › Arcgis小技巧【15】 |
之前写过一篇【字段计算器的简单用法和示例】: https://blog.csdn.net/xcc34452366/article/details/128776450 说了一些字段计算的使用方法,主要是针对python的用法。 不是很完整,这里再补充一些内容。 欢迎关注同名微信公众号,更多文章推送:
一般用在编号中, 例如取【OBJECTID】的数字并在前面填充0至5位,注意计算的字段必须是字符串型。因为【OBJECTID】的值是数字,所以要加str()转成字符串: str(!OBJECTID!).zfill(5)
正常情况下用round()函数可以保留固定位数,但是因为生成的是数值型,所以如果最后位是0会自动消掉。如果想要实现不足部分用0填充,则需要字段为字符串型,并如下计算: format(!TBMJ!, '.5f')
再整点活,如果想在文本两端都进行填充。例如要在文本前后都填充【0】至文本长度为8: !JQDLMC!.center(8,"0")例如文本左对齐,右侧填充至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空值不是空格: 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例如逐个累积图斑的面积之和: AccumulateValue(!TBMJ!)在代码块中输入: total = 0 def AccumulateValue(arg): value = arg global total if total: total += value else: total = value return total结果输入: SequentialNumber()在代码块中输入: rec=0 def SequentialNumber(): global rec pStart = 1 pInterval = 1 if (rec == 0): rec = pStart else: rec = rec + pInterval return rec可以获取面要素折点线,需注意获取的折点数包括首末点,比你看上去的要多一个。选择一个整型字段进行计算: 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 实验室设备网 版权所有 |