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

相关文章

Spring Security基于数据库验证流程详解

Spring Security 校验流程图 相关解释说明(认真看哦) AbstractAuthenticationProcessingFilter 抽象类 /*** 调用 #requiresAuthentication(HttpServletRequest, HttpServletResponse) 决定是否需要进行验证操作。* 如果需要验证,则会调用 #attemptAuthentica

大模型研发全揭秘:客服工单数据标注的完整攻略

在人工智能(AI)领域,数据标注是模型训练过程中至关重要的一步。无论你是新手还是有经验的从业者,掌握数据标注的技术细节和常见问题的解决方案都能为你的AI项目增添不少价值。在电信运营商的客服系统中,工单数据是客户问题和解决方案的重要记录。通过对这些工单数据进行有效标注,不仅能够帮助提升客服自动化系统的智能化水平,还能优化客户服务流程,提高客户满意度。本文将详细介绍如何在电信运营商客服工单的背景下进行

基于MySQL Binlog的Elasticsearch数据同步实践

一、为什么要做 随着马蜂窝的逐渐发展,我们的业务数据越来越多,单纯使用 MySQL 已经不能满足我们的数据查询需求,例如对于商品、订单等数据的多维度检索。 使用 Elasticsearch 存储业务数据可以很好的解决我们业务中的搜索需求。而数据进行异构存储后,随之而来的就是数据同步的问题。 二、现有方法及问题 对于数据同步,我们目前的解决方案是建立数据中间表。把需要检索的业务数据,统一放到一张M

关于数据埋点,你需要了解这些基本知识

产品汪每天都在和数据打交道,你知道数据来自哪里吗? 移动app端内的用户行为数据大多来自埋点,了解一些埋点知识,能和数据分析师、技术侃大山,参与到前期的数据采集,更重要是让最终的埋点数据能为我所用,否则可怜巴巴等上几个月是常有的事。   埋点类型 根据埋点方式,可以区分为: 手动埋点半自动埋点全自动埋点 秉承“任何事物都有两面性”的道理:自动程度高的,能解决通用统计,便于统一化管理,但个性化定

中文分词jieba库的使用与实景应用(一)

知识星球:https://articles.zsxq.com/id_fxvgc803qmr2.html 目录 一.定义: 精确模式(默认模式): 全模式: 搜索引擎模式: paddle 模式(基于深度学习的分词模式): 二 自定义词典 三.文本解析   调整词出现的频率 四. 关键词提取 A. 基于TF-IDF算法的关键词提取 B. 基于TextRank算法的关键词提取

python: 多模块(.py)中全局变量的导入

文章目录 global关键字可变类型和不可变类型数据的内存地址单模块(单个py文件)的全局变量示例总结 多模块(多个py文件)的全局变量from x import x导入全局变量示例 import x导入全局变量示例 总结 global关键字 global 的作用范围是模块(.py)级别: 当你在一个模块(文件)中使用 global 声明变量时,这个变量只在该模块的全局命名空

Hadoop企业开发案例调优场景

需求 (1)需求:从1G数据中,统计每个单词出现次数。服务器3台,每台配置4G内存,4核CPU,4线程。 (2)需求分析: 1G / 128m = 8个MapTask;1个ReduceTask;1个mrAppMaster 平均每个节点运行10个 / 3台 ≈ 3个任务(4    3    3) HDFS参数调优 (1)修改:hadoop-env.sh export HDFS_NAMENOD

使用SecondaryNameNode恢复NameNode的数据

1)需求: NameNode进程挂了并且存储的数据也丢失了,如何恢复NameNode 此种方式恢复的数据可能存在小部分数据的丢失。 2)故障模拟 (1)kill -9 NameNode进程 [lytfly@hadoop102 current]$ kill -9 19886 (2)删除NameNode存储的数据(/opt/module/hadoop-3.1.4/data/tmp/dfs/na

异构存储(冷热数据分离)

异构存储主要解决不同的数据,存储在不同类型的硬盘中,达到最佳性能的问题。 异构存储Shell操作 (1)查看当前有哪些存储策略可以用 [lytfly@hadoop102 hadoop-3.1.4]$ hdfs storagepolicies -listPolicies (2)为指定路径(数据存储目录)设置指定的存储策略 hdfs storagepolicies -setStoragePo

HDFS—存储优化(纠删码)

纠删码原理 HDFS 默认情况下,一个文件有3个副本,这样提高了数据的可靠性,但也带来了2倍的冗余开销。 Hadoop3.x 引入了纠删码,采用计算的方式,可以节省约50%左右的存储空间。 此种方式节约了空间,但是会增加 cpu 的计算。 纠删码策略是给具体一个路径设置。所有往此路径下存储的文件,都会执行此策略。 默认只开启对 RS-6-3-1024k