条件过滤

条件过滤支持在两个工具间的连接线上进行设置,可以根据不同条件执行操作,从而接收符合条件的数据输入,能够实现在业务中对不同数据进行差异化处理。

参数设置

条件过滤支持多种数据类型,包括字符串、数据集(Dataset 和 FeatureRDD)和数值型。根据不同的数据类型,有不同的条件函数,如下:

  • 字符串
条件函数 说明 参数类型
字符串匹配 判断字符串是否匹配指定条件。 匹配方式:支持正则表达式和通配符两种。
- 正则表达式:利用事先定义好的一些特定字符以及特定字符的组合,组成一个规则字符串,用这个规则字符串对字符串进行过滤。
- 通配符:常用来模糊搜索文件,可以用(*)代替一个或多个字符,例如可以输入AEW *,查找以 AEW 开头的所有类型的文件。
取反:如果勾选,则表示字符串不匹配指定条件。
如果文件名 判断文件名是否满足指定条件。 文件名:支持通配符。
取反:如果勾选,则表示文件名不满足指定条件。
连接信息匹配 判断指定连接信息的数据源或者数据集是否存在。 类型:可选数据源或者数据集
存在:判断满足条件的数据源或者数据集是否存在,勾选则表示存在。
  • 数据集
条件函数 说明 参数类型
如果字段存在 判断数据集是否存在指定字段。 字段存在条件:至少匹配一个、匹配所有和一个都不匹配。
字段:字段名称,可设置多个,支持使用通配符。
取反:如果勾选,则表示数据集不存在指定字段。
如果坐标系为 判断数据集是否存在指定坐标系。 EPSG编码。
取反:如果勾选,则表示数据集不存在指定坐标系。
如果数据集名称为 判断数据集名称是否满足指定条件。 匹配方式:判断数据集名称是否满足条件的方式,支持通配符和正则表达式两种。
数据集名称。
取反:如果勾选,则表示数据集名称不满足指定条件。
  • FeatureRDD
条件函数 说明 参数类型
如果字段存在 判断指定字段是否存在。 字段存在条件:至少匹配一个、匹配所有和一个都不匹配。
字段:判断字段是否满足条件的字段名,可设置多个,支持使用通配符。
取反:如果勾选,则表示指定字段不存在。
  • 数值型
条件函数 说明 参数类型
如果值为 判断输入的数值是否满足条件。 比较方式:支持6种方式包括大于、小于、大于等于、小于等于、等于、不等于。
比较值。
取反:如果勾选,则在运行时对设置的条件参数进行取反。
else:表示除了满足设置的多个条件之外的情况,通常用在存在三个及以上的过滤条件时。

使用场景

使用场景一 :批量数据入库

通过以下模型实现批量数据的入库,需要将不同路径下的同类要素数据进行追加导入,对大批量数据进行数据分幅,来提高应用效率。数据存储于多个子文件夹中,具有统一的命名格式,进行条件过滤时可以选择条件类型“如果文件名为”,判断文件名是否满足指定条件,如果满足条件则执行追加导入,如输入* resp * 判断数据文件命名中是否有resp,如果有则执行追加导入为居民点数据。

FieldFilter

使用场景二 :批量数据投影信息检查

当进行批量数据的预处理时,可以使用条件过滤来检查数据的投影信息是否一致。在以下模型中,需要将数据集的坐标系统一成 WGS1984,可以在影像数据集和数据集投影转换的连接线上设置条件过滤,条件类型选择“如果坐标系为”,EPSG编码输入4326,用于检查输入数据的坐标系是否为 WGS1984,勾选“取反”表示如果坐标系不是 WGS1984,则执行【数据集投影转换】,将数据集投影转换为 WGS1984。

FieldFilterExample

使用场景三 :与迭代文件结合使用

以下模型需要对类型多样的数据进行批量分类入库,分别导入CSV、SHP和TIF数据,可以使用条件函数过滤相同类型的数据,选择条件类型“字符串匹配”,判断数据类型是否匹配,如果匹配则执行后续的导入数据,如输入*.csv匹配表达式,则仅过滤拓展名为.csv的数据,执行导入csv型数据。

FieldFilterExample2

使用场景四:与条件分组结合使用

在 iServer 中使用条件过滤时可以结合条件分组使用,将不同的条件过滤分支,汇集到相同的后续处理流程。以批量导入csv数据为例,需要创建数据源,然后将csv数据导入到该数据源中。但是在重复执行该模型时,会因为数据源存在而导致执行失败,每次执行时都需要修改数据源名称,这时就可以考虑使用条件过滤来解决这个问题。
我们可以添加连接信息类型的字符串变量,分别连接至【创建数据源】和【迭代数据集】,在连接线上设置条件过滤,判断如果指定数据源存在,则删除数据源中的数据集然后打开数据源;如果指定数据源不存在,则创建数据源。

FieldFilterExample4

条件过滤的参数设置如下:

FieldFilterExample4 1