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

相关文章

详解SpringBoot+Ehcache使用示例

《详解SpringBoot+Ehcache使用示例》本文介绍了SpringBoot中配置Ehcache、自定义get/set方式,并实际使用缓存的过程,文中通过示例代码介绍的非常详细,对大家的学习或者... 目录摘要概念内存与磁盘持久化存储:配置灵活性:编码示例引入依赖:配置ehcache.XML文件:配置

Java高效实现PowerPoint转PDF的示例详解

《Java高效实现PowerPoint转PDF的示例详解》在日常开发或办公场景中,经常需要将PowerPoint演示文稿(PPT/PPTX)转换为PDF,本文将介绍从基础转换到高级设置的多种用法,大家... 目录为什么要将 PowerPoint 转换为 PDF安装 Spire.Presentation fo

Python中isinstance()函数原理解释及详细用法示例

《Python中isinstance()函数原理解释及详细用法示例》isinstance()是Python内置的一个非常有用的函数,用于检查一个对象是否属于指定的类型或类型元组中的某一个类型,它是Py... 目录python中isinstance()函数原理解释及详细用法指南一、isinstance()函数

python中的高阶函数示例详解

《python中的高阶函数示例详解》在Python中,高阶函数是指接受函数作为参数或返回函数作为结果的函数,下面:本文主要介绍python中高阶函数的相关资料,文中通过代码介绍的非常详细,需要的朋... 目录1.定义2.map函数3.filter函数4.reduce函数5.sorted函数6.自定义高阶函数

Vue实现路由守卫的示例代码

《Vue实现路由守卫的示例代码》Vue路由守卫是控制页面导航的钩子函数,主要用于鉴权、数据预加载等场景,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着... 目录一、概念二、类型三、实战一、概念路由守卫(Navigation Guards)本质上就是 在路

JAVA实现Token自动续期机制的示例代码

《JAVA实现Token自动续期机制的示例代码》本文主要介绍了JAVA实现Token自动续期机制的示例代码,通过动态调整会话生命周期平衡安全性与用户体验,解决固定有效期Token带来的风险与不便,感兴... 目录1. 固定有效期Token的内在局限性2. 自动续期机制:兼顾安全与体验的解决方案3. 总结PS

C#中通过Response.Headers设置自定义参数的代码示例

《C#中通过Response.Headers设置自定义参数的代码示例》:本文主要介绍C#中通过Response.Headers设置自定义响应头的方法,涵盖基础添加、安全校验、生产实践及调试技巧,强... 目录一、基础设置方法1. 直接添加自定义头2. 批量设置模式二、高级配置技巧1. 安全校验机制2. 类型

Python屏幕抓取和录制的详细代码示例

《Python屏幕抓取和录制的详细代码示例》随着现代计算机性能的提高和网络速度的加快,越来越多的用户需要对他们的屏幕进行录制,:本文主要介绍Python屏幕抓取和录制的相关资料,需要的朋友可以参考... 目录一、常用 python 屏幕抓取库二、pyautogui 截屏示例三、mss 高性能截图四、Pill

Java中的Schema校验技术与实践示例详解

《Java中的Schema校验技术与实践示例详解》本主题详细介绍了在Java环境下进行XMLSchema和JSONSchema校验的方法,包括使用JAXP、JAXB以及专门的JSON校验库等技术,本文... 目录1. XML和jsON的Schema校验概念1.1 XML和JSON校验的必要性1.2 Sche

使用MapStruct实现Java对象映射的示例代码

《使用MapStruct实现Java对象映射的示例代码》本文主要介绍了使用MapStruct实现Java对象映射的示例代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,... 目录一、什么是 MapStruct?二、实战演练:三步集成 MapStruct第一步:添加 Mave