我们付出一些成本,时间的或者其他,最终总能收获一些什么。
要求:手上有一批遥感影像,由于单景影像就有20G,想要转换为覆盖影像范围的栅格数据,当时的想法是先提取影像边界,可以用ArcMap的镶嵌数据集来做,但由于要建数据库建镶嵌数据集还要将数据导入到里面去,考虑到数据量,选择放弃。正好同事写了FME的提取影像边界的fmw,就想着直接拿来用用。
想法:正好上周学习了读模块的读取文件夹和WorkSpaceRunner,还有同事提供的模板,正好可以批量提取。由于,文件夹下有.tif和.tif.ovr文件,所以还加了个Tester进行后缀的过滤,中间发生了点小问题,在WorkSpaceRunner后直接添加写模块,写出的文件都是点文件,怎么改参数都是点。由于知识有限,解决不了,选择在同事提供的模板直接写出,同事提供的模板没有写模块,只有查看器,查看到的是面,但在WorkSpaceRunner后添加写模块写出来确实点,我也是摸不着头脑[看了下官方视频,一般WorkSpaceRunner后不接写模块]。
下面是同事提供的FME提取影像边界的模板,我加了个写模块
目前,我就只在FME转换器手册中大致查看了两个转换器的说明
RasterBandNodataSetter:在波段级别上指定一个值作为栅格要素的nodata标识符。也就是说,等于被指定值的值现在被认为是无效的,并且不受许多操作的影响。(例如,偏移或者缩放)
RasterExtentCoercer:使用一个覆盖栅格范围的多边形替代输入栅格要素的几何图
试了ImageRasterizer和MapnikRasterizer,效果都存在问题,其中,ImageRasterizer需要提前使用AtrributeCreator添加一个fme_color否则会报错。【后续这两个转换器还需要更深入的了解】
其中,使用ImageRasterizer,设置栅格属性为行列,值为1000,栅格后的效果为想要的效果,若设置为像元间隔为1,栅格后的效果非预期。具体原因当前阶段未知。
使用上述两个转换器均可达到矢量栅格化的效果,其中需注意的是ImageRasterizer若是报错需要使用AttributeCreator添加fme_color字段,并添加fme颜色如上面的绿色为0,1,0