SPAN8.
SPAN4.
你有一个光栅,看起来绝对黑色的FME数据检查器:
仔细检查会发现像素有各种各样的值,那么为什么内容是不可见的呢?
“光栅点信息”下的信息窗口显示了一个由三个16位波段组成的图像,定义了RGB48解释。这意味着每个波段的可用值范围从0到65535。然而,样本图像上的实际值不会超过几百。
换句话说,这个光栅包含存储在16位波段中的8位值。
完全黑色显示部分是由于FME数据检查器解释数据的方式;0是黑的,65535是白的,所以即使是256的值也不会寄存器很高。但是,这确实是数据的问题。需要在现有的值上设置正确的解释,或者需要调整这些值以匹配当前的解释。
一个可能的解决方案是使用rasterexpressionEvaluator.。可以应用以下带列表和表达式:
RED16; GREEN16; BLUE16 A [0] * 200; A [1] * 200; A [2] * 200
然而,这需要一些变压器的知识和一些实验,以找到最优乘法器。
另一个解决方案是使用RasterInterpretationCoercer在这种情况下,这可能是一个更好的选择。它包含四个转换选项,让用户更好地控制整个过程。
转换选项包括:
如果使用“根据数据值缩放”选项将光栅的解释从RGB48更改为RGB24,则生成以下图像:
可以在转换器的文档中找到对这些选项如何工作的解释,但对于那些喜欢良好的可视化解释的人,下面提供了一些具体的结果。
为此目的,准备了一个简单的轮廓文件,沿红线创建棕色的配置文件。配置文件是使用RasterPletationCoerCer.FMWT Workspace中找到的ProfileBuilder自定义变压器进行:
基于轮廓数据,创建一个频段DEM栅格和两个瓷砖。这DEMGenerator然而,使REAL64栅格使其在UINT8 - 栅格可能非常大,这将节省磁盘空间。
转换模式有四个参数。Workbench has no way of knowing ahead of time what type of rasters will be passed through this transformer - whether it will be a color image (e.g. RGB24, RGBA64, Green16, etc.) or a numeric raster (Real64, Int32, etc.), and our destination can be either color or numeric. All possible conversion combinations are listed as separate parameters. Based on the choice in "Destination Interpretation Type" only two of four parameters can be enabled.
下面是使用“CAST”方法通过RasterInterpretionCoercer变压器发送的Tiles之一:
之前
后
检查不同区域的检查表明,图像(现在UINT8)匹配源DEM(唯一的区别是值舍入),因此它看起来像“演员”是一个非常好的选择。
接下来是第二个使用“Cast”参数通过rasterinterpreationcoercer发送的贴图:
之前
后
这绝对是错误的。为了更好地理解发生了什么,请查看新DEM的剖面(黄色),并将其与原始剖面(棕色)进行比较:
海拔逐渐上升,直到255米,这是UINT8类型可能的最大值,然后突然下降到0,之后,这个模式再次重复。新的标高可以用以下公式表示:
仰角% range_for_the_bit_depth = cast_elevation
或者,在UINT8图像上拍摄红色点的高度,并使用以下表达式:
575% 256 = 63
这证明了“Cast”选项不允许对整个数据集进行良好的转换。
“有界投”很适合左边的贴图。对于右边的贴图,它做了一些不同的东西,但它几乎没有任何更好的-山顶被简单地砍掉了(即,所有高于255米的东西),所有低于0的东西设置为0:
这说明了“Cast”和“Bounded Cast”参数的局限性,只要光栅的值不超过所选的目标解释类型,它们就能正常工作。如果所有被转换的数据都低于解释的最大值,那么这些选项是一个很好的选择,否则,像素值和视觉表示都可能受到影响。
为了避免这种情况,可以考虑另一种更高钻头深度的解释类型或其他解释选项。
选项“按数据值缩放”在视觉上接近原始。
之前
后
但是,两个瓷砖上的高度缩放 - 扩展到一个瓷砖并缩小另一个瓷砖:
这种转换类型的图形表示如下所示:
在源中找到的最小值和最大值之间的范围被缩放到目的地解释类型的可用值的全范围。该示例中的图块具有25至200(左图)和-45至575。结果栅格的值缩放到0到255之间的范围。
这个选项不会保留源光栅的真实表示,然而,它可以用于制作彩色图像:
上面的图像是通过将REAL64转换为RED8来进行的,然后将两个额外的带添加到GREEN8设置为100,BLUE8设置为50.然后将矢量轮廓覆盖在图像上。
最后一个选项,“按数据类型缩放”导致简单的灰栅格,其中所有像素具有128的值。
源类型的全部范围缩放到目标类型的全范围。由于REAL64的类型具有〜-1.78e + 308和〜1.78e + 308之间的范围,但实际值在-45到575之间变化,我们的所有目的地值都被挤压为一个非常接近128的微小范围。
如果值或多或少地通过整个范围均匀地传播,则此方法可以帮助保护视觉表示:
之前
后
总结:
在目标范围足够大以适合所有值的条件下,前两个选项“Cast”和“Bounded Cast”更适合保持原始值(如果从Real到Integer,则四舍五入)。这些选项对于数字到数字的转换非常有用。
最后两个选项,“按数据值缩放”和“按数据类型的缩放”帮助保留视觉表示,并且有用,可用于数字 - 颜色或颜色到颜色转换。
对于所用的测试瓷砖,采摘另一个解释是有帮助的,以保持正确的高度。INT16似乎是一个合理的替代方案,因为即使项目涵盖整个世界,它仍然不会超过最大值和最低(以米为单位)。
附加的模板RasterInterpretationCoerCer_2015.fmwt显示了上面说明的所有选项。
“RGBA到RGB”选项告诉转换器在将RGBA图像(一个图像有三个颜色带和一个alpha带负责透明度)转换为简单的RGB(颜色)图像时要做什么,也就是说,如果alpha带被删除。
在RGBA32图像中,感兴趣区域外的部分逐渐消失,完全不可见。RGB值反映实际像素值,alpha像素反映透明度值。红色大头针下的alpha像素值等于69,下面的区域是半透明的。
选择“Apply the Alpha Band”选项,仍然会产生图像内容的逐渐消失,但是现在有了解释RGB24,其余的波段值(red8, green8和blue8 (RGB))都发生了变化,以反映Alpha波段的应用:
“Drop Alpha Band”移除Alpha波段,并揭示Alpha像素透明度所隐藏的内容。注意RGB波段值再次改变,并反映了原始值,而不是受“alpha”影响的值:
工作区和RGBA源图像被附加为AlphaHandlingOption_2015.fmwt
©2019 S亚搏在线afe Software Inc |合法的