ArcGIS API for javascript开发笔记(四)——GP服务调用之GP模型的规范化制作详解...

感谢一路走来默默陪伴和支持的你~~~

-------------------欢迎来访,拒绝转载-------------------


在之前的利用Python分析GP服务运行结果的输出路径 & 实现服务输出路径的本地化 这篇博客中一直留下了一个小小的伏笔,即GP模型的制作技巧,现在才得空整理出来。

很多情况下gp模型的构建需要编写一定得python脚本,然而怎么编写python脚本呢?脚本又将怎么添加到ArcGIS中运行呢?以及怎么制作GP可以实现输出的结果不受ArcGIS Server路径的管理呢?下面以一个例子作为实验。

该gp实现的是:将已给定的包含X、Y坐标的Excel风机属性信息,转化成Table表数据,再将Table表数据转化成机位的空间点位数据,并关联所有属性信息,创建机位点位的空间参照,最终将风机点位数据输出到指定的数据库中,而整个工作流是一体化实现的。

 -------------------欢迎来访,拒绝转载-------------------

1.        模型创建的准备

ArcGIS API for javascript开发笔记(四)——GP服务调用之GP模型的规范化制作详解..._第1张图片

 

为了实现规范化的编写和模型与数据及脚本的统一管理,在Arccatalog中创建如图所示的文件夹结构,即在Mobile文件下创建Scratch、ToolData、SpatialReference、Script文件夹,以及名称为CreateGeoTurbine的工具箱,名称为CreateGeoTurbine的地图文档。

其中,Scratch可以理解为临时存放数据的容器,用于存放模型运行过程中不必要输出的要素或文件,理论上这些要素或文件可以在模型完成时自动删除。

    ToolData文件夹用于存放输入数据,即Excel格式的风机属性数据。

          SpatialReference文件夹用于存放由ArcGIS导出的投影文件,这里所需的投影文件为Beijing 1954 3 Degree GK CM 102E投影。

          Script用于存放模型构建中编写的脚本文件。

          CreateGeoTurbine工具箱用于存放Model及添加可执行的脚本。

          CreateGeoTurbine地图文档用于存放输出的风机的点位要素,为后续生成移动数据库做准备。

--------------------这是一条华丽丽的分割线---------------------

2.        编写脚本

1)导入脚本运行所需要的模块

ArcGIS API for javascript开发笔记(四)——GP服务调用之GP模型的规范化制作详解..._第2张图片

2)创建脚本执行时可由用户自定义的输入输出参数。

ArcGIS API for javascript开发笔记(四)——GP服务调用之GP模型的规范化制作详解..._第3张图片

3)在Mobile文件夹下创建一个新的文件夹,文件夹的路径与名称作为用户输入的参数,并将路径与名称连接在一起,以字符串的类型定义给OutFolder。

4)在输出的文件夹OutFolder下生成新的文件地理数据库,其名称为“GeoTurbine.gdb”,并将输出路径与数据库名称连接在一起,以字符串的类型定义给wrkspc。

5)在以wrkspc为路径的文件地理数据库下,将Excel格式的风机属性数据转换成Table格式的表数据TurbineAttribute(因为Excel不被识别,所以需要将Excel转换ArcGIS所识别的Table格式)。

6)将Table中的Xcoord、Ycoord坐标转成点要素,名称给定为TurbinePoints,并输出至创建的文件数据库中。

ArcGIS API for javascript开发笔记(四)——GP服务调用之GP模型的规范化制作详解..._第4张图片

7)为生成的TurbinePoints要素定义投影坐标。

8)以OBJECTID为连接字段,对生成的风机要素TurbinePoints和生成的Table表TurbineAttribute进行连接,以获取Table表中全部的字段。

-------------------------这是一条华丽丽的分割线-------------------------

3.        添加脚本

1)对编写好的脚本文件,需要添加到ArcGIS中执行,添加脚本的方法,右键单击创建的Toolbox工具箱,点击添加Script。

ArcGIS API for javascript开发笔记(四)——GP服务调用之GP模型的规范化制作详解..._第5张图片

2)为添加的脚本命名,勾选作为相对路径存储。

ArcGIS API for javascript开发笔记(四)——GP服务调用之GP模型的规范化制作详解..._第6张图片

