RasterConvolver示例:栅格坡度计算

2023-10-28 18:30

本文主要是介绍RasterConvolver示例:栅格坡度计算,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

RasterConvolver转换器在FME 2018.1+中可用。

栅格坡度计算

FME已经有从栅格要素直接计算坡度的转换器;但是,RasterConvolver也可以用于创建相同的结果,栅格DEM卷积是一个很好的例子。

卷积是一个在栅格要素和数字矩阵(核)之间进行的数学运算。操作和核的定义通常叫做滤波

这个练习是用多种方法对栅格要素进行卷积,通过合并结果得到解决方案的很好的示例。

下载

Source Dataset

Completed Workspace as a Template

源数据

这些示例的源数据是CDED格式的栅格DEM。在FME Data Inspector中看起来是这样:

https://knowledge.safe.com/storage/attachments/18818-rasterconvolverslopes1.png

 

单元格的值表示高程。颜色越浅,海拔越高。较暗的区域代表低洼地区。

分布说明

1. 启动FME Workbench,在空白画布中开始。从菜单栏中选择 Readers(读模块) > Add Reader(添加读模块)

设置数据格式为Canadian Digital Elevation Data (CDED)U.S. Geological Survey Digital Elevation Model (USGSDEM)——这两个名字是同一种格式。

选择下载的数据作为源数据。

2. 在画布中添加一个RasterConvolver 转换器,然后把读模块要素类连接到该转换器。

打开参数对话框。选择Line Detection: Horizontal滤波

https://knowledge.safe.com/storage/attachments/18821-rasterconvolverslopes4.png

 

这个滤波识别东西(左右)方向的线。

3. 在画布中添加第二个RasterConvolver转换器,并把读模块要素类连接到该转换器:

https://knowledge.safe.com/storage/attachments/18822-rasterconvolverslopes5.png

 

打开参数对话框,这次选择Line Detection: Vertical滤波。

这两个滤波识别水平和竖直方向的坡度。这两种结果本身都差强人意,但可以组合在一起以得到所需的结果。

4. 在画布中添加一个RasterExpressionEvaluator转换器,先不连接任何对象,打开参数对话框。

设置Mode参数为Two Rasters

https://knowledge.safe.com/storage/attachments/18823-rasterconvolverslopes6.png

 

Band Expression(s)字段,设置InterpretationPreserve。在Expression字段,输入:

换言之,我们把两个栅格要素合并到一起。单元的新值为栅格A值的平方加上栅格B值的平方再开方。

https://knowledge.safe.com/storage/attachments/18824-rasterconvolverslopes7.png

 

关闭参数对话框,将两个RasterConvolver的输出端口连接到RasterExpressionEvaluatorAB输入端口:

https://knowledge.safe.com/storage/attachments/18825-rasterconvolverslopes8.png

 

5. 运行工作空间,使用缓存要素或Inspector转换器来查看RasterExpressionEvalautor 的输出。结果看起来是这样:

https://knowledge.safe.com/storage/attachments/18826-rasterconvolverslopes9.png

 

可选步骤

我们可以使用一些可选步骤来确认结果。

6. 因为FME中已经有一个RasterSlopeCalculator 转换器,在工作中添加一个该转换器。将读模块要素类连接到这个转换器上:

https://knowledge.safe.com/storage/attachments/18828-rasterconvolverslopes10.png

检查转换器的参数,并设置Output Measurement 参数为"Percent Rise"。运行工作空间的这部分,检查输出结果,确保它看起来和RasterConvolvers创建的一样。

7. 两个结果应该看起来一样,但是并不意味着它们是完全相同的。为了检查,在RasterExpressionEvaluatorRasterSlopeCalculator转换器后都添加RasterStatisticsCalculator转换器。打开参数对话框,设置为波段0统计最小(minimum)、最大(maximum)和and平均(mean)值。

https://knowledge.safe.com/storage/attachments/18829-rasterconvolverslopes11.png

因为重新运行工作空间并检查两个栅格要素的输出。你将注意最小、最大、平均值并不一样。因此数据可能具有相同的坡度,但并不是完全相同的值。如果我们只关心 图像,那么任何一个结果都可以;如果我们关心实际的值,我们可能更喜欢RasterSlopeCalculator,它的值为坡度百分比。

 

