上次群友做了个ArcGIS Pro SDK二次开发的ima知识库。
目前已有200多人加入了。
SDK二次开发毕竟是有点小众。
这次群友【Sonder】带来另一个知识库【Python for ArcGIS Pro】。
可在【发现】中搜索【Python for ArcGIS Pro】来加入。
这个知识库针对的是ArcGIS Pro中的Python脚本开发。
内容同样是来自Esri官方的Python资源,保证了很高的准确性。
【Sonder】和【春花的旺财】2位同学快把Esri给薅秃了……
我们直接开始试一下它行不行吧。
这是一个很简单的功能。
(太难我怕它不会,慢慢来嘛。)
脚本代码如下,确实比较简单,才15行:
import arcpy
input_layer = arcpy.GetParameterAsText(0)
# 添加NAME字段(若不存在)
if "NAME" not in [f.name for f in arcpy.ListFields(input_layer)]:
arcpy.management.AddField(input_layer, "NAME", "TEXT")
# 添加PATH字段(若不存在)
if "PATH" not in [f.name for f in arcpy.ListFields(input_layer)]:
arcpy.management.AddField(input_layer, "PATH", "TEXT")
# 计算字段值
with arcpy.da.UpdateCursor(input_layer, ["NAME", "PATH"]) as cursor:
layer_desc = arcpy.Describe(input_layer)
for row in cursor:
row[0] = layer_desc.name # 写入图层名称
row[1] = layer_desc.catalogPath # 写入源路径
cursor.updateRow(row)
按它的说明开始操作,创建一个脚本工具,写入信息。
就一个参数:
代码直接写到执行里:
点击确定,没有报错。
OK,这样就做完了,直接双击做好的脚本工具:
选择一个要素图层,点击运行:
没有问题,打开要素图层的属性表,可以看到添加了2个字段,图层名称和路径已经正确写入:
完美。
总结
其实后面我还试了一个比较复杂的工具,它想了半天最终还是给了个不会的回答。
这里推荐将问题分解一下,分步问,这就需要你对代码还是要有一定的认识,不然最后拼代码都成问题。
所以想依靠知识库做脚本也不是有手就行。
当作辅助的帮手是比较合适的。