首页 > 其他分享 >ArcGIS Desktop(ArcMap)创建、发布、调用GP服务全过程示例(等高线分析)

ArcGIS Desktop(ArcMap)创建、发布、调用GP服务全过程示例(等高线分析)

时间:2023-05-05 16:45:49浏览次数:52  
标签:分析 服务 GP 示例 Desktop ArcGIS 等高线 error

本文以等高线分析为例,使用ArcMap软件,从GP分析服务的创建、发布、调用全过程进行演示。

使用ArcGIS Pro发布GP服务请跳转:ArcGIS Pro创建、发布、调用GP服务全过程示例(等高线分析)

本文示例使用软件:

ArcGIS Desktop10.3.1

ArcGIS JS API4.16

注:阅读本文前需要对ArcGIS GP服务,模型构建器等有一定了解,本文不会详细描述GP工具的构建过程。

需求:通过在前端绘制或导入多边形范围,设置等高距,生成绘制区域的等高线。

1、数据准备

(1)准备一个地形文件,可以是tif或者img等格式

(2)准备一个shp面要素文件,用来指定分析范围

2、创建GP模型

创建等高线分析GP模型:

(1)使用Extract by Mask工具,裁剪出输入要素的多边形范围的栅格数据

(2)根据第一步裁剪的栅格结果,执行等高线分析,生成线要素

注:蓝色椭圆中的为输入参数,绿色椭圆中的是输出参数,黄色矩形为ArcGIS工具箱中的分析工具。

参数说明: 

InputFeature:等高线分析范围数据,shp格式,可自行创建个shp文件。在地形范围内绘制一个范围(使用第一步准备的shp数据),

InputRaster:地形dem数据,可以使用tif格式,支持经纬度坐标或投影坐标,根据实际情况选择需要的地形路径(第一步准备的地形数据)

CoutourInterval:等高线间距,默认单位米

OutputFeature:输出的等高线线要素

3、运行并发布GP服务

(1)双击运行GP服务

 (2)发布服务,选择地理处理->结果,找到运行的GP结果,右键发布服务

 

设置发布服务参数:

设置好后,点击分析,分析如果没有错误,使用Publish发布GP服务

4、访问并验证GP服务

发布好的服务通过rest进行访问验证,示例:

打开GP服务执行页面,若有示例参数,可在浏览器验证GP服务。

输入分析范围,示例:

{"features":[{"geometry":{"spatialReference":{"wkid":4490},"rings":[[[119.26767045543811,25.942444646116375],[119.33522941013436,25.950904529325477],[119.33567059875381,25.968306654427234],[119.30431227697976,25.970283578404857],[119.28396539929878,25.960850662458895],[119.2740650356365,25.952524659479167]]]},"symbol":{"type":"esriSFS","color":[0,0,255,26],"outline":{"type":"esriSLS","color":[255,255,255,255],"width":2,"style":"esriSLSSolid"},"style":"esriSFSSolid"},"attributes":{},"popupTemplate":null}]}

并设置好等高距,输入栅格等参数,可执行工具得出结果:

5、调用GP服务

 先通过绘制得到绘制的多边形graphic,然后设置参数,利用Geoprocessor来执行GP服务得到结果,再将结果的等高线绘制到地图上。

    startExcute (graphic) {
      const featureSet = new FeatureSet()
      featureSet.features = [graphic]
      const inputRaster = {
        'url': this.demDatas[this.value].url,
        'format': this.demDatas[this.value].format || 'tif'
      }
      let params = {
        "inputFeature": featureSet,
        "contourInterval": this.contourInterval,
        "inputRaster": inputRaster
      }
      
      const geop = new this.Geoprocessor(this.contourUrl)
      geop.outSpatialReference = {
        wkid: this.map.spatialReference.wkid
      }
      if (this.isAsync) { //发布的服务是异步时的处理方式
        this.loading = true
        geop.submitJob(params).then(data => {
          var options = {
            interval: 1500,
            statusCallback: function (j) {
              // console.log("Job Status: ", j.jobStatus);
            }
          }
          geop.waitForJobCompletion(data.jobId, options).then(res => {
            geop.getResultData(res.jobId, 'OutputFeature').then(item => {
              this.drawLine(item.value.features)
              this.loading = false
            })
          }, error => {
            this.loading = false
            this.$message.error('分析出错,请联系管理员!')
            console.error('等高线分析出错:' + error)
          }).catch(error => {
            this.loading = false
            this.$message.error('分析出错,请联系管理员!')
            console.error('等高线分析出错:' + error)
          })
        })
      } else { //发布的服务是同步时的处理方式
        this.loading = true
        console.log('params2', params)
        geop.execute(params).then(data => {
          this.loading = false
          this.drawLine(data.results[0].value.features)
          console.log('datas', data)
        }, error => {
          this.loading = false
          this.$message.error('分析出错,请联系管理员!')
          console.error('等高线分析出错:' + error)
        })
      }
    }

