GP Raster Server

GP的输出类型是Raster时,那么这个GP工具发布的GP服务就只能在ArcGIS Desktop客户端调用,怎样可以在其他客户端使用呢?从http://help.arcgis.com/zh-cn/arcgisdesktop/10.0/help/index.html#/na/002v00000004000000/里可以知道,提供了将GP以结果地图服务进行发布这种方法。

本文以Natural Neighbor这个GP工具为例,展现一下整个操作流程。

第一部分:发布服务

1 创建目录结构

  http://help.arcgis.com/en/arcgisdesktop/10.0/help/index.html#/Managing_the_jobs_directory/002v0000000m000000/

2 构建模型

  Natural Neighbor这个GP工具拖到Model里,然后设置点图层为输入参数。

其中,output的设置方法如下。在对output进行设置的时候,如果最后的结果不需要渲染,可以直接设置成“%scratchworkspace%/output,不需要设置最后输出栅格数据的格式(如.tif)。

3 设置工作空间

  ArcToolBox的空白处单击右键,选择“Enviornments,然后将“workspace”展开,将当前工作空间(Current Workspace)和临时工作空间(Scratch Workspace)指向在第一步创建的工作目录里。

4 配置渲染文件

 第一步在ArcMap里运行已经构建好的GP工具,结果图层output会自动加载进ArcMap里。

 第二步对output图层进行渲染,然后另存为.lyr文件(假如取名为output-config.lyr)。

 第三步打开GP工具,在output上单击右键,选择“Properties”,然后单击“Layer Symbology”,将第二步保存的lyr添加进来。进行保存。

5 准备发布的数据。

 再次运行这个GP工具,然后将GP工具直接拖到TOC上,那么这个GP工具就会以图层的形式存在。点击“保存“,命名为“gprater.mxd”。这里需要注意的是,一定要以相对路径进行存储。

 

6发布服务

 两种方式。第一种直接在ArcGIS Catalog里,找到gprater.mxd这个地图文档,单击右键,选择“Publish to ArcGIS Server”,在第二步将“Geoprocessing”勾选上,剩下的选默认参数就可以了。第二种采用“Add New Service”方式,服务类型选“Geoprocessing Service”,在第二步的时候,将“gprater.mxd”添加进来。

 在发布服务这一环节,经测试,只能选异步方式,不能选同步方式。

 

第二部分:测试服务

GP工具发布服务成功之后,需要对其发布的服务进行测试。

测试分为两个部分:

1打开ArcMap,加载测试数据ZPts.shp(测试的点图层)。然后将发布后的GP服务里的工具添加进ArcToolbox里,运行这个GP工具。

2rest环境下测试。

 http://localhost/ArcGIS/rest/services/gprater/GPServer/Model

 选择“Submit Job”,输入测试数据

 然后选择“Submit Job(GET).

Job Messages:

·        esriJobMessageTypeInformative: Submitted.

·        esriJobMessageTypeInformative: Executing...

·        esriJobMessageTypeInformative: Succeeded.

 

 第三部分:调用GP服务

环境:VS2010+Silverlight API for ArcGIS 2.1

a.txt放的是测试数据,放置路径是C:/inetpub/wwwroot

 

       Geoprocessor _geoprocessorTask;

       public MainPage()

       {

           InitializeComponent();       

       }

 

           private void button1_Click(object sender,RoutedEventArgs e)

         {

             _geoprocessorTask = new Geoprocessor("http://lius/ArcGIS/rest/services/gprater/GPServer/Model");

             List<GPParameter> parameters =new List<GPParameter>();

             parameters.Add(new GPFeatureRecordSetLayer("ZPts", "http://localhost/a.txt"));

           

             _geoprocessorTask.SubmitJobAsync(parameters);

             _geoprocessorTask.JobCompleted += new EventHandler<JobInfoEventArgs>(_geoprocessorTask_JobCompleted);

 

             _geoprocessorTask.Failed += GeoprocessorTask_Failed;

 

         }

 

         private   void _geoprocessorTask_JobCompleted(object sender,JobInfoEventArgs e)

           {

               Geoprocessor geoprocessorTask = sender as Geoprocessor;

               geoprocessorTask.GetResultDataCompleted += GeoprocessorTask_GetResultDataCompleted;

               geoprocessorTask.GetResultDataAsync(e.JobInfo.JobId, "output"); 

           }

 

         private void GeoprocessorTask_GetResultDataCompleted(object sender,GPParameterEventArgs e)

         {

             Geoprocessor geoprocessorTask = sender as Geoprocessor;

             _geoprocessorTask.GetResultImageLayerAsync(geoprocessorTask.SubmitJobLastResult.JobId, e.Parameter.Name);

             _geoprocessorTask.GetResultImageLayerCompleted += new EventHandler<GetResultImageLayerEventArgs>(_geoprocessorTask_GetResultImageLayerCompleted);

            

         }

 

         void _geoprocessorTask_GetResultImageLayerCompleted(object sender,GetResultImageLayerEventArgs e)

         {

             GPResultImageLayer mGPResultImageLAyer = e.GPResultImageLayer;

             MyMap.Layers.Clear();

             MyMap.Layers.Add(mGPResultImageLAyer);

         }

     

 

       private void GeoprocessorTask_Failed(object sender,TaskFailedEventArgs e)

       {

           MessageBox.Show(  e.Error.ToString());

       }

 

Raster Calculator(栅格计算器)是ArcGIS软件中的一个工具,它可以用来对栅格数据进行各种数学和逻辑运算。使用Raster Calculator,你可以对一个或多个栅格图层进行加、减、乘、除等运算,也可以进行逻辑运算如逻辑与、逻辑或、逻辑非等。 以下是使用Raster Calculator的一般步骤: 1. 在ArcGIS软件中,打开你的工作项目,并确保你已经加载了需要进行计算的栅格图层。 2. 在ArcGIS主菜单中,选择 "Spatial Analyst"(空间分析)工具箱。如果没有显示该工具箱,你可能需要先启用Spatial Analyst扩展。 3. 在Spatial Analyst工具箱中,展开 "Map Algebra"(地图代数)子菜单,找到并打开 "Raster Calculator"(栅格计算器)工具。 4. 在Raster Calculator对话框中,输入适当的表达式。表达式应基于栅格图层的名称和运算符进行构建。例如,"Raster1 + Raster2" 表示将Raster1和Raster2两个栅格图层进行相加。 5. 可以通过单击 "Add Raster" 按钮来添加更多的栅格图层到表达式中,并继续构建你的计算公式。 6. 确认表达式无误后,选择输出栅格图层的存储位置和名称。 7. 点击 "OK" 开始执行栅格计算器操作。 请注意,表达式中的栅格图层应具有相同的空间参考和像元大小,否则可能需要进行预处理以确保数据一致性。 使用Raster Calculator可以进行更复杂的计算,包括条件语句、逻辑运算和函数调用等。你可以参考ArcGIS的帮助文档或在线资源,以了解更多关于Raster Calculator的详细使用方法和示例。
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值