Libcity笔记:原子文件

1 介绍

Libcity中的数据以原子文件的形式存在

2 原子文件类别

对于不同的交通预测任务,可能用到不同的原子文件,同一个数据集不一定包含全部六种原子文件

  • 网格数据需要按照先行后列的顺序遍历
  • OD数据需要按照先起点后终点的顺序遍历

2.1 geo

存储地理实体属性信息

geo_id主键,唯一确定一个 geo 实体。 (如传感器, 经纬度点, 路段, 区域等的编号)
type

表示该 geo 的类型。有 [PointLineStringPolygon] 三种值

coordinates由 float 类型组成的数组或嵌套数组。 描述 geo 实体的位置信息,采用 Geojson的 coordinates 格式
properties

描述该 geo 的属性信息

若有多个属性,可以使用不同的列名定义为多列数据,如 POI_name, POI_type

对于网格数据,必有两列 row_id 和 column_id 属性表示网格的行列编号

2.2  usr

存储交通使用者信息

usr_id主键,唯一确定一个 usr 实体
properties

描述该 usr 实体的属性信息

若有多个属性,可以使用不同的列名定义为多列数据,如 genderbirth_date

2.3 rel

存储实体间的关系信息,如路网

rel_id主键,唯一确定一个实体间的关系
type枚举类。取值为 [usrgeo],表示该关系是基于 geo 还是 usr
origin_id关系起点方的 ID,为 Geo 表或 Usr 表中的一个
destination_id关系终点方的 ID,为 Geo 表或 Usr 表中的一个
properties

描述该关系所具有的属性信息。

若有多个属性,可以使用不同的列名定义多列数据。

 

2.4  dyna

