要素连接
要素连接可根据空间、时间、属性关系,或这三者间的组合关系,将一个数据集中的属性与另一个数据集(可以是空间数据也可以是属性数据)的属性进行关联。此过程,首先根据指定的条件筛选出满足连接条件的所有输入对象,然后将满足要求的输入对象与源数据中相应的对象进行连接。最终,返回的结果为要素数据集(FeatureRDD),且仅保留连接成功的要素。
该工具可将信息从一个图层传递并追加到另一个图层,可以根据需要选择基于空间关系、属性关系、时间关系或三者的组合来连接要素。具体说明如下:
空间关系
确定要素彼此的空间关系,可用的关系将取决于正在连接的图层的几何类型(点、线或面)。提供的空间关系如下:邻近、包含、被包含、交叉、相交、重叠、邻接、相离、一致,具体说明请参考:
空间关系 | 图示 | 说明 |
---|---|---|
包含(Contain) | ![]() |
源对象包含连接对象。 |
被包含(Within) | ![]() |
源对象被连接对象包含。 |
相交(Intersected) | ![]() |
源对象与连接对象有交集。 |
内部相交(InnerIntersected) | ![]() |
与源对象对象存在内部重叠(非边界接触)的连接对象,即从相交结果中排除仅边界接触的对象。 |
部分叠加(Overlap) | ![]() |
源对象与连接对象部分重叠。 |
一致(Identical) | ![]() |
同类型对象重合,如点与点、线与线、面与面重合。 |
相离(Disjointed) | ![]() |
两个数据集中的对象没有交集。 |
接触(Touch) | ![]() |
两个数据集中的对象有公共点或公共边。 |
交叉(Cross) | ![]() |
源对象与连接对象有穿越关系。 |
邻近(Near) | ![]() |
连接对象与源对象在指定的距离半径的范围内,则满足条件。 |
时间关系
确定对象彼此的时态关系,可用的关系取决于正在连接的图层的时间类型(时刻或间隔)。详细说明可参见:
时间关系 | 图示 | 说明 |
---|---|---|
邻近(Near) | ![]() |
若源时间段与连接时间段之间的时间间隔小于时间距离,则满足邻近关系。 |
之后(After) | ![]() |
当源时间在连接时间之后。 |
之前(Before) | ![]() |
当源时间在连接时间之前。 |
包含(Contains) | ![]() |
当连接时间发生在源时间间隔的起点和终点之间时,源时间包含连接时间。 |
期间(During) | ![]() |
当源时间发生在连接时间间隔的起点和终点之间时,源时间处于连接时间期间。 |
终止(Finishes) | ![]() |
源时间与连接时间在同一时间结束,且源时间在连接时间之后开始。 |
相接(Meets) | ![]() |
源数据的结束时间等于连接数据的开始时间。 |
被相接(MetBy) | ![]() |
源数据的开始时间等于连接数据的结束时间。 |
重叠(Overlaps) | ![]() |
源数据开始时间在连接数据开始时间之前,并且源数据时间在连接数据时间之前结束。 |
被重叠(OverlappedBy) | ![]() |
源数据开始时间在连接数据开始时间之后,并且源数据时间在连接数据时间之后结束。 |
起始(Starts) | ![]() |
源时间与连接时间在同一时间开始,且源时间在连接时间间隔终点之前结束。 |
被起始(StartedBy) | ![]() |
源时间与连接时间在同一时间开始,且源时间在连接时间终点之后结束。 |
相同(Equals) | ![]() |
源数据时间间隔和连接数据时间间隔完全一致,则这两个时间完全相同。 |
属性关系
确定对象彼此的属性关系,连接数据中的字段值与源数据中的字段值相等或不相等,满足条件的对象则会进行匹配。
连接类型
指源对象属性与连接对象的匹配关系,提供了一对一、一对多两种连接方式。 使用“要素连接类型”参数进行设置。
- 一对一连接:如果满足条件的连接对象是一个,那么就会将连接对象的连接字段属性值更新到源对象中;如果满足条件的连接对象是多个,那么将只统计满足条件的个数。
- 一对多连接:此方式会将每一个满足条件的多个对象,都保留到结果数据集中,例如:源数据集中的一个对象与连接数据集中的五个对象相匹配,结果数据集中将包含这五个对象。
应用场景
- 通过要素连接工具,可将城市各辖区(如学区、警务区、社区等)附加信息追加到每一起犯罪中,进一步研究和分析犯罪对不同辖区的影响。
参数说明
参数名 | 参数释义 | 参数类型 |
---|---|---|
目标数据集 | 要素连接的目标数据,连接数据的属性将追加到关联的目标数据。 | FeatureRDD |
要素连接的连接数据 | 要素连接的连接数据,提供属性的数据集。 | FeatureRDD |
要素连接类型 | 要素连接类型,包括以下两种: 一对一连接: 如果有多个连接对象和一个目标对象满足关联条件,多个连接对象将通过属性统计聚合成一个对象。这时属性统计可以通过 stats 进行设置,如果没有设置,默认统计连接对象的个数。 一对多连接: 如果有多个连接对象和一个目标对象满足关联条件,多个连接对象的属性都将被连接到目标对象,形成多个结果对象,并且不会进行属性统计。 |
JavaJoinOperatorType |
保留所有目标要素 | 勾选则表示输出结果中包含目标数据集的所有要素,未勾选则仅保留目标数据集中满足指定关系的要素。 | Boolean |
要素连接字段 | 要素连接字段,当连接类型为一对一连接时,取字段值的众数。 | String |
空间关系类型 (可选) |
空间关系类型,目标数据集中要素对象与连接数据集的空间关系,见上述说明。空间关联条件、时间关联条件和属性关联条件必须至少一项有效。 | JavaSpatialRelationType |
临近距离 (可选) |
临近距离,当空间关系为“邻近”时,用于判断两个对象之间的空间距离是否在指定的临近距离范围内。 | JavaDistance |
时间关系判断类型 (可选) |
时间关系判断类型,见上述时间关系说明。空间关联条件、时间关联条件和属性关联条件必须至少一项有效。 | JavaTimeOperatorType |
时间距离 (可选) |
当时间关系判断类型为“邻近”时,用于判断两个要素之间的最小时间间隔是否在指定的时间距离范围内。 参数填写格式为:数值 + 空格 + 单位,例如 5 Days ,表示两要素之间的时间间隔至少为5天以内才被视为“邻近”。 支持多种时间单位,包括:Years, Months, Weeks, Days, Hours, Minutes, Seconds, MilliSeconds。 |
JavaDuration |
属性连接条件 (可选) |
属性连接条件,支持Equal 和 NotEqual。 参数填写格式为:待连接的字段名,连接条件,用于匹配连接的字段名,用英文逗号分隔,例如 tagField,Equal,joinField 。 需要注意的是:当空间关联条件、时间关联条件和属性关联条件必须至少一项有效时,该参数才生效。 |
JavaAttributeRelation |
指定要统计的连接数据的字段名称和统计方式 (可选) |
指定要统计的连接数据的字段名称和统计方式,仅当连接类型为“一对一连接”时有效。 参数输入格式为:待统计的字段名,统计方法,结果字段名,用英文逗号分隔,例如 YSMJ,sum,YSMJ_SUM。 统计方法包括:sum、min、max、mean、var(样本方差)、varpop(总体方差)、sddev(标准差)、sdpop(总体标准差)、count(记录计数)、modalvalue(众数)。 |
JavaFieldStat |
节点容限 (可选) |
节点容限默认值为 0.0,表示当数据集的坐标系为地理坐标系时,将使用1.0e-8 的节点容限,当坐标系为空或投影坐标系时,使用 1.0e-3 的节点容限。 | Double |
目标要素数据集中标识起始时间的字段名称 (可选) |
目标要素数据集中标识起始时间的字段名称。 | String |
目标要素数据集中标识终止时间的字段名称 (可选) |
目标要素数据集中标识终止时间的字段名称。 | String |
连接要素数据集中标识起始时间的字段名称 (可选) |
连接要素数据集中标识起始时间的字段名称。 | String |
连接要素数据集中标识终止时间的字段名称 (可选) |
连接要素数据集中标识终止时间的字段名称。 | String |
输出结果
参数名 | 参数释义 | 参数类型 |
---|---|---|
结果要素数据集 | 需要通过连接【保存矢量数据】工具,将结果数据集写出到数据库或本地。 | FeatureRDD |