FME实际运用----应用一

本文讲述了作者如何处理大量20GB的遥感影像,尝试使用FME提取边界并进行栅格化转换,涉及到RasterBandNodataSetter和RasterExtentCoercer的作用,以及ImageRasterizer和MapnikRasterizer的使用和注意事项。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

我们付出一些成本,时间的或者其他,最终总能收获一些什么。

要求:手上有一批遥感影像,由于单景影像就有20G,想要转换为覆盖影像范围的栅格数据,当时的想法是先提取影像边界,可以用ArcMap的镶嵌数据集来做,但由于要建数据库建镶嵌数据集还要将数据导入到里面去,考虑到数据量,选择放弃。正好同事写了FME的提取影像边界的fmw,就想着直接拿来用用。

想法:正好上周学习了读模块的读取文件夹和WorkSpaceRunner,还有同事提供的模板,正好可以批量提取。由于,文件夹下有.tif和.tif.ovr文件,所以还加了个Tester进行后缀的过滤,中间发生了点小问题,在WorkSpaceRunner后直接添加写模块,写出的文件都是点文件,怎么改参数都是点。由于知识有限,解决不了,选择在同事提供的模板直接写出,同事提供的模板没有写模块,只有查看器,查看到的是面,但在WorkSpaceRunner后添加写模块写出来确实点,我也是摸不着头脑[看了下官方视频,一般WorkSpaceRunner后不接写模块]。

下面是同事提供的FME提取影像边界的模板,我加了个写模块

目前,我就只在FME转换器手册中大致查看了两个转换器的说明

RasterBandNodataSetter:在波段级别上指定一个值作为栅格要素的nodata标识符。也就是说,等于被指定值的值现在被认为是无效的,并且不受许多操作的影响。(例如,偏移或者缩放)

RasterExtentCoercer:使用一个覆盖栅格范围的多边形替代输入栅格要素的几何图

形。
个人感觉没有必要设置nodata的值,可以直接用RasterExtentCoercer就可以。常见的nodata为0或255,影像数据没问题的话,都是有指定nodata值的。 (测试了一下,栅格提取边界转换器选择Data Extents就可以达到想要的效果,不需要重新设定nodata值,也可能是原影像就有nodata值的原因)
下面就是用WorkspaceRunner去调用上面的模板,达到批量处理的效果,只需要等待就可以输出shp了,输出完shp后发现自己要的结果是tif,打算先用ArcMap的面转栅格,后期再看shp转tif在fme中是可以直接快速转换,还是需要某个转换器,查询了一下, ImageRasterizer转换器,这两天再试一下

试了ImageRasterizer和MapnikRasterizer,效果都存在问题,其中,ImageRasterizer需要提前使用AtrributeCreator添加一个fme_color否则会报错。【后续这两个转换器还需要更深入的了解】

其中,使用ImageRasterizer,设置栅格属性为行列,值为1000,栅格后的效果为想要的效果,若设置为像元间隔为1,栅格后的效果非预期。具体原因当前阶段未知。

使用上述两个转换器均可达到矢量栅格化的效果,其中需注意的是ImageRasterizer若是报错需要使用AttributeCreator添加fme_color字段,并添加fme颜色如上面的绿色为0,1,0

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值