iServer GPA模型在实际场景中的使用——实现导入shp数据并切瓦片存储到MongoDB数据库发布服务

本文主要是介绍iServer GPA模型在实际场景中的使用——实现导入shp数据并切瓦片存储到MongoDB数据库发布服务,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

作者:yyy

目录

一、场景介绍

二、操作使用

三、实际应用

1、制作GPA模型

2、发布模型

3、通过post请求实现GPA模型自动化处理

四、注意事项

1、算子问题

2、模型算子问题

3、POST请求参数问题


一、场景介绍

        大数据时代来临,人们对于空间大数据处理的自动化与性能需求也越来越迫切。为此,SuperMap提供了处理自动化服务,通过处理自动化工具(以下简称工具)构建处理自动化模型(以下简称模型)并运行,可实现空间数据处理与分析过程的自动化。除此之外,也可以通过使用自定义工具构建模型进行空间数据处理与分析。

二、操作使用

SuperMap iServer内置了处理建模器,用于可视化构建处理自动化模型。通过建模器您可以:

  • 可视化拖拽和连接工具,构建符合您工作需求的模型。
  • 分步运行模型,运行至您所选的工具,以检验处理自动化流程的正确性。
  • 运行整个模型实现空间数据的自动化处理与分析流程。

处理建模器页面地址可通过处理自动化服务管理的基本信息页面进行查看,如图,您可通过该链接进入处理建模器页面:

处理建模器页面界面如下:

图  处理建模器页面

处理建模器页面的左侧为处理自动化工具列表,中间为可视化建模画布,右侧为参数设置与输出窗口。

图  功能按钮

        通过页面上方的文件下拉框,可以导入和导出处理自动化建模的模板。而点击清除按钮可以清空画布上的模型。右上角的执行模型按钮可以运行构建好的模型,发布模型按钮则可以将构建好的模型发布为处理自动化工具。

点击执行模型按钮后,模型会提交为处理自动化任务。

        在iServer服务列表中通过处理自动化服务下的geoprocessing/restjsr可以进入处理自动化服务的根资源,处理自动化服务根资源页面提供了地理工具列表和任务列表,通过工具列表可以查看处理自动化服务提供的所有工具以及您置入的自定义工具描述;通过任务列表进入处理自动化任务列表资源页面,即通过任务ID可查看对应的处理自动化任务信息。

三、实际应用

        通过GPA模型实现导入shp数据,保存到本地工作空间中,制作地图,切矢量瓦片并存储到MongoDB数据库中,最后将其发布为服务。

1、制作GPA模型

        要想实现上述的功能,我们需要知道在GPA模型中需要用到哪些算子才能完成操作,按照iDesktop和iServer中的实现流程,我们可以将其分为三部分:①导入shp数据、②制作地图保存工作空间、③切MongoDB瓦片、④发布MongoDB瓦片;在GPA模型中这些功能我们都能找到对应的算子,如:

①导入shp数据:导入.SHP数据

②制作地图保存工作空间:自动制图

③切MongoDB瓦片:生成矢量瓦片配置文件、拆分切图任务、多进程生成地图瓦片

④发布MongoDB瓦片:MongoDB瓦片发布

注:在GPA模型中,切瓦片总共要分为三步:生成矢量瓦片配置文件、拆分切图任务、多进程生成地图瓦片;在GPA模型中的地图瓦片工具提供了多进程生成地图瓦片的能力,根据地图的比例尺和地理范围等需要先将切图任务拆分成多个子任务;所以这里需要先进行拆分切图任务,然后再进行多进程生成矢量瓦片。

         按照上述的分析,我们就可以在iServer的处理自动化界面中手动构建出完整的流程图,构建的效果图如下:

 然后我们就可以在右侧的边栏中填写输入每个算子对应的参数信息;最后我们点击“执行模型”就可以实现整个功能了。

        如何判断当前模型是否执行成功呢?我们可以通过以下两种方式来判断:①当模型中算子执行成功后,会在算子模块的右上角出现绿勾,说明当前算子执行完成,如果算子模块的右上角出现红叉,则说明当前算子执行失败,这个时候我们就需要去排查是否是因为参数填写错误导致的;②在iServer处理自动化的任务列表中找到对应的任务,查看当前的任务执行进程以及结果。