这篇关于RasterConvolver示例:栅格坡度计算的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



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

相关文章

前端CSS Grid 布局示例详解

《前端CSSGrid布局示例详解》CSSGrid是一种二维布局系统,可以同时控制行和列,相比Flex(一维布局),更适合用在整体页面布局或复杂模块结构中,:本文主要介绍前端CSSGri... 目录css Grid 布局详解(通俗易懂版)一、概述二、基础概念三、创建 Grid 容器四、定义网格行和列五、设置行

Node.js 数据库 CRUD 项目示例详解(完美解决方案)

《Node.js数据库CRUD项目示例详解(完美解决方案)》:本文主要介绍Node.js数据库CRUD项目示例详解(完美解决方案),本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考... 目录项目结构1. 初始化项目2. 配置数据库连接 (config/db.js)3. 创建模型 (models/

使用Python实现全能手机虚拟键盘的示例代码

《使用Python实现全能手机虚拟键盘的示例代码》在数字化办公时代,你是否遇到过这样的场景:会议室投影电脑突然键盘失灵、躺在沙发上想远程控制书房电脑、或者需要给长辈远程协助操作?今天我要分享的Pyth... 目录一、项目概述:不止于键盘的远程控制方案1.1 创新价值1.2 技术栈全景二、需求实现步骤一、需求

Spring LDAP目录服务的使用示例

《SpringLDAP目录服务的使用示例》本文主要介绍了SpringLDAP目录服务的使用示例... 目录引言一、Spring LDAP基础二、LdapTemplate详解三、LDAP对象映射四、基本LDAP操作4.1 查询操作4.2 添加操作4.3 修改操作4.4 删除操作五、认证与授权六、高级特性与最佳

CSS will-change 属性示例详解

《CSSwill-change属性示例详解》will-change是一个CSS属性,用于告诉浏览器某个元素在未来可能会发生哪些变化,本文给大家介绍CSSwill-change属性详解,感... will-change 是一个 css 属性,用于告诉浏览器某个元素在未来可能会发生哪些变化。这可以帮助浏览器优化

C++中std::distance使用方法示例

《C++中std::distance使用方法示例》std::distance是C++标准库中的一个函数,用于计算两个迭代器之间的距离,本文主要介绍了C++中std::distance使用方法示例,具... 目录语法使用方式解释示例输出:其他说明:总结std::distance&n编程bsp;是 C++ 标准

前端高级CSS用法示例详解

《前端高级CSS用法示例详解》在前端开发中,CSS(层叠样式表)不仅是用来控制网页的外观和布局,更是实现复杂交互和动态效果的关键技术之一,随着前端技术的不断发展,CSS的用法也日益丰富和高级,本文将深... 前端高级css用法在前端开发中,CSS(层叠样式表)不仅是用来控制网页的外观和布局,更是实现复杂交

C#使用SQLite进行大数据量高效处理的代码示例

《C#使用SQLite进行大数据量高效处理的代码示例》在软件开发中,高效处理大数据量是一个常见且具有挑战性的任务,SQLite因其零配置、嵌入式、跨平台的特性,成为许多开发者的首选数据库,本文将深入探... 目录前言准备工作数据实体核心技术批量插入:从乌龟到猎豹的蜕变分页查询:加载百万数据异步处理:拒绝界面

用js控制视频播放进度基本示例代码

《用js控制视频播放进度基本示例代码》写前端的时候,很多的时候是需要支持要网页视频播放的功能,下面这篇文章主要给大家介绍了关于用js控制视频播放进度的相关资料,文中通过代码介绍的非常详细,需要的朋友可... 目录前言html部分:JavaScript部分:注意:总结前言在javascript中控制视频播放

Java中StopWatch的使用示例详解

《Java中StopWatch的使用示例详解》stopWatch是org.springframework.util包下的一个工具类,使用它可直观的输出代码执行耗时,以及执行时间百分比,这篇文章主要介绍... 目录stopWatch 是org.springframework.util 包下的一个工具类,使用它