span8
span4
你有一个光栅,看起来绝对黑色在FME数据检查:
近距离观察,像素值变化良好,那么为什么内容是不可见的呢?
“光栅点信息”下的信息窗口显示的图像由三个16位波段组成,它定义了RGB48解释。这意味着每个波段的可用值范围从0到65535。然而,示例图像上的实际值不超过几百。
换句话说,此光栅包含以16位带存储的8位值。
完全黑色显示部分是由于FME数据检查器如何解释数据;0是黑的,65535是白的,所以即使256的值也不会很高。但是,真的,这是数据的问题。需要在现有的值上设置正确的解释,或者调整值以匹配当前的解释。
一个可能的解决方案是使用RasterExpressionEvaluator。可以应用以下波段列表和表达式:
RED16; GREEN16 BLUE16 [0] * 200; [1] * 200; [2] * 200
然而,这需要一些变压器的知识和一些实验,以找到一个最佳乘法器。
另一个解决方案是使用RasterInterpretationCoercer,在这种情况下哪个可能是更好的选择。它包含四个转换选项,让用户更好地控制整个过程。
转换选项包括:
如果使用‘Scale by data value’选项将栅格的解释从RGB48改为RGB24,如下图所示:
解释这些选项是如何工作的,可以在transformer的文档中找到,但是下面提供了一些对于那些更喜欢用视觉来解释的人来说切实可见的结果。
为了这个目的,制作了一个简单的轮廓文件,在布朗,是沿着红线创建的。The profile was made with the ProfileBuilder custom transformer found in the RasterInterpretationCoercer.fmwt workspace:
基于等高线数据,创建了一个单波段DEM光栅和两个贴片。的DEMGenerator 使Real64位图,然而,这是在UINT8 -光栅可以非常大,这将节省磁盘空间。
转换模式有四个参数。Workbench无法提前知道将通过这个转换器传递的是哪种类型的栅格——它是否将是一个彩色图像(例如。RGB24,RGBA64,Green16,或数字光栅(Real64,Int32,等),我们的目标可以是颜色也可以是数字。所有可能的转换组合都作为单独的参数列出。根据“目标解释类型”中的选择,只能启用四个参数中的两个。
下面是通过光栅解释强制性变压器使用“Cast”方法发送的瓷砖之一:
之前
后
对不同区域的检查显示,图像(现在是UINT8)与源DEM匹配(唯一的区别是,值是四舍五入的),所以看起来“Cast”是一个很好的选择。
接下来是使用“Cast”参数通过光栅解释器发送的第二个tile:
之前
后
这绝对是错误的。为了更好地理解正在发生的事情,请查看新的DEM(黄色)的剖面图,并将其与原始剖面图(棕色)进行比较:
海拔逐渐升高,达到255米,这是UINT8类型的最大值,然后突然下降到0,在那之后,这种模式再次重复。新的高程可以用以下公式表示:
elevation % range_for_the_bit_depth = cast_elevation
或者,取UINT8图像上红点的高程,使用如下表达式:
575% 256 = 63
这证明“Cast”选项不允许对整个数据集进行良好的转换。
“有界转换”对左边的平铺效果很好。对于正确的平铺,它会产生不同的效果,但也好不到哪儿去——山顶被简单地砍掉了(就是说,255米以上的均为0)0以下均为0:
这说明了“转换”和“有界转换”参数的局限性,只要光栅的值不超过所选的目标解释类型,这些参数就可以很好地工作。如果所有被转换的数据都低于解释的最大值,这些都是不错的选择,否则,像素值和视觉表示都可能受到影响。
为了避免这种情况,考虑另一种具有更高位深的解释类型或另一种解释选项。
“按数据值缩放”选项在视觉上接近原始值。
之前
后
然而,两个瓷砖的高度都是按比例缩放的——在一个瓷砖上扩大,在另一个瓷砖上缩小:
这种转换类型的图形表示形式如下:
源中找到的最小值和最大值之间的范围被缩放为目标解释类型的可用值的完整范围。示例中的tile的范围为25到200(左tile)和-45到575。两个结果光栅的值都缩放到0到255之间。
此选项不会保持源光栅的真实表示,然而,它可以用于制作彩色图像:
上图是将Real64转换为Red8后得到的,然后增加了两个额外的波段,绿色8设置为100,蓝色调为50。然后矢量轮廓在图像上重叠。
最后一个选项,“按数据类型缩放”会生成一个简单的灰色光栅,所有像素的值都是128。
源类型的完整范围被缩放为目标类型的完整范围。因为Real64的类型在~-1.78e+308和~1.78e+308之间,但实际值从-45到575,我们所有的目标值都被压缩在一个非常接近128的很小的范围内。
如果这些值或多或少均匀地分布在整个范围内,这种方法可以帮助保持视觉表现:
之前
后
总结:
前两个选项,在目标范围足够大以容纳所有值的情况下,“强制转换”和“有界转换”更适合保留原始值(如果从实数转换为整数,则为四舍五入)。这些选项对于数值到数值的转换非常有用。
最后两个选项,“按数据值缩放”和“按数据类型缩放”有助于保持可视化表示,并且对于数字到颜色或颜色到颜色的转换非常有用。
至于所使用的测试砖,选择另一种解释将有助于保持正确的海拔高度。INT16似乎是一个合理的选择,因为即使项目覆盖了整个世界,它仍然不会超过最大和最低在我们的星球上发现的。
附加的模板,RasterInterpretationCoercer_2015.fmwt,显示上面解释的所有选项。
“RGBA到RGB”选项告诉转换器当转换成一个简单的RGB(颜色)图像(一个图像与三个颜色波段和alpha波段负责透明度)转换成一个简单的RGB(颜色)图像,也就是说,如果去掉了带。
在RGBA32图像中,在感兴趣的区域之外的部分正在逐渐消失,完全不可见。RGB值反映实际像素值,alpha像素反映透明度值的程度。红色大头针下的alpha像素值,等于69,下面的面积是半透明的。
选择“应用Alpha波段”选项,仍然产生图像内容的逐渐消失,但是它现在有了解释RGB24和其余的波段值(red8,green8和blue8 (RGB))的变化反映了alpha波段的应用:
“删除Alpha波段”移除Alpha波段,并显示Alpha像素的透明度所隐藏的内容。请注意,RGB波段的值再次发生了变化,反映的是原始值,而不是受“alpha”影响的值:
工作区和RGBA源图像附加为AlphaHandlingOption_2015.fmwt
©2019安全亚搏在线软件公司|法律