2、发布模型

        当我们通过上一步中执行完成整个流程后会发现整个模型中包含的算子太多,并且各个算子之间的连接关系也很复杂,那么这个时候我们就可以通过另一种方法将其进行简化:将其发布为自定义模型工具。

 这里的参数“保存参数值”如果勾选上,那么我们发布的自定义模型工具中就会默认包含刚才输入填写的参数,一般为了保障模型的重复使用,我们这里不再勾选。

发布完成后,在左侧边栏的“自定义模型工具”中就会包含我们刚才发布的模型,我们将其拖拽到界面中,发现当前的这个模型算子中参数是将之前所有算子进行了汇总,我们不用再考虑算子与算子之间的链接关系,只需要填写其对应的参数即可。

 参考第一步中的全模型参数,我们填写了这个自定义的模型,执行后发现其结果与全流程结果一致。

3、通过post请求实现GPA模型自动化处理

        为了实现自动化处理执行GPA模型,我们可以通过POST请求来实现这种过程,在POST请求中主要包含两个部分:POST请求头和POST请求体。其中POST请求头我们可以通过在iServer的处理自动化工具列表中获取到,根据第二步中发布的自定义模型工具中我们可以得到相应的服务地址

这里我们就可以获取到一个完整的POST请求头http://localhost:8090/iserver/services/geoprocessing/restjsr/gp/v2/sps.WorkflowProcessFactory.models:demo0210/jobs?token=qdPwJ4EGBaRDs_PFRYiy1xnwqFspiLJQCT-HXoKdzY1A2rHeRWmL0SMtA-krdUmZWqx_kdJQ2U_NL1iuvDFhfQ..

其中“sps.WorkflowProcessFactory.models:demo0210”为当前自定义模型工具的工具ID;而POST请求体中具体的参数如何填写,我们可以根据下面“输入参数”的内容来设置。

         通过上述的内容,这里设置了具体的POST请求内容:

POST请求头POST请求体

http://localhost:8090/iserver/services/geoprocessing/restjsr/gp/v2/sps.WorkflowProcessFactory.models:demo0210/jobs?token=qdPwJ4EGBaRDs_PFRYiy1xnwqFspiLJQCT-HXoKdzY1A2rHeRWmL0SMtA-krdUmZWqx_kdJQ2U_NL1iuvDFhfQ..

