当前位置: 首页 > news >正文

GeoScene 空间大数据产品使用入门(6)进阶模型

除了简单的使用算子、数据资源构建模型外,GA Plus还提供了更加复杂的工具,用于全面提升模型运行效率。

前提条件

模型中的前提条件是指作为前提条件的算子执行完成,才能进行后续的计算流程,可用于控制模型中的运算顺序。前提条件的连线效果以虚线显示。

下图展示了输出资源池做为读取算子的前提条件(伪逻辑,仅展示功能用);先使用缓冲区分析后,将结果写出资源池,再读取该shapefile文件计算后续流程,前提条件功能确保读取算子执行时目标数据是存在的。

图片

图1. 前提条件

任何工具都可用作其他工具执行的前提条件,并且任何工具都可以有多个前提条件。算子、编组、子模型、迭代器及逻辑判断工具等均支持设置为前提条件或作为前提条件指向的后续流程。

变量

上一节我们讲到变量用于在不同工具之间传递参数,分为数据变量及值变量两种类型。值变量是指值参数,可以避免重复多次填写参数,也可以用于暴露算子参数。

图片

图2. 变量

GA Plus提供四种值变量,分别是数值变量、字符串变量、Json 对象变量、图层变量涵盖了常用的传参类型,从名称上功能区分更加明确。位于通用算子工具中。

图片

图片

图3. 定义变量

同时规范了不同类型参数的连线限制,如字符串变量可作为字段名称、文件路径等参数连线,但不允许连接缓冲距离等数值型参数,减少模型构建过程中误操作导致的执行报错问题。

图片

图4. 字符串变量使用方法

上图展示了使用字符串变量代替读取FileGDB图层中的FileGDB路径参数。

除了上述4种值变量外,GA Plus还提供了组合变量,对变量进行拼接组合,通过输入前置字符、传入内容、后置字符,可以拼接得到符合目标格式的变量内容,如文件路径、SQL语句、Arcade表达式等。常与迭代工具结合使用,稍后会在迭代器部分详细介绍。

图片

图5. 组合变量

上图为组合变量构建SQL语句。

迭代工具

迭代工具使用自动化循环机制高效处理重复性任务,对同一工具或流程进行多次重复执行,每次迭代使用不同的输入数据或参数,灵活控制数据处理逻辑,提升效率。

图片

图6. 迭代器列表

GA Plus提供多种迭代器类型,支持单循环、并行循环、嵌套循环等多种循环方式,支持全类型数据源的循环读取、遍历钻取,解决数据批处理、循环计算的业务需求。

工具

功能

for循环

由起始值按照增量向终止值增加

迭代多值

按照输入的多值迭代

迭代字段值

按照选择的字段值作为条件进行迭代

迭代数据项

按照选择的数据变量进行迭代

迭代数据源

指定资源池并根据条件进行迭代

迭代shp/GDB

指定路径及shp和GDB条件进行迭代

循环收集器

收集每次迭代返回的中间结果,以集合的形式返回。实现对选代结果的合并

迭代工具在每次迭代时,都会生成一个动态的值(每一轮循环的值), 例如for循环中的数值,迭代数据项中的数据要素,还会生成时间变量(执行时间戳)、迭代次数(执行轮数)。

图片

图7. 迭代器中变量

这些变量都可以用于区别迭代的结果。最典型的应用就是使用每一轮循环的值命名迭代结果。

图片

图8. for迭代器使用方法

特殊辅助(组合变量)

迭代字段值工具通常与组合变量工具组合使用,迭代字段值工具提取字段中的每一个唯一值,组合变量工具则结合唯一值,拼接得到符合目标格式的变量内容,如文件路径、SQL语句、Arcade表达式等。

下图中 , 对道路数据数据按类型(fclass)拆分,输出到shapefile文件中。使用字段值迭代器,选择输入图层中的fclass字段并去重,将返回的道路不同类型,通过组合变量方法拼接SQL语句,输出图层同样以字段值迭代器返回值命名,由此实现循环条件输出各种类型的道路图层。

图片

图9. 迭代器与组合变量配合使用

循环收集器是迭代中比较特殊的工具。用于收集每次迭代返回的中间结果,以集合的形式返回。其输出可作为简单追加数据算子和简单追加列算子的输入,实现对迭代结果的合并。

示例:某省城镇开发边界潜力分析,需使用建设用地图层擦除城镇开发边界图层,并进行后续分析最终生成省、市、县三级统计结果表。数据均为分县存储,每个区县一个GDB。使用shp/GDB迭代器循环读取各区县图层,进行投影转换后,使用循环收集器和简单追加工具,得到合并后的全省城镇开发边界图层。另一图层进行相同处理,进行后续的擦除分析及汇总统计。

图片

图10. 循环收集器工具

GA Plus中,同一个模型中可以使用多个迭代工具,这一点与Pro中的迭代工具不同,Pro中一个模型最多可以使用一个迭代工具,需要注意。

逻辑判断工具

逻辑判断工具支持对输入数据或变量进行判断,依据判断结果执行不同的分析计算流程,进一步支撑逻辑判断等复杂业务场景。判断内容包括输入图层的几何类型、空间参考、字段、记录数等,输入为变量参数时,支持判断数值大小、文本值包含内容、表达式是否成立。

图片

图11. 逻辑判断工具列表

逻辑判断工具连线为虚线效果,当选择的判断条件成立时执行连线的后续流程:多个逻辑判断条件指向同一个算子时,判断条件之间的关系为且。

工具

功能

如果几何类型为

