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

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

时间:2023-05-05 14:58:44浏览次数:48  
标签:分析 GP Pro 示例 ArcGIS 等高线 error

在之前的文章介绍过使用ArcMap发布GP分析服务,由于ArcGIS后续不在更新ArcMap,改用ArcGIS Pro,本文对ArcGIS Pro发布GP分析服务进行说明。

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

使用ArcMap发布GP服务请跳转:

本文示例使用(因为本人portal的授权的版本只有10.5的,故使用10.5进行示例):

软件:ArcGIS Pro3.0.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:输出的等高线线要素

由于在ArcGIS10.3中已经创建过GP模型,ArcGIS之间的产品是兼容的,可以用ArcGIS Pro打开,故不再新建GP模型,直接使用旧版已经创建好的进行编辑:

更改输入参数和输出参数的文件路径(输入参数选择第一步准备好的数据,需要真实的数据,输出参数只要设置好路径和文件名称即可,保证文件夹存在,文件不需要真实存在):

 修改完参数路径后,对模型进行保存。

注:在ArcMap10.3版本创建的GP工具可以在ArcGIS Pro打开,但在ArcGIS Pro打开后,就无法在ArcMap中打开了,不同的ArcGIS版本也一样,低版本GP工具在高版本打开后,就无法再原来的版本中打开,所以注意备份不同版本的工具。

3、运行并发布GP服务

(1)双击运行GP服务

  (2)发布服务,选择共享->Web工具,共享Web工具:

 选择刚刚运行的GP工具:

设置发布服务参数:

 切换配置页,选择同步异步等配置:

 切换Content,编辑输入输出参数:

 输入工具名称,备注,输入参数,输出参数等:

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

4、访问并验证GP服务

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,Pro,示例,ArcGIS,等高线,error
From: https://www.cnblogs.com/kk8085/p/17362912.html

相关文章

  • STM32单片机引脚要职能配置为输入或者输出模式,并不能像51一样准双向,那么如何进行但总
    如题随便找个端口举例对应的程序为 难道需要写之后立即初始化为输入?然后赶紧读?然后再赶紧初始化为输出?再往外写?是的,还真他妈就是这么傻逼的操作 ......
  • OpenProject:Ubuntu18.04下安装配置(docker方式)
    年前刚跳槽,发现很久没有更新文章啦。最近几年转到了技术管理岗,中小公司的技术管理,免不了做一些PM的活。以前用微软的Project(虽然盗版但真的好用),现在公司不允许使用盗版,只能找找开源的,于是发现了OpenProject。官方提供了几种安装方式:1.Package2.Docker3.UCS4.Other1.尝试下......
  • chatgpt代写---五一回家人太多了
    五一小长假,让很多人终于有机会回家探亲。但是,对于我们这样的人来说,出门旅游或回家探亲,确实面临着一个非常困扰的问题:人太多了!以南京为例,今年的五一假期,回家探亲的人数可谓是爆棚。不论是在车站还是在机场,都人满为患。到处都是人头攒动,交通堵塞,难免会让人产生一些怨念。事实上,中......
  • java.security.NoSuchAlgorithmException: Cannot find any provider supporting AES/
    Java使用AES/CBC/PKCS7Padding加解密时会报错,因为原生JDK不支持。1.在jdk中的jre\lib\security修改java.security文件,替换security.provider.7=org.bouncycastle.jce.provider.BouncyCastleProvider2./jdk/jre/lib/ext下添加jar包bcprov-jdk15on-1.58.jar ......
  • Promise学习
    1.理解1)Promise是一门新技术(ES6规范)2)Promise是JS中进行异步编程的新解决方案 2.具体表达1)从语法上说:Promise是一个构造函数,2)从功能上说:Promise对象用来封装一个异步操作并可以获取其成功/失败的结果值支持链式调用,解决回调地狱问题,回调函数中多次嵌套。 3.Promise......
  • 【继承类型:public、private、protected的区别】
    继承类型:public、private、protected的区别:当一个类派生自基类时,该基类可以通过公有(public)、私有(private)、保护(protected)三种方式被继承,实际应用中几乎不使用 protected 或 private 继承,通常使用 public 继承。继承语法: 继承规则:公有继承(public):当一个类派生自公有基......
  • chatgpt接口开发笔记2生成图片接口
    chatgpt接口开发笔记2生成图片接口chatgpt的生成图片接口,可以根据用户的描述来生成满足用户意愿的图片1、了解接口参数接口地址:POSThttps://api.openai.com/v1/images/generations下面是接口文档描述内容curlhttps://api.openai.com/v1/images/generations\-H"Co......
  • not-perf cpu采样profiler工具
    not-perf类似perf,但是实现了cpu无关,可以开箱即用支持的特性支持多种cpu架构支持离线以及在线stacktrace展开支持不带debuginfo的分析支持跨架构数据分析架构无关的数据费事内置火焰图参考使用支持的命令nperf-core0.1.1JanBujak<[email protected]> ......
  • 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;......