3)指定脚本文件存放的位置,这里存储在Mobile/Script目录下。

ArcGIS API for javascript开发笔记(四)——GP服务调用之GP模型的规范化制作详解..._第7张图片

4)设置脚本中可由用户设置的参数,参数的设置与脚本中定义的参数相对应。设置IputFolderLocation,注意确认其DataType为string,类型为Required,Direction为Input。在这里并没有以文件夹或路径的数据类型作为输入,是因为在后续发布服务的GP工具里,可以将这个路径暴露给用户,这一点很重要。

ArcGIS API for javascript开发笔记(四)——GP服务调用之GP模型的规范化制作详解..._第8张图片

5)与上一步相似,设置Iput Folder Name,注意确认其DataType为string,类型为Required,Direction为Input。

ArcGIS API for javascript开发笔记(四)——GP服务调用之GP模型的规范化制作详解..._第9张图片

6)设置输入参数Iput Excel File,注意确认其DataType为File,类型为Required,Direction为Input。

ArcGIS API for javascript开发笔记(四)——GP服务调用之GP模型的规范化制作详解..._第10张图片 

 

7)设置参数OutputTable,注意确认其DataType为Table,注意类型为Derived,Direction为Output。类型中有三个选项,分别为:Optional、Requied、Derived,其中,Optional为可选参数用户不一定输出;Requied为必选参数,一定会输出结果。Derived意味着用户使用的工具不能手动为参数输入值,即路径不可选(参数类型为Derived时,Direction只能为Output,且输出的参数不会显示出来)。

ArcGIS API for javascript开发笔记(四)——GP服务调用之GP模型的规范化制作详解..._第11张图片

8)设置输出参数OutputFC,注意确认其DataType为Feature Class,类型为Derived,Direction为Output。

ArcGIS API for javascript开发笔记(四)——GP服务调用之GP模型的规范化制作详解..._第12张图片

9)设置输出参数Output Coordinate System,注意确认其DataType为coordinate system,类型为Required,Direction为Input,单击Finish完成脚本的添加。

ArcGIS API for javascript开发笔记(四)——GP服务调用之GP模型的规范化制作详解..._第13张图片

10)运行添加的脚本,各参数显示如下图所示,输出类型为Derived的参数不会被显示出来。

ArcGIS API for javascript开发笔记(四)——GP服务调用之GP模型的规范化制作详解..._第14张图片

----------------------欢迎来访,拒绝转载----------------------

4.        创建Model Builder。

1)右键单击Toolbox工具箱,新建Model,并将已经添加好的CreateGeoTurbine脚本拖拽到模型中,释放参数,并将输入选项设置为模型参数P。

ArcGIS API for javascript开发笔记(四)——GP服务调用之GP模型的规范化制作详解..._第15张图片

2)给定模型的参数值,此时模型会变成如下图所示的颜色,单击验证分析模型的有效性,并在Model里运行此模型,运行成功并输出结果,则证明模型正确有效。

ArcGIS API for javascript开发笔记(四)——GP服务调用之GP模型的规范化制作详解..._第16张图片

3)模型已验证无误后,清除给定的参数值,目的是在后续发布的GP服务里,参数不会作为默认值出现在选项框里,保存模型。

ArcGIS API for javascript开发笔记(四)——GP服务调用之GP模型的规范化制作详解..._第17张图片

4)双击CreateGeoTurbine模型,输入参数:创建的文件夹路径、文件夹名称,输入的Excel路径,选定坐标系统,运行工具。

ArcGIS API for javascript开发笔记(四)——GP服务调用之GP模型的规范化制作详解..._第18张图片

5)运行成功,生成的结果目录如下图所示。

ArcGIS API for javascript开发笔记(四)——GP服务调用之GP模型的规范化制作详解..._第19张图片

关于这个GP模型的发布,Rest API调用,Javascript调用问题,后续将更新,欢迎探讨。

-------------------------欢迎来访,拒绝转载---------------------------

版权声明:本文为博主原创文章,未经博主允许不得转载。

 

转载于:https://www.cnblogs.com/gishh/p/4969908.html

你可能感兴趣的:(ArcGIS API for javascript开发笔记(四)——GP服务调用之GP模型的规范化制作详解...)