判断输入图层的几何类型与待判断是否一致

如果空间参考为

判断输入图层的空间参考ID与待判断是否一致

如果字段存在

判断指定的单个或多个字段是否存在

如果行计数为

判断输入图层的记录数是否满足判断条件

如果值为

判断输入值是否满足判断条件

如果文件存在

判断检测文件名的文件在指定路径下是否存在(限fileGDB和Shapefile)

如果表达式为

判断表达式返回值是否为true/false。

合并分支

整合多个工作流的执行结果图层,返回有效要素图层。

以如果空间参考为工具为例,判断数据空间参考是否为3857坐标系,虚线表示前提条件,即当前空间参考不是3857时,再进行空间投影。 

图片

图12. 如果空间参考工具用法

合并分支工具用于在上述逻辑判断工具之后,将多个工作流整合。例如首先判断数据空间参考是否为3857坐标系,再进行缓冲。转换后的数据与不需要转换的数据情况,进行合并分支,然后缓冲。

图片

图13. 合并分支工具用法

模型复用

模型构建完成后 ,如果想要复用该模型,需要定义参数(暴露参数),例如修改数据源,修改阈值等等,生成带交互界面的工具,用户仅需调整参数即可适配不同场景‌。

以生成缓冲区并输出指定格式为例。

图片

图14. 模型构建器

右侧选项卡中包含参数、配置以及运行三种标签页。

参数选项卡是用于运行该模型时,设置的默认参数。

配置选项卡用于暴露参数,并对模型创建标签,添加描述。

图片

图15. 选择模型参数

对于选择暴露的参数,可以对其参数进行描述,还可以修改其中英文命名。

图片

图16. 设置模型参数

‌运行选项卡查看当前模型的运行状态。

保存模型。

要使用暴露参数的模型,就不能直接点击右侧的选项卡了。

切换到模型库中,找到刚才保存的模型,点击运行。

图片

图17. 运行模型库中模型

将弹出该模型的暴露参数,可以对其默认值进行修改。

图片

图18. 修改模型参数

然后运行该模型,模型运行状态及结果可以在分析任务中查看。

图片

图19. 查看任务

模型复用的优势在于,用户只需要设置关心的参数即可,不需要了解模型中庞大的参数设置,完善用户使用体验。

暴露了参数的模型还可以通过 Rest 接口执行模型,在模型库中找到模型,选择调用。

图片

图20. 调用模型库中模型

输入参数内容,点击Submit Job(POST),可以在分析任务中查看模型的状态。

图片

图21. 查看任务

模型嵌套

GA Plus还支持将模型整体作为一个算子,嵌入到其他模型中。其目的是将大型的复杂过程划分为更易于在其他模型或脚本中进行管理和重复利用的小模型单位。

继续以道路缓冲分析为例,开启所需参数,修改名称保证参数唯一性和可标识性,并重命名模型,进行保存。

图片

图22. 设置模型参数

构建新的模型。选择模型选项卡,将道路缓冲区模型(子模型)拖拽到画布中。

图片

图23. 新模型中拉入子模型

通过算子连线、选择数据方式配置输入输出实现嵌套模型使用,保存模型后,将显示引用的子模型。

图片

图24. 暴露参数

如果更新并保存了子模型,在主模型中,对子模型更新即可。

图片

图25. 更新模型

重复上述操作,可以嵌套多个模型。

小结

通过迭代、逻辑控制和参数化等设计提升了模型的适应性与容错能力,‌解决了复杂地理处理任务的效率与复用难题,‌更加适合复杂业务场景的扩展。

演示

可以参考高阶模型2个演示视频。

5.2高阶模型1

5.3高阶模型2

http://www.dtcms.com/a/327468.html

相关文章:

  • 软考备考(三)
  • jupyter notebook中查看kernel对应环境的解决方案
  • RK3568 Linux驱动学习——Linux LED驱动开发
  • 安全合规5--终端安全检测和防御技术
  • 【1】Transformers快速入门:自然语言处理(NLP)是啥?
  • 肖臻《区块链技术与应用》第九讲:比特币交易的“智能”核心:深入解析脚本语言Script
  • 常见的设计模式(2)单例模式
  • TDengine 初体验
  • Flink Python API 提交 Socket 数据源的 WordCount 作业
  • TDengine 可观测性最佳实践
  • 荣耀手机无法连接win11电脑,错误消息:“无法在此设备上加载驱动程序 (hn_usbccgpfilter.sys)。”解决方案
  • Flink运行时的实现细节
  • 嵌入式Linux进程管理面试题大全(含详细解析)
  • 基于热成像摄像头检测蚊子的可行性研究
  • iOS 签名证书全生命周期实战,从开发到上架的多阶段应用
  • 《Qwen2.5-VL 》论文精读笔记
  • 网络协议之TCP和UDP
  • 【iOS】Block基础知识和底层探索
  • Model Context Protocol (MCP)标准化应用程序向大型语言模型 (LLM) 提供上下文协议
  • 如何通过 5 种方法轻松格式化 USB 驱动器
  • Kubernetes 资源管理全解析:从基础到企业级实践
  • MyBatis-Plus——SQL注入器
  • 华清远见25072班C语言学习day7
  • 《算法导论》第 21 章-用于不相交集合的数据结构
  • 01-Ansible 自动化介绍与使用
  • 【数据结构】二叉树结构与相关实现
  • .NET MAUI框架编译Android应用流程
  • 服务降级方式
  • Python实现Amazon Redshift数据库元数据提取类
  • 分布式事务Seata使用不当引发的全局锁问题