RasterConvolver示例:栅格坡度计算
RasterConvolver转换器在FME 2018.1+中可用。
栅格坡度计算
FME已经有从栅格要素直接计算坡度的转换器;但是,RasterConvolver也可以用于创建相同的结果,栅格DEM卷积是一个很好的例子。
卷积是一个在栅格要素和数字矩阵(核)之间进行的数学运算。操作和核的定义通常叫做滤波。
这个练习是用多种方法对栅格要素进行卷积,通过合并结果得到解决方案的很好的示例。
下载
Completed Workspace as a Template
源数据
这些示例的源数据是CDED格式的栅格DEM。在FME Data Inspector中看起来是这样:
单元格的值表示高程。颜色越浅,海拔越高。较暗的区域代表低洼地区。
分布说明
1. 启动FME Workbench,在空白画布中开始。从菜单栏中选择 Readers(读模块) > Add Reader(添加读模块)
设置数据格式为Canadian Digital Elevation Data (CDED)或U.S. Geological Survey Digital Elevation Model (USGSDEM)——这两个名字是同一种格式。
选择下载的数据作为源数据。
2. 在画布中添加一个RasterConvolver 转换器,然后把读模块要素类连接到该转换器。
打开参数对话框。选择Line Detection: Horizontal滤波:
这个滤波识别东西(左右)方向的线。
3. 在画布中添加第二个RasterConvolver转换器,并把读模块要素类连接到该转换器:
打开参数对话框,这次选择Line Detection: Vertical滤波。
这两个滤波识别水平和竖直方向的坡度。这两种结果本身都差强人意,但可以组合在一起以得到所需的结果。
4. 在画布中添加一个RasterExpressionEvaluator转换器,先不连接任何对象,打开参数对话框。
设置Mode参数为Two Rasters;
在Band Expression(s)字段,设置Interpretation为Preserve。在Expression字段,输入:
换言之,我们把两个栅格要素合并到一起。单元的新值为栅格A值的平方加上栅格B值的平方再开方。
关闭参数对话框,将两个RasterConvolver的输出端口连接到RasterExpressionEvaluator的A和B输入端口:
5. 运行工作空间,使用缓存要素或Inspector转换器来查看RasterExpressionEvalautor 的输出。结果看起来是这样:
可选步骤
我们可以使用一些可选步骤来确认结果。
6. 因为FME中已经有一个RasterSlopeCalculator 转换器,在工作中添加一个该转换器。将读模块要素类连接到这个转换器上:
检查转换器的参数,并设置Output Measurement 参数为“Percent Rise”。运行工作空间的这部分,检查输出结果,确保它看起来和RasterConvolvers创建的一样。
7. 两个结果应该看起来一样,但是并不意味着它们是完全相同的。为了检查,在RasterExpressionEvaluator和RasterSlopeCalculator转换器后都添加RasterStatisticsCalculator转换器。打开参数对话框,设置为波段0统计最小(minimum)、最大(maximum)和and平均(mean)值。
因为重新运行工作空间并检查两个栅格要素的输出。你将注意最小、最大、平均值并不一样。因此数据可能具有相同的坡度,但并不是完全相同的值。如果我们只关心 图像,那么任何一个结果都可以;如果我们关心实际的值,我们可能更喜欢RasterSlopeCalculator,它的值为坡度百分比。
转载自:https://blog.csdn.net/fmechina/article/details/84989730