概述 在本教程中,您将学习如何使用RasterToPolygonCoercer转换器将栅格数据转换为多边形。 下载raster-to-vector.fmwt vancouverparks.zip 注意:由于您正在处理面向公众的数据库,因此有时可能会覆盖和/或修改表。如果您的翻译产生意外结果,请参阅重置PostGIS培训数据库文章。或者,您可以下载提供的文件,并使用适当格式的读模块替换PostGIS读模块。 练习在本场景中,您希望将1M的城市和公园区域栅格转换为将以KML格式存储的城市边界多边形。 说明1.启动FME Workbench 2.创建一个新工作空间 - 在“开始”页面的“创建工作空间”部分中,选择“创建新工作空间”选项。
3.添加PostGIS Raster读模块 - 在画布上未选择任何内容的情况下开始键入“PostGIS Raster”,然后通过双击或使用箭头键从读模块列表中选择PostGIS格式,并按回车键将其添加到画布。
- 接下来,从读模块连接列表中选择PostGIS Training Database。如果尚未设置数据库连接,请选择“添加数据库连接”并输入以下参数:
- 接下来,打开读模块参数并从表列中选择VancouverParks表。
4.添加RasterToPolygonCoercer RasterToPolygonCoercer根据输入栅格要素创建多边形。为输入栅格中具有相同值的每个连续像素区域输出一个多边形。 - 选择VancouverParks 读模块要素类,然后开始输入“RasterToPolygonCoercer”以显示快速添加搜索中的FME转换器列表。然后通过双击或使用箭头键从转换器列表中选择RasterToPolygonCoercer,然后按回车键将其添加到画布中。这将自动将VancouverParks读模块连接到RasterToPolygonCoercer。
5.添加 Inspector - 接下来,在RasterToPolygonCoercer之后添加一个Inspector并运行工作空间。这将在转换运行后自动打开FME Data Inspector中的矢量数据集。
请注意,栅格已正确转换为按_label属性分类的多边形要素。所选区域标识了栅格背景(_label 0,0,0,0),将在以下步骤中使用Tester转换器将其删除。RasterToPolygonCoercer创建_label属性,该属性表示该多边形所涵盖的波段值(在本例中为R,G,B,A)。在原始数据集中,有三个分类的像元值:城市,公园和背景。虽然数据集似乎被裁剪到土地边界,但是背景像元仍然具有值(0,0,0,0)但是已经变得透明。由于背景像元仍具有值,因此它们由RasterToPolygonCoercer制作为多边形。 - 返回FME Workbench并删除连接到RasterToPolygonCoercer的Inspector,因为它不再需要。
6.删除栅格背景 - 在RasterToPolygonCoercer之后添加一个Tester
- 一旦添加Tester后,双击转换器参数或单击红色齿轮图标打开转换器参数。
- 回想一下前面的步骤((如上面的屏幕截图所示),对于_label属性,栅格背景的值为0,0,0,0。
- 首先添加一个Test子句。单击“左值”单元格中的空行,然后单击下拉箭头以从工作空间中选择属性。从“属性值”列表中选择_label属性。
- 接下来,通过从下拉列表中选择!=运算符,将运算符设置为不相等。
- 最后,单击空的“右值”单元格以输入文本。通过在“右值”中键入“0,0,0,0”来输入值,以删除值为0,0,0,0的任何_label属性(即不需要的栅格背景),然后单击“确定”接受更改并关闭Tester 参数。Tester 参数应与下面提供的屏幕截图相匹配。
要了解有关Tester 和测试子句的更多信息,请参阅FME Desktop Basic培训手册中的Tester和TestFilter Transformers部分。 7.平滑多边形边缘 在这种情况下,您只需设置泛化容差(Generalization Tolerance)。泛化容差越大,线越平滑。 - 在Tester 后添加一个Generalizer并打开转换器参数。
- 将Generalization Tolerance的值设置为10。
如果您在此阶段运行工作空间并检查FME Data Inspector中的输出,您会注意到多边形非常锯齿状,因为它遵循栅格像元的轮廓,类似于下面提供的屏幕截图: 要避免这种情况,您需要通过删除顶点以减少坐标密度来平滑线条。要了解有关使用泛化算法平滑线条的更多信息,请参阅Generalizer文档。 注意:此值的单位由读入的要素的坐标系控制。 泛化容差1: 泛化容差10: 8.添加一个Inspector - 接下来,在Generalizer之后添加一个Inspector。这将在转换运行后自动打开FME Data Inspector中的栅格数据集。
9.添加Google KML 写模块 - 与添加读模块类似,键入“KML”,然后从写模块列表中选择Google KML格式。
- 通过单击“数据集”省略号,指定文件名并设置KML文件的目标文件夹。指定文件夹位置和文件名后,将“表定义”设置为“自动”,然后单击“确定”。
10.运行工作空间 - 单击工具栏上的“运行”按钮,或使用菜单栏上的“运行”>“运行转换”运行工作空间。
运行转换后,您将获得一个新的Google KML文件,其中有一个单独的多边形用于温哥华陆地边界。由于您将Inspector附加到画布上的最后一个转换器,因此输出将在FME Data Inspector中自动打开。 结果输入输出转换器
本文转载来自CSDN作者:fmechina 版权归作者所有 |