注:代码只是截取的一部分代码,参考使用,具体调用根据自己的开发的实际情况来写。

<全文完>

标签:分析,服务,GP,示例,Desktop,ArcGIS,等高线,error
From: https://www.cnblogs.com/kk8085/p/17362746.html

相关文章

  • 《花雕学AI》31:ChatGPT--用关键词/咒语/提示词Prompt激发AI绘画的无限创意!
    你有没有想过用AI来画画?ChatGPT是一款基于GPT-3的聊天模式的AI绘画工具,它可以根据你输入的关键词/咒语/提示词Prompt来生成不同风格和主题的画作。Prompt是一些简短的文字,可以用来指导ChatGPT的创作过程。在这篇文章中,我将展示一些用ChatGPT和不同的Prompt创造出来的有趣和创意的A......
  • iThinkAir与AutoGPT
    AutoGPT是一个Python开源应用程序,由SignificantGravitas团队开发。它相当于一个高级AI助理,和只会一问一答的ChatGPT不同。当AutoGPT接收到一个指令时,它会主动把这个指令拆解成不同的子任务,然后再主动地去逐一完成这些任务。如果有必要,它还会自己给自己布置额外的任务,以更好地完成......
  • ArcGIS Pro创建、发布、调用GP服务全过程示例(等高线分析)
    在之前的文章介绍过使用ArcMap发布GP分析服务,由于ArcGIS后续不在更新ArcMap,改用ArcGISPro,本文对ArcGISPro发布GP分析服务进行说明。本文以等高线分析为例,使用ArcGISPro软件,从GP分析服务的创建、发布、调用全过程进行演示。使用ArcMap发布GP服务请跳转:本文示例使用(因为本人po......
  • STM32单片机引脚要职能配置为输入或者输出模式,并不能像51一样准双向,那么如何进行但总
    如题随便找个端口举例对应的程序为 难道需要写之后立即初始化为输入?然后赶紧读?然后再赶紧初始化为输出?再往外写?是的,还真他妈就是这么傻逼的操作 ......
  • chatgpt代写---五一回家人太多了
    五一小长假,让很多人终于有机会回家探亲。但是,对于我们这样的人来说,出门旅游或回家探亲,确实面临着一个非常困扰的问题:人太多了!以南京为例,今年的五一假期,回家探亲的人数可谓是爆棚。不论是在车站还是在机场,都人满为患。到处都是人头攒动,交通堵塞,难免会让人产生一些怨念。事实上,中......
  • chatgpt接口开发笔记2生成图片接口
    chatgpt接口开发笔记2生成图片接口chatgpt的生成图片接口,可以根据用户的描述来生成满足用户意愿的图片1、了解接口参数接口地址:POSThttps://api.openai.com/v1/images/generations下面是接口文档描述内容curlhttps://api.openai.com/v1/images/generations\-H"Co......
  • A-GPS的一个技术路径——Wi-Fi Location
    最近我们单位进行了一次搬家。单位的大家发现,自己在室内连接单位Wi-Fi时,手机里的各个软件只要需要用到定位服务的功能,无论是地图、打卡还是附近的人,都会发现自己定位在旧位置,从而导致各种各样的麻烦。GPS虽好但却不是万能的搭载有定位服务的手机目前都会使用卫星定位的方式来确......
  • java网络编程示例
    1.clientimportjava.io.*;importjava.net.InetAddress;importjava.net.Socket;publicclassTcpClientDemo{publicstaticvoidmain(String[]args){InetAddressbyName=null;Socketsocket=null;OutputStreamos=null;......
  • 2023-05-04:用go语言重写ffmpeg的scaling_video.c示例,用于实现视频缩放(Scaling)功能。
    2023-05-04:用go语言重写ffmpeg的scaling_video.c示例,用于实现视频缩放(Scaling)功能。答案2023-05-04:这段代码实现了使用libswscale库进行视频缩放的功能。下面是程序的主要流程:1.获取命令行参数,包括输出文件名和目标图像大小。2.解析目标图像大小,生成指定大小的输出文件。3.创建缩......
  • linux模块驱动编写示例
    2023-05-04关键字:该驱动可通过dts配置属性,可在/dev创建节点,支持对/dev下的节点进行标准IO读写以及ioctl读写。dts如下:ir_cut{status="okay";compatible="chorm,ir-cut";gpios=<&gpf0GPIO_ACTIVE_HIGH>,<&gpf1GPIO_ACTIVE_LOW>;}; ......