查找停留位置工具根据追踪的时序点确定停留位置。停留位置被定义为在一定时间内极少移动或没有移动的连续观测点。根据具体的应用领域,可将其称为停留点或空闲检测。根据一个或多个轨迹字段确定轨迹。结果图层将停留位置显示为点、停留位置的凸包或停留的平均中心点。输出包含停留位置中的要素数量、停留的开始和结束时间、停留的持续时间以及已计算的任何其他统计信息。每个轨迹可以不具有停留位置,或具有 1 个或多个停留位置。
工作流示意图
使用 GeoAnalytics Tools 进行的分析
通过跨多个 ArcGIS GeoAnalytics Server 计算机和核心组件的分布式处理来运行使用 GeoAnalytics Tools 进行的分析。GeoAnalytics Tools 和 ArcGIS Enterprise 中标准要素分析工具的参数和功能不同。要了解有关这些差别的详细信息,请参阅要素分析工具差别。
术语
术语 | 描述 |
---|---|
停留位置 | 在给定时间和距离参数的情况下,表示轨迹何时静止的要素。此为工具的输出结果,可将停留要素表示为点、凸包或平均中心。 |
轨迹 | 已启用时间且时间类型为时刻的要素序列。要素由轨迹标识符字段确定处于序列中,并按时间进行排序。例如,某个城市拥有一支扫雪车队,每 10 分钟记录一次车辆的位置。车辆 ID 可以表示不同的轨迹。 |
观测 | 轨迹中的一个点。 |
测地线 | 在球体上绘制的线。在地球上绘制的测地线表示地球大地水准面的曲率。 |
平面 | 在平面上(即笛卡尔平面)上测量的直线距离。这也被称为欧氏距离。 |
时刻 | 由开始时间表示的单个时间点且无结束时间。 |
间隔 | 由开始时间和结束时间表示的一段时间。 |
示例
生态学家和环保工作人员可以使用“查找停留位置”工具来改善迁徙季期间麋鹿的安全状况。使用结果在动物停留最长时间的位置实施或改善保护区。麋鹿的静止运动可能代表其进食或睡觉的地点。
交通部门希望改善高速公路出口附近的交通拥堵状况。使用“查找停留位置”工具,分析人员可以通过识别在一定距离内停留一定时间的车辆轨迹,从而隔离出现拥堵的区域。
用法说明
输入要素必须为启用时间的点要素,用于表示时刻。
结果是表示时刻的点要素,或是表示时间间隔的面要素。间隔的开始和结束由停留中第一个和最后一个要素的时间决定。
轨迹由一个或多个轨迹字段的唯一组合表示。选中选择用于标识轨迹的一个或多个字段参数复选框以指定轨迹标识符。例如,如果将字段 flightID 和 Destination 用作轨迹标识符,则要素 ID007、Solden 和 ID007、Tokyo 将分别处于两个独立的轨迹,原因是其 Destination 字段值不同。
时间(定义时间搜索范围)和距离(定义空间搜索距离)值用于确定停留位置。首先,该工具将使用唯一标识符将要素分配给轨迹。轨迹的顺序取决于要素的时间。接下来,将计算轨迹中的第一个观测点与下一个观测点之间的距离。如果两个时间上连续的点至少在给定的持续时间内保持在给定的距离内,则要素将被视为停留位置的一部分。
输出停留位置可通过四种方式表示。下表显示了每种方式的示例: 对于所有输出类型,停留结果将通过 dwellid 字段进行唯一标识。
输出类型 | 描述 | 示例 |
---|---|---|
所有要素 | 将返回每个要素。生成的要素将具有时间类型时刻。 属于停留的要素将渲染为蓝色。不属于停留的要素将渲染为灰色。 对于此输出类型,将仅计算计数统计数据。该计数将表示属于单个停留的要素的数量。非停留要素的计数将为 0。 | |
停留要素 | 仅返回组成停留的要素。生成的要素将具有时间类型时刻。 对于此输出类型,将仅计算计数统计数据。该计数将表示属于单个停留的要素的数量。 | |
平均中心 | 每个停留都会返回一个点,用于表示停留在时间和距离上的平均中心。生成的要素将具有时间类型间隔。 系统将始终计算停留中的要素计数。您可以选择计算有关此类型停留要素的统计数据。默认情况下,系统会计算所有统计数据。 | |
凸包 | 每个停留都由停留要素的凸包表示。生成的要素将具有时间类型间隔。 系统将始终计算停留中的要素计数。您可以选择计算有关此类型停留要素的统计数据。默认情况下,系统会计算所有统计数据。 |
通过停留位置中最基本的计算,得出经过汇总的停留中的要素数量计数。统计数据(计数、总和、最小值、最大值、范围、平均值、标准差和方差)还可以根据数值字段进行计算;统计数据(计数和任意)可根据字符串字段进行计算。字符串统计数据将从每个轨迹任意返回示例字符串。系统将计算每个停留位置的统计数据。
除了来自输入图层以及指定的汇总统计数据的字段之外,所有输出要素中还包括以下字段:
字段名称 | 描述 |
---|---|
count | 位于停留中的要素数。 |
dwellid | 要素所属的停留的唯一 ID。 |
meanx | 构成停留的 x 坐标的平均值。 |
meany | 构成停留的 y 坐标的平均值。 |
meandistance | 停留位置中连续点之间的平均距离。 |
instant_datetime | 当输出类型为停留要素或所有要素时,创建单个要素的时间。 |
start_datetime | 当输出类型为平均中心或凸包时创建的开始时间。 |
end_datetime | 当输出类型为平均中心或凸包时创建的结束时间。 |
如果输出类型为所有要素,则属于停留的结果将计算出上述字段。不属于停留的结果将为 count 字段返回值 0,date 字段将返回输入要素的时间值,且所有其他字段将返回值 null。
默认情况下,系统将使用测地线方法创建停留位置,以进行距离计算。建议在以下情况下使用测地线距离:
- 跨越国际日期变更线的轨迹 - 当使用测地线方法时,越过国际日期变更线的输入图层将具有正确跨越国际日期变更线的轨迹。这是默认设置。必须将您的输入图层或处理空间参考设置为支持环绕国际日期变更线的空间参考,例如“世界圆柱等积”等全球投影。
- 您的数据集不在局部投影中 - 如果输入数据在局部投影中,请使用平面距离方法。例如,使用平面方法检查单个州内的停留位置。您的输入图层或处理空间参考必须设置为数据集本地的空间参考。
在选择用于计算停留位置的参数时,请考虑观测类型和要查找的停留比例。以下是有关如何修改参数以查找移动数据中的停留的示例:
- 船舶要素具有 vesselID 和 tripID 字段。
- 将 vessel ID 和 trip ID 字段用作标识符,以计算沿不同路线的停留位置。
- 使用 1 小时的时间容差和 1 海里的距离容差来查找船只在其 1 海里范围内停留至少 1 小时的位置。
- 动物追踪器具有 animalID 字段。
- 将 animalID 字段用作标识符,以比较特定动物的停留位置。
- 要确定动物的活动范围,请使用 3 天的时间容差和 10 英里的距离容差,以查找感兴趣的动物栖息地。
- 对于较小的感兴趣区域,请使用 2 小时的时间容差和 100 米的距离容差。
以定义的间隔应用时间间隔轨迹。例如,如果将时间间隔界限设置为 1 天,开始于 1990 年 1 月 1 日上午 9:00,则各个轨迹都会在每天上午 9:00 被截断。此分割方法是一种可加快计算速度的快速方法,因为它可以快速创建较小的追踪以进行分析。如果您的分析更适合按重复的时间间隔界限进行分割,则建议使用大数据处理。此参数在 10.8.1 版本中可用。
如果选中使用当前地图范围,则仅对当前地图范围中可见的要素进行分析。如果未选中,则将分析输入图层中的所有输入要素,包括超出当前地图范围的要素。
限制
输入必须为具有已启用时间的类型时刻要素的点图层。
任何不具备时间的要素都不会包含在分析中。
当计算凸包且停留位置完全静止(一个唯一位置)或由两个共线的唯一点组成时,系统会将基于分析中使用的空间参考容差的较小值用作宽度、高度或直径,以创建输出面而非凸包。这些面将用于可视化,且不表示停留的空间范围。下面的表格中将介绍此类情况的示例:
输入情况 | 描述 | 示例 |
---|---|---|
重合(一个空间唯一点) | 如果输入要素发生堆叠(重合),则生成的凸包将为无效的面。 在此示例中,重合输入要素由位于黄色面中心的红点表示。黄色面表示重合点的输出凸包结果。蓝色面可显示当单个停留位置中存在四个非重合点时的凸包外观。 | |
共线(两个空间唯一点) | 如果输入要素位于一条线上(最常见于两个空间唯一点),则生成的凸包将为无效面。 在此示例中,共线点由黄色面内的红色点表示。黄色面表示共线点的输出凸包结果。 |
查找停留位置的工作原理
计算
可使用唯一标识符将输入图层汇总到停留位置中。对于所有输出类型,均会计算每个停留位置的要素计数和持续时间。
如果您选择了汇总输出选项(平均中心或凸包),则针对轨迹内的汇总要素,各个轨迹可选择应用数值统计数据(计数、总和、最小值、最大值、范围、平均值、标准差、方差、第一个和最后一个)或字符串统计数据(计数、任意、第一个和最后一个)。
第一个和最后一个统计数据会返回轨迹中的第一个值或最后一个值。例如,对于具有下列值的时序轨迹:[Toronto,Guelph,Montreal],第一个值是 Toronto,最后一个值是 Montreal。第一个和最后一个统计数据在 10.8.1 版本有所提供。
计数统计(针对字符串和数值字段)用于计算非空值的数量。以下值的计数等于 5:[0, 1, 10, 5, null, 6] = 5。该组值的计数等于 3:[Primary, Primary, Secondary, null] = 3。
ArcGIS API for Python 示例
可通过 ArcGIS API for Python 获取查找停留位置工具。
本示例可查找船只在某段距离中停留特定时间的位置。
# Import the required ArcGIS API for Python modules
import arcgis
from arcgis.gis import GIS
# Connect to your ArcGIS Enterprise portal and confirm that GeoAnalytics is supported
portal = GIS("https://myportal.domain.com/portal", "gis_publisher", "my_password", verify_cert=False)
if not portal.geoanalytics.is_supported():
print("Quitting, GeoAnalytics is not supported")
exit(1)
# Find the point dataset containing track features to find dwell locations from
track_layer_search = portal.content.search("GPSPoints_Halifax_ships", "Feature Layer")
track_layer = track_layer_search[0].layers[0]
# Run the Find Dwell Locations tool
dwell_result = arcgis.geoanalytics.find_locations.find_dwell_locations(input_layer = track_layer,
track_fields = "vessel_ID, shipping_zone",
method = "Geodesic"
distance_tolerance = .5,
distance_unit = "NauticalMiles",
time_tolerance = 6,
time_unit = "Hours",
summary_fields = [{'statisticType' : 'Maximum',
'onStatisticField' : 'Speed'}],
dwell_type = "DwellMeanCenters",
output_name = "ship_dwell_areas")
# Visualize the results if you are running Python in a Jupyter Notebook
processed_map = portal.map()
processed_map.add_layer(dwell_result)
processed_map
类似工具
使用查找停留位置将轨迹要素汇总到停留位置。其他工具或许在解决略有差异的类似问题时十分有用。
Map Viewer 分析工具
如果您要将点或面汇总至轨迹,请使用重新构建轨迹GeoAnalytics Tools。
要基于空间或属性值找到轨迹中的其他关系,请使用检测事件GeoAnalytics Tools。
ArcGIS Desktop 分析工具
也可以在 GeoAnalytics Tools 中使用 ArcGIS Pro。
要计算一个要素到下一个要素之间的距离,使用近邻分析地理处理工具。
要从 ArcGIS Pro 运行工具,则工程的活动门户必须运行 ArcGIS Enterprise 10.8 或更高版本。对于 10.8,您必须使用相应帐户登录到门户,该帐户应具有在门户中执行空间分析的权限。