{

    "parameter": {

        "importshp-sourceFilePath":"D:\\SuperMap\\data\\202202\\0210\\test\\world.shp",

        "importshp-sourceFileCharset":"ANSI",

        "importshp-targetDatasource":"sdx --server=D:/SuperMap/data/202202/0210/test/test.udbx --alias=test --dbType=udbx",

        "importshp-targetDatasetName":"world",

        "importshp-targetEncodeType":"NONE",

        "importshp-importMode":"NONE",

        "importshp-isImportEmptyDataset":"false",

        "importshp-spatialIndexInfo":"ture",

        "importshp-isAttributeIgnored":"false",

        "importshp-isImportingAs3D":"false",

        "automapping-workspacePath":"D:\\SuperMap\\data\\202202\\0210\\test\\test.smwu",

        "automapping-mapName":"world",

        "automapping-templates":"",

       "buildvectorscifile-cacheName":"wp007",

        "buildvectorscifile-worksapcefile":"D:\\SuperMap\\data\\202202\\0210\\test\\test.smwu",

        "buildvectorscifile-mapName":"world",

        "buildvectorscifile-storageType":"MongoDB",

        "buildvectorscifile-levels":["1","2","3","4","5","6"],

        "buildvectorscifile-outputFolder":"D:\\SuperMap\\data\\202202\\0210\\wp007",

        "buildvectorscifile-cacheBounds":"-180.0,-90.0,180.0,83.62359619140625",

        "buildvectorscifile-tileStorageConnection":"--database=test0210 --server=localhost:27017",

        "buildvectorscifile-mvtStyleWithoutFont":"true",

        "buildvectorscifile-mvtWithAllField":"false",

        "buildvectorscifile-mvtTileBuffer":"16",

        "buildvectorscifile-mvtTileExtent":"4096",

        "buildvectorscifile-mvtWithoutFilter":"true",

        "buildvectorscifile-mvtSimplifyGeometry":"false",

        "buildcachemultiprocess-cpuPercentage":"50",

        "mongodbpublish-serverAdresses":"localhost:27017",

        "mongodbpublish-username":"",

        "mongodbpublish-password":"",

        "mongodbpublish-database":"test0210",

        "mongodbpublish-tilesetNames":["wp007"],

        "mongodbpublish-iserverPath":"http://localhost:8090",

        "mongodbpublish-token":"qdPwJ4EGBaRDs_PFRYiy1xnwqFspiLJQCT-HXoKdzY1A2rHeRWmL0SMtA-krdUmZWqx_kdJQ2U_NL1iuvDFhfQ..",

        "mongodbpublish-interfaceTypes":["地图服务","矢量瓦片服务"]

    },

    "environment ": {

        "master":"spark://0.0.0.0:7077",

        "appName":"Geoprocessing",

        "settings":["spark.cores.max=8","spark.driver.host=192.168.29.252","spark.executor.memory=32g"]

    }

}

        通过POST请求完成上述请求后,我们可以在iServer处理自动化的任务列表中看到具体的任务进程是否完成,以及执行结果等。

         任务执行到这里后就说明当前的流程能够完整的走通,并且服务预览也都正常,说明通过POST请求完成GPA模型全流程自动化执行是能正常实现的。并且省去了手动输入参数,简化了操作过程。

四、注意事项

1、算子问题

        由于目前官网发布的iServer版本中地理处理自动化算子中并不包含“MongoDB瓦片发布”,所以这里提供了替换的解决方法和步骤,具体请见附件“1、操作步骤.docx”;

2、模型算子问题

        在制作GPA模型时,需要注意各个算子直接参数连接的前后关系,如在“生成矢量瓦片配置文件”与“拆分切图任务”两个算子之间,“生成矢量瓦片配置文件”的输出结果“瓦片目录”为“拆分切图任务”算子输入参数的“子任务目录”和“多进程生成地图瓦片”算子输入参数的“缓存目录”等。

3、POST请求参数问题

        在POST请求中我们需要注意,post请求头中需要针对具体的模型工具来使用具体的url,其中地址中的token是在iServer中独自生成的http://localhost:8090/iserver/services/security/tokens,而post请求体中的参数则需要与当前模型工具的输入参数ID一致。为了进行区分,这里我们可以参考附件“2、post请求完成处理自动化流程.docx”,其中具体说明了post请求自动化模型全流程以及post请求单个算子模型的过程。

附件下载地址:POST请求实现GPA模型全自动化流程.zip-其它文档类资源-CSDN下载

这篇关于iServer GPA模型在实际场景中的使用——实现导入shp数据并切瓦片存储到MongoDB数据库发布服务的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/744937

相关文章

C语言中联合体union的使用

本文编辑整理自: http://bbs.chinaunix.net/forum.php?mod=viewthread&tid=179471 一、前言 “联合体”(union)与“结构体”(struct)有一些相似之处。但两者有本质上的不同。在结构体中,各成员有各自的内存空间, 一个结构变量的总长度是各成员长度之和。而在“联合”中,各成员共享一段内存空间, 一个联合变量

C++对象布局及多态实现探索之内存布局(整理的很多链接)

