CN116155926A - 车辆行程计算方法、装置及车联网服务器 - Google Patents
车辆行程计算方法、装置及车联网服务器 Download PDFInfo
- Publication number
- CN116155926A CN116155926A CN202310411878.3A CN202310411878A CN116155926A CN 116155926 A CN116155926 A CN 116155926A CN 202310411878 A CN202310411878 A CN 202310411878A CN 116155926 A CN116155926 A CN 116155926A
- Authority
- CN
- China
- Prior art keywords
- data
- vehicle
- window
- cache
- target
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000004364 calculation method Methods 0.000 title claims abstract description 40
- 230000006855 networking Effects 0.000 title description 4
- 238000000034 method Methods 0.000 claims abstract description 42
- 238000005096 rolling process Methods 0.000 claims description 40
- 230000005611 electricity Effects 0.000 claims description 19
- 238000004590 computer program Methods 0.000 claims description 14
- 238000004140 cleaning Methods 0.000 claims description 13
- 230000008569 process Effects 0.000 claims description 10
- 230000003111 delayed effect Effects 0.000 claims description 8
- XLYOFNOQVPJJNP-UHFFFAOYSA-N water Substances O XLYOFNOQVPJJNP-UHFFFAOYSA-N 0.000 claims description 8
- 239000000446 fuel Substances 0.000 claims description 3
- 238000004422 calculation algorithm Methods 0.000 claims description 2
- 230000001133 acceleration Effects 0.000 description 18
- 238000003860 storage Methods 0.000 description 7
- 238000010586 diagram Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 230000009286 beneficial effect Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 238000009826 distribution Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000003672 processing method Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1097—Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
-
- G—PHYSICS
- G07—CHECKING-DEVICES
- G07C—TIME OR ATTENDANCE REGISTERS; REGISTERING OR INDICATING THE WORKING OF MACHINES; GENERATING RANDOM NUMBERS; VOTING OR LOTTERY APPARATUS; ARRANGEMENTS, SYSTEMS OR APPARATUS FOR CHECKING NOT PROVIDED FOR ELSEWHERE
- G07C5/00—Registering or indicating the working of vehicles
- G07C5/008—Registering or indicating the working of vehicles communicating information to a remotely located station
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/12—Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Health & Medical Sciences (AREA)
- Computing Systems (AREA)
- General Health & Medical Sciences (AREA)
- Medical Informatics (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本申请涉及汽车技术领域,提供了一种车辆行程计算方法、装置及车联网服务器。该方法包括:根据当前遍历到的数据中的动力装置信息和车辆速度信息判断目标车辆是否处于行驶状态;当目标车辆处于行驶状态时,则判断缓存的单值状态是否为空,当目标车辆没有处于行驶状态时,则遍历下一条数据;当缓存中的单值状态为空时,则将当前遍历到的数据存入缓存中目标表中的第一行,当缓存中的单值状态不为空时,则根据当前遍历到的数据更新缓存中目标表中的第二行的数据;判断当前遍历到的数据是否为该窗口数据中的最后一条数据,若是则根据缓存中的数据计算该窗口数据对应的车辆行程,若不是则遍历下一条数据。
Description
技术领域
本申请涉及汽车技术领域,尤其涉及一种车辆行程计算方法、装置及车联网服务器。
背景技术
车联网基于物联网和互联网,通过对大量车辆动态信息进行有效利用,可以为车辆提供多种服务,比如为车与车之间的间距提供保障,降低车辆发生碰撞事故的几率;帮助车主实时导航,并通过与其它车辆和网络系统的通信,提高交通运行的效率等。目前车联网领域的很多应用都涉及到驾驶行程的实时计算,实时计算行程数据有利于将驾驶风险项快速反馈给用户,减少交通安全事故。然而现有的车辆行程计算中数据处理实时性差。
发明内容
有鉴于此,本申请实施例提供了一种车辆行程计算方法、装置以及车联网服务器,以解决现有技术中,车辆行程计算中数据处理实时性差的问题。
本申请实施例的第一方面,提供了一种车辆行程计算方法,包括:利用滚动窗口滑动处理目标车辆的分组数据,其中,滚动窗口每滑动一次,得到一个窗口数据;对于滚动窗口每次滑动得到的窗口数据,遍历该窗口数据中的各条数据;根据当前遍历到的数据中的动力装置信息和车辆速度信息判断目标车辆是否处于行驶状态;当目标车辆处于行驶状态时,则判断缓存的单值状态是否为空,当目标车辆没有处于行驶状态时,则遍历下一条数据;当缓存中的单值状态为空时,则将当前遍历到的数据存入缓存,当缓存中的单值状态不为空时,则根据当前遍历到的数据更新缓存中的数据;判断当前遍历到的数据是否为该窗口数据中的最后一条数据,若是则根据缓存中的数据计算该窗口数据对应的车辆行程,若不是则遍历下一条数据。
本申请实施例的第二方面,提供了一种车辆行程计算装置,包括:滑动模块,被配置为利用滚动窗口滑动处理目标车辆的分组数据,其中,滚动窗口每滑动一次,得到一个窗口数据;遍历模块,被配置为对于滚动窗口每次滑动得到的窗口数据,遍历该窗口数据中的各条数据;第一判断模块,被配置为根据当前遍历到的数据中的动力装置信息和车辆速度信息判断目标车辆是否处于行驶状态;第二判断模块,被配置为当目标车辆处于行驶状态时,则判断缓存的单值状态是否为空,当目标车辆没有处于行驶状态时,则遍历下一条数据;缓存模块,被配置为当缓存中的单值状态为空时,则将当前遍历到的数据存入缓存,当缓存中的单值状态不为空时,则根据当前遍历到的数据更新缓存中的数据;第三判断模块,被配置为判断当前遍历到的数据是否为该窗口数据中的最后一条数据,若是则根据缓存中的数据计算该窗口数据对应的车辆行程,若不是则遍历下一条数据。
本申请实施例的第三方面,提供了一种车联网服务器,包括存储器、分布式处理引擎以及存储在存储器中并且可在分布式处理引擎上运行的计算机程序,分布式处理引擎执行计算机程序时实现如上述方法的步骤。
本申请实施例与现有技术相比存在的有益效果至少包括:利用滚动窗口滑动处理目标车辆的分组数据,其中,滚动窗口每滑动一次,得到一个窗口数据;对于滚动窗口每次滑动得到的窗口数据,遍历该窗口数据中的各条数据;根据当前遍历到的数据中的动力装置信息和车辆速度信息判断目标车辆是否处于行驶状态;当目标车辆处于行驶状态时,则判断缓存的单值状态是否为空,当目标车辆没有处于行驶状态时,则遍历下一条数据;当所述缓存中的单值状态为空时,则将当前遍历到的数据存入所述缓存中目标表中的第一行,当所述缓存中的单值状态不为空时,则根据当前遍历到的数据更新所述缓存中目标表中的第二行的数据;判断当前遍历到的数据是否为该窗口数据中的最后一条数据,若是则根据缓存中的数据计算该窗口数据对应的车辆行程,若不是则遍历下一条数据。因为本申请实施例通过分布式处理引擎进行滚动窗口滑动处理以及窗口数据内多条数据的遍历,所以,采用上述技术手段,可以解决现有技术中车辆行程计算中数据处理实时性差的问题,进而提高车辆行程计算中数据处理的实时性。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
图1是本申请实施例提供的一种车辆行程计算方法的流程示意图;
图2是本申请实施例提供的另一种车辆行程计算方法的流程示意图;
图3是本申请实施例提供的一种车辆行程计算装置的结构示意图;
图4是本申请实施例提供的一种车联网服务器的结构示意图。
具体实施方式
以下描述中,为了说明而不是为了限定,提出了诸如特定系统结构、技术之类的具体细节,以便透彻理解本申请实施例。然而,本领域的技术人员应当清楚,在没有这些具体细节的其它实施例中也可以实现本申请。在其它情况中,省略对众所周知的系统、装置、电路以及方法的详细说明,以免不必要的细节妨碍本申请的描述。
图1是本申请实施例提供的一种车辆行程计算方法的流程示意图。图1的车辆行程计算方法可以由车联网服务器上设置的分布式处理引擎执行。可选地,图1的车辆行程计算方法也可以由计算机或普通服务器,或者计算机或普通服务器上设置的分布式处理引擎,或者计算机或普通服务器上的软件执行。车联网服务器可以看做是为车联网提供服务的服务器,分布式处理引擎可以是Flink引擎。以分布式处理引擎作为执行主体为例,该车辆行程计算方法包括:
S101,利用滚动窗口滑动处理目标车辆的分组数据,其中,滚动窗口每滑动一次,得到一个窗口数据;
S102,对于滚动窗口每次滑动得到的窗口数据,遍历该窗口数据中的各条数据;
S103,根据当前遍历到的数据中的动力装置信息和车辆速度信息判断目标车辆是否处于行驶状态;
S104,当目标车辆处于行驶状态时,则判断缓存的单值状态是否为空,当目标车辆没有处于行驶状态时,则遍历下一条数据;
S105,当所述缓存中的单值状态为空时,则将当前遍历到的数据存入所述缓存中目标表中的第一行,当所述缓存中的单值状态不为空时,则根据当前遍历到的数据更新所述缓存中目标表中的第二行的数据;
S106,判断当前遍历到的数据是否为该窗口数据中的最后一条数据,若是则根据缓存中的数据计算该窗口数据对应的车辆行程,若不是则遍历下一条数据。
具体地:缓存是分布式处理引擎的内部的短期存储装置。单值状态也就是ValueState,用于表明缓存中有没有数据,若单值状态为空,说明缓存中没有数据。对一个窗口数据中的各条数据进行遍历,对于当前遍历到的数据,在目标车辆处于行驶状态并且缓存中的单值状态为空时,将当前遍历到的数据存入所述缓存中目标表中的第一行(单值状态为空,说明缓存中没有数据,也说明当前遍历到的数据是本次行程的第一条数据);在目标车辆处于行驶状态并且缓存中的单值状态不为空时,则根据当前遍历到的数据更新所述缓存中目标表中的第二行的数据(单值状态不为空,说明缓存中有数据,也说明当前遍历到的数据不是本次行程的第一条数据)。直至遍历到该窗口数据中的最后一条数据后,根据缓存中的数据(此时缓存中的数据已经被最后一条数据更新)计算该窗口数据对应的车辆行程。滚动窗口继续滑动,得到该窗口数据的下一个窗口数据,继续对下一个窗口数据进行上述处理,直至完成对目标车辆的分组数据的全部处理。
本次行程第一个窗口的第一条数据判断时,单值状态为空;第一个窗口结束,缓存已经存入数据,第二个窗口的第一条数据判断时,单值状态不为空。
根据本申请实施例提供的技术方案,利用滚动窗口滑动处理目标车辆的分组数据,其中,滚动窗口每滑动一次,得到一个窗口数据;对于滚动窗口每次滑动得到的窗口数据,遍历该窗口数据中的各条数据;根据当前遍历到的数据中的动力装置信息和车辆速度信息判断目标车辆是否处于行驶状态;当目标车辆处于行驶状态时,则判断缓存的单值状态是否为空,当目标车辆没有处于行驶状态时,则遍历下一条数据;当所述缓存中的单值状态为空时,则将当前遍历到的数据存入所述缓存中目标表中的第一行,当所述缓存中的单值状态不为空时,则根据当前遍历到的数据更新所述缓存中目标表中的第二行的数据;判断当前遍历到的数据是否为该窗口数据中的最后一条数据,若是则根据缓存中的数据计算该窗口数据对应的车辆行程,若不是则遍历下一条数据。因为本申请实施例通过分布式处理引擎进行滚动窗口滑动处理以及窗口数据内多条数据的遍历,所以,采用上述技术手段,可以解决现有技术中车辆行程计算中数据处理实时性差的问题,进而提高车辆行程计算中数据处理的实时性。
本申请实施例还具有如下优点:现有的车辆行程计算需要依赖外部缓存服务,外部缓存服务查询速度慢,本申请实施例是使用分布式处理引擎的内部缓存,所以本申请实施例计算车辆行程速度快;程序重启容易导致数据丢失,本申请实施例通过开启flink的Checkpoint确保数据不会丢失;本申请实施例的分布式处理引擎具有高吞吐和低延迟的优势;现有的车辆行程计算需要利用点熄火信号计算行程,本申请实施例通过滚动窗口滑动处理以及窗口数据内多条数据的遍历计算行程,不依赖于点熄火信号。
利用滚动窗口滑动处理目标车辆的分组数据之前,方法还包括:对截止当前时间的第一预设时长内接收到多个车辆的车辆数据进行数据清洗,其中,数据清洗,包括:删除格式错误的数据以及缺乏关键信息的数据;根据车辆标识符对经过数据清洗后的车辆数据进行分组,得到每个车辆的分组数据。
目标车辆是多个车辆中的一个。车辆数据中的每条信息都应该包括速度、加速度、车辆标识符、数据采集时间、里程表读数、经纬度信息、油表读数和电表读数等。如果缺少上述任何一种信息,则该条信息缺乏关键信息的数据。格式错误可以理解为不符合预设规定。
车辆数据中的每条信息均携带车辆标识符,所以可以根据各自的车辆标识符进行分组,将同一个车辆的多条信息放入一个组中。
对截止当前时间的第一预设时长内接收到多个车辆的车辆数据进行数据清洗之后,方法还包括:根据数据清洗后的车辆数据中多条数据的采集时间,为车辆数据增加水位线;其中,水位线用于在遍历各个窗口数据中的各条数据之前,对各个窗口数据中的多条数据按照时间排序。
每条数据均有一个采集时间,是数据产生的时间,也可以近似看作是目标车辆向分布式处理引擎上报的时间。水位线也就是watermark,根据每条数据的采集时间,为该条数据设置水位线。水位线为常用技术,在此不再赘述。
根据缓存中的数据计算该窗口数据对应的车辆行程之后,方法还包括:利用该窗口数据中的行程开始时间和目标车辆的车辆标识符构建该窗口数据对应的主键;基于主键将车辆行程保存到数据库中。
该窗口数据中的行程开始时间是该窗口数据中的第一条数据的采集时间。
基于主键将车辆行程保存到数据库中之后,方法还包括:在接收到延迟上报数据时,判断延迟上报数据的车辆标识符和主键的车辆标识符是否一致,若一致则确定延迟上报数据属于目标车辆;在确定延迟上报数据属于目标车辆的情况下,若延迟上报数据的采集时间减去主键的行程开始时间的差值小于滚动窗口的大小的情况下,则确定延迟上报数据属于主键;在延迟上报数据属于主键的情况下,根据延迟上报数据更新数据库中主键对应的车辆行程。
比如滚动窗口的大小可以设置为5分钟,延迟上报数据的采集时间为9点40,主键的行程开始时间为9点36,二者差值为4,所以延迟上报数据属于主键;在延迟上报数据属于主键,应该根据延迟上报数据更新数据库中主键对应的车辆行程。因为上报可能因为网络问题出现延迟问题,本申请实施例就可以避免延迟导致的车辆行程不准确的问题。
在一个可选实施例中,当单值状态在第二预设时长内没有被读取,则清空缓存中的数据,其中,每判断一次单值状态是否为空,为读取一次单值状态。本实施例相当于将间隔较小的行程合并,比如短时间内目标车辆多次熄火打火,上述清空缓存中的数据,相当于将多次熄火打火看做一次熄火打火。
在一个可选实施例中,当检测到该窗口数据中车辆速度信息处于预设范围内的数据的条数大于预设阈值,舍弃目标车辆上报自身的数据。本实施例是对超时无合理车辆速度但是却连续上报的行为作截断,例如长时间停车不熄火(不符合行驶车辆的车辆速度变化)。
根据当前遍历到的数据中的动力装置信息和车辆速度信息判断目标车辆是否处于行驶状态,包括:在当前遍历到的数据中的动力装置信息表明动力装置处于运行状态并且车辆速度信息大于零的情况下,确定目标车辆处于行驶状态;否则确定目标车辆没有处于行驶状态。
动力装置信息可以是发动机和电机。
根据当前遍历到的数据更新所述缓存中目标表中的第二行的数据,包括:若所述缓存中目标表中的第二行没有数据,则将当前遍历到的数据中属于非极值的信息保存到所述缓存中目标表中的第二行中;若所述缓存中目标表中的第二行有数据,则将当前遍历到的数据中属于非极值的信息覆盖所述缓存中目标表中的第二行中原来的数据;其中,属于非极值的信息,包括:车辆标识符、数据采集时间、里程表读数、经纬度信息油表读数和电表读数。
此外,属于极值的信息,包括:速度和加速度。根据当前遍历到的数据中属于极值的信息判断是否更新所述缓存中目标表中的第一行中属于极值的信息,包括:将当前遍历到的数据中的速度和缓存中目标表中的第一行中的速度进行比较,若当前遍历到的数据中的速度较大,则用当前遍历到的数据中的速度覆盖目标表中的第一行中的速度,若目标表中的第一行中的速度较大,则不用操作;将当前遍历到的数据中的加速度和缓存中目标表中的第一行中的加速度进行比较,若当前遍历到的数据中的加速度较大,则用当前遍历到的数据中的加速度覆盖目标表中的第一行中的加速度,若目标表中的第一行中的加速度较大,则不用操作。
目标表中的第一行保存的速度和加速度,可以看作是直至当前遍历到的数据时窗口数据中的最大速度和最大加速度。
所述缓存中目标表中的第一行的数据依次为:车辆标识符、行程开始时间、行程开始里程表读数、行程开始经纬度、行程开始油表读数、行程开始电表读数、速度和加速度。
根据缓存中的数据计算该窗口数据对应的车辆行程,包括:当前时间减去行程开始时间的差值为行驶时长;当前里程表读数减去行程开始里程表读数的差值为行驶路程;当前经纬度作为该窗口数据对应的车辆行程的终点,行程开始经纬度作为该窗口数据对应的车辆行程的起点,根据当前经纬度和行程开始经纬度确定车辆轨迹;行程开始油表读数减去当前油表读数的差值为油耗;行程开始电表读数减去当前电表读数的差值为电耗;其中,所述车辆行程,包括:所述行驶时长、所述车辆轨迹、所述行驶路程、所述油耗和所述电耗;其中,所述缓存中目标表中的第一行的数据依次为:车辆标识符、行程开始时间、行程开始里程表读数、行程开始经纬度、行程开始油表读数、行程开始电表读数,所述缓存中目标表中的第二行的数据依次为:车辆标识符、当前时间、当前里程表读数、当前经纬度、当前油表读数、当前电表读数。
车辆行程,包括:行驶时长、车辆轨迹、行驶路程、油耗和电耗。除此之外,车辆行程还可以包括:缓存中的数据,也就是说车辆行程包括行驶时长、车辆轨迹、行驶路程、油耗和电耗等计算结果,以及截止目前为止的最大速度、最大加速度、车辆标识符、数据采集时间、里程表读数和经纬度信息等基础信息。所以本申请还可以看做是一种车辆行程信息的实时汇总方法或者实时处理方法或者实时更新方法或者实时上报方法。
图2是本申请实施例提供的图2是本申请实施例提供的另一种车辆行程计算方法的流程示意图,由分布式处理引擎执行,如图2所示,包括:
执行如下循环算法,以计算所述目标车辆的分组数据中每个窗口数据对应的车辆行程:
S201,判断i是否等于N;
S202,若等于N,则确定已处理完目标车辆的分组数据,退出;
S203,若小于N,则遍历第i个窗口数据中的各条数据,i的初始值为1;
S204,根据第j条数据中的动力装置信息和车辆速度信息判断目标车辆是否处于行驶状态,j的初始值为1;
S205,当目标车辆没有处于行驶状态时,则j+1;
S206,当目标车辆处于行驶状态时,则判断缓存的单值状态是否为空;
S207,当缓存中的单值状态为空时,则将当前遍历到的数据存入缓存;
S208,当缓存中的单值状态不为空时,则根据第j条数据更新缓存中的数据;
S209,判断第j条数据是否为i个窗口数据中的最后一条数据;
S210,若不是则j+1;
S211,若是则根据缓存中的数据计算第i个窗口数据对应的车辆行程;
S212,在完成车辆行程的计算后,i+1。
其中第i个窗口数据为当前窗口数据,第j条数据为第i个窗口数据中当前遍历到的数据。i+1可以理解为用i+1的值更新i,j+1可以理解为用j+1的值更新j。i等于N,则说明第i个窗口数据为目标车辆的分组数据中的最后一个窗口数据,i小于N,则不是。
当缓存中的单值状态为空时,可以是将当前遍历到的数据存入缓存中目标表中的第一行,当所述缓存中的单值状态不为空时,可以是根据当前遍历到的数据更新所述缓存中目标表中的第二行的数据。
通过上述技术手段,可以依次滑动滚动窗口,依次遍历窗口数据中的各条数据,直至完成对分组数据中各个窗口数据对应的车辆行程的计算。
上述所有可选技术方案,可以采用任意结合形成本申请的可选实施例,在此不再一一赘述。
下述为本申请装置实施例,可以用于执行本申请方法实施例。对于本申请装置实施例中未披露的细节,请参照本申请方法实施例。
图3是本申请实施例提供的一种车辆行程计算装置的示意图。如图3所示,该车辆行程计算装置包括:
滑动模块301,被配置为利用滚动窗口滑动处理目标车辆的分组数据,其中,滚动窗口每滑动一次,得到一个窗口数据;
遍历模块302,被配置为对于滚动窗口每次滑动得到的窗口数据,遍历该窗口数据中的各条数据;
第一判断模块303,被配置为根据当前遍历到的数据中的动力装置信息和车辆速度信息判断目标车辆是否处于行驶状态;
第二判断模块304,被配置为当目标车辆处于行驶状态时,则判断缓存的单值状态是否为空,当目标车辆没有处于行驶状态时,则遍历下一条数据;
缓存模块305,被配置为当缓存中的单值状态为空时,则将当前遍历到的数据存入缓存,当缓存中的单值状态不为空时,则根据当前遍历到的数据更新缓存中的数据;
第三判断模块306,被配置为判断当前遍历到的数据是否为该窗口数据中的最后一条数据,若是则根据缓存中的数据计算该窗口数据对应的车辆行程,若不是则遍历下一条数据。
根据本申请实施例提供的技术方案,利用滚动窗口滑动处理目标车辆的分组数据,其中,滚动窗口每滑动一次,得到一个窗口数据;对于滚动窗口每次滑动得到的窗口数据,遍历该窗口数据中的各条数据;根据当前遍历到的数据中的动力装置信息和车辆速度信息判断目标车辆是否处于行驶状态;当目标车辆处于行驶状态时,则判断缓存的单值状态是否为空,当目标车辆没有处于行驶状态时,则遍历下一条数据;当所述缓存中的单值状态为空时,则将当前遍历到的数据存入所述缓存中目标表中的第一行,当所述缓存中的单值状态不为空时,则根据当前遍历到的数据更新所述缓存中目标表中的第二行的数据;判断当前遍历到的数据是否为该窗口数据中的最后一条数据,若是则根据缓存中的数据计算该窗口数据对应的车辆行程,若不是则遍历下一条数据。因为本申请实施例通过分布式处理引擎进行滚动窗口滑动处理以及窗口数据内多条数据的遍历,所以,采用上述技术手段,可以解决现有技术中车辆行程计算中数据处理实时性差的问题,进而提高车辆行程计算中数据处理的实时性。
本申请实施例还具有如下优点:现有的车辆行程计算需要依赖外部缓存服务,外部缓存服务查询速度慢,本申请实施例是使用分布式处理引擎的内部缓存,所以本申请实施例计算车辆行程速度快;程序重启容易导致数据丢失,本申请实施例通过开启flink的Checkpoint确保数据不会丢失;本申请实施例的分布式处理引擎具有高吞吐和低延迟的优势;现有的车辆行程计算需要利用点熄火信号计算行程,本申请实施例通过滚动窗口滑动处理以及窗口数据内多条数据的遍历计算行程,不依赖于点熄火信号。
滑动模块301,被配置为对截止当前时间的第一预设时长内接收到多个车辆的车辆数据进行数据清洗,其中,数据清洗,包括:删除格式错误的数据以及缺乏关键信息的数据;根据车辆标识符对经过数据清洗后的车辆数据进行分组,得到每个车辆的分组数据。
滑动模块301,被配置为根据数据清洗后的车辆数据中多条数据的采集时间,为车辆数据增加水位线;其中,水位线用于在遍历各个窗口数据中的各条数据之前,对各个窗口数据中的多条数据按照时间排序。
第三判断模块306,被配置为利用该窗口数据中的行程开始时间和目标车辆的车辆标识符构建该窗口数据对应的主键;基于主键将车辆行程保存到数据库中。
第三判断模块306,被配置为在接收到延迟上报数据时,判断延迟上报数据的车辆标识符和主键的车辆标识符是否一致,若一致则确定延迟上报数据属于目标车辆;在确定延迟上报数据属于目标车辆的情况下,若延迟上报数据的采集时间减去主键的行程开始时间的差值小于滚动窗口的大小的情况下,则确定延迟上报数据属于主键;在延迟上报数据属于主键的情况下,根据延迟上报数据更新数据库中主键对应的车辆行程。
第一判断模块303,被配置为当单值状态在第二预设时长内没有被读取,则清空缓存中的数据,其中,每判断一次单值状态是否为空,为读取一次单值状态。
第三判断模块306,被配置为当检测到该窗口数据中车辆速度信息处于预设范围内的数据的条数大于预设阈值,舍弃目标车辆上报自身的数据。
第一判断模块303,被配置为在当前遍历到的数据中的动力装置信息表明动力装置处于运行状态并且车辆速度信息大于零的情况下,确定目标车辆处于行驶状态;否则确定目标车辆没有处于行驶状态。
缓存模块305,被配置为若所述缓存中目标表中的第二行没有数据,则将当前遍历到的数据中属于非极值的信息保存到所述缓存中目标表中的第二行中;若所述缓存中目标表中的第二行有数据,则将当前遍历到的数据中属于非极值的信息覆盖所述缓存中目标表中的第二行中原来的数据;其中,属于非极值的信息,包括:车辆标识符、数据采集时间、里程表读数、经纬度信息油表读数和电表读数。
缓存模块305,被配置为将当前遍历到的数据中的速度和缓存中目标表中的第一行中的速度进行比较,若当前遍历到的数据中的速度较大,则用当前遍历到的数据中的速度覆盖目标表中的第一行中的速度,若目标表中的第一行中的速度较大,则不用操作;将当前遍历到的数据中的加速度和缓存中目标表中的第一行中的加速度进行比较,若当前遍历到的数据中的加速度较大,则用当前遍历到的数据中的加速度覆盖目标表中的第一行中的加速度,若目标表中的第一行中的加速度较大,则不用操作。
第三判断模块306,被配置为当前时间减去行程开始时间的差值为行驶时长;当前里程表读数减去行程开始里程表读数的差值为行驶路程;当前经纬度作为该窗口数据对应的车辆行程的终点,行程开始经纬度作为该窗口数据对应的车辆行程的起点,根据当前经纬度和行程开始经纬度确定车辆轨迹;行程开始油表读数减去当前油表读数的差值为油耗;行程开始电表读数减去当前电表读数的差值为电耗;其中,所述车辆行程,包括:所述行驶时长、所述车辆轨迹、所述行驶路程、所述油耗和所述电耗;其中,所述缓存中目标表中的第一行的数据依次为:车辆标识符、行程开始时间、行程开始里程表读数、行程开始经纬度、行程开始油表读数、行程开始电表读数,所述缓存中目标表中的第二行的数据依次为:车辆标识符、当前时间、当前里程表读数、当前经纬度、当前油表读数、当前电表读数。
应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。
图4是本公开实施例提供的车联网服务器4的示意图。如图4所示,该实施例的车联网服务器4包括:分布式处理引擎401、存储器402以及存储在该存储器402中并且可在分布式处理引擎401上运行的计算机程序403。分布式处理引擎401执行计算机程序403时实现上述各个方法实施例中的步骤。或者,分布式处理引擎401执行计算机程序403时实现上述各装置实施例中各模块/单元的功能。
车联网服务器4可以包括但不仅限于分布式处理引擎401和存储器402。本领域技术人员可以理解,图4仅仅是车联网服务器4的示例,并不构成对车联网服务器4的限定,可以包括比图示更多或更少的部件,或者不同的部件。
存储器402可以是车联网服务器4的内部存储单元,例如,车联网服务器4的硬盘或内存。存储器402也可以是车联网服务器4的外部存储设备,例如,车联网服务器4上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。存储器402还可以既包括车联网服务器4的内部存储单元也包括外部存储设备。存储器402用于存储计算机程序以及车联网服务器所需的其它程序和数据。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。实施例中的各功能单元、模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中,上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
集成的模块/单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读存储介质中。基于这样的理解,本申请实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,计算机程序可以存储在计算机可读存储介质中,该计算机程序在被分布式处理引擎执行时,可以实现上述各个方法实施例的步骤。计算机程序可以包括计算机程序代码,计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。计算机可读介质可以包括:能够携带计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、电载波信号、电信信号以及软件分发介质等。需要说明的是,计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如,在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括电载波信号和电信信号。
以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围,均应包含在本申请的保护范围之内。
Claims (10)
1.一种车辆行程计算方法,其特征在于,包括:
利用滚动窗口滑动处理目标车辆的分组数据,其中,所述滚动窗口每滑动一次,得到一个窗口数据;
对于所述滚动窗口每次滑动得到的窗口数据,遍历该窗口数据中的各条数据;
根据当前遍历到的数据中的动力装置信息和车辆速度信息判断所述目标车辆是否处于行驶状态;
当所述目标车辆处于行驶状态时,则判断缓存的单值状态是否为空,当所述目标车辆没有处于行驶状态时,则遍历下一条数据;
当所述缓存中的单值状态为空时,则将当前遍历到的数据存入所述缓存中目标表中的第一行,当所述缓存中的单值状态不为空时,则根据当前遍历到的数据更新所述缓存中目标表中的第二行的数据;
判断当前遍历到的数据是否为该窗口数据中的最后一条数据,若是则根据所述缓存中的数据计算该窗口数据对应的车辆行程,若不是则遍历下一条数据。
2.根据权利要求1所述的方法,其特征在于,利用滚动窗口滑动处理目标车辆的分组数据之前,所述方法还包括:
对截止当前时间的第一预设时长内接收到多个车辆的车辆数据进行数据清洗,其中,所述数据清洗,包括:删除格式错误的数据以及缺乏关键信息的数据;
根据车辆标识符对经过所述数据清洗后的车辆数据进行分组,得到每个车辆的分组数据。
3.根据权利要求2所述的方法,其特征在于,对截止当前时间的第一预设时长内接收到多个车辆的车辆数据进行数据清洗之后,所述方法还包括:
根据所述数据清洗后的车辆数据中多条数据的采集时间,为所述车辆数据增加水位线;
其中,所述水位线用于在遍历各个窗口数据中的各条数据之前,对各个窗口数据中的多条数据按照时间排序。
4.根据权利要求1所述的方法,其特征在于,根据所述缓存中的数据计算该窗口数据对应的车辆行程之后,所述方法还包括:
利用该窗口数据中的行程开始时间和所述目标车辆的车辆标识符构建该窗口数据对应的主键;
基于所述主键将所述车辆行程保存到数据库中。
5.根据权利要求4所述的方法,其特征在于,基于所述主键将所述车辆行程保存到数据库中之后,所述方法还包括:
在接收到延迟上报数据时,判断所述延迟上报数据的车辆标识符和所述主键的车辆标识符是否一致,若一致则确定所述延迟上报数据属于所述目标车辆;
在确定所述延迟上报数据属于所述目标车辆的情况下,若所述延迟上报数据的采集时间减去所述主键的行程开始时间的差值小于所述滚动窗口的大小的情况下,则确定所述延迟上报数据属于所述主键;
在所述延迟上报数据属于所述主键的情况下,根据所述延迟上报数据更新所述数据库中所述主键对应的车辆行程。
6.根据权利要求1所述的方法,其特征在于,根据所述缓存中的数据计算该窗口数据对应的车辆行程,包括:
当前时间减去行程开始时间的差值为行驶时长;
当前里程表读数减去行程开始里程表读数的差值为行驶路程;
当前经纬度作为该窗口数据对应的车辆行程的终点,行程开始经纬度作为该窗口数据对应的车辆行程的起点,根据当前经纬度和行程开始经纬度确定车辆轨迹;
行程开始油表读数减去当前油表读数的差值为油耗;
行程开始电表读数减去当前电表读数的差值为电耗;
其中,所述车辆行程,包括:所述行驶时长、所述车辆轨迹、所述行驶路程、所述油耗和所述电耗;
其中,所述缓存中目标表中的第一行的数据依次为:车辆标识符、行程开始时间、行程开始里程表读数、行程开始经纬度、行程开始油表读数、行程开始电表读数,所述缓存中目标表中的第二行的数据依次为:车辆标识符、当前时间、当前里程表读数、当前经纬度、当前油表读数、当前电表读数。
7.根据权利要求1所述的方法,其特征在于,所述方法还包括:
执行如下循环算法,以计算所述目标车辆的分组数据中每个窗口数据对应的车辆行程:
判断i是否等于N,i为窗口数据的序号,i的初始值为1,N为所述分组数据中窗口数据的数量;
若i等于N,则确定已处理完目标车辆的分组数据,退出;
若i小于N,则遍历第i个窗口数据中的各条数据,i的初始值为1;
根据第j条数据中的动力装置信息和车辆速度信息判断所述目标车辆是否处于行驶状态,j为窗口数据中一条数据的序号,j的初始值为1;
当所述目标车辆没有处于行驶状态时,则j+1;
当所述目标车辆处于行驶状态时,则判断缓存的单值状态是否为空;
当所述缓存中的单值状态为空时,则将当前遍历到的数据存入所述缓存;
当所述缓存中的单值状态不为空时,则根据第j条数据更新所述缓存中的数据;
判断第j条数据是否为i个窗口数据中的最后一条数据;
若不是则j+1;
若是则根据所述缓存中的数据计算第i个窗口数据对应的车辆行程;
在完成车辆行程的计算后,i+1。
8.根据权利要求1所述的方法,其特征在于,根据当前遍历到的数据更新所述缓存中目标表中的第二行的数据,包括:
若所述缓存中目标表中的第二行没有数据,则将当前遍历到的数据中属于非极值的信息保存到所述缓存中目标表中的第二行中;
若所述缓存中目标表中的第二行有数据,则将当前遍历到的数据中属于非极值的信息覆盖所述缓存中目标表中的第二行中原来的数据;
其中,属于非极值的信息,包括:车辆标识符、数据采集时间、里程表读数、经纬度信息、油表读数和电表读数。
9.一种车辆行程计算装置,其特征在于,包括:
滑动模块,被配置为利用滚动窗口滑动处理目标车辆的分组数据,其中,所述滚动窗口每滑动一次,得到一个窗口数据;
遍历模块,被配置为对于所述滚动窗口每次滑动得到的窗口数据,遍历该窗口数据中的各条数据;
第一判断模块,被配置为根据当前遍历到的数据中的动力装置信息和车辆速度信息判断所述目标车辆是否处于行驶状态;
第二判断模块,被配置为当所述目标车辆处于行驶状态时,则判断缓存的单值状态是否为空,当所述目标车辆没有处于行驶状态时,则遍历下一条数据;
缓存模块,被配置为当缓存中的单值状态为空时,则将当前遍历到的数据存入缓存中目标表中的第一行,当缓存中的单值状态不为空时,则根据当前遍历到的数据更新缓存中目标表中的第二行的数据;
第三判断模块,被配置为判断当前遍历到的数据是否为该窗口数据中的最后一条数据,若是则根据所述缓存中的数据计算该窗口数据对应的车辆行程,若不是则遍历下一条数据。
10.一种车联网服务器,其特征在于,包括存储器、分布式处理引擎以及存储在所述存储器中并且可在所述分布式处理引擎上运行的计算机程序,所述分布式处理引擎执行所述计算机程序时实现如权利要求1至8中任一项所述的车辆行程计算方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310411878.3A CN116155926B (zh) | 2023-04-18 | 2023-04-18 | 车辆行程计算方法、装置及车联网服务器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310411878.3A CN116155926B (zh) | 2023-04-18 | 2023-04-18 | 车辆行程计算方法、装置及车联网服务器 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116155926A true CN116155926A (zh) | 2023-05-23 |
CN116155926B CN116155926B (zh) | 2023-07-07 |
Family
ID=86362146
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310411878.3A Active CN116155926B (zh) | 2023-04-18 | 2023-04-18 | 车辆行程计算方法、装置及车联网服务器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116155926B (zh) |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2003329700A (ja) * | 2002-05-10 | 2003-11-19 | Matsushita Electric Ind Co Ltd | 車両走行状態判断装置 |
CN105740847A (zh) * | 2016-03-02 | 2016-07-06 | 同济大学 | 一种基于驾驶员眼部识别和车辆行驶轨迹的疲劳等级判别算法 |
US20200078986A1 (en) * | 2018-09-06 | 2020-03-12 | Oshkosh Corporation | Concrete buildup detection |
CN113269907A (zh) * | 2021-04-27 | 2021-08-17 | 远峰科技股份有限公司 | 汽车安全事件数据记录方法及系统 |
CN113460065A (zh) * | 2021-06-21 | 2021-10-01 | 上汽通用五菱汽车股份有限公司 | 车辆控制方法、车辆及计算机可读存储介质 |
CN114048626A (zh) * | 2021-11-22 | 2022-02-15 | 武汉中海庭数据技术有限公司 | 一种交通流仿真场景构建方法及系统 |
CN114441008A (zh) * | 2021-12-30 | 2022-05-06 | 武汉光庭信息技术股份有限公司 | 一种车辆燃油计算方法、系统、电子设备及存储介质 |
-
2023
- 2023-04-18 CN CN202310411878.3A patent/CN116155926B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2003329700A (ja) * | 2002-05-10 | 2003-11-19 | Matsushita Electric Ind Co Ltd | 車両走行状態判断装置 |
CN105740847A (zh) * | 2016-03-02 | 2016-07-06 | 同济大学 | 一种基于驾驶员眼部识别和车辆行驶轨迹的疲劳等级判别算法 |
US20200078986A1 (en) * | 2018-09-06 | 2020-03-12 | Oshkosh Corporation | Concrete buildup detection |
CN113269907A (zh) * | 2021-04-27 | 2021-08-17 | 远峰科技股份有限公司 | 汽车安全事件数据记录方法及系统 |
CN113460065A (zh) * | 2021-06-21 | 2021-10-01 | 上汽通用五菱汽车股份有限公司 | 车辆控制方法、车辆及计算机可读存储介质 |
CN114048626A (zh) * | 2021-11-22 | 2022-02-15 | 武汉中海庭数据技术有限公司 | 一种交通流仿真场景构建方法及系统 |
CN114441008A (zh) * | 2021-12-30 | 2022-05-06 | 武汉光庭信息技术股份有限公司 | 一种车辆燃油计算方法、系统、电子设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN116155926B (zh) | 2023-07-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111966729B (zh) | 一种车辆轨迹数据处理方法、装置、设备及存储介质 | |
EP3349126B1 (en) | Method, device, storage medium, and apparatus for automatically discovering fuel station poi | |
CN104318327A (zh) | 一种车辆轨迹预测分析方法 | |
CN107545318B (zh) | 公交线路优先级确定、公交换乘线路排序方法及装置 | |
CN112270833A (zh) | 一种轨迹拟合方法、装置、电子设备和存储介质 | |
CN111145573A (zh) | 基于停车点间距、时长和频次聚合分析车辆常驻点的方法 | |
CN105096642A (zh) | 考虑gps数据延迟影响的实时公交到站时间预测方法 | |
CN110987083B (zh) | 一种基于车联网对车辆排放数据监测的方法和设备 | |
CN113538915A (zh) | 交通拥堵事件的处理方法、设备、存储介质及程序产品 | |
CN101794510A (zh) | 一种浮动车数据处理的方法和装置 | |
CN116155926B (zh) | 车辆行程计算方法、装置及车联网服务器 | |
CN104978859A (zh) | 一种计算城市任意区域公交线网密度的方法 | |
CN106157628A (zh) | 一种分布式的获取实时路况信息的方法及系统 | |
CN114897312A (zh) | 驾驶行为评分方法、装置、设备及存储介质 | |
CN114078322B (zh) | 一种公交运行状态评价方法、装置、设备及存储介质 | |
CN116481560B (zh) | 车辆行驶里程的计算方法、装置、终端及存储介质 | |
CN114676867A (zh) | 车辆路线预测方法和装置 | |
CN116968767A (zh) | 基于多维数据融合的新能源汽车充电路径规划方法及系统 | |
CN113371664B (zh) | 非社会尿素及燃料加注点位置识别方法、系统及终端 | |
CN116502125A (zh) | 车辆事件划分方法、装置及车联网服务器 | |
CN110619748A (zh) | 基于交通大数据的交通状况分析与预测方法、装置及系统 | |
CN110341701B (zh) | 一种基于空间位置信息的车辆自动启停优化方法 | |
CN111595353B (zh) | 一种基于GPU和Spark混合并行计算架构的实时地图匹配方法 | |
CN111243280B (zh) | 一种实时计算交通状态的指标的方法及装置 | |
CN114373321A (zh) | 一种用于个人单次出行的路径优化方法和系统及设备和介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
TR01 | Transfer of patent right | ||
TR01 | Transfer of patent right |
Effective date of registration: 20240117 Address after: No. 13 Xingxiang Road, Zengjia Town, High tech Zone, Shapingba District, Chongqing, 400039 Patentee after: Chongqing Selis Phoenix Intelligent Innovation Technology Co.,Ltd. Address before: 610095 No. 2901, floor 29, unit 1, building 1, No. 151, Tianfu Second Street, high tech Zone, China (Sichuan) pilot Free Trade Zone, Chengdu, Sichuan Province Patentee before: Chengdu Thalys Technology Co.,Ltd. |