ArcMap的GP工具到Pro的迁移与GP服务发布

2
分享 2018-03-16
ArcMap的GP工具到Pro的迁移与GP服务发布

  随着ArcGIS Pro64位桌面推出,越来越多的小伙伴想体验下Pro的二三维一体化以及大数据分析工具,那么原来在ArcMap下创建的GP工具是否能一并迁移到Pro中来并且发布GP服务呢?答案是肯定的,而且转换过程也比较简单。
  ArcMap使用的Python版本为2.7,Pro使用的Python版本为3.5,因为2.x的Python和3.x的Python存在一定的语法与使用差异,需要进行代码的迁移,将ArcMap下的GP工具迁移到Pro是怎样一个流程呢?

一、ArcMap的GP工具到Pro的迁移

  ArcMap的GP工具到Pro的迁移大致包含以下三个步骤:
  1、第三方Python包的安装
  ArcMap下使用的GP工具如果包含第三方包,那么同样需要在Pro中安装对应版本的包。Pro下安装第三方python包推荐使用Conda,windows下默认安装路径为C:\Program Files\ArcGIS\Pro\bin\Python\Scripts\conda.exe,以安装数据库操作包“pymysql”为例,可以使用下列的命令进行第三方python包安装。
C:\Program Files\ArcGIS\Pro\bin\Python\Scripts conda install pymysql
  2、GP工具代码从2.x到3.x的转换
  Python3中提供了2to3这样一个转换工具,能够快速进行两个版本之间的转换,转换工具路径为C:\Program Files\ArcGIS\Pro\bin\Python\envs\arcgispro-py3\Scripts\2to3.exe,提供以下两种方式转换。
1)按照目录批量转换
  可以指定需要转换的代码所在路径进行多个文件批量转换。
C:\Program Files\ArcGIS\Pro\bin\Python\envs\arcgispro-py3\Scripts>2to3 -w D:\EnvironmentApplication\qinghua\tool\
2)按照指定代码转换
  可以指定需要转换的单个代码文件。
C:\Program Files\ArcGIS\Pro\bin\Python\envs\arcgispro-py3\Scripts>2to3 -w D:\EnvironmentApplication\qinghua\tool\exportMysqlData3x.py
  在转换的路径下,原始的2.x的python脚本直接转换成了3.x版本,同时还会生成一个bak后缀的原始2.x版本备份文件,同时会在cmd窗口中显示修改位置的情况。
20180208123955752.png

  3、Pro下工具运行测试
  转换之后的代码需要在Pro中进行运行测试,可能仍然会有少数问题需要手动解决。

二、Pro的GP服务发布

  Pro下发布GP服务过程与ArcMap类似,需要连接Portal,同时发布服务的时候需要设置共享权限。在Pro中运行Python脚本工具之后,会在Catalog的“Geoprocessing History”中生成对应的工具运行历史。

  在运行历史结果右键,单击“Share As”>Web Tool进行GP服务的发布。

  在GP服务发布页面,需要填写相关的概要、标签等信息,设置共享权限,发布之前先进行分析。
20180208124215764.png

  在Pro中发布GP服务的过程中经常遇到的以下错误与警告信息,部分是因为必须信息填写不完整,包括工具的标签摘要和参数元数据信息。
  1)GP工具中缺少摘要和标签等信息,错误代码00070、00071。
  2)GP工具参数的项目描述缺少语法对话框说明,错误代码00104。

  在GP工具上右键,单击“View Metadata”,打开GP工具的元数据信息查看页面。

  单击功能区Home>Metadata>Edit按钮,打开如下GP工具的元数据信息编辑页面。
20180208124352243.png

  填写Tags、Summary、Syntax栏中每个参数的注释信息。
  3)GP工具中如果包含路径信息的参数,即使处理函数中不涉及该参数的处理代码,仍然会报数据未注册会拷贝到server的警告信息。工具运行中生成的临时过程数据路径建议采用arcpy.env.scratchGDB或者arcpy.env.scratchFolder替代固定物理路径。
注:如果Pro与ArcGIS Enterprise不在同一台机器部署,需要注意以下事项:
1、需要将GP工具涉及的原始处理数据以及结果数据路径设置为共享目录,同时设置相应的读写权限。
2、将共享路径(或者数据库)注册到Enterprise的server环境中,避免发布GP服务之后数据无法访问以及数据拷贝到server的问题。

文章来源:http://blog.csdn.net/liuniu1101/article/details/79288373

4 个评论

Merry GISmas!
彩蛋!彩蛋!!
这里还有彩蛋啊。我是看东西路过
这个不错,我说怎么直接把10.1的模型放到pro中总是异常呢,pro调好了,回去10.1又不能读,原来是这个原因

要回复文章请先登录注册