本文通过观察对象的内存布局,跟踪函数调用的汇编代码。分析了C++对象内存的布局情况,虚函数的执行方式,以及虚继承,等等 文章链接:http://dev.yesky.com/254/2191254.shtml      论C/C++函数间动态内存的传递 (2005-07-30)   当你涉及到C/C++的核心编程的时候,你会无止境地与内存管理打交道。 文章链接:http://dev.yesky

Tolua使用笔记(上)

目录   1.准备工作 2.运行例子 01.HelloWorld:在C#中,创建和销毁Lua虚拟机 和 简单调用。 02.ScriptsFromFile:在C#中,对一个lua文件的执行调用 03.CallLuaFunction:在C#中,对lua函数的操作 04.AccessingLuaVariables:在C#中,对lua变量的操作 05.LuaCoroutine:在Lua中,

一份LLM资源清单围观技术大佬的日常;手把手教你在美国搭建「百万卡」AI数据中心;为啥大模型做不好简单的数学计算? | ShowMeAI日报

👀日报&周刊合集 | 🎡ShowMeAI官网 | 🧡 点赞关注评论拜托啦! 1. 为啥大模型做不好简单的数学计算?从大模型高考数学成绩不及格说起 司南评测体系 OpenCompass 选取 7 个大模型 (6 个开源模型+ GPT-4o),组织参与了 2024 年高考「新课标I卷」的语文、数学、英语考试,然后由经验丰富的判卷老师评判得分。 结果如上图所

Vim使用基础篇

本文内容大部分来自 vimtutor,自带的教程的总结。在终端输入vimtutor 即可进入教程。 先总结一下,然后再分别介绍正常模式,插入模式,和可视模式三种模式下的命令。 目录 看完以后的汇总 1.正常模式(Normal模式) 1.移动光标 2.删除 3.【:】输入符 4.撤销 5.替换 6.重复命令【. ; ,】 7.复制粘贴 8.缩进 2.插入模式 INSERT

JAVA读取MongoDB中的二进制图片并显示在页面上

1:Jsp页面: <td><img src="${ctx}/mongoImg/show"></td> 2:xml配置: <?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001

Lipowerline5.0 雷达电力应用软件下载使用

1.配网数据处理分析 针对配网线路点云数据,优化了分类算法,支持杆塔、导线、交跨线、建筑物、地面点和其他线路的自动分类;一键生成危险点报告和交跨报告;还能生成点云数据采集航线和自主巡检航线。 获取软件安装包联系邮箱:2895356150@qq.com,资源源于网络,本介绍用于学习使用,如有侵权请您联系删除! 2.新增快速版,简洁易上手 支持快速版和专业版切换使用,快速版界面简洁,保留主

如何免费的去使用connectedpapers?

免费使用connectedpapers 1. 打开谷歌浏览器2. 按住ctrl+shift+N,进入无痕模式3. 不需要登录(也就是访客模式)4. 两次用完,关闭无痕模式(继续重复步骤 2 - 4) 1. 打开谷歌浏览器 2. 按住ctrl+shift+N,进入无痕模式 输入网址:https://www.connectedpapers.com/ 3. 不需要登录(也就是

大语言模型(LLMs)能够进行推理和规划吗?

大语言模型(LLMs),基本上是经过强化训练的 n-gram 模型,它们在网络规模的语言语料库(实际上,可以说是我们文明的知识库)上进行了训练,展现出了一种超乎预期的语言行为,引发了我们的广泛关注。从训练和操作的角度来看,LLMs 可以被认为是一种巨大的、非真实的记忆库,相当于为我们所有人提供了一个外部的系统 1(见图 1)。然而,它们表面上的多功能性让许多研究者好奇,这些模型是否也能在通常需要系

通过SSH隧道实现通过远程服务器上外网

搭建隧道 autossh -M 0 -f -D 1080 -C -N user1@remotehost##验证隧道是否生效,查看1080端口是否启动netstat -tuln | grep 1080## 测试ssh 隧道是否生效curl -x socks5h://127.0.0.1:1080 -I http://www.github.com 将autossh 设置为服务,隧道开机启动