需要保证geo文件中的geo_id的顺序跟dyna文件中的`entity_id的顺序保持一致

存储交通状态信息

dyna_id主键,唯一标识动态表中的一条记录
type枚举类。一共有两种取值: trajectory(轨迹预测任务) 和 state(状态预测任务)
time

时间信息,采用 ISO-8601 标准 中的日期时间组合表示法, 如: 2020-12-07T02:59:46Z

按照 <entity_id> 和 <time> 双关键字排列,即<entity_id>相同的记录放在一起并按照<time>排序

entity_id

描述该记录是基于哪一个实体观测产生的,就是 geo 或 usr的编号

properties描述该条记录的属性信息,若有多个属性,可以使用不同的列名定义为多列数据

2.4.1 交通预测任务下的entity_id & 文件后缀

对于传感器、路段、区域等实体entity_id 的列名为 [entity_id]文件后缀名为 .dyna
对于网格结构的交通数据

entity_id 变成2列,列名为 [row_id, column_id]

网格数据需要按照先行后列的顺序遍历网格

文件后缀名为 .grid
对于基于OD结构的交通数据

entity_id 变成2列,列名为 [origin_id, destination_id]

OD数据需要按照先起点后终点的顺序遍历数据

文件后缀名为 .od
对于网格结合OD结构的交通数据

entity_id 变成4列,列名为 [origin_row_id, origin_column_id, destination_row_id, destination_column_id]

网格的OD数据则按照起点行、起点列、终点行、终点列的顺序遍历

文件后缀名为 .gridod

2.4.2  轨迹任务下的entity_id & 文件后缀

对于轨迹数据,同一用户 <entity_id> 的轨迹应先按 <traj_id> 排序,<traj_id> 相同者按照 <time> 排序

GPS点轨迹
  • 格式为: dyna_id, type, time, entity_id, (traj_id), coordinates, properties.

    • entity_id列的内容应为usr_id

    • traj_id表示同一用户的多条轨迹的编号(从0开始),如果用户只有一条轨迹,则该列可以为空

    • coordinates列的内容为GPS点的纬度和经度

基于路段的轨迹
  • 格式为: dyna_id, type, time, entity_id, (traj_id), location, properties.

    • entity_id列的内容应为usr_id

    • traj_id表示同一用户的多条轨迹的编号(从0开始),如果用户只有一条轨迹,则该列可以为空

    • location列的内容是geo_id,指向geo表代表一个路段

基于POI的轨迹
  • 格式为: dyna_id, type, time, entity_id, (traj_id), location, properties.

    • entity_id列的内容应为usr_id

    • traj_id表示同一用户的多条轨迹的编号(从0开始),如果用户只有一条轨迹,则该列可以为空

    • location列的内容是geo_id,指向geo表代表一个POI。

 

2.5 ext

存储外部信息,如天气、温度等

ext_id主键,唯一标识外部数据表中的一条记录
time

时间信息,采用 ISO-8601 标准 中的日期时间组合表示法, 如: 2020-12-07T02:59:46Z

properties

描述该条记录的属性信息

若有多个属性,可以使用不同的列名定义为多列数据,比如既有温度数据、又有湿度数据。

2.6 Config

  • Config 文件用以补充描述上述五个表自身的信息, 以 json 形式保存并由 geo、  usr、 rel、 dyna、 ext、 info 六个键组成
    • geo、 rel、 dyna、 ext
      • 包含一个 including_types 键, 以数组的形式描述该表中所具有的 type 值
      • 其后每个 type 作为键,描述该 type 下 properties 具有哪些键及其数据类型 。
          • 比如geo的类型是Point,Point没有任何额外properties列
          • 比如rel的类型的geo,geo有一个额外properties 'cost'类型是'num'
    • usr
      • 包含一个 properties 键,描述表中 properties 包含哪些键及其数据类型
    • info
      • 包含其他必要的数据集统计信息,针对不同的交通预测任务,包含有不同的内容

文件名

geo_file.geo 文件的文件名, 字符串类型, 默认为数据集名
rel_file.rel 文件的文件名, 字符串类型, 默认为数据集名。
data_files数据文件的文件名 (例如 .dyna, .grid, .gridod), 支持数组或字符串,默认为数据集名
ext_file .ext 文件的文件名, 字符串类型, 默认为数据集名
从各文件中加载的列名weight_col

 从 .rel 文件中加载的列名【作为训练/预测的内容】, 支持只有一个元素的字符串数组或字符串

不指定的话,如果 .rel 文件只有一列权重列,则没有问题,否则报错

data_col从数据文件(如 .dyna, .grid, .gridod)加载的列名 , 支持数组或字符串,不指定则全部加载
ext_col从外部数据文件中加载的列名, 支持数组或字符串,不指定则全部加载
output_dim指定模型输出的维度, 一般应该跟 data_col 中指定的属性列名的数量相同
time_intervals 数据集时间片的长度,以秒为单位
init_weight_inf_or_zero 取值为 [inf , zero]。 加载 .rel 文件构建邻接矩阵时,初始化邻接矩阵为全INF (inf) 还是全0 (zero), 默认为 inf
set_weight_link_or_dist

取值为 [linkdist], 当加载 .rel 文件构建邻接矩阵时,使用文件中权重列中的原始值 (dist) 还是将之修订为全 01 的矩阵 (link), 默认为 dist

 [注意: 如果 .rel 文件中只有相连的关系,没有不相连的关系,应该指定为 link]

calculate_weight_adj

从 .rel 文件获取的邻接矩阵的权重是否需要进一步进行计算, 默认为 False

部分邻接矩阵在原始数据的基础上,进行了一些计算。

目前的计算方法是带有阈值的高斯核方法:

weight_adj_epsilon

高斯核的阈值。 经过计算的权重如果小于该阈值,则变成0

此参数依赖于参数 calculate_weight_adj=True 。

distance_upper

对于轨迹下一跳预测任务才有的参数】

POI点之间的最大距离

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/595339.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Netty 实现dubbo rpc

一、RPC 的基本介绍 RPC (Remote Procedure Call) 远程过程调用&#xff0c;是一个计算机通信协议。该协议允许运行于一台计算机的程序调用另一台计算机的子程序&#xff0c;而程序员无需额外的为这个交互编程。也就是说可以达到两个或者多个应用程序部署在不同的服务器上&…

OpenCV 入门(七)—— 身份证识别

OpenCV 入门系列&#xff1a; OpenCV 入门&#xff08;一&#xff09;—— OpenCV 基础 OpenCV 入门&#xff08;二&#xff09;—— 车牌定位 OpenCV 入门&#xff08;三&#xff09;—— 车牌筛选 OpenCV 入门&#xff08;四&#xff09;—— 车牌号识别 OpenCV 入门&#xf…

德国韦纳WENAROLL滚压刀,液压缸,滚光刀,挤压刀,滚轧刀

德国韦纳WENAROLL滚压刀,液压缸&#xff0c;滚光刀,挤压刀&#xff0c;滚轧刀&#xff08;百度一下&#xff0c;西安尚融&#xff09; 德国韦纳&#xff08;WENAROLL&#xff09;的滚压刀、液压缸、滚光刀、挤压刀和滚轧刀在工业领域享有很高的声誉&#xff0c;这些产品因其高…

SM618卡件SM480模块和利时

SM618卡件❗电:183-6998-1851❗SM480模块和利时。自动化程度的提高&#xff0c;I/O点数大幅增 加&#xff0c;传统单一配线的方式已经无法满足发展的需 要SM618卡件SM480模块和利时。&#xff0e;对简单、可靠的配线方式的需求日益强烈&#xff0e; 传统接线 - 以并联方式连 接…

C# WinForm —— 12 ListBox绑定数据

ListBox加载大量数据时&#xff0c;避免窗体闪烁的方法&#xff1a; 在加载语句的前后分别加上 BeginUpdate()方法 和 EndUpdate()方法 指定一个集合为绑定的数据源 1. 首先&#xff0c;右键项目&#xff0c;添加类 2. 在新建的类文件中添加属性值信息 3. 构建初始化的对象…

访问学者在外访学期间,是否可以中途回国?

在全球化的今天&#xff0c;访问学者制度已成为促进国际学术交流与合作的重要桥梁。然而&#xff0c;对于许多国外访问学者来说&#xff0c;一个常见的问题是&#xff1a;在访学期间&#xff0c;我是否可以中途回国&#xff1f;这个问题涉及到多个方面&#xff0c;包括政策法规…

7步教程从零开始搭建跨境电商平台开发

跨境电商平台开发一直是创业者们追逐的热门领域之一。本文将为您提供一个7步教程&#xff0c;帮助您从零开始搭建跨境电商平台&#xff0c;让您在这个充满机遇的领域中抢占先机。 步骤一&#xff1a;市场调研和定位 在开始搭建跨境电商平台之前&#xff0c;第一步是进行充分的…

大数据与会计专业主要学什么课程

大数据与会计专业是一个结合了传统会计知识与现代大数据技术的交叉学科&#xff0c;旨在培养既懂会计又熟悉大数据分析的复合型人才。该专业的学生将会学习以下主要课程内容&#xff1a; 会计基础课程&#xff1a;包括基础会计、财务会计、成本会计、管理会计等&#xff0c;这些…

我独自升级崛起下载教程 我独自升级崛起怎么一键下载

定于5月8日全球盛大发布的动作RPG力作《我独自升级崛起》&#xff0c;基于备受追捧的同名动画及网络漫画&#xff0c;誓为热情洋溢的游戏爱好者们呈献一场深度与广度兼具的冒险盛宴。这款游戏巧妙融合网络武侠元素&#xff0c;其创意十足的设计框架下&#xff0c;核心叙述聚焦于…

OSPF综合实验(超详细易懂)(HCIP)

1、拓扑信息 2、需求分析 3、IP规划 4、配置 5、测试 1、拓扑信息 2、需求分析 R4为ISP&#xff0c;其上只能配置I地址&#xff1b; R4与其他所有直连设备间均使用公有IP 公网中使用的是点到…

外贸大客户开发的三大困境

外贸大客户开发的三大困境&#xff0c;第一个是进不来&#xff0c;什么叫进不来呢&#xff1f;就是客户&#xff0c;大客户他不仅能够为企业带来大额的业绩&#xff0c;而且利润也高&#xff0c;那么也对于这种品牌也有一定的关联&#xff0c;还能为企业带来更多的一些资源&…

Python测试框架Pytest的参数化详解

上篇博文介绍过&#xff0c;Pytest是目前比较成熟功能齐全的测试框架&#xff0c;使用率肯定也不断攀升。 在实际工作中&#xff0c;许多测试用例都是类似的重复&#xff0c;一个个写最后代码会显得很冗余。这里&#xff0c;我们来了解一下pytest.mark.parametrize装饰器&…

karateclub,一个超酷的 Python 库!

更多资料获取 &#x1f4da; 个人网站&#xff1a;ipengtao.com 大家好&#xff0c;今天为大家分享一个超酷的 Python 库 - karateclub。 Github地址&#xff1a;https://github.com/benedekrozemberczki/karateclub Python karateclub是一个用于图嵌入和图聚类的库&#xff…

git commit 提交报错pre-commit hook failed (add --no-verify to bypass) 解决方法,亲测有效

问题截图 今天在执行 git commit 命令时报错&#xff1a;pre-commit hook failed (add --no-verify to bypass) 解决 参考文章&#xff1a;git commit报错&#xff1a;pre-commit hook failed的解决方法 具体原理什么的就不解释了&#xff0c;可以看看上面的参考文章 解决方…

如何使用高德地图的 Loca 展示 gpx 文件的 3D 路径,Loca.LineLayer

如何使用高德地图的 Loca 展示 gpx 文件的 3D 路径&#xff0c;Loca.LineLayer 找寻了好久&#xff0c;终于将这个展示 3D 路径的功能实现了。 在线实例&#xff1a; http://kylebing.cn/tools/map/#/gpx/gpx-viewer-3d 这里是用于展示 gpx 路径&#xff0c;关于 gpx 的相关知…

Linux migrate_type进一步探索

文章接着上回Linux migrate_type初步探索 1、物理页面添加到buddy系统 我们都知道物理内存一开始是由memblock进行分配管理&#xff0c;后面会切换到buddy系统管理。那么接下来我们看一下&#xff0c;memblock管理的物理页面是怎么添加到buddy系统中的。 start_kernel() -&g…

液晶数显式液压万能试验机WES-300B

一、简介 主机为两立柱、两丝杠、油缸下置式&#xff0c;拉伸空间位于主机的上方&#xff0c;压缩、弯曲试验空间位于主机下横梁和工作台之间。测力仪表采用高清液晶显示屏&#xff0c;实验数据方便直观。 主要性能技术指标 最大试验力&#xff08;kN&#xff09; 300 试…

文件删了,回收站清空了怎么恢复?文件恢复软件一览

在日常生活和工作中&#xff0c;我们常常会遇到误删除文件的情况&#xff0c;有时甚至会因为清空了回收站而无法找回这些文件。这些文件可能包含重要的工作数据、个人照片或其他珍贵的回忆。那么&#xff0c;在这种情况下&#xff0c;我们该如何恢复这些被删除且清空回收站的文…

外婆传(封家香传)

余乃民国三十载&#xff08;公元一千九百四十一&#xff09;九月初九重阳佳节日出生于衡阳县长塘村封谷里。父封盖梅&#xff0c;在民国二十九年&#xff08;公元一千九百四十&#xff09;驾鹤西归&#xff0c;遗世独立&#xff0c;吾未能见其颜。母氏&#xff0c;因丧夫之痛&a…

C++ | Leetcode C++题解之第59题螺旋矩阵II

题目&#xff1a; 题解&#xff1a; class Solution { public:vector<vector<int>> generateMatrix(int n) {int num 1;vector<vector<int>> matrix(n, vector<int>(n));int left 0, right n - 1, top 0, bottom n - 1;while (left < r…