RasterExpressionEvaluator
评估上以光栅或对栅格,包括代数运算和条件语句的每个小区表达式。
典型用途
- 在栅格或对栅格进行计算
- 处理图像
- 结合栅格
- 分类栅格
它是如何工作的?
所述RasterExpressionEvaluator接收使用的单元值定义的表达式光栅特性和求值,然后输出与所计算的值的新的光栅的特性。
输入模式 - 一个或两个栅格
变压器有两种模式 -一个光栅和两个栅格。
一个光栅模式提供单个输入端口-the一种港口。在这种模式下,表达式将被完全单个栅格内进行评价。
两个栅格模式提供二输入端口 -A和B。在这种模式下,表达式可以从相同尺寸的两个栅格(相同数量的行和列)的使用单元格值。对于地理参考光栅位置信息不考虑到。的输入光栅特征的数量可以是:
- 如果一个光栅(一种) - 一个或多个一种光栅,无乙栅格。
- 如果两个栅格(A和B) - 一个一种光栅,一个或多个乙栅格。单一种输入将与每个配对乙输入。
在同一个表达式中使用所有乐队必须具有相同的无数据值,或者根本没有无数据值。没有带可以有一个调色板。
在两个光栅模式中,如果一个表达式引用了两个A和B输入栅格的特征中,输出光栅将具有从两个特征A和B的所有属性如果在两个输入要素中存在相同的属性,然后从特征B的属性值将是优选的。
当只有一个单一的输入被上(例如,在操作一个光栅模式,或者如果表达的引用仅输入A),特征属性和属性光栅将保持不变。
表达式
表达式中所定义的带式(S)表。表中的每一行对应于一个频段在产量光栅,以连续的顺序 - 即,第一生产线生产带0,第二生产线生产频带1,依此类推。该口译类型每个输出带也在这里指定。
表达式可以简单的恒定值或简单的算术运算。该算术编辑器 - 光栅式是通过提供表达省略号(...)按钮,以协助表达式的建设。
表达式是区分大小写的。
注意,不同的数据类型之间进行转换时,有界角色被使用。其结果是,当计算的值不适合在指定的目标的解释,相应的目的地值要么被设定为最小或可能在目的地数据类型的最大值。例如,300的值,如果转换为一个无符号的8位整数带,将成为255(用于解释型的最大可用值)。
无数据和零(0)值:表情评估往往涉及到改变解释类型的值,并且有时会导致不可预测的行为特别是在零(0)的情况。当定义你的表达,最好的做法是十进制形式指定为零0.0免得被误解为无数据。
表达式语法
意思是。。。 |
|
---|---|
|| | 或者 |
&& | 以及 |
== | 相等 |
!= | 不相等 |
< | 小于 |
> | 大于 |
甲[x] | 光栅特征A的x波段 |
B[x] | 光栅特征B的x波段 |
频带从零开始计数(因此为三波段栅格为A [0],A [1],和A [2])。
语句可以是简单,因为这些:
二百五十五 | 将当前单元格的值设置为255。 |
A[0]+1 | 将当前单元格的值设置为光栅A、带零和1。 |
“if”语句允许的值,以根据条件进行设定,在形式if(条件、通过值、失败值):
如果(A[0]<255,200,255) | 如果光栅A,带0小于255,则将当前单元格设置为200,否则保留为255。 |
如果(A[0]<50 | A[1]<50 | A[2]<50,0,255) | 如果光栅A、波段0小于50或波段1小于50或波段2小于50,则将当前单元格设置为0,否则将其设置为255。 |
两个光栅功能带可以在语句中引用:
如果(A[0]!=B[0]&&A[0]<255,0,A[0]) | 如果光栅A带零不等于光栅B带零,并且光栅A带零小于255,则将当前单元格设置为0,否则将其设置为光栅A带零的值。 |
标准的数学运算符是允许的:
如果(A[0]-B[0]==255,0,A[0]/5) | 如果光栅A带零减去光栅B带零等于255,则将当前单元格设置为0,否则将其设置为光栅A带零除以5的值。 |
或B::指的属性名称的属性可使用@Value以及一个被引用:
A[0]*@值(A:myattr) | 将光栅A上的带0乘以属性myattr。 |
实例
表达 |
结果 |
---|---|
255-A[0] | 反转8位频带。对于24位RGB图像,重复a[1]和a[2]以反转完整图像。如果是32位RGBA图像,则对[3]也重复此操作。 |
如果((A[0]+A[1]+A[2])=0,255,A[0]) | 将RGB图像中的黑色值转换为白色。对A[1]和A[2]重复此操作,以反转整个图像的黑白。 |
A[0]*1.5 | 增加RGB图像中红色区域的亮度。重复[1]和[2]以使整个图像变亮 |
@sqrt((A[0]*A[0])+(B[0]*B[0])) | 将两个光栅单元格组合在一起。另一种方法是平均值:(A[0]+B[0])/2) |
如果(A[0]==0,0,A[0]/@值(A:_height+1)) | 将光栅DEM单元分类为组,其中组大小由“高度”属性定义 |
在这个例子中,我们将转换为彩色光栅为灰度。请注意,原来的光栅有三个波段 - 红,绿,蓝。从所有频带值将被用来计算一个输出值。
为每个小区中的每个频带中的值将被用于计算。
栅格被路由到RasterExpressionEvaluator。
在参数对话框中,我们定义了要计算并且存储在一个单独的灰色频带的单个表达式。该解释被设定为灰色8和表达引用单元格从所有三个传入波段值。(该配方使用通常推荐值的颜色的灰度转换)。
乐队在零(0)开始编号,等等A[0]指的是第一带(红),A[1]是指所述第二频带(绿色),和A[2]指的是第三带(蓝色)。
输出栅格特征仅包含一个带,在参数指定的GRAY8频带。
表达的评价结果如单元格值输出。
在这个例子中,我们将使用一个RasterExpressionEvaluator到以150米主要动脉的落入特定的分区类型的分离土地。
我们先从两个数值栅格。第一表示分区,一个整数范围从1至10,其中,每个值表示任意一个区域类型。这将是我们的“一种”光栅。
我们感兴趣的区域类型3。
第二光栅表示沿干线道路150米缓冲器。细胞具有0或1,其中1表示缓冲区内的像素,和0的缓冲区之外的值。这是我们的 ”乙”光栅。
这对栅格被路由到RasterExpressionEvaluator - 请注意,模式:两个栅格必须连接第二光栅的参数的对话框之前被选择,以使(和暴露)的B输入端口。
在参数对话框,我们创建一个单一的表达。这将导致在单波段数字光栅被输出。一个解释必须指定类型 -国际32(32位整数)被选择,作为适当的解释类型这些值。
从两个表达的引用细胞一种和乙栅格,并且使用这种形式:
if(条件、通过值、失败值)
如果从光栅A(区)的单元格的值等于3,并且从光栅B(动脉缓冲器)的细胞的值等于1,则输出单元格的值3。否则,该单元格的值设置为0。
注意零的十进制形式指定0.0(避免误解为无数据)。
落在两个区3和动脉缓冲器内的任何细胞与值3输出,并且所有其他细胞是0。
使用注意事项
- 为了执行两个栅格之间基本计算(小区1
小区2),考虑使用 Rastercell值计算器。 - 一个光栅单元和数值之间进行基本的计算,可以考虑使用RasterSingularCellValueCalculator。
- 要结合栅格,融合部分重叠的边缘,可以考虑使用RasterMosaicker。
- 无数据值可以与设置RasterBandNodataSetter或与删除RasterBandNodataRemover。
- 调色板可以使用来解决RasterPaletteResolver或使用除去RasterPaletteRemover。
选择一个光栅变压器
FME有变压器的栅格数据处理的广泛选择。它们通常可以归类为与整个光栅,带,细胞或调色板工作,以及那些设计用于工作流控制或与矢量数据组合栅格。亚搏在线
有关光栅几何形状和属性的信息,请参阅栅格(IFMERaster)。
与栅格工作
RasterCellOriginSetter | 在栅格中设置单元内的单元原点。 |
拉斯特卷积器 | 应用卷积滤波器(有时称为a内核或镜头)以栅格化特征并输出结果。 |
RasterExpressionEvaluator | 评估上以光栅或对栅格,包括代数运算和条件语句的每个小区表达式。 |
RasterExtentsCoercer | 用一个覆盖栅格范围或栅格内数据范围的多边形替换输入栅格特征的几何形状。 |
RasterGCPExtractor | 提取地面控制点(GCP)坐标系统和栅格特性中的点值,并将它们作为属性公开。 |
RasterGCPSetter | 集地面控制点在光栅上,将单元格位置与已知坐标配对。 |
RasterGeoreferencer | 根据已知的角坐标或原点、单元大小和旋转来确定栅格的地理位置。 |
RasterHillshader | 根据高程值生成地形的灰度阴影浮雕表示。 |
RasterInterpretationCoercer | 改变光栅的解释类型,包括所有波段,并在必要时转换单元格值。 |
RasterMosaicker | 将多个光栅特性合并到单个光栅特性中。 |
RasterPropertyExtractor | 提取栅格特征的几何属性并将它们作为属性公开。 |
RasterPyramider | 根据最小输出光栅的电平数或维数,将光栅重新划分为多个分辨率。 |
RasterRegisterer | 转换一个图像,以最小化它与另一个图像之间的差异。 |
RasterResampler | 根据指定的输出尺寸、单元格大小(地面单位)或原始单元格的百分比对栅格进行重新划分,并插入新的单元格值。 |
RasterRotationApplier | 根据旋转角度属性旋转光栅特性,插入新的单元格值,更新所有其他受影响的光栅特性,并生成旋转角度为零的输出光栅特性。 |
RasterSharpener | 增强光栅图像的特征。光栅sharpener增强了边框、线条和曲线,同时降低了光栅图像平面区域的噪声。 |
RasterSubsetter | 使用像素边界而不是地面坐标来剪辑光栅特性,并可选地在周边添加单元。 |
RasterTiler | 通过指定单元格/像素的平铺大小或平铺的数量,将每个输入光栅分割为一系列平铺。 |
RasterToPolygonCoercer | 从输入光栅特性创建多边形。对于输入栅格中具有相同值的像素的每个相邻区域输出一个多边形。 |
WebMapTiler | 创建一系列可由web映射应用程序(如Bing™Maps、谷歌Maps™或web Map Tile Service)使用的图像块。这是通过将栅格重新采样到不同的分辨率,然后将它们分割成小块来实现的。 |
与乐队合作
RasterBandAdder | 为栅格特性添加一个新带。 |
RasterBandCombiner | 将巧合的光栅特性合并成单一的输出光栅特性,保留并附加所有波段。 |
RasterBandInterpretationCoercer | 改变个别光栅波段的解释类型,必要时转换单元格值。 |
RasterBandKeeper | 从栅格特性中删除所有未选择的波段。 |
RasterBandMinMaxExtractor | 从光栅特性中提取最小和最大频带值、调色板键和调色板值,并将它们添加到列表属性中。 |
RasterBandNameSetter | 在栅格上设置选定频带的频带名称,使栅格内容比频带号更容易理解。 |
RasterBandNodataRemover | 从光栅特性的选定频带中移除现有的nodata标识符。以前等于nodata值的任何值都被视为有效数据。 |
RasterBandNodataSetter | 在光栅特性的选定频带上设置新的nodata值。 |
RasterBandOrderer | 指定光栅中所需频带的顺序。波段根据输入波段指数重新排序。 |
RasterBandPropertyExtractor | 提取光栅特性的波段和调色板属性,并将它们作为属性公开。 |
RasterBandRemover | 从光栅特性中删除任何选定的波段。 |
RasterBandSeparator | 分离波段或唯一波段和调色板组合,并输出单个光栅特性或包含所有组合的单个新光栅特性。 |
光栅统计计算器 | 计算光栅波段的统计数据并将结果作为属性添加。 |
与细胞工作
RasterAspectCalculator | 计算栅格中每个单元的方向(斜率方向)。相位是从0到360度,从北顺时针方向测量。 |
RasterCellCoercer | 为栅格中的每个单元创建单独的点或多边形,可以选择提取带值作为z坐标或属性。 |
Rastercell值计算器 | 计算一对栅格的单元值上的基本运算、最小运算、最大运算或平均运算。 |
Rastercell值替换器 | 用一个新的单值替换光栅中的一个带值范围。 |
RasterCellValueRounder光栅 | 舍入光栅单元格值。 |
RasterSegmenter | 根据输入光栅图像单元的强度差异,将光栅图像从输入图像中分割成任意大小的单元组。 |
RasterSingularCellValueCalculator | 针对数值对栅格的单元格值执行基本的算术运算。 |
RasterSlopeCalculator | 计算栅格中每个单元的斜率(z的最大变化率)。 |
与调色板工作
RasterPaletteAdder | 从属性创建调色板,并将此调色板添加到栅格上的所有选定频带。 |
RasterPaletteExtractor | 在光栅上创建现有调色板的字符串表示形式,并将其保存到属性中。 |
RasterPaletteGenerator | 从光栅的选定频带生成调色板。输出光栅将用带有调色板的新频带替换所选的频带。 |
RasterPaletteInterpretationCoercer | 改变光栅调色板的解释类型。 |
RasterPaletteNodataSetter | 标识与栅格带的nodata值匹配的调色板键,并在其上设置一个值。 |
RasterPaletteRemover | 从栅格特性中移除选定的调色板。 |
RasterPaletteResolver | 解析光栅上的调色板,方法是将单元格值替换为相应的调色板值。带有多个组件(如RGB)的调色板值被分解,单个值被分配给多个新添加的频带。 |
亚搏在线工作流控制
RasterCheckpointer | 强制处理累积的光栅操作,将状态保存到磁盘并释放资源来优化性能或帮助解决内存限制。 |
RasterConsumer | 为测试目的读取光栅特性,包括任何累积的光栅操作。不执行任何附加操作,也不对特性进行任何操作。 |
RasterExtractor | 将栅格特性的几何形状序列化为Blob属性,并根据常用二进制栅格格式的选择对内容进行编码。 |
RasterNumericCreator | 创建具有默认单元格值的指定大小和分辨率的数字栅格。 |
RasterReplacer | 解码包含以blob形式存储的已编码光栅的二进制属性,用已解码的光栅替换特性的几何形状。 |
RasterRGBCreator | 使用默认单元格值创建具有指定大小、分辨率和解释类型的彩色光栅特性。 |
RasterSelector | 为后续的变压器操作选择光栅的特定波段和调色板。 |
向量和栅格
ImageRasterizer | 创建矢量或点云输入特性的栅格表示,使用fme_color属性在坚实的背景填充上创建矢量特性。点云可以使用它们的颜色或强度组件来呈现。 |
NumericRasterizer | 创建矢量或点云输入特性的数字栅格表示,其中单元的值取自输入特性的z坐标,并覆盖在统一的背景上。 |
MapnikRasterizer | 使用Mapnik工具包从输入向量和栅格特性生成栅格,并对符号化和标记进行精细控制。 |
PointOnRasterValueExtractor | 从一个或多个输入点所在的栅格中提取波段和调色板值,并将它们设置为特性的属性。 |
RasterDEMGenerator | 通过均匀采样输入点和断点生成的Delaunay三角网,生成栅格数字高程模型(DEM)。 |
VectorOnRasterOverlayer | 将向量或点云特性栅格化到现有栅格上。对于向量特征,fme_color属性设置像素颜色,点云可以使用它们的颜色或强度组件来呈现。 |
组态
输入端口
栅格功能,以评估对表达式。调色板不支持。
该乙输入端口仅暴露时模式:两个栅格当前选择。
输出端口
光栅设有其中频带被定义和值根据参数选择计算。一个光栅是在每个输入光栅输出一个光栅模式,并且对于每个A / B对在两个光栅模式。
参数
模式 | 此参数指定允许多少类型的输入功能。 一个光栅:只有一种允许输入特征。 两个位图:A和B允许输入特征。 |
分组依据 | 如果有的话分组依据给出属性,然后独立处理每个组。这允许单个变压器在多对一种s和乙s。注意,当模式是一个光栅;在这种情况下,每个光栅都是单独考虑的,没有分组。 |
此表是用来指定如何计算和解释在输出栅格的一个或多个频段。
表中的每一行代表在输出光栅不同的带,以连续的顺序。
解释 | 定义每个输出频带的解释类型。 保存:如果所有输入频带共享同一解释,则输出频带将保留该解释。如果输入波段的解释不同,保存与汽车。 汽车:输出解释将根据用于执行计算的数据类型自动确定。 也可以将解释规定为下列任何一种:
|
表达 | 定义要计算的表达式。该算术编辑器 - 光栅式可以通过省略号(…)按钮来帮助创建表达式。 该表达式的结果将存储在输出光栅上相应的频带中。 |
编辑变压器参数
使用一组菜单选项,变压器参数可以通过引用在工作区中的其它元件来分配。更先进的功能,如高级编辑,算术编辑,也是一些变压器可用。要访问这些选项的菜单,点击适用的参数旁边。欲了解更多信息,请参阅变压器参数菜单选项。
定义值
有几种方法来定义一个变压器使用的值。最简单的是简单地在一个值或字符串,其可包括各种类型,如属性引用,数学和字符串函数,和工作空间参数的函数类型。有许多的工具和快捷方式,可以帮助构建值,一般可从邻近值字段的下拉上下文菜单。
使用文本编辑器
文本编辑器提供了一个方便的方法来构造从各种数据源,如属性,参数和常量,其中该结果被直接使用的参数中的文本字符串(包括正则表达式)。
使用算术编辑器
算术编辑器提供了一种从各种数据源(如属性、参数和特征函数)构造数学表达式的方便方法,在这些数据源中,结果直接在参数内部使用。
条件值
根据通过或失败的一个或多个测试条件设置值。
内容
表达式和字符串可以包含许多函数、字符、参数等。
当设置值时-无论是直接输入参数还是使用其中一个编辑器构造-包含字符串、数学、日期/时间或FME功能函数的字符串和表达式将对这些函数求值。因此,这些函数的名称(在@<函数名>)不应用作文本字符串值。
参考
加工行为 |
|
特征保持 |
是的 |
依赖关系 | 无 |
FME许可级别 | FME专业版及以上 |
别名 | |
历史 | |
类别 |
FME社亚搏国际在线官网区
该FME社区是为亚搏国际在线官网演示,入门指南,文章,FAQ,以及更多的地方。解答您的问题,向其他用户学习,并建议,投票,并在新的功能注释。
搜索有关RasterExpressionEvaluator所有结果在FME社区。亚搏国际在线官网
实例可以包含开放政府许可协议进行许可信息 - 温哥华