来源
最近公司的一个项目中需要对gdb文件地理数据库数据进行修改,以前这种操作一般是借用FME这种工具软件来做的。但是FME的采购实在是太贵了,用盗版又存在风险。所以最后选用arcpy写工具包并发布成GP服务的方式来实现。
实现
1.使用arcpy编写一个可用的脚本
一个简单的示例
# coding: utf-8
import arcpy
# 需要修改的要素类
feature = "D:/mapFiles/rcDemo/rclw01.gdb/routes/route_deriction"
# 工具类传入的参数,要修改的值
updateValue = arcpy.GetParameterAsText(0)
# 定义修改的游标
cursor = arcpy.UpdateCursor(feature)
for row in cursor:
#为了简化,这里我将要修改的字段写死
row.setValue("Oneway", updateValue)
cursor.updateRow(row)
del cursor, row
print("update success")
2.创建一个可运行的模板
1.新建一个文件夹,在新建的文件夹里面再新建一个工具箱,右键工具箱,添加python脚本,并设置好相关的参数即可。
2.右键工具箱,新建模板,将新建的python工具拖入模板中,调整模板中的输入参数,最后运行模板。
3.发布模板为GP服务
模板执行成功后,打开 地理处理->环境,将最开始新建的文件夹设置为临时工作空间(这个很重要,不设置的话,服务发布后,就算运行成功,数据也不会被修改,切记)。
最后在 地理处理->结果 中右键点击才执行成功的模板结果,选择 共享为->地理处理服务,最后发布成功即可。
参考资料
由于这个博客只是为了个人记忆,具体过程并没有截图,所以我将参考的两个资料地址发出来,供大家参考
GP服务的发布:http://www.360doc.com/content/17/1228/13/8279768_717102109.shtml
arcpy函数参考:https://desktop.arcgis.com/zh-cn/arcmap/latest/analyze/arcpy/what-is-arcpy-.htm