没有合适的资源?快使用搜索试试~ 我知道了~
Trackintel: 人类移动性分析的开源Python库
计算机,环境和城市系统101(2023)101938Trackintel:一个用于人类移动性分析的亨利·马丁a,b,*,1,叶红a, 1,尼娜·威德曼a, 1,多米尼克·布彻c, 2,马丁·劳巴尔 aa制图和地理信息研究所,苏黎世联邦理工学院,瑞士b奥地利维也纳人工智能高级研究所cc.technology,Tessinerplatz 7,8002 Zürich,瑞士A R T I C L EI N FO关键词:人员流动分析开源软件交通规划数据挖掘Python跟踪研究A B S T R A C T在过去的十年中,科学研究已经使用越来越多的大型跟踪数据集来增强我们对人类移动行为的理解。然而,到目前为止,用于不同数据收集方法的数据处理管道尚未标准化,因此限制了定量人类移动性分析中方法和结果的再现性、可比性和可转移性。本文介绍了Trackintel,这是一个用于人类移动性分析的开源Python库。Trackintel建立在用于交通规划的人员流动标准数据模型之上,与不同类型的跟踪数据兼容。我们介绍了该库的主要功能,该库涵盖了人员流动分析的整个生命周期,包括根据概念数据模型的处理步骤、读写接口以及分析功能(例如,数据质量评估、旅行模式预测和位置标记)。我们展示了Trackintel库的有效性,通过案例研究与四个不同的跟踪数据集。Trackintel可以作为标准化移动数据分析的重要工具,并提高人类移动性新研究的透明度和可比性。该库在https://github.com/mie-lab/trackintel上是开源的。1. 介绍使用大规模人类数字痕迹的人类移动研究在过去十年中蓬勃发展。在集体层面上,研究人员发现,人类运动可以用统计分布来普遍描述,即,连续位移的幂律分布(Brockmann等人,2006; Rhee等人,2011)、位移之间的静止时间(Rhee等人,2011; Song等人,2010),以及个体行进的特征距离(即,回转半径)(Gonz′alez等人, 2008;Pappalardo等人, 2015)。此外,研究表明,个体表现出 明 显 规 律 的位 置 访 问 模 式 ( Schneider , Belik , Couron n'e ,Smoreda,&Gonz'alez,2013),具有很高的理论可预测性(Song etal., 2010年)。 人们把大部分时间花在几个地方(Gonz'alez等人,2008;Song等人, 2010)并随着时间的推移保持稳定数量的重要位置(Ales-Sandretti等人, 2018年)。在很大程度上,这一进展可以归因于源于信息和通信技术(ICT)和基于位置的服务(LBS)的大型移动数据集的广泛可用性,这些数据集现在已集成到我们日常生活的许多方面(Huang et al.,2018;KeßlerMcKenzie,2018&)。除了对人类流动本身的分析取得进展之外,跟踪数据的可用性增加导致使用人类流动数据来研究与人类流动有关的现象的研究迅速增长,例如对居民收入隔离的理解(Moro等人,2021),量化城市化水平和城市宜居性(Bassolas等人,2019),对城市的功能区进行分类(Yuan &Raubal,2012),城市感知(Ahas等人,2015年),发展可持续流动性的基础设施(Xu,Kazolak,Kara,Gola,&Gon za'lez,2018年)和应对流行病传播(Chang等人,2021年)。然而,原始的数字轨迹往往不是分析的目标单位;例如,人们进行活动的位置不能直接从GPS跟踪点或移动电话塔数据中得出。因此,研究采用各种步骤将数据预处理成所需的格式。这些步骤及其结果在不同的研究中通常是不同的(Chen等人,2016)由于数据集的多样性和对定义的不同理解,产生了大量特定于小行星的预处理和分析方法。例如,Feng等人(2018)的研究提出了DeepMove模型,该模型现在被广泛接受为下一个位置预测的深度学习基线模型(Luca等人,2021年),一般* 通讯作者:苏黎世联邦理工学院,地图和地理信息研究所HIL D 54.3,Stefano-Francini-Platz 5,CH-8093 Zürich,Switzerland.电子邮件地址:martinhe@ethz.ch(H.Martin),hongy@ethz.ch(Y.Hong),nwiedemann@ethz.ch(N.Wiedemann)。作者贡献均等。 顺序随机确定。2 这项工作的大部分是在作者担任苏黎世联邦理工学院地理信息工程主席期间完成的。https://doi.org/10.1016/j.compenvurbsys.2023.101938接收日期:2022年8月4日;接收日期:2023年1月5日;接受日期:2023年在线预订2023年0198-9715/© 2023作者。出版社:Elsevier Ltd这是CC BY许可下的开放获取文章(http://creativecommons.org/licenses/by/4.0/)。目录可在ScienceDirect计算机、环境与城市系统期刊主页:www.elsevier.com/locate/ceus++H. Martin等人将每个原始位置记录视为一个位置并且不执行预处理。然而,专注于同一个问题,Urner et al. (2018)提取停留点(即,用户停留至少一定持续时间的所有点),并使用k均值算法将它们进一步聚集成位置。Solomon等人(2021)应用了类似的处理概念,但引入了均值漂移算法来检测停留点,然后根据距离阈值将其合并到位置中。这些示例显示了不使用标准运动模型定义和通用预处理标准如何限制方法和分析结果的再现性和可比性。为了解决这些问题,我们提出了Trackintel,一个用于处理和分析运动数据的开源Python库。Trackintel基于交通规划中建立的人类流动模型,该模型定义了以活动概念为中心的移动层次。Trackintel解释了从该数据模型中导出的数据处理步骤的定义和实现。因此,我们的工作使假设,参数和过滤步骤明确,并提供透明的预处理步骤,其实现是已知的分析结果有实质性的影响。Trackintel还提供分析、可视化和支持功能,以丰富原始跟踪数据,提供特定于人类移动的信息。由于数据模型的多功能性,Trackintel可对多种类型的跟踪数据进行预处理。因此,它大大简化了新分析方法的基准测试,提高了其重现性,并促进了基于跟踪数据的定量研究。本文件其余部分的结构如下。第2节第二节概述了用于分析和预处理运动数据的现有库。第三节首先介绍了人员流动分析的层次模型,并描述了它在Trackintel中的实现。本节将介绍Trackintel处理移动数据的最重要功能。在第4节中,我们展示了Trackintel简化几个不同跟踪数据集的分析和比较的功能。最后,我们在第五中总结和总结了这项工作。2. 相关工作:移动数据由于交通、人类迁移和动物行为研究的悠久历史,存在大量用于(人类)运动数据处理的库。Joo等人(2020)调查了R中令人印象深刻的58个运动分析基于这项工作和Graser(2020)提供的概述,我们选择了旨在支持Python,R和C中运动分析的库在表1中,这些选定的库在其用户友好性(文档和鲁棒性),其重点和其提供的人体运动数据分析功能为了通过文档的质量来比较软件包,我们使用基于pyOpenSci用于软件包同行评审的标准从0到6进行分级(Holdingsetal.,2022)和ROPenSci。3标准列表许多被调查的R库都非常关注动物行为分析(Joo等人,2020年)(未全部列入表1)。可以(也)应用于人类移动性分析的软件包侧重于轨迹的基本统计分析,例如测量动物运动的空间范围(例如,adehabitatLT(Calenge,2006)),或运动轨迹的持续时间和距离(例如,TrackR(Frick&Kosmartan,2017))。目前,R语言中没有一个连贯的框架可以提供特定于人体运动分析的功能例 如 行 程 检 测 和 运 输 模 式 标 记 。 此 外 , C++ 中 有 几 个 库 , 例 如Tracktable(Andrew,2014),3https://ropensci.org/计算机,环境和城市系统101(2023)101938MEOS4和MoveTK 5有望成为轨迹数据处理的高效和快速工具,尽管它们可能不太适合人类流动和运输方面的研究对象。此外,这些列表仅提供高度特定的功能,并不代表用于移动数据分析的全面框架ArcGIS Pro是一款用于一般空间数据处理的专有软件,具有用于运动数据分析的模块,如速度和加速度计算、轨迹点聚类以及特别是轨迹可视化。6然而,不同的功能是分散的 超过 不同的工具箱 和ArcGIS 亲做 不 提供分析流动数据的一致框架由于其由于软件包的专有性,我们不能像对其他软件包那样对文档和测试进行评估,但我们认为两者都处于较高的水平。 我们没有包括QGIS,7一个高质量的开源GIS项目,表,因为没有用于运动或轨迹数据分析的维护良好的插件可用。然而,QGIS可以与Python库或mobilityDB结合使用(Zima'nyi等人, 2020)图书馆。在Python中,许多开源库已经成为促进和标准化数据处理和分析的工具。地理信息科学(GIScience)社区尤其受益这与Python库有很大的不同,例如Shapely(Gillies,2013)中实现的数据模型和Fiona包中提供的地理数据8最重要的是,利 用 Geopandas 库 可 以 容 易 地 处 理 空 间 数 据 ( Jordahl 等 人 ,2022),它直接建立在Pandas(Pandas开发团队,2023)上,Pandas是用于数据分析和操作的最成熟的Python库之一。在过去的几年里,Python已经成为数据科学和机器学习应用程序的事实标准,这些应用程序对于运动数据的分析越来越重要(Luca等人,2021; Toch等人,2018年)。然而,只有少数几个库尝试在一个全面的Python包中提供专门针对人类移动性的预处理和分析工具(见表1)。尽管在过去十年中开发了许多用于轨迹数据挖掘的算法(Zheng,2015),但它们在Python中的开源可用性有限,并且它们经常受到文档和测试标准不足的困扰,例如HuMobi(Smolak等人,2021年)或MovinPy。其他一些维护良好,但范围有限,例如Traja(Shenk等人,2021),其靶向动物运动,PTRAIL(Haidri等人,2021)用于并行处理,而TransBigData(Qing &Yuan,2022)专注于集体层面的数据分析,类似于R库stplanr(Lovelace &Ellison,2018)。值得注意的例外是MovingPandas(Graser,2019)和scikit-流动性(Pappalardo等人,2022年)。MovingPandas基于Pandas和Geopandas,专注于低级别的轨迹操作,例如分割,合并和可视化轨迹。相反,scikit-mobility库的目标是高级分析功能,包括计算人类移动指标,生成合成轨迹和评估隐私风险。这两个库都得到了积极的维护,并包含各种措施来确保高代码质量,但其数据模型的定义意味着关注移动轨迹(Moving- Pandas)或移动流(scikit-mobility),忽 略 了 描 述 个 人 移 动 性 的 重 要 概 念 , 如 活 动 , 旅 行 或 旅 游(AXhausen,2007)。我们的目标是通过Trackintel框架来缩小这一差距,从交通文献中建立的数据模型,4https://github.com/adonmo/meos5https://github.com/movetk/movetk6https://pro.arcgis。com/en/pro-app/2.8/tool-reference/intelligence/an-overview-of-the-movement-analysis-toolset.htm7https://www.qgis.org/en/site/8https://github.com/Toblerity/Fiona2表1运动数据库的比较。包主要是在R和Python中开源的,并且它们在焦点,文档和功能方面进行了比较。虽然其他移动分析库已经提供了维护良好和记录良好的代码,具有丰富的轨迹分析功能,但只有Trackintel提供了强大而灵活的方法来将轨迹聚合到位置,行程和旅游中。(//X:可用/部分可用/不可用)。Pappalardo分析分析PGraser,2019)分析例如,(2021年)轨迹分析预测提取(2022年)Zi ma'nyi等人,查询SQL例如,(2021年)安德鲁,2014年)Calenge,2011)stplanr(Lovelace2018年)轨迹跟踪数据分析可持续规划和相互作用循环数据H. Martin等人计算机,环境和城市系统101(2023)101938软件包名称Focus编程语言Python(P)Doc.评分测试覆盖率(*/**:未报告,但低/高)个人(I)/collective(C)人(H),动物(A)和/或物体(O)驻点检测聚集到位置累计到行程汇总到旅行团跟踪质量评估运输方式标记家庭和工作标签可视化轨迹统计(-/+/++:无/基本/丰富)Trackintel人力流动 P6百分之九十八我H✓✓✓✓✓✓✓✓+Scikit-mobility(人类移动性例如,(2022年)5**我H✓✓XXX✓++Movingpandas(移动数据P6百分之九十六我H/A/O✓XXXXXX✓++查询和PyMove可视化P5百分之八十五我H/A/O✓XXXXXX✓+MovinPy移动数据P30我HXXXXXXX-HuMobi(Smolak) P30我H✓✓XXXXX+PTRAIL(Haidri骨化例如, 2021)和功能P4**我H/A/OXXXXXXX✓++大数据(清远,&交通运输部5百分之九十CH✓XXXX✓✓-mobilityDB(存储和2020年)6百分之九十七我H/AXXXXXXX+Traja(ShenkAnimalP6百分之七十六我一XXXXXX✓++Tracktable(移动对象P/C++2**我OXXXXXX✓++MEOS时空C++4*我H/A/OXXXXXXXX+MoveTKMovementC++-**I/CH/A/OXXXXXXXX++adehabitatLT(动物栖息地R4**我一XXXXXXXX++moveVis可视化R6百分之九十三我一XXXXXXX✓-&埃里森,去R区6*CHXXXXXXXX-物体跟踪R5*我H/A/OXXXXXXX✓+TrackRRunning和R6百分之五十二我H✓XXXXXX✓+3H. Martin等人计算机,环境和城市系统101(2023)1019384结合了特定于人类移动性的跟踪数据的不同语义聚合级别。3. Trackintel框架Trackintel是一个用于分析时空跟踪数据的库,重点关注人类移动性 。 Trackintel 的 核 心 是 运 动 数 据 的 层 次 数 据 模 型 ( AX hausen ,2007),该模型在GIScience中被广泛采用(Bucher等人,2019年),交通规划(陈等人,2016)和相关领域(Rout等人,2021年)。我们为人类移动数据分析的整个生命周期提供易于使用和高效的功能,包括导入和导出各种类型的跟踪数据(例如,GPS跟踪点、基于位置的社交网络(LBSN)签到、呼叫详细记录)、数据模型生成和预处理、分析和可视化。Trackintel的不同组件的概念概述可以在图中找到。 1.Trackintel专注于个人或物体的移动性(例如,例如,与人群流相反),并且所有功能都基于将数据链接到相应被跟踪用户的唯一用户标识符而被实现为用户特定的。Trackintel是用Python实现的,主要基于Pandas(The pandas development team,2023)和GeoPandas(Jordahl et al., 2022)使用访问器类,一个方法,扩展Pandas类。9 这种设计使Trackintel易于使用,Python用户,并确保其与其他Python空间分析库的广泛兼容性。3.1. Trackintel数据模型Trackintel采用的建模框架基于交通规划中基于活动的分析框架,该框架将出行需求视为我们在不同地点进行活动的需求。 我们遵循Schoünfelder&AXhausen,2016的定义,即人们的日常流动性包括停留在地点进行活动和在地点之间旅行进行下一项活动。在这个定义中,并遵循AXHAUSEN(2007)的描述,运动在不同的语义层次上与活动分开。Trackintel 实 现 了 六 个 类 来 表 示 这 个 分 层 模 型 中 的 移 动 数 据 :positionfix、staypoint、tripleg、trip、tour和location。图2给出了层次建模结构的概述,并在一个UML图中显示了类,它们的强制属性和可选属性都在方括号中。所有Trackintel类都作为Pandas Dataframes或Geopandas Geoprames实现。为了被认为是一个有效的Trackintel对象,所有强制属性都必须以正确名称的列形式存在,如图2所示。Trackintel类的必需属性和可选属性的更详细说明见表2。几何体必须是已定义的类型,除了Location类可以有多个geome-try。此外,Trackintel要求的时间字段的所有时间戳 有 到 被 时区感知10 除了 这些 形式上的重新要求,类可以包含特定分析所需的任何附加信息。在下文中,介绍了不同的类及其语义。3.1.1. 定位Positionfix是Trackintel数据模型中最小的跟踪单元,由带有时间戳的位置记录组成,例如由GNSS跟踪器或呼叫详细记录(CDR)数据生成的位置记录。定位数据通常直接从原始跟踪数据中传输,因此是Trackintel数据模型的自然入口点,可以进一步处理并分割为三足和停留点。没有固有的语义9 https://pandas.pydata.org/docs/development/extending。HTML10解释见https://docs.python。org/3/library/datetime.html#aware-and-naive-objects因为移动和活动不能与Positionfix区分开。3.1.2. 停留点停留点表示空间中的点,其被定义为在限定的地理半径内停留限定的时间的个体。与原始定位点相比,停留点可以表示携带特定语义的固定点,例如停留的目的,或者它们可以表示中间停留,例如等待公共汽车。为了区分这两种类型的停留点,我们引入了活动的概念:活动停留点通常是一个人旅行的原因,并且具有重要的目的,并附有活动标签(例如,家),而非活动停留点仅表示平凡的静止点(例如,等待)。活动的确切定义取决于研究的目标。在Trackintel中,活动是属性activity_flag设置为True的停留点,可以通过用户标签获得或直接从数据中推断(参见第3.5.2节)。虽然活动停留点是构成旅行的基本单位,标志着旅行的开始和结束,但非活动停留点只能是旅行的一部分。此外,停留点可以在空间上聚合以形成位置。3.1.3. 三足动物最基本的运动水平被定义为三足(在AX hausen(2007)中被称为阶段),形式上表示不改变运输方式或车辆的连续运动。因此,Triplegs包含关于个体移动的语义,例如存储在属性字段mode中的运输模式(如果可用)。该信息可以从用户标签获得(Hong等人, 2021; Zheng等人,2010)或直接从数据中使用逻辑推理进行推断,这在Trackintel中作为标签函数实现(参见第3.5.1节)。三足动物可以从定位创建,并可以聚合形成行程。3.1.4. 旅行行程表示两个活动之间的所有行程,并汇总两个连续活动停留点之间的所有三足和非活动停留点。旅行从目的地停留点的活动标签属性继承活动目的。由于它们通常是交通规划研究中感兴趣的主要数量,因此行程与活动一起是AX hausen(2007)提出的移动数据模型的核心。3.1.5. 位置活动停留点代表对游客有重要意义的地方的个人访问。Trackintel使用location类对这些重要地点进行建模,以实现访问地点的特征化。虽然附加到停留点的信息与个人访问绑定(例如,具体活动或一天中的时间),位置的语义与独立于访问的地点相关(例如, 例如,土地使用或商店的营业时间)。使用两种不同的几何图形对位置进行建模,一种是用于位置中心的点几何图形,另一种是用于描述位置范围的多边形几何图形3.1.6. 旅游个人的流动性是围绕着几个重要的位置,作为他们的旅行行为的基础。如果方便的话,个人会进行几次活动和旅行,但会回家(或类似的重要地点)计划下一次活动。这种行为可以使用tours类来分析,tours类被定义为旅游的一个特殊情况是旅行的概念,开始和结束在个人的家庭位置。在Trackintel中,可以使用旅程属性将旅程标记为旅程。一个行程包含多个行程,但一个行程也可以是多个行程的一部分,如果它们是嵌套的,例如,从工作地点到超市的行程是一个更大行程的一部分,H. Martin等人计算机,环境和城市系统101(2023)1019385GNSS定位CDR停留点三足动旅行签到位置调查标签位置评估时间跟踪质量计算模态分离分配传输模式检测活动tours分析Trackintel数据模型输入数据:CSV、Geopandas或来自PostGIS图1. Trackintel框架概述。图2. Trackintel数据模型及其UML图的语义可视化,包含强制和可选属性(显示在方括号中)。不同类别之间的关系如连接线所示图改编自Jonietz和Bucher(2018)。从家里开始。3.2. 数据模型生成Trackintel的核心功能是从原始跟踪数据生成运动数据模型中定义的所有类。在实践中,这是指从定位数据生成整个分层移动数据模型。然而,应该注意的是,从位置索引进入框架不是必需的,并且通常是不实际的-可以在任何语义级别访问框架,这取决于可用数据(例如,基于位置的社交网络(LSBN)签到表示没有位置固定可用性的停留点;参见图1,以获得不同跟踪数据类型的输入级别的示例)。以下部分介绍了通过层次结构级别聚合数据所需的已实现预处理步骤。所有generate函数的输出都是一个(Geo)DataFrame,其字段如表2所示。3.2.1. 生成停留点在Trackintel中,停留点是根据H. Martin等人计算机,环境和城市系统101(2023)1019386表2Trackintel数据模型的必需列和可选列的说明数据模型领域描述所有用户ID跟踪_在开始于记录的唯一标识符唯一用户标识符点的时间戳(仅适用于positionfiX)记录的开始时间(位置和位置除外)位置固定finished_at记录的结束时间(位置和位置除外)点几何Staypoint geometries点几何目的(可选)停留点的目的标签。这可以是活动目的(例如,家庭),或非活动目的(例如,等待)。is_activity(可选)指示停留点是否为活动的布尔标志位置中心表示中心范围的点几何(可选)表示范围的面线几何形状mode(可选)传输模式标签旅行原点停留点标识起始停留点旅游destination_staypoint_idprimary_mode(可选)位置标识目的地停留点的标识符主要运输方式标签开始和结束位置标识符旅程布尔标志,指示旅游是否是旅程(如果起点和终点位置是家,则旅游称为旅程滑动窗口检测算法首先在Li等人(2008)中报道,其已经成为用于停留点检测的标准算法(Zheng,2015)。对于每个个体,该算法在所有定位上迭代,并确定满足预定义的距离和时间阈值的点组每个输出停留点分别从属于它的第一个和最后一个位置坐标继承开始和结束时间,以及该组位置坐标的平均几何坐标。所实现的停留点检测算法通过排除跟踪数据中的时间间隙的选项来扩展Li等人(2008)的算法,由于时间跟踪覆盖率低,通常在许多数据集中观察到时间可以使用表示两个连续定位之间的最大时间的参数来控制这种行为,使得它们仍然被认为属于同一停留点。3.2.2. 生成位置地点可以通过聚集停留点来生成。EXP研究提出了社区检测算法(Aslak &Alessan-dretti,2020)和空间聚类算法,如OPTICS(Yuan等人,2013)、均值漂移(Solomon等人,2021)和DBSCAN(Luo等人,2017)来执行该处理步骤。在这里,我们实现了最常用的DBSCAN算 法 来 聚 合 空 间 上 靠 近 位 置 的 停 留 点 ( Hariharan Toyama ,2004&;Jonietz&Bucher,2018)。DBSCAN采用一组邻域特征参数ε和最小样本数(min_samples)来定义输入数据的密度必须被视为聚类。在位置生成的上下文中,ε控制附近停留点将被合并到单个位置的距离,并且min_samples确定形成位置的停留点的最小数量(即,需要在同一地点进行多少次访问才能将其视为重要)。生成的位置配备有两种不同的几何图形。中心是一个点几何体,计算为指定给聚类的所有停留点的平均坐标;范围是一个多边形几何体,定义为所有所属停留点的边界框。 此外,我们提供了灵活性,以生成对单个用户(图3右侧)或数据集中存在的所有用户(图3左侧)重要的位置。虽然用户位置在聚类过程中单独考虑每个被跟踪用户的停留点,并防止生成过大的位置(AslakAlessandretti,2020&),但数据集位置同时考虑所有停留点,并输出具有跨用户共享语义的位置(例如,火车站或购物中心)。在这两个选项中,聚集的停留点的中心和范围都将附着到生成的位置,从而提供便于进一步的处理和分析任务。3.2.3. 生成三条腿Trackintel实现了一种算法,该算法基于以下假设从位置坐标中提取三条腿:如果一个人不是静止的,他或她就在移动,这意味着不属于任何停留点的所有位置坐标都被分配给一个三条腿。该分配过程要求输入具有已经生成的停留点的标识符的positionfix。在内部,该函数聚合两个连续停留点之间的所有位置固定以形成一个三条线,其线几何通过按时间顺序连接点几何来构造。类似于停留点的生成过程,每个三元组的开始和结束时间戳分别从属于它的3.2.4. 生成行程Trackintel实现了一种方法,可以根据现有的停留点和三脚架生成行程。行程总结了标记为活动的两个停留点之间的所有移动和所有非活动停留点(例如,取决于数据,这可以对应于在公共汽车站等待)。乍一看,这似乎微不足道,但是,在其他库中没有易于使用的实现,并且在行程生成期间应该考虑与跟踪数据中的差距相关的几种特殊情况。实现的行程生成的另一个重要特征是标识符管理,其将行程与其相关联的停留点和三脚架连接。Trackintel中实现的行程检测可以处理不完整的跟踪数据,并支持时间间隔的检测(算法1中显示的伪代码)。时间间隙被定义为比特定时间段更长的丢失跟踪信号(Zhao等人,#20201;,可以? 使用函数的θtrip_gap如果检测到大于θtrip_gap最后,该函数提供了指定行程表是否应包括几何的灵活性。行程的几何由起始点和目的地停留点的点组成。如果起点未知,我们使用第一个三足的第一个点,或者类似地,最后一个点作为终点。算法1.Trip generation.H. Martin等人计算机,环境和城市系统101(2023)1019387图3. positionfiX、staypoint和locations之间关系的语义可视化。停留点是用户固定的位置固定组,位置是用户多次访问的停留点的聚合。可以跨用户(左)或为每个用户单独(右)生成位置。地图数据©2022Google.H. Martin等人计算机,环境和城市系统101(2023)1019388--≤-3.2.5. 生成旅游据我们所知,关于如何将旅行合并为旅游,目前还没有标准化的方法。在这里,我们采用了一个相当广泛的tours定义,包括Axhausen(2007)中描述的嵌套tours,让用户选择稍后过滤输出。图4中显示了嵌套行程的一个示例:工作-咖啡馆-工作行程是家庭-工作-咖啡馆-工作-家庭较长行程的一部分。这个定义暗示了旅行和旅游之间的n对n关系:一个旅游包含多个旅行,一个旅行可以是多个旅行的一部分算法2.巡演一代。我们从行程生成旅游的算法在图4中进行了直观的解释,并在算法2中显示为伪代码。我们对按时间顺序排序的行程进行了重新排序,并维护了一个行程开始列表C。候选人每一次旅行都是一个潜在的候选人开始旅行。在每个迭代,也就是说,对于每个行程,我们首先检查当前行程和前一行程之 间 是 否 存 在 空 间 间 隙 。 实 现 了 两 个 选 项 : 如 果 提 供 了 具 有location_id属性的表staypoints,我们将location_id的结束位置标识符与location_id的开始 位置标识符 进行比较,形式为loc(end(location_id1))loc(start(location_id))。或者,如果如果停留点不可用,则预定义的空间距离阈值θmax_dist控制结束点和开始点之间的最大距离,即距离(开始(开始),结束(结束1))θmax_dist。此外,我们的实现提供了可能性,以产生部分观察的旅游,以适应跟踪数据集与低时间跟踪覆盖,例如,基于手机数据的研究。参数θmax_gaps确定在单个巡视中允许多少空间间隙。请注意,H. Martin等人计算机,环境和城市系统101(2023)1019389≤ ≤工作候选人名单:11、2一、二、三一、二、三、四2以相反的顺序重复之前的行程,找到行程后停止314咖啡馆XXxX家找到的旅游(工作-咖啡馆-工xxx图第四章在Trackintel中实现了路线生成算法 。维护开始候选者的列表,并迭代检查巡回结束行程。旅游,因为旅游必须开始和结束在同一地点,或开始-并且终点停留点必须位于允许的范围内。如果上述测试产生了θi-1和θi之间的空间间隙,并且θmax_gaps=0,则候选列表被重置为[θi]。否则,将记录间隙接下来,我们测试Tubei是否结束了一个巡回(算法2,第15行)。为此,我们以相反的顺序遍历所有候选项,以便首先找到最短的可能巡回我们将候选的CtkC的起点与Ctki的终点进行比较。同样,通过位置标识符或θmax_dist参数来比较点。 如果它们是相同的,则行程{\displaystyle {\frac| j k i}组成一个旅游团,受两个附加条件的限制:A. 在候选项上迭代时,会对遇到的间隙参数θmax_time用于证明巡回是否在适当的时间段内发生,默认为24小时。B. 当在反向迭代中遇到超过θmax_gaps时,或者当到达超过θmax_time小时前开始的候选者时,循环结束,并且没有找到tour。图4显示了一个例子,其中分别考虑了tour3和tour43.3. 进出口读取和写入数据是标准移动数据分析管道中的重要步骤。为了简化这一过程,Trackintel提供了一个I/O模块,用于访问运动数据并将中间或最终结果存储在文件或数据库中。提供了将带有附加属性信息的移动数据转换为Trackintel兼容格式的三种方法:1)从Pandas Dataframes和Geo- pandas GeoFrames读取,2)从CSV文件格式读取和写入,3)从带有PostGIS扩展的PostgreSQL数据库读取和存储。对于每一种Trackintel数据类型,我们都提供了I/O函数,用于内部检查输入数据格式的有效性。此外,Trackintel还实现了读取功能,将公开可用的开源数据集的跟踪数据转换为Trackintel数据模型。例如,来自Geolife数据集的原始跟踪记录(Zheng等人,2010)可以用Trackintel加载成positionfiX格式。此外,我们还提供了辅助函数来附加运输模式标签,这些标签是为Geolife数据集中的某些个体单独提供的。数据集读取功能使用Trackintel促进和标准化公共运动数据集的处理,这也有助于在同一数据集上对新方法进行3.4. 预处理和后处理Trackintel提供了几种预处理和后处理方法。首先,为了平滑三足动物 的 轨 迹 , 我 们 采 用 道 格 拉 斯 - 普 克 算 法 ( Douglas-Peucker ,1973&)。此外,在同一位置连续出现的停留点可以在时间上聚合。由于GNSS跟踪数据中的噪声或异常值记录,这种重复是跟踪数据中的常见伪像。我们建议合并一个个体的两个停留点s1,s2,如果以下条件成立:a)s1和s2在时间上是连续的,b)s1和s2被分配到相同的位置,c)在s1和s2之间没有记录的三足,d)s1的结束时间点和s2的开始时间点之间的时间间隔小于预定义的阈值θmax_time_gap。s1的开始时间和结束时间时间s2定义新停留点的开始和结束时间。其他停留点属性的聚集,例如几何形状,必须明确指定。3.5. 分析虽然Trackintel的主要功能是实施分层数据模型,但该框架还包括标记运输模式和活动目的的高级分析功能,以及评估每个人跟踪质量的方法3.5.1. 模式标记交通规划中的应用程序通常需要访问个人的出行方式(Kim,Kim,Lee,2022&)。由于Trackintel不假设用户提供的标签、上下文或来自跟踪设备的高级数据的可用性(例如,加速度计),我们实现了一个简单的启发式,以确定从跟踪数据的旅行模式。这种分类是根据速度按三足动物进行的。速度由三足长度(其线串几何中各个点的距离)除以其总持续时间来估计。三足动物根据简单的划分,分为慢速移动(平均速度15公里/小时)、机动移动(100公里/小时)和快速移动(>100公里/小时)。在未来的版本中,对旅行模式或地图匹配的更深入分析(Bachir等人, 2019; Huang等人, 2019年;Alpcean等人,2017; Widhalm等人,2012年)可以并入Trackintel。3.5.2. 位置标记个人的家庭和工作地点在移动数据分析中起着重要作用。如第3节所述,停留点可能与活动标签相关联,但通常此信息不可用。我们使用Efsta- thiades、Antoniades、Pallis和Dikaiakos在2015年提出的OSNA算法的改进版本将“家庭“和“工作“活动标签分配&给停留点。详细地说,OSNA al-taxm将工作日分为休息,工作和休闲时间框架。在“休息“和“休息“时段中具有最长累积持续时间的位置被标记为家,而工作被设置为在“工作“时段中最占优势的位置。虽然原始算法从地理标记的tweet中获得在某个位置花费的时间,但我们利用了staypoint 的started_at和finished_at属性。此外,与Chen和Poor-thuis(2021)提出的R包类似,我们提供了一种快速方法,只需将家庭和工作标签分配给数据中访问频率更高的两个位置(按此顺序)。在这两种情况下,可以可选地对位置进行预过滤,以排除停留点数量不足或停留时间不足的位置。3.5.3. 方式划分如果三足动物的模式标签可用,Trackintel支持以三种不同的方式计算模态分裂:计算模态分裂计数(即,存在多少个具有该模式的三足动物),通过H. Martin等人计算机,环境和城市系统101(2023)10193810--=持续时间(即,个体的三足持续时间的总和)或通过行进距离。此外,可以根据Pandas时间序列频率语法11设置频率,并且可以聚合模式用户或数据集。在图6中可视化了一个用户的示例,其中通过计数(图6a)和通过距离(图6b)的模态划分之间的差异突出。3.5.4. 跟踪质量评估跟踪研究数据分析的一个重要步骤是评估跟踪质量,即时间覆盖范围。时间跟踪质量,这里定义为记录用户
下载后可阅读完整内容,剩余1页未读,立即下载
cpongm
- 粉丝: 4
- 资源: 2万+
上传资源 快速赚钱
- 我的内容管理 收起
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
会员权益专享
最新资源
- RTL8188FU-Linux-v5.7.4.2-36687.20200602.tar(20765).gz
- c++校园超市商品信息管理系统课程设计说明书(含源代码) (2).pdf
- 建筑供配电系统相关课件.pptx
- 企业管理规章制度及管理模式.doc
- vb打开摄像头.doc
- 云计算-可信计算中认证协议改进方案.pdf
- [详细完整版]单片机编程4.ppt
- c语言常用算法.pdf
- c++经典程序代码大全.pdf
- 单片机数字时钟资料.doc
- 11项目管理前沿1.0.pptx
- 基于ssm的“魅力”繁峙宣传网站的设计与实现论文.doc
- 智慧交通综合解决方案.pptx
- 建筑防潮设计-PowerPointPresentati.pptx
- SPC统计过程控制程序.pptx
- SPC统计方法基础知识.pptx
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功