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点之间的最大距离

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

opengauss概述-基础知识篇-备考华为高斯

目录 &#x1f9e8;考前准备: &#x1f3a1;数据库操作语言 ✨OLTP和OLAP &#x1f3af;常用函数 &#x1f9f2;字符处理函数 关于 left 和 right 特别重点的字符串函数 &#x1f9f2;数字操作函数 关于 ceil 和 floor &#x1f9f2;时间和日期处理函数 &#x1f9f…

专项技能训练五《云计算网络技术与应用》实训7-1:安装mininet

文章目录 mininet安装1. 按6-1教程安装opendaylight控制器。2. 按6-2教程安装RYU控制器。3. 按5-1教程安装openvswitch虚拟交换机并开启服务。4. 将老师所给mininet安装包试用winSCP传送至电脑端。5. 安装net-tools。6. 安装mininet7. 安装完成后&#xff0c;使用命令建立拓扑&…

【网络安全产品】---应用防火墙(WAF)

what Web应用防火墙&#xff08;Web Application Firewall) WAF可对网站或者App的业务流量进行恶意特征识别及防护&#xff0c;在对流量清洗和过滤后&#xff0c;将正常、安全的流量返回给服务器&#xff0c;避免网站服务器被恶意入侵导致性能异常等问题&#xff0c;从而保障…

快速了解Django:核心概念解析与实践指南

title: 快速了解Django&#xff1a;核心概念解析与实践指南 date: 2024/5/1 20:31:41 updated: 2024/5/1 20:31:41 categories: 后端开发 tags: Django核心路由系统视图系统ORM管理中间件Web框架登录装饰器 第一章&#xff1a;Django简介 背景和发展历程&#xff1a; Djan…

计算机毕业设计springboot基于vue电商抢购限时秒杀系统ch0h8

技术栈 ide工具&#xff1a;IDEA 或者eclipse 编程语言: java 数据库: mysql5.7以上版本 可选框架&#xff1a;ssmspringboot都有的 前端&#xff1a;vue.jsElementUI 详细技术&#xff1a;springbootSSMvueMYSQLMAVEN 数据库工具&#xff1a;Navicat/SQLyog都可以 开发工具 Ec…

【算法设计与分析】六、动态规划:(二)上机-1、地牢逃生【理论到程序】

文章目录 一、题目1、问题2、输入输出要求3、样例说明4、数据范围 二、思路1、GPT4 - fail算法解释C 实现 2、Claude3 - fail问题分析算法实现 3、个人拙见 - succeed 三、代码实现 一、题目 1、问题 用一个 nn 的矩阵表示一座地牢&#xff0c;矩阵中第 i 行第 j 列的方格的值…

力扣每日一题106:从中序与后序遍历序列构造二叉树

题目 中等 相关标签 相关企业 给定两个整数数组 inorder 和 postorder &#xff0c;其中 inorder 是二叉树的中序遍历&#xff0c; postorder 是同一棵树的后序遍历&#xff0c;请你构造并返回这颗 二叉树 。 示例 1: 输入&#xff1a;inorder [9,3,15,20,7], postorder …

OpenCV(五) —— 人脸识别模型训练与 Windows 下的人脸识别

本文主要内容&#xff1a; 如何训练 OpenCV 的人脸识别模型如何在 Windows 下利用 OpenCV 进行人脸识别 1、概述 人脸识别需要人脸模型&#xff08;特征集合&#xff09;的支持&#xff0c;人脸定位的速度与准确度取决于模型。 OpenCV 提供了已经训练好的模型&#xff0c;无…

KAN网络认识

首先&#xff0c;这是一个基于柯尔莫哥洛夫-阿诺德表示定理的网络。这个定理指出如果函数f是定义在有界域上的多变量连续函数&#xff08;即最终要拟合的非线性函数是连续的&#xff09;&#xff0c;那么该函数就可以表示为多个单变量、加法连续函数的有线组合。 对于机器学习…

大数据BI可视化(Echarts组件)项目开发-熟悉交互API5.0

全局echarts对象 init初始化 registerTheme注册主题 var mCharts echarts.init(document.querySelector("div"), itcast)registerMap地图图表 connect 代码 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8&qu…

OpenCV(六) —— Android 下的人脸识别

本篇我们来介绍在 Android 下如何实现人脸识别。 上一篇我们介绍了如何在 Windows 下通过 OpenCV 实现人脸识别&#xff0c;实际上&#xff0c;在 Android 下的实现的核心原理是非常相似的&#xff0c;因为 OpenCV 部分的代码改动不大&#xff0c;绝大部分代码可以直接移植到 …

ubuntu安装LVGL/lv_img_conv并在thinkphp中进行调用生成bin文件

项目需求&#xff1a;需要处理图片成为bin文件&#xff0c;并以二进制的方式传给蓝牙设备&#xff0c;当前仅介绍如何安装&#xff0c;对lvgl功能和简介不做过多描述 项目库地址&#xff1a;https://github.com/lvgl/lv_img_conv 安装过程比较简单 一&#xff0c;确保node.j…

mall-cook本地部署运行

下载源代码 https://github.com/wangyuan389/mall-cook 下载好之后解压&#xff0c;删除.github和yarn.lock&#xff0c;因为使用pnpm 启动文档部署 切换到packages\mall-cook-document&#xff0c;删除yarn.lock&#xff0c;安装依赖包pnpm install 执行pnpm dev启动文档…

C语言/数据结构——(用双链表实现数据的增删查改)

一.前言 嗨嗨嗨&#xff0c;大家好久不见&#xff01;前面我们已经通过数组实现数据的增删查改、单链表实现数据的增删查改&#xff0c;现在让我们尝试一下使用双链表实现数据的增删查改吧&#xff01; 二.正文 如同往常一样&#xff0c;对于稍微大点的项目来说&#xff0c;…

推荐网站(2)今日热榜合集,看不同软件的热点事件

当我们想要看微博&#xff0c;今日头条&#xff0c;bilibili等等今日热点时&#xff0c;需要打开对应的app查看&#xff0c;但是有了这个网站我们可以看不同平台的热点消息&#xff0c;甚至京东&#xff0c;淘宝等购物软件&#xff0c;也能看到热销总榜。 链接直达&#xff1a;…

day-28 除自身以外数组的乘积

思路 利用两个空数组left&#xff08;left[i]表示nums下标从0到i的乘积&#xff09;和right&#xff08;right[i]表示nums下标从n-1到i的乘积&#xff09; 解题方法 返回数组nums[i]right[i1]*left[i-1],第一个元素和最后一个元素单独考虑 Code class Solution {public int[…

【计算机网络】计算机网络的定义和分类

一.定义 计算机网络并没有一个精确和统一的定义&#xff0c;在计算机网络发展的不同阶段&#xff0c;人们对计算机网络给出了不同的定义&#xff0c;这些定义反映了当时计算机网络技术的发展水平。 例如计算机网络早期的一个最简单定义&#xff1a;计算机网络是一些互连的、自…

c#Excel:2.写入Excel表 3.读取Excel表

--写入Excel表-- 该例首先从数据库aq中读取学生信息表staq(参考数据库章节)&#xff0c;然后将学生信息表中的数据写入Excel表格中 &#xff08;1&#xff09;在OfficeOperator类库项目的ExcelOperator类中定义索引器&#xff0c;用于获取Excel表格中的单元格&#xff0c;代码…

队列集使用

文章目录 前言一、功能描述二、功能实现 前言 在实际使用中我们可能要从多个队列中得到数据&#xff0c;就需要队列集。 一、功能描述 创建两个队列Queue1、Queue2。Task1往Queue1写数据、Task2往Queue2写数据。Task3使用QueueSet监测这两个队列。 二、功能实现 创建两个队列…

ArcGIS软件:地图投影的认识、投影定制

这一篇博客介绍的主要是如何在ArcGIS软件中查看投影数据&#xff0c;如何定制投影。 1.查看地图坐标系、投影数据 首先我们打开COUNTIES.shp数据&#xff08;美国行政区划图&#xff09;&#xff0c;并点击鼠标右键&#xff0c;再点击数据框属性就可以得到以下的界面。 我们从…