IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ ウィージョ・リミテッドの特許一覧

特表2023-500524道路セグメントの低レイテンシ速度分析のために車両イベントデータを処理するためのシステムおよび方法
<>
  • 特表-道路セグメントの低レイテンシ速度分析のために車両イベントデータを処理するためのシステムおよび方法 図1A
  • 特表-道路セグメントの低レイテンシ速度分析のために車両イベントデータを処理するためのシステムおよび方法 図1B
  • 特表-道路セグメントの低レイテンシ速度分析のために車両イベントデータを処理するためのシステムおよび方法 図1C
  • 特表-道路セグメントの低レイテンシ速度分析のために車両イベントデータを処理するためのシステムおよび方法 図2
  • 特表-道路セグメントの低レイテンシ速度分析のために車両イベントデータを処理するためのシステムおよび方法 図3
  • 特表-道路セグメントの低レイテンシ速度分析のために車両イベントデータを処理するためのシステムおよび方法 図4A
  • 特表-道路セグメントの低レイテンシ速度分析のために車両イベントデータを処理するためのシステムおよび方法 図4B
  • 特表-道路セグメントの低レイテンシ速度分析のために車両イベントデータを処理するためのシステムおよび方法 図4C
  • 特表-道路セグメントの低レイテンシ速度分析のために車両イベントデータを処理するためのシステムおよび方法 図4D
  • 特表-道路セグメントの低レイテンシ速度分析のために車両イベントデータを処理するためのシステムおよび方法 図4E
  • 特表-道路セグメントの低レイテンシ速度分析のために車両イベントデータを処理するためのシステムおよび方法 図5
  • 特表-道路セグメントの低レイテンシ速度分析のために車両イベントデータを処理するためのシステムおよび方法 図6
  • 特表-道路セグメントの低レイテンシ速度分析のために車両イベントデータを処理するためのシステムおよび方法 図7
  • 特表-道路セグメントの低レイテンシ速度分析のために車両イベントデータを処理するためのシステムおよび方法 図8
  • 特表-道路セグメントの低レイテンシ速度分析のために車両イベントデータを処理するためのシステムおよび方法 図9
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2023-01-06
(54)【発明の名称】道路セグメントの低レイテンシ速度分析のために車両イベントデータを処理するためのシステムおよび方法
(51)【国際特許分類】
   G08G 1/01 20060101AFI20221226BHJP
   G08G 1/052 20060101ALI20221226BHJP
【FI】
G08G1/01 D
G08G1/052
【審査請求】未請求
【予備審査請求】未請求
(21)【出願番号】P 2022525874
(86)(22)【出願日】2020-11-02
(85)【翻訳文提出日】2022-06-30
(86)【国際出願番号】 IB2020000908
(87)【国際公開番号】W WO2021084323
(87)【国際公開日】2021-05-06
(31)【優先権主張番号】63/000,927
(32)【優先日】2020-03-27
(33)【優先権主張国・地域又は機関】US
(31)【優先権主張番号】62/928,810
(32)【優先日】2019-10-31
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
(71)【出願人】
【識別番号】521355278
【氏名又は名称】ウィージョ・リミテッド
【氏名又は名称原語表記】WEJO LTD.
(74)【代理人】
【識別番号】110001195
【氏名又は名称】弁理士法人深見特許事務所
(72)【発明者】
【氏名】ダウニング,ロジャー
(72)【発明者】
【氏名】キャンプルジョン,クリストファー,アンドリュー
【テーマコード(参考)】
5H181
【Fターム(参考)】
5H181AA01
5H181DD03
5H181FF10
(57)【要約】
実施形態は、複数の道路セグメントを含む道路回廊を通して車両を追跡するために車両イベントを低レイテンシ処理するためのシステムおよび方法に向けられている。
【特許請求の範囲】
【請求項1】
プログラム命令を含むメモリと、方法のための命令を実行するように構成されたプロセッサとを備えるシステムであって、前記方法は、
少なくとも3つの連続セグメントを含む道路回廊を生成するステップと、
車両イベントデータを取り込むステップと、
前記車両イベントデータを用いて、前記道路回廊の前記連続セグメントのうちの1つ以上の連続セグメントを通して車両を追跡するステップと、
前記車両が横断する前記1つ以上の連続セグメントの各々について、前記車両イベントデータから導出した車両移動データを含むセグメントイベントレコードを生成するステップと、
前記セグメントイベントレコードの生成後に前記車両イベントデータを削除するステップとを含む、システム。
【請求項2】
前記プロセッサは、以下のステップを含む、前記セグメントイベントレコードを生成する方法のための命令を実行するように構成され、前記ステップは
a)前記車両イベントデータから、第1の道路セグメントに入った車両の認定データポイントを特定するステップと、
b)第2の連続道路セグメントにおける横断開始データポイントを特定するステップと、
c)前記第2のセグメントにおける複数のデータポイントを追跡するステップと、
d)第3の連続道路セグメントにおける第1のデータポイントを、前記第2の道路セグメントについてのセグメントイベント計算トリガデータポイントとして特定するステップと、
e)前記第2のセグメントの前記複数のデータポイントに基づいて、前記第2の道路セグメントについて前記セグメントイベントレコードを生成するステップとを含む、請求項1に記載のシステム。
【請求項3】
前記プロセッサは、前記道路回廊の1つ以上の後続の道路セグメントの各々についてステップ(a)~(e)を繰り返すステップをさらに含む、前記方法のための命令を実行するように構成され、先行する道路セグメントについての前記セグメントイベント計算トリガデータポイントは、前記後続の道路セグメントの認定データポイントとして機能する、請求項2に記載のシステム。
【請求項4】
前記セグメントイベントレコードの前記車両移動データは、前記車両の速度データを含む、請求項3に記載のシステム。
【請求項5】
前記プロセッサは、前記車両が速度しきい値を上回ったことを前記車両イベントデータが示す、すべてのデータポイントについて、スピードカウントを増分することをさらに含む方法のための命令を、実行するように構成されている、請求項4に記載のシステム。
【請求項6】
前記セグメントイベントレコードの前記車両移動データは、前記車両の横断時間を含む、請求項2に記載のシステム。
【請求項7】
前記プロセッサは、前記セグメントイベントレコードについて、前記セグメントを通る横断時間を計算するステップをさらに含む、方法のための命令を実行するように構成されている、請求項2に記載のシステム。
【請求項8】
前記横断時間を計算するステップは、横断開始データポイントの、捕捉されたタイムスタンプを、前記計算トリガデータポイントの、捕捉されたタイムスタンプから減算することを含む、請求項5に記載のシステム。
【請求項9】
前記セグメントイベントレコードを生成するステップは、前記セグメントイベントレコードについて、前記セグメントを通る前記車両の平均速度を計算することを含む、請求項1に記載のシステム。
【請求項10】
前記平均速度を計算することは、横断時間を取得しセグメント距離を前記横断時間で除算することを含む、請求項9に記載のシステム。
【請求項11】
前記システムは、例外基準が満たされた場合に、車両の前記車両イベントデータの追跡を停止するように構成されている、請求項2に記載のシステム。
【請求項12】
前記例外基準は、
前記システムが前記追跡される車両について車両イベントデータを受け取っていない予め定められた量の時間、
追跡される車両が前のセグメントに戻ること、および、
車両エンジンオン/オフイベント
からなる群より選択される例外基準を含む、請求項11に記載のシステム。
【請求項13】
前記システムは、
エグレスサーバで前記セグメントイベントを生成し、
前記エグレスサーバのエグレスインターフェイスを介して、前記生成したセグメントイベントレコードを出力するように、
構成されている、請求項1に記載のシステム。
【請求項14】
プログラム命令を含むメモリと、方法のための命令を実行するように構成されたプロセッサとを備えるシステムであって、前記方法は、
ロケーションイベントデータをサーバに取り込むステップと、
前記ロケーションイベントデータを前記サーバで処理することにより、道路セグメントを特定するステップとを含み、
前記処理するステップは、
前記道路セグメントを特定するステップと、
車両イベントデータを追跡することにより、複数の車両の各々について、道路セグメント内の複数の車両イベントデータポイントの位置を特定するステップと、
前記複数の車両の各々の速度を計算するステップと、
各車両の平均速度を、前記道路セグメントを通る前記複数の車両の各々の速度の算術平均によって計算するステップと、
前記平均車両速度の調和平均速度および前記道路セグメントの車両カウントを計算するステップと、
セグメントの長さLを前記調和平均速度で除算することにより、前記道路セグメントの通過時間を得るステップと、
前記セグメントの通過時間をダウンストリームインターフェイスに出力するステップとを含む、システム。
【請求項15】
前記処理を実行する前記サーバは、イングレスサーバ、エグレスサーバ、分析サーバ、またはその組み合わせである、請求項14に記載のシステム。
【請求項16】
プログラム命令を含むメモリとプロセッサとを備えるコンピュータのための、コンピュータにより実現される方法であって、前記プロセッサは前記方法のための命令を実行するように構成され、前記方法は、
少なくとも3つの連続セグメントを含む道路回廊を生成するステップと、
車両イベントデータを取り込むステップと、
前記車両イベントデータを用いて、前記道路回廊の前記連続セグメントのうちの1つ以上の連続セグメントを通して車両を追跡するステップと、
前記車両が横断する前記1つ以上の連続セグメントの各々について、前記車両イベントデータから導出した車両移動データを含むセグメントイベントレコードを生成するステップと、
前記セグメントイベントレコードの生成後に前記車両イベントデータを削除するステップとを含む、コンピュータにより実現される方法。
【請求項17】
前記プロセッサは、以下のステップを含む、前記セグメントイベントレコードを生成する方法のための命令を実行するように構成され、前記ステップは
a)前記車両イベントデータから、第1の道路セグメントに入った車両の認定データポイントを特定するステップと、
b)第2の連続道路セグメントにおける横断開始データポイントを特定するステップと、
c)前記第2のセグメントにおける複数のデータポイントを追跡するステップと、
d)第3の連続道路セグメントにおける第1のデータポイントを、前記第2の道路セグメントについてのセグメントイベント計算トリガデータポイントとして特定するステップと、
e)前記第2のセグメントの前記複数のデータポイントに基づいて、前記第2の道路セグメントについて前記セグメントイベントレコードを生成するステップとを含む、請求項16に記載の方法。
【請求項18】
前記プロセッサは、前記道路回廊の1つ以上の後続の道路セグメントの各々についてステップ(a)~(e)を繰り返すステップをさらに含む、前記方法のための命令を実行するように構成され、先行する道路セグメントについての前記セグメントイベント計算トリガデータポイントは、前記後続の道路セグメントの認定データポイントとして機能する、請求項17に記載の方法。
【請求項19】
前記セグメントイベントレコードの前記車両移動データは、前記車両の速度データを含む、請求項18に記載の方法。
【請求項20】
前記プロセッサは、前記車両が速度しきい値を上回ったことを前記車両イベントデータが示す、すべてのデータポイントについて、スピードカウントを増分することをさらに含む方法のための命令を、実行するように構成されている、請求項19に記載の方法。
【請求項21】
前記プロセッサは、前記セグメントイベントレコードについて、前記セグメントを通る横断時間を計算するステップをさらに含む、方法のための命令を実行するように構成されている、請求項17に記載の方法。
【請求項23】
前記横断時間を計算するステップは、横断開始データポイントの、捕捉されたタイムスタンプを、前記計算トリガデータポイントの、捕捉されたタイムスタンプから減算することを含む、請求項21に記載の方法。
【請求項24】
前記セグメントイベントレコードを生成するステップは、前記セグメントイベントレコードについて、前記セグメントを通る前記車両の平均速度を計算することを含む、請求項16に記載の方法。
【請求項22】
前記平均速度を計算することは、横断時間を取得しセグメント距離を前記横断時間で除算することを含む、請求項24に記載の方法。
【請求項23】
前記プロセッサは、例外基準が満たされた場合に、車両の前記車両イベントデータの追跡を停止するステップをさらに含む方法のための命令を実行するように構成されている、請求項17に記載の方法。
【請求項24】
前記例外基準は、
前記システムが前記追跡される車両について車両イベントデータを受け取っていない予め定められた量の時間、
追跡される車両が前のセグメントに戻ること、および、
車両エンジンオン/オフイベント
からなる群より選択される例外基準を含む、請求項23に記載の方法。
【請求項25】
前記プロセッサは、
エグレスサーバでセグメントイベントを生成し、
前記エグレスサーバのエグレスインターフェイスを介して、前記生成したセグメントイベントレコードを出力するように、
構成されている、請求項16に記載の方法。
【請求項26】
プログラム命令を含むメモリとプロセッサとを備えるコンピュータのための、コンピュータにより実現される方法であって、前記プロセッサは前記方法のための命令を実行するように構成され、前記方法は、
ロケーションイベントデータをサーバに取り込むステップと、
前記ロケーションイベントデータを前記サーバで処理することにより、道路セグメントを特定するステップとを含み、前記処理は、
前記道路セグメントを特定することと、
車両イベントデータを追跡することにより、道路セグメント内の複数の車両の各々について複数の車両イベントデータポイントの位置を特定することと、
前記複数の車両の各々について速度を計算することと、
前記道路セグメントを通る前記複数の車両の各々の速度の算術平均により各車両の平均速度を計算することと、
前記道路セグメントについて前記平均車両速度の調和平均スピードと車両カウントとを計算することと、
セグメントの長さLを前記調和平均スピードで除算することにより、前記道路セグメントの通過時間を得ることと、
前記セグメントの通過時間をダウンストリームインターフェイスに出力
することとを含む、コンピュータにより実現される方法。
【請求項27】
イングレスサーバ、エグレスサーバ、分析サーバ、またはその組み合わせを用いて前記処理を実行するステップをさらに含む、請求項26に記載の方法。
【発明の詳細な説明】
【技術分野】
【0001】
開示の背景
自動車産業はこれまでに見たことのない激変の最中にある。混乱がモビリティエコシステム全体に生じている。結果として、車両は、一層自動化、接続、電化、および共有されるようになった。そのため、自動車から発生するデータは爆発的に増加している。この豊富な新たなデータ資産はほとんどが未活用のままである。
【背景技術】
【0002】
GPSデータ等の車両ロケーションイベントデータは、極めて膨大なものであり、毎秒200,000~400,000のレコードを含み得る。実質的にリアルタイムのデータ分析を提供する従来のシステムにとって、とりわけ個々の車両についてロケーションイベントデータを処理することが課題となっている。特に、エンドユーザ技術はデータパッケージを要求することがある。大量のデータを低レイテンシで処理および保存しつつもこの大量のデータを分析および再処理のために利用できるようにするように構成された、システムプラットフォームならびにデータ処理アルゴリズムおよびプロセスが必要である。
【0003】
車両を追跡するためのシステムは存在するが、必要なのは、大量の車両データからの、事実上リアルタイムの正確なトリップおよび道路情報である。車両の移動およびルートの分析から行程および行程の目的地を正確に特定するように構成されたシステムとアルゴリズムが必要である。
【発明の概要】
【課題を解決するための手段】
【0004】
開示の概要
以下、本明細書に記載のイノベーションのいくつかの側面の基本的理解が得られるよう、実施形態を簡単に説明する。この簡単な説明は、広範囲にわたる概要を意図しているのではない。重要または不可欠な要素を特定することを意図している訳でも、範囲を明確にするかそうでなければ狭くすることを意図している訳でもない。その目的は、後に示すより詳細な説明の前置きとしていくつかの概念を簡単な形で示すことにすぎない。本明細書に記載のシステムおよび方法の、具体例としての利点は、最適化された低レイテンシである。たとえば、本開示に記載のシステムおよび方法は、最大1200万台の車両について毎秒最大少なくとも600,000のレコードを取り込んで処理することができる。
【0005】
少なくとも1つの実施形態において、プログラム命令を含むメモリと、方法のための命令を実行するように構成されたプロセッサとを備えるシステムについて説明し、この方法は、
少なくとも3つの連続セグメントを含む道路回廊を生成するステップと、
車両イベントデータを取り込むステップと、
車両イベントデータを用いて、道路回廊の連続セグメントのうちの1つ以上の連続セグメントを通して車両を追跡するステップと、
車両が横断する1つ以上の連続セグメントの各々について、車両イベントデータから導出した車両移動データを含むセグメントイベントレコードを生成するステップと、
セグメントイベントレコードの生成後に車両イベントデータを削除するステップとを含む。
【0006】
ある実施形態において、プロセッサは、以下のステップを含む、セグメントイベントレコードを生成する方法のための命令を実行するように構成されてもよく、上記ステップは
a)車両イベントデータから、第1の道路セグメントに入った車両の認定データポイントを特定するステップと、
b)第2の連続道路セグメントにおける横断開始データポイントを特定するステップと、
c)第2のセグメントにおける複数のデータポイントを追跡するステップと、
d)第3の連続道路セグメントにおける第1のデータポイントを、第2の道路セグメントについてのセグメントイベント計算トリガデータポイントとして特定するステップと、
e)第2のセグメントの複数のデータポイントに基づいて、第2の道路セグメントについてセグメントイベントレコードを生成するステップとを含む。プロセッサは、道路回廊の1つ以上の後続の道路セグメントの各々についてステップ(a)~(e)を繰り返すステップをさらに含む、方法のための命令を実行するように構成されてもよく、先行する道路セグメントについてのセグメントイベント計算トリガデータポイントは、後続の道路セグメントの認定データポイントとして機能する。
【0007】
ある実施形態において、セグメントイベントレコードの車両移動データは、車両の速度データを含み得る。プロセッサは、車両が速度しきい値を上回ったことを車両イベントデータが示す、すべてのデータポイントについて、スピードカウントを増分することをさらに含む方法のための命令を、実行するように構成されてもよい。
【0008】
ある実施形態において、セグメントイベントレコードの車両移動データは、車両の横断時間を含み得る。プロセッサは、セグメントイベントレコードについて、セグメントを通る横断時間を計算するステップをさらに含む、方法のための命令を実行するように構成されてもよい。横断時間を計算するステップは、横断開始データポイントの、捕捉されたタイムスタンプを、計算トリガデータポイントの、捕捉されたタイムスタンプから減算することを含み得る。
【0009】
ある実施形態において、セグメントイベントレコードを生成するステップは、セグメントイベントレコードについて、セグメントを通る車両の平均速度を計算することを含む。平均速度は、横断時間を取得しセグメント距離を横断時間で除算することによって計算してもよい。
【0010】
ある実施形態において、システムは、例外基準が満たされた場合に、車両の車両イベントデータの追跡を停止するように構成されてもよい。例外基準は、システムが追跡される車両について車両イベントデータを受け取っていない予め定められた量の時間、追跡される車両が前のセグメントに戻ること、および、車両エンジンオン/オフイベントからなる群より選択される例外基準を含み得る。
【0011】
ある実施形態において、システムは、エグレスサーバでセグメントイベントを生成し、エグレスサーバのエグレスインターフェイスを介して、生成したセグメントイベントレコードを出力するように、構成されてもよい。
【0012】
ある実施形態において、プログラム命令を含むメモリと、方法のための命令を実行するように構成されたプロセッサとを備えるシステムについて説明し、この方法は、
ロケーションイベントデータをサーバに取り込むステップと、
ロケーションイベントデータをサーバで処理することにより、道路セグメントを特定するステップとを含み、
処理するステップは、
道路セグメントを特定するステップと、
車両イベントデータを追跡することにより、複数の車両の各々について、道路セグメント内の複数の車両イベントデータポイントの位置を特定するステップと、
複数の車両の各々の速度を計算するステップと、
各車両の平均速度を、道路セグメントを通る複数の車両の各々の速度の算術平均によって計算するステップと、
平均車両速度の調和平均速度および道路セグメントの車両カウントを計算するステップと、
セグメントの長さLを調和平均速度で除算することにより、道路セグメントの通過時間を得るステップと、
セグメントの通過時間をダウンストリームインターフェイスに出力するステップとを含む。
【0013】
上記処理を実行するサーバは、イングレスサーバ、エグレスサーバ、分析サーバ、またはその組み合わせであってもよい。
【0014】
少なくとも1つの実施形態において、コンピュータによって実現される方法を説明し、このコンピュータは、プロセッサと、上記のおよび本明細書に記載される方法を実行するための命令を含むプログラムメモリを含むメモリとを備える。
【0015】
少なくとも1つの実施形態において、プロセッサによって実行されると上記のおよび本明細書に記載される方法を実行するための命令を含むプログラムメモリを含む、コンピュータプログラムプロダクトを説明する。
【0016】
非限定的でありかつ非網羅的な実施形態について図面を参照しながら説明する。図面において、特に明記しない限り、各種図面の同様の参照番号は同様の部分を示す。
【0017】
一層の理解のために、添付の図面と関連付けて読まれるべき以下の詳細な説明を参照する。
【図面の簡単な説明】
【0018】
図1A】各種実施形態のうちの少なくとも1つを実現することができる環境のシステム図である。
図1B】各種実施形態のうちの少なくとも1つに係るクラウドコンピューティングアーキテクチャを示す図である。
図1C】各種実施形態のうちの少なくとも1つに係るクラウドコンピューティングプラットフォームの論理アーキテクチャを示す図である。
図2】各種実施形態のうちの少なくとも1つに係るイングレスサーバシステムの論理アーキテクチャおよびフローチャートを示す図である。
図3】各種実施形態のうちの少なくとも1つに係るストリーム処理サーバシステムの論理アーキテクチャおよびフローチャートを示す図である。
図4A】各種実施形態のうちの少なくとも1つに係るエグレスサーバシステムの論理アーキテクチャおよびフローチャートを示す図である。
図4B】各種実施形態のうちの少なくとも1つに係るエグレスサーバシステムのフローチャートを示す図である。
図4C】各種実施形態のうちの少なくとも1つに係る複数の道路セグメントを含む道路回廊の論理的レイアウトを示す図である。
図4D】各種実施形態のうちの少なくとも1つに係る複数の道路セグメントを含む道路回廊の論理的レイアウトを示す図である。
図4E】各種実施形態のうちの少なくとも1つに係る複数のセグメントを含む道路回廊を通して車両を追跡するためのシステムフローのある実施形態を示す図である。
図5】各種実施形態のうちの少なくとも1つに係る分析サーバシステムのプロセスの論理アーキテクチャおよびフローチャートを示す図である。
図6】各種実施形態のうちの少なくとも1つに係るポータルサーバシステムのプロセスの論理アーキテクチャおよびフローチャートを示す図である。
図7】各種実施形態のうちの少なくとも1つに係るシステムのデータ処理チェックのデータ品質パイプラインを示すフローチャートの図である。
図8】各種実施形態のうちの少なくとも1つに係るインターフェイスにフィードをエグレスするためのフローチャートおよびインターフェイスの図である。
図9】車両イベント移動データポイントから正確な道路速度を求めるためのシステムフローのある実施形態を示す図である。
【発明を実施するための形態】
【0019】
実施形態の詳細な説明
以下、添付の図面を参照しながら各種実施形態についてより十分に説明するが、これらの図面は、実施形態の一部を形成し、説明のために、本明細書に記載のイノベーションを実施できる特定の実施形態を示す。しかしながら、実施形態は、多数の異なる形態で実施可能であり、本明細書に記載の実施形態に限定されると解釈されてはならない。むしろ、これらの実施形態は、本開示が詳細で完璧となるように、かつ、実施形態の範囲を当業者に十分に伝えるように、提供される。とりわけ、各種実施形態は、方法、システム、媒体、またはデバイスであってもよい。そのため、以下の詳細な説明は限定的な意味で解釈されてはならない。
【0020】
本明細書および請求項を通して、以下の用語は、文脈が明らかにそれを否定しない限り、本明細書において明示的に関連付けられている意味を持つ。「本明細書において」という用語は、本願に関連付けられた明細書、請求項、および図面のことである。本明細書で使用される「一実施形態において」または「ある実施形態において」という表現は、同一の実施形態または単一の実施形態を指す可能性はあるが、必ずしも異なる実施形態を指す訳ではない。したがって、以下で説明するように、各種実施形態を、本開示の範囲または精神から逸脱することなく、容易に組み合わせることができる。
【0021】
加えて、本明細書で使用される「または」という用語は、包含的な「または」であり、文脈が明らかにそれを否定しない限り、「および/または」という用語と等価である。「基づいて」という用語は排他的なものではなく、文脈が明らかにそれを否定しない限り、記載されていないその他の要素に基づくことを認める。加えて、本明細書を通して、「a」、「an」および「the」の意味は、複数を含む。「中に/内(in)」の意味は、「中に」および「上に(on)」を含む。
【0022】
本明細書で使用される「ホスト」という用語は、1つ以上のデジタルメディアプロパティ(たとえばウェブサイト、モバイルアプリケーションなど)を所有または操作することができる、個々の人物、共同事業、組織、または企業体を意味する場合がある。ホストは、デジタルメディアプロパティをウィジェットコントローラまたはサーバと統合するように構成することにより、デジタルメディアプロパティをハイパーローカルターゲティングを使用するように構成することができる。
【0023】
以下、車両イベントデータを処理するためのシステム、方法およびコンピュータプログラムプロダクトの各種実施形態について簡単に説明する。
【0024】
本明細書で使用される行程は、ある目的地への任意のトリップ、走路、または走行を含み得る。
【0025】
例示としての論理システムアーキテクチャおよびシステムフロー
図1Aは、少なくとも1つの実施形態に係るジオロケーションイベント処理および分析のためのシステム10の論理アーキテクチャである。少なくとも1つの実施形態において、イングレスサーバシステム100は、ストリーム処理サーバシステム200および分析サーバシステム500と通信するように配置することができる。ストリーム処理サーバシステム200は、エグレスサーバシステム400および分析サーバシステム500と通信するように配置することができる。
【0026】
エグレスサーバシステム400は、データ消費者と通信し、データ出力をデータ消費者に提供するように構成することができる。エグレスサーバシステム400はまた、ストリーム処理サーバシステム200と通信するように構成することができる。
【0027】
分析サーバシステム500は、イングレスサーバシステム100、ストリーム処理サーバシステム200、およびエグレスサーバシステム400と通信し、これらのシステムからのデータを受け入れるように構成される。分析サーバシステム500は、ポータルサーバシステム600と通信し、データをポータルサーバシステム600に出力するように構成される。
【0028】
少なくとも1つの実施形態において、イングレスサーバシステム100、ストリーム処理サーバシステム200、エグレスサーバシステム400、分析サーバシステム500、およびポータルサーバシステム600の各々は、1つ以上のコンピュータまたはサーバとすることができる。少なくとも1つの実施形態において、イングレスサーバシステム100、ストリーム処理サーバシステム200、エグレスサーバシステム400、分析サーバシステム500、およびポータルサーバシステム600のうちの1つ以上を、単一のコンピュータ上で、たとえばネットワークサーバコンピュータ上で、または、複数のコンピュータにまたがって動作するように構成することができる。たとえば、少なくとも1つの実施形態において、システム10を、アマゾンウェブサービス(登録商標)(AWS:Amazon Web Services)またはマイクロソフト(登録商標)アジュール(Microsoft Azure)等のウェブサービスプラットフォームホスト上で実行するように構成することができる。ある具体例としての実施形態において、このシステム10は、本明細書に記載のデータ処理を実行するように構成することができるスパークストリーミングサーバを使用するAWSプラットフォーム上に構成される。ある実施形態において、このシステム10を、高スループットメッセージングサーバ、たとえばApache Kafka(アパッチカフカ)を使用するように構成することができる。
【0029】
少なくとも1つの実施形態において、イングレスサーバシステム100、ストリーム処理サーバシステム200、エグレスサーバシステム400、分析サーバシステム500、およびポータルサーバシステム600を、サービスが提供するAPIのまたは他の通信インターフェイスを使用して統合および/または通信するように構成することができる。
【0030】
少なくとも1つの実施形態において、イングレスサーバシステム100、ストリーム処理サーバシステム200、エグレスサーバシステム400、分析サーバシステム500、およびポータルサーバシステム600は、ホスティングサーバ上でホストすることができる。
【0031】
少なくとも1つの実施形態において、イングレスサーバシステム100、ストリーム処理サーバシステム200、エグレスサーバシステム400、分析サーバシステム500、およびポータルサーバシステム600を、ワイドアクセスネットワーク(WAN:Wide Access Networks)またはローカルアクセスネットワーク(LAN:Local Access Networks)を含む1つ以上の直接ネットワーク経路を用い、ネットワークを介して、クライアントコンピュータと直接的または間接的に通信するように構成することができる。
【0032】
本明細書に記載されている、システム10、プロセスおよびアルゴリズムの実施形態は、アマゾンウェブサービス(AWS)(登録商標)またはマイクロソフトアジュール(登録商標)等のウェブサービスプラットフォームホスト上で実行されるように構成することができる。クラウドコンピューティングアーキテクチャが、設定可能なコンピューティングリソース(たとえばネットワーク、ネットワーク帯域幅、サーバ、処理、メモリ、ストレージ、アプリケーション、仮想マシン、およびサービス)の共有プールへの便利なオンデマンドネットワークアクセスのために構成される。クラウドコンピュータプラットフォームを、プラットフォームプロバイダが、サービスのプロバイダと人間とのやり取りを必要とすることなく、必要に応じて自動的に、サーバ時間およびネットワークストレージ等のコンピューティング機能を単方向にプロビジョニングできるように、構成することができる。さらに、クラウドコンピューティングは、ネットワーク上で利用可能であり、異種の薄いまたは厚いクライアントプラットフォーム(たとえば携帯電話、ラップトップ、およびPDA)による使用を促進する標準メカニズムを通じてアクセスされる。クラウドコンピューティングアーキテクチャにおいて、プラットフォームのコンピューティングリソースをプールすることにより、需要に応じて異なる物理および仮想リソースが動的に割り当てられ、再度割り当てられるマルチテナントモデルを使用して、複数の消費者、パートナー、または他の第三者ユーザにサービスすることができる。また、クラウドコンピューティングアーキテクチャは、プラットフォームリソースを迅速かつ弾性的に、場合によっては自動的にプロビジョニングして迅速にスケールアウトし、迅速にリリースして迅速にスケールインするように、構成される。
【0033】
クラウドコンピューティングシステムを、サービスのタイプ(たとえばストレージ、処理、帯域幅、およびアクティブユーザアカウント)に適した何らかのアブストラクションレベルのメータリング機能を強化することによってリソースの使用を自動的に制御し最適化するシステムで、構成することができる。リソースの使用が、監視、制御、および報告されてもよい。本明細書に記載されるように、実施形態において、システム10は、低レイテンシのために構成された革新的なアルゴリズムおよびデータベース構造を備えるプラットフォームプロバイダによって有利に構成される。
【0034】
クラウドコンピューティングアーキテクチャは、いくつかのサービスおよびプラットフォーム構成を含む。
【0035】
サービスとしてのソフトウェア(SaaS)は、プラットフォームプロバイダが、クラウドインフラストラクチャ上で実行されるプロバイダのアプリケーションを使用することを可能にするように構成される。アプリケーションは、ウェブブラウザ(たとえばウェブベースの電子メール)等のシンクライアントインターフェイスを介して各種のクライアントデバイスからアクセス可能である。典型的に、消費者は、限定されたユーザ固有のアプリケーション構成設定を場合によっては例外として、ネットワーク、サーバ、オペレーティングシステム、ストレージ、または個々のアプリケーション機能さえ含む基礎となるクラウドインフラストラクチャを、管理または制御しない。
【0036】
サービスとしてのプラットフォーム(PaaS)は、プラットフォームプロバイダが、プロバイダがサポートするプログラミング言語およびツールを使用して作成されたクラウドインフラストラクチャ上に、消費者によって作成または取得されたアプリケーションをデプロイすることを可能にするように、構成される。消費者は、ネットワーク、サーバ、オペレーティングシステム、またはストレージを含む基礎となるクラウドインフラストラクチャを管理または制御しないが、デプロイされたアプリケーションおよび場合によってはアプリケーションホスティング環境構成を制御することができる。
【0037】
サービス(IaaS)としてのインフラストラクチャは、プラットフォームプロバイダが、処理、ストレージ、ネットワーク、および他の基本的なコンピューティングリソースをプロビジョニングすることを可能にするように構成され、この場合、消費者は、オペレーティングシステムおよびアプリケーションを含み得る任意のソフトウェアをデプロイし実行することが可能である。消費者は、基礎となるクラウドインフラストラクチャを管理または制御しないが、オペレーティングシステム、ストレージ、デプロイされたアプリケーションを制御し、場合によっては選択ネットワーキング構成要素(たとえばホストファイアウォール)に対する制限された制御を行う。
【0038】
クラウドコンピューティングアーキテクチャは、プライベートクラウドコンピューティングアーキテクチャ、コミュニティクラウドコンピューティングアーキテクチャ、またはパブリッククラウドコンピューティングアーキテクチャとして提供することができる。また、クラウドコンピューティングアーキテクチャを、ハイブリッドクラウドコンピューティングアーキテクチャとして構成することもでき、これは、固有のエンティティのままであるがデータおよびアプリケーション可搬性(たとえばクラウド間の負荷バランスのためのクラウドバースト化)を可能にする標準化されたまたはプロプライエタリ技術によって一緒に結合される、2つ以上のクラウドプラットフォーム(プライベート、コミュニティ、またはパブリック)を含む。
【0039】
クラウドコンピューティング環境は、ステートレス性、低結合性、モジュール性、およびセマンティック相互運用性に焦点を当てたサービス指向のものである。クラウドコンピューティングの中心には、相互接続されたノードのネットワークを含むインフラストラクチャがある。
【0040】
次に図1Bを参照すると、説明のためのクラウドコンピューティング環境50が示されている。図示のように、クラウドコンピューティング環境50は1つ以上のクラウドコンピューティングノード30を含み、たとえば、携帯情報端末(PDA)または携帯電話23、デスクトップコンピュータ21、ラップトップコンピュータ22等のクラウド消費者が使用するローカルコンピューティングデバイス、ならびに、OEM車両センサデータソース14、アプリケーションデータソース16、テレマティクスデータソース20、ワイヤレスインフラストラクチャデータソース17、第三者データソース15等のイベント、および/または車両データソース12等の自動車コンピュータシステムを備える。ノード30は相互に通信することができる。これらは、本明細書に記載のプライベート、コミュニティ、パブリック、もしくはハイブリッドクラウド、またはそれらの組み合わせ等の、1つ以上のネットワークにおいて、物理的または仮想的にグループ化することができる(図示せず)。クラウドコンピューティング環境50は、クラウド消費者がローカルコンピューティングデバイス上でリソースを維持する必要がないサービスとして、インフラストラクチャ、プラットフォーム、および/またはソフトウェアを提供するように構成される。図1Bに示されるタイプのコンピューティングデバイスは、専ら例示を意図しており、コンピューティングノード30およびクラウドコンピューティング環境50は、任意のタイプのネットワークおよび/またはネットワークアドレス指定可能接続を介して(たとえばウェブブラウザを使用して)任意のタイプのコンピュータ化されたデバイスと通信できることが、理解される。
【0041】
次に図1Cを参照すると、クラウドコンピューティング環境50(図1B)が提供する一組の機能的抽象化層が示されている。図1Cに示したコンポーネント、層、および機能は例示であって、本明細書に記載の実施形態はこれらに限定されるものではない。図示のように、以下の層および対応する機能が提供される。
【0042】
ハードウェアおよびソフトウェア層60は、ハードウェアおよびソフトウェアコンポーネントを含み得る。ハードウェアコンポーネントの例は、たとえば、メインフレーム61、サーバ62、サーバ63、ブレードサーバ64、記憶装置65、ならびにネットワークおよびネットワーキングコンポーネント66を含む。いくつかの実施形態において、ソフトウェアコンポーネントは、ネットワークアプリケーションサーバソフトウェア67およびデータベースソフトウェア68を含む。
【0043】
仮想化層70は抽象化層を提供し、仮想化層から、仮想エンティティの例として、仮想サーバ71、仮想ストレージ72、仮想プライベートネットワークを含む仮想ネットワーク73、仮想アプリケーションおよびオペレーティングシステム74、ならびに仮想クライアント75を、提供することができる。
【0044】
一例において、管理層80は、以下で説明する機能を提供することができる。リソースプロビジョニング81は、クラウドコンピューティング環境内でタスクを実行するために使用されるコンピューティングリソースおよび他のリソースの動的調達を提供する。メータリングおよび価格設定82は、リソースがクラウドコンピューティング環境内で利用される際にコスト追跡を提供し、これらのリソースの消費に対する課金および請求を提供する。一例において、これらのリソースはアプリケーションソフトウェアライセンスを含み得る。セキュリティは、クラウド消費者およびタスクのアイデンティティ検証、ならびにデータおよび他のリソースの保護を提供する。ユーザポータル83は、消費者およびシステム管理者のためにクラウドコンピューティング環境へのアクセスを提供する。サービスレベル管理84は、必要なサービスレベルが満たされるようにクラウドコンピューティングリソースの割り当ておよび管理を提供する。サービスレベル合意(SLA:Service Level Agreement)計画および履行85は、SLAに従って将来の要求が予想されるクラウドコンピューティングリソースの事前配置および調達を提供する。
【0045】
ワークロード層90は、クラウドコンピューティング環境を利用することができる機能の例を提供する。この層から提供することができるワークロードおよび機能の例は、マッピングおよびナビゲーション91、イングレス処理92、ストリーム処理93、ポータルダッシュボード配信94-同一番号、データ分析処理95、ならびにエグレスおよびデータ配信96を含む。
【0046】
本開示はクラウドコンピューティングプラットフォーム上での実施形態を説明するが、本明細書に記載の実施形態の実装は、クラウドコンピューティング環境に限定されない。
【0047】
システム10のアーキテクチャはある実施形態の少なくとも一部を例示する非限定的な例であることを、当業者は理解するであろう。そのため、より多くのまたは少ない構成要素を、本明細書に記載のイノベーションの範囲から逸脱することなく、異なる方法で採用および/または配置することができる。しかしながら、システム10は、少なくとも本明細書でクレームされる発明を開示するのに十分である。
【0048】
図2を参照すると、少なくとも1つの実施形態に従う、データおよびデータスループットを取り込むためのイングレスサーバシステム100の論理アーキテクチャが示されている。少なくとも1つの実施形態において、1つ以上のイベントソースからのイベントを決定することができる。ある実施形態において、図1に示されるように、イベントソースは、車両センサデータソース12、OEM車両センサデータソース14、アプリケーションデータソースl6、テレマティクスデータソース20、ワイヤレスインフラストラクチャデータソース17、および第三者データソース15などを含み得る。少なくとも1つの実施形態において、決定したイベントは、ストリーム処理サーバシステム200および分析サーバシステム500等のシステムの下流コンポーネントが管理することができる、ロケーションデータ、車両センサデータ、さまざまなユーザとの対話、表示操作、印象などに対応し得る。少なくとも1つの実施形態において、イングレスサーバシステム100は、図1A図2に示されるイベントソースよりも多いまたは少ないイベントソースをイングレスすることが可能である。
【0049】
少なくとも1つの実施形態において、1つ以上のイベントソースから受信および/または決定することができるイベントは、1つ以上のデータソースからの、たとえばGPSデバイスからの車両イベントデータ、または、OEM車両センサデータソース14等の第三者データソース15から提供されるロケーションデータテーブルを含む。車両イベントデータは、データベースフォーマットで、たとえばJSON、CSV、およびXMLで取り込むことができる。車両イベントデータは、サービスおよび/またはイングレスサーバシステム100から提供されるAPIまたは他の通信インターフェイスを介して取り込むことができる。たとえば、イングレスサーバシステム100はイングレスサーバAPI106と統合されたAPIゲートウェイ102インターフェイスを提供することができ、これは、車両イベントソース14から提供されるデータベースに関連付けることができる各種イベントをイングレスサーバシステム100が決定できるようにする。ある具体例としてのAPIゲートウェイは、たとえばAWS APIゲートウェイを含み得る。イングレスサーバシステム100システムのための具体例としてのホスティングプラットフォームは、KubernetesおよびDockerを含み得るが、他のプラットフォームおよびネットワークコンピュータ構成も同様に採用することができる。
【0050】
少なくとも1つの実施形態において、イングレスサーバシステム100は、生データを受け入れるように構成されたサーバ104、たとえば、セキュアファイル転送プロトコルサーバ(SFTP:Secure File Transfer Protocol Server)を含み、APIまたは他のデータ入力を、車両イベントデータを受け入れるように構成することができる。イングレスサーバシステム100を、たとえば分析サーバシステム500によるさらなる分析のために生データをデータストア107に格納するように構成することができる。イベントデータは、イグニッションオン、タイムスタンプ(T1…TN)、イグニッションオフ、関心イベントデータ、緯度および経度、ならびに車両情報番号(VIN:Vehicle Information Number)情報を含み得る。具体例としてのイベントデータは、当技術において周知のソースからの、たとえば車両自体からの(たとえばGPS、APIを介した)、または、第三者データソース15から提供されたロケーションデータのテーブルからの、車両移動データを含み得る。
【0051】
少なくとも1つの実施形態において、イングレスサーバシステム100は、データをクリーンにし検証するように構成される。たとえば、イングレスサーバシステム100を、取り込まれたイベントおよびロケーションデータを検証し、検証したロケーションデータをサーバキュー108に、たとえばApache Kafkaキューに渡すことができるイングレスAPI106を含むように構成することができ、上記データは次にストリーム処理サーバ200に出力される。サーバ108を、検証された、イングレスされたロケーションデータを、データストア107に出力するように構成することもできる。また、イングレスサーバを、無効データをデータストア107に渡すように構成することができる。たとえば、無効ペイロードをデータストア107に格納することができる。具体例としての無効データは、たとえば、不良フィールドもしくは認識されないフィールド、または同一のイベントを有するデータを含み得る。
【0052】
ある実施形態において、システム10は、車両位置をより高い精度で検出しマッピングするように構成される。道路網に関して有用な総計を収集するために、たとえば1日/1週間周期の予想交通量および速度を収集するために、システム10を、所与の道路網を通して車両がどのように移動しているかを判断するように構成してもよい。本明細書に記載されているように、各データポイントを最も近い道路区間に関連付けるまたは「スナップする」という単純な手法は失敗する可能性があり、その理由は、車両のGPSデータがさまざまな周知の物理的効果に起因する固有の程度の誤差を有することにある。さらに、道路網は、複雑な形状で互いに近付いて交差することが多く、結果として複数の道路スナップ候補が存在するロケーションになる。
【0053】
ある実施形態において、システム10を、道路セグメントに対する線分の集合体として与えられたベースマップを含むように構成してもよい。このシステム10は、各線分ごとに、この線分の、この線分から最も近い線分に対する関係に関する幾何学的情報を含む。各線分ごとに、予想交通量および速度に関する統計学的情報が、プロセスの最初の繰り返しから生成される。先に示したように、車両移動イベントデータは、経度、緯度、進行方向、速度、および時刻を含む。
【0054】
ある実施形態において、システム10は、道路セグメントに対応する線分の集まりを取り込み、線分の集まりに対するRツリーインデックスを作成するように構成される。Rツリーは、空間アクセス方法に対して使用されるツリーデータ構造である、すなわち、地理座標、矩形または多角形等の多次元情報をインデックスするためのものである。Rツリーは、特に道路セグメントを表すために、空間オブジェクトをバウンディングボックス多角形として記憶するように構成される。Rツリーは、先ず、データポイントをスナップするために座標の所定距離以内にある道路セグメント候補を発見するために使用される。次に、これらの候補が、進行方向等のイベントデータを考慮する改良されたメトリックを用いてさらに調べられ、すべての既知情報に基づいて、可能性が最も高い道路セグメントを選択する。速度および/または時刻等のイベントデータを用いて道路セグメントを選択することもできる。
【0055】
イングレスサーバ100を、たとえばシステム性能を改善するために、格納された無効データを出力するように、または格納されたデータを分析のためにデータストア107から分析サーバ500に引き出すことができるように構成することができる。たとえば、分析サーバ500を、認識されていないフィールドを有する無効データのデータベースを分析し検証済み処理のためにフィールドを新たに識別しラベル付けするように構成された診断機械学習を用いて構成することができる。イングレスサーバ100を、分析サーバ500による処理のために、たとえば本明細書に記載の行程分析のために、格納された、イングレスされたロケーションデータを渡すように構成することもできる。
【0056】
ある実施形態において、イングレスサーバ100は、イベントデータを処理して車両移動データを導き出す、たとえば、速度、継続時間、および加速度を導き出すように構成される。たとえば、ある実施形態において、x秒(たとえば3秒)ごとにイベントデータベース上でスナップショットが撮影される。次に、緯度/経度データおよび時間データを処理し、車両の位置および時間を使用して、速度および加速度等の車両追跡データを導き出すことができる。
【0057】
ある実施形態において、イングレスサーバシステム100は、デバイスおよび第三者プラットフォームからのデータを受け入れるように構成される。イングレスサーバAPI106を、システム10に対し、デバイスおよびパートナーまたは第三者プラットフォームならびにプラットフォームホストを認証するように構成することができる。
【0058】
したがって、ある実施形態において、イングレスサーバシステム100は、生データを受信し、生データのデータ品質チェックおよびスキーマ評価を実行するように構成される。生データを取り込んで検証することは、図7のブロック701に示される、システムの品質チェックのデータ品質パイプラインのスタートである。表1は、システム10が受信できる生データの一例を示す。
【0059】
【表1】
【0060】
別の実施形態において、イングレスソースからの車両イベントデータに含まれる情報は、より少なくてもよい。たとえば、表2に示されるように、生の車両イベントデータは、限られた数の属性を、たとえばロケーションデータ(経度および緯度)と時間データ(タイムスタンプ)とを含み得る。
【0061】
【表2】
【0062】
本開示の実施形態の具体例としてのある利点は、存在しない情報を、本明細書に記載の革新的なアルゴリズムから導き出すことができる点である。たとえば、車両イベントデータは、行程の特定を含まない場合がある、または不正確な行程の特定を有する場合がある。したがって、システム10を、最初にイングレスされたデータが限定された属性を有する場合は追加の車両イベント属性データを導き出すように構成することができる。たとえば、システム10を、イングレスされた車両イベントデータについて特定の車両を識別して車両IDまたはデバイスIDを追加するように構成することができる。そうすることで、システム10は、たとえば、車両IDに関連付けられたロケーションおよびタイムスタンプデータのみを使用し、発進と停止、速度、進行方向、加速度、および他の属性を含めて、車両の移動を追跡することができる。
【0063】
ある実施形態では、ブロック702において、受信したデータは、外部から定義されたスキーマ、たとえばAvroまたはJSONに準拠していてもよい。このデータは内部スキーマに変換して検証することができる。ある実施形態において、イベントデータを、データ品質パイプラインによるダウンストリーム処理のためにメッセージングシステムに渡される前に、合意されたスキーマ定義と照らし合わせて検証することができる。たとえば、Apache Kafkaメッセージングシステムに検証済みデータを渡す前に、Apache Avroスキーマ定義を使用することができる。別の実施形態において、生の移動およびイベントデータは、クライアントノードクラスタ構成によって処理することもでき、この場合、各クライアントは消費者または生産者であり、インスタンス内のクラスタはそれらの間でデータを複製することができる。
【0064】
たとえば、イングレスサーバシステム100を、パルサークラスタのApacheパルサーエンドポイントに接続されたパルサークライアントで構成することができる。ある実施形態において、Apacheパルサーエンドポイントは、読み出された最後のデータ読み出しを追跡し、Apacheパルサークライアントを、読み出された最後のデータからピックアップするためにいつでも接続できるようにする。パルサーにおいて、「標準」消費者インターフェイスは、「消費者」クライアントを使用して、トピックをリッスンし、着信メッセージを処理し、メッセージが処理されたときにそれらのメッセージを最後に確認応答することを含む。トピックのカーソルはパルサーブローカーモジュールによって自動管理されるので、クライアントは、トピックに接続するときは常に、最も早い確認応答されていないメッセージ以降の読み取りを自動的に開始する。しかしながら、このクライアントのためのクライアントリーダーインタフェースは、クライアントアプリケーションがトピックカーソルをビスポーク方式で管理できるようにする。たとえば、パルサークライアントリーダーを、トピックに接続し、トピックに接続したときからリーダーが読み取りを開始したのはどのメッセージかを指定するように、構成することができる。トピックに接続するとき、リーダーインターフェイスは、クライアントが、トピック内の最も早い利用可能メッセージから、または、トピック内の最新の利用可能メッセージから開始することを可能にする。クライアントリーダーを、たとえばメッセージIDを使用して永続データストアまたはキャッシュからメッセージをフェッチすることにより、最も早いメッセージと最新のメッセージとの間の何らかの他のメッセージから開始するように構成することもできる。
【0065】
先に述べたように、少なくとも1つの実施形態において、イングレスサーバシステム100は、データをクリーンにし検証するように構成される。たとえば、イングレスサーバシステム100を、取り込まれた車両イベントおよびロケーションデータを検証し、検証したロケーションデータをサーバキュー108に、たとえばApache Kafkaキューに渡すように構成されたイングレスサーバAPI106を含むように構成することができ、上記データはストリーム処理サーバシステム200に出力される。サーバ104を、検証された、イングレスされたロケーションデータを、データストア107に出力するように構成することもできる。また、イングレスサーバシステム100を、無効データをデータストア107に渡すように構成することができる。
【0066】
マップデータベースは、たとえばパブリックまたはプロプライエタリマップデータベースを含む、関心ポイントのデータベースまたは他のマップデータベースとすることができる。具体例としてのマップデータベースは、ローカルストリートマップ用のジオファブリック(Geofabric)またはワールドマップデータベース等の現存ストリートマップデータを含み得る。システムはさらに、本明細書に記載の、外部マッピングインターフェイス、ナビゲーションインターフェイス、トラフィックインターフェイス、およびコネクテッド車両インターフェイスにデータをエグレスするように構成されてもよい。
【0067】
イングレスサーバシステム100を、たとえばシステム性能を改善するために、格納された無効データを出力するように、または格納されたデータを分析のためにデータストア107から分析サーバシステム500に引き出すことができるように構成することができる。たとえば、分析サーバシステム500を、認識されていないフィールドを有する無効データのデータベースを分析し検証済み処理のためにフィールドを新たに識別しラベル付けするように構成された診断機械学習を用いて構成することができる。イングレスサーバシステム100を、分析サーバシステム500による処理のために、格納された、イングレスされたロケーションデータを渡すように構成することもできる。
【0068】
本明細書に記載されるように、システム10は、ストリーミングコンテキストおよびバッチコンテキストの両方でデータを処理するように構成される。ストリーミングコンテキストでは、低レイテンシが完全性よりも重要である、すなわち古いデータを処理する必要はなく、実際、古いデータを処理することは、より最近のデータの処理を遅らせる可能性があるため、有害な影響を与える可能性がある。バッチコンテキストでは、データの完全性が低レイテンシよりも重要である。したがって、これらの2つのコンテキストにおけるデータの処理を容易にするために、ある実施形態において、システム10は、すべてのデータを利用可能になると直ちにイングレスするストリーミング接続にデフォルトすることができるが、古いデータをスキップするように構成することもできる。バッチプロセッサを、古いデータを原因とする、ストリーミングプロセッサが残した何らかのギャップを埋めるように構成してもよい。
【0069】
図3は、少なくとも1つの実施形態に係る、データスループットおよび分析のためのストリーム処理サーバシステム200の論理アーキテクチャである。本明細書に記載のストリーム処理は、毎秒少なくとも200k~600kレコードの線形スケーリングにおけるスループットの改善を含むシステム処理の改善をもたらす。改善はさらに、20秒のエンドツーエンドシステム処理を含み、システムレイテンシのさらなる改善が進行中である。少なくとも1つの実施形態において、システム10を、マイクロバッチ処理のためのサーバを使用するように構成することができる。たとえば、本明細書に記載のように、少なくとも1つの実施形態において、ストリーム処理サーバシステム200を、Apache Kafka等の高スループットメッセージングサーバおよびスパークストリーミングサーバを使用するAWS等のウェブサービスプラットフォームホスト上で実行されるように構成することができる。ある実施形態において、ストリーム処理サーバシステム200は、データ処理サーバからの処理済みデータを入力するように構成することができる、デバイス管理サーバ207、たとえばAWSイグナイトを含み得る。デバイス管理サーバ207を、外部に提供またはインターフェイスできる、個々の車両データ分析のために匿名化されたデータを使用するように構成することができる。システム10を、リアルタイムでデータを出力するように、かつ、将来の分析のために1つ以上のデータストアにデータを格納するように、構成することができる。たとえば、ストリーム処理サーバシステム200を、インターフェイスを介して、たとえばApache Kafkaを介してリアルタイムデータをエグレスサーバシステム400に出力するように構成することができる。ストリーム処理サーバシステム200を、リアルタイムデータおよびバッチデータの両方をデータストア107に格納するように構成することもできる。さらなる分析のために、データストア107内のデータにアクセスする、またはこのデータをインサイト(insight)サーバシステム500に与えることができる。
【0070】
少なくとも1つの実施形態において、イベント情報は、後の処理および/または分析のために、1つ以上のデータストア107に格納することができる。同様に、少なくとも1つの実施形態において、イベントデータおよび情報は、決定または受信されると処理されてもよい。また、イベントペイロードおよびプロセス情報を、履歴情報および/または比較情報としての使用のため、ならびにさらなる処理のために、データストア107等のデータストアに格納することができる。
【0071】
少なくとも1つの実施形態において、ストリーム処理サーバシステム200は、車両イベントデータ処理を実行するように構成される。
【0072】
図3は、少なくとも1つの実施形態に係る、ストリーム処理サーバシステム200の論理アーキテクチャとおよび概要フローチャートを示す。ブロック202において、ストリーム処理サーバシステム200は、イングレスされたロケーション201からのロケーションイベントデータの検証を実行する。適切にフォーマットされていない、重複する、または認識されないデータは、フィルタリングによって取り除かれる。具体例としての無効データは、たとえば、不良フィールド、認識されないフィールドを有するデータ、または同一イベント(重複)、または同じ場所および時間において発生するエンジンオン/エンジンオフデータポイントを含み得る。また、検証は、予め定められた期間、たとえば7秒より古いイベントデータを破棄するレイテンシチェックを含む。ある実施形態において、たとえば、4秒と15秒の間の他のレイテンシフィルタを使用することができる。
【0073】
ある実施形態において、図7のブロック703に示されるように、ストリーム処理サーバシステム200は、属性範囲フィルタリングを実行するように構成される。属性範囲フィルタリングは、イベントデータ属性が、このデータにとって重要な、データの予め定められた範囲に含まれることを保証するために、チェックする。たとえば、進行方向属性を、円(0→359)と定める。squish-vinは9~10文字のVINである。例は、データプロバイダによって予め定義されたまたは標準によって設定されたデータを含む。これらの範囲にないデータ値は、データが属性について本質的に不良であることを示す。非適合データをチェックし、フィルタリングして取り除くことができる。属性範囲フィルタリングの一例を表3に示す。
【0074】
【表3】
【0075】
ある実施形態において、ブロック704において、システム10は、属性値フィルタリングを実行するように構成される。属性値フィルタリングは、属性値が内部で設定されたことまたはビスポーク規定範囲であることを保証するために、チェックする。たとえば、1970という日付は、イベントの日付属性に対する属性範囲フィルタチェックに合格することができるが、その日付は車両追跡データにとっては妥当なデータではない。したがって、属性値フィルタリングは、チェックしフィルタリングすることができる、予め定められた時間よりも古い、たとえば6週間以上前のデータをフィルタリングするように構成される。属性範囲フィルタリングの一例を表4に示す。
【0076】
【表4】
【0077】
ブロック705において、システム10は、レコード内の属性についてさらに検証を行い、レコードデータポイントの属性間の関係がコヒーレントであることを確認することができる。たとえば、非ゼロトリップ開始イベントは、本明細書に記載の行程決定にとっては論理的な意味をなさない。したがって、表5に示されるように、システム10を、「トリップ開始」または行程のイグニッションオンもしくは開始イベントとしての、ロケーションの捕捉タイムスタンプおよび受信タイムスタンプの同一属性に対して記録された、非ゼロ速度イベントをフィルタリングするように構成することができる。
【0078】
【表5】
【0079】
図2に戻ると、ブロック204において、少なくとも1つの実施形態において、ストリーム処理サーバ200は、ロケーションイベントデータのジオハッシュを実行する。Uber(商標)が使用するH3アルゴリズムまたはGoogle(商標)が使用するS2アルゴリズム等の、ジオハッシュに代わるものを利用できるが、ジオハッシュは、システム10に、具体例としての改善、たとえばシステムレイテンシおよびスループットの改善をもたらすことが見出された。また、ジオハッシュは、システム10の精度および車両検出におけるデータベースの改善をもたらした。たとえば、9文字の精度のジオハッシュを使用することにより、車両をジオハッシュに一意に関連付けることができる。そのような精度は、本明細書に記載の行程決定アルゴリズムに用いることができる。少なくとも1つの実施形態において、イベントデータ内のロケーションデータは近接度に符号化され、符号化は、各イベントの緯度および経度を各イベントの近接度にジオハッシュすることを含む。イベントデータは、時間、位置(緯度/経度)、および関心イベントデータを含む。関心イベントデータは、急ブレーキおよび急な加速を含み得る。たとえば、急ブレーキは、予め定められた時間内の減速(たとえばx秒間で40-0)であると定義することができ、急な加速は、予め定められた時間内の加速(たとえばx秒間で40-80mph)であると定義される。関心イベントデータは、他のアルゴリズムにおける使用のために相関させて処理することができる。たとえば、時空間クラスタにロケーションマッピングされた急ブレーキのクラスタを、混雑検出アルゴリズムとして用いることができる
ジオハッシュアルゴリズムは、イベントデータからの緯度および経度(緯度/経度)データをn文字の短いストリングに符号化する。ある実施形態において、ジオハッシュされた緯度/経度データは、ある形状にジオハッシュされる。たとえば、ある実施形態において、緯度/経度データは、そのエッジがストリング内の文字に比例する矩形にジオハッシュすることができる。ある実施形態において、ジオハッシュは、4~9文字に符号化することができる。
【0080】
いくつかの利点が、本明細書に記載のジオハッシュされたイベントデータを使用するによって得られる。たとえば、データベースにおいて、ジオハッシュでインデックスされたデータは、所定の矩形エリアのすべてのポイントを連続するスライス内に有し、この場合のスライスの数は、符号化のジオハッシュ精度によって決まる。これは、複数インデックスクエリよりも遥かに簡単で高速である単一インデックスに対するクエリを可能にすることにより、データベースを改善する。また、ジオハッシュインデックス構造は、最も近いポイントが最も近いジオハッシュの中にあることが多いので、合理化された近接検索にも役立つ。
【0081】
ブロック206において、少なくとも1つの実施形態において、ストリーム処理サーバシステム200は、ロケーションルックアップを実行する。先に述べたように、ある実施形態において、システム10を、ジオハッシュを符号化することで、定められた地理的エリア、たとえば、国、州、またはジップコードを特定するように構成することができる。システム10は、緯度/経度を、そのエッジがストリング内の文字に比例する矩形にジオハッシュすることができる。
【0082】
たとえば、ある実施形態において、ジオハッシュを5文字に符号化するように、ジオハッシュを構成することができ、州を5文字のジオハッシュされたロケーションで特定するように、システム10を構成することができる。たとえば、5つのスライスまたは文字という精度で符号化されたジオハッシュは、+/-2.5キロメートルの精度であり、これは州を特定するのに十分である。6文字へのジオハッシュは、ジップコードにジオハッシュされたロケーションを特定するために使用することができ、これは+/-0.61キロメートルの精度である。4文字へのジオハッシュは国を特定するために使用することができる。ある実施形態において、システム10を、ジオハッシュを符号化して、ジオハッシュされたロケーションで車両を一意に特定するように構成することができる。ある実施形態において、システム10を、ジオハッシュを9文字に符号化して車両を一意に特定するように構成することができる。
【0083】
ある実施形態において、システム10をさらに、ジオハッシュされたイベントデータをマップデータベースにマッピングするように構成することができる。マップデータベースは、たとえば、本明細書に記載のパブリックまたはプロプライエタリマップデータベースを含む、関心ポイントのデータベースまたは他のマップデータベースとすることができる。システム10はさらに、マッピングインターフェイスを生成するように構成されてもよい。本明細書に記載のジオハッシュの使用の、具体例としての利点は、ダウンストリームで処理されるときの車両イベントデータをより高速かつ低レイテンシで充実させることを可能にする点である。たとえば、地理的定義、マップデータ、および他の充実化は、ジオハッシュされたロケーションおよび車両IDに容易にマッピングされる。また、フィードデータを、集約されたデータセットに組み込み、インターフェイスを用いて、たとえば図8に示されるようにGIS可視化ツール(たとえばMapbox、CARTO、ArcGIS、もしくはGoogle(登録商標) Maps API)または他のインターフェイスを用いて、可視化することで、グラフィック報告を生成およびインターフェイスすることができる、または、アナリティックスインサイトを生成するために処理されたデータを使用して、たとえばエグレスサーバシステム400またはポータルサーバシステム600を介して第三者15に報告を出力することができる。
【0084】
少なくとも1つの実施形態において、ブロック208において、ストリームプロセッササーバシステム200を、たとえば、イベントデータ内の車両データの車両識別番号(VIN:Vehicle Identification Number)から個人識別情報を削除するまたはこれを不明瞭にすることによって識別情報を削除するために、データを匿名化するように構成することができる。各種実施形態において、イベントデータまたは他のデータはVIN番号を含むことができ、VIN番号は、製造、モデル、および年等の、車両の製品情報を表す番号を含み、また、車両を一意に特定する文字を含み、所有者に対して個人的に特定するために使用することができる。システム10は、たとえば、車両データから車両を一意に特定するVIN内の文字は削除するが他の識別シリアル番号(たとえば、製造、モデル、および年の番号)は残すアルゴリズム、たとえばSquish Vinアルゴリズムを含み得る。ある実施形態において、システム10を、匿名化されたデータに固有の車両タグを追加するように構成することができる。たとえば、システム10を、固有の番号、文字、または他の識別情報を匿名化されたデータに追加するように構成することができ、それにより、固有の車両に関するイベントデータを、VINに関連する個人識別情報が削除された後に、追跡、処理、および分析することができる。匿名化されたデータの具体例としての利点は、匿名化されたデータが、処理済みイベントデータを外部提供できるようにしつつ、たとえば法的に要求されるかまたはユーザが望む場合もある、データの個人識別情報の保護を可能にする点である。
【0085】
少なくとも1つの実施形態において、本明細書に記載のように、9文字へのジオハッシュは、VINデータ等の個人特定情報を取得または必要とせずに、車両の一意の識別を提供することも可能である。車両を、データベースイベントデータの処理によって識別し、固有の車両を特定するのに十分な精度で、たとえば9文字の精度でジオハッシュすることができ、そうすると、本明細書に記載のように、車両を識別し、追跡し、そのデータを処理することができる。
【0086】
ある実施形態において、データは本明細書に記載されているように処理することができる。たとえば、未集約データをデータベース(たとえばParquet)に格納し時間で分割してもよい。データをストリーム内で検証しその後ストリーム内で逆ジオコーディングしてもよい。たとえば車両の種類によるデータ強化(data enrichment)をストリーム内で実行してもよい。車両イベントデータを、たとえば地域、行程、および日付で集約してもよい。データはParquetで保存することができ、Postgresで保存することもできる。基準データを、ストリーム内でのマージのためにParquetで適用してもよい。他の基準データを空間属性のためにPostgresで適用してもよい。
【0087】
先に述べたように、リアルタイムストリーミングの場合、ブロック202において、データ検証は、過剰レイテンシ、たとえば7秒を超えるレイテンシのデータをフィルタリングによって除去する。しかしながら、バッチデータ処理は、ギャップなしの完全なデータセットで実行することができ、したがって、レイテンシのためにフィルタリングされないデータを含むことができる。たとえば、図5に関して説明する分析のためのバッチデータプロセスは、最大で6週前までのデータを受け入れるように構成することができるが、ストリーム処理サーバシステム200のストリーミングスタックは、7秒前よりも古いデータをフィルタリングするように構成され、したがって、ブロック202におけるレイテンシ検証チェックを含み、より高レイテンシのイベントを拒否する。
【0088】
ある実施形態において、ブロック212において、レイテンシのためにフィルタリングされた変換済みロケーションデータと拒否されたレイテンシデータの両方が、サーバ待ち行列、たとえば、Apache Kafka待ち行列に入力される。ブロック214において、ストリーム処理サーバシステム200は、データを、フルデータ216を含む、すなわちレイテンシのためにフィルタリングされた変換済みロケーションデータおよび拒否されたレイテンシデータを含むデータセットと、変換済みロケーションデータ222の別のデータセットとに、分割することができる。フルデータ216は、アクセスのためまたは分析サーバシステム500への送信のためにデータストア107に格納され、フィルタリングされた変換済みロケーションデータは、エグレスサーバシステム400に送信される。別の実施形態において、拒否されたデータを含むフルデータセットまたはその一部を、第三者プラットフォームのためのエグレスサーバシステム400に、それ自身による使用および分析のために送信することもできる。そのような実施形態において、ブロック213において、レイテンシのためにフィルタリングされた変換済みロケーションデータと、拒否されたレイテンシデータとを、直接、エグレスサーバシステム400に提供することができる。
【0089】
図4Aは、エグレスサーバシステム400の論理アーキテクチャである。少なくとも1つの実施形態において、エグレスサーバシステム400は、レコードを取り込み、処理し、イベントデータを出力するように配置された1つ以上のコンピュータとすることができる。エグレスサーバシステム400を、プッシュまたはプルベースでデータを提供するように構成することができる。たとえば、ある実施形態において、システム10を、Apache Sparkクラスタからのサーバプッシュサーバ、または、複数のノード、たとえばAkkaサーバプラットフォーム上のScalaまたはJava(登録商標)プラットフォームを介した並列処理のために分散型サーバシステムを使用するように構成することができる。プッシュサーバを、たとえばレイテンシフィルタリング421、ジオフィルタリング422、イベントフィルタリング423、変換424、および送信425のために、ストリームプロセスサーバシステム200からの変換されたロケーションデータを処理するように構成することができる。本明細書に記載されるように、ジオハッシュは、システム10のスループットレイテンシを大幅に改善し、これは、たとえば数分以内、さらには数秒以内に、イベントに近接して処理されたデータに対する適時プッシュ通知を行うという利点を可能にする。たとえば、ある実施形態において、システム10は、60秒未満のレイテンシを目標とするように構成される。先に述べたように、ストリーム処理サーバシステム200は、7秒未満のレイテンシのイベントをフィルタリングするように構成され、スループットも改善する。ある実施形態において、プルデータのためのデータストア406を、APIゲートウェイ404を介して提供することができ、プルAPI405は、どの第三者15ユーザがデータをプルしているかおよびユーザが要求しているのはどのデータかを追跡することができる。
【0090】
たとえば、ある実施形態において、エグレスサーバシステム400は、システム10によって提供されるフィルタに基づいてパターンデータを提供することができる。たとえば、システムを、特定の1つまたは複数のロケーションについてのイベントデータをフィルタリングするためにジオフェンスフィルタ412を提供するように構成することができる。ジオフェンスを、多数のパターンおよび構成のために本明細書に記載の行程およびイベントデータを境界設定および処理するように構成することができることが、理解されるであろう。たとえば、ある実施形態において、エグレスサーバシステム400を、ユーザが提供または選択した経度/緯度内での行程の開始および終了(イグニッションキーオン/オフイベント)にデータを制限するように構成された「パーキング」フィルタを提供するように構成することができる。このデータのさらに他のフィルタまたは例外を、たとえば州(州コードまたは緯度/経度)によって構成することができる。また、システム10を、「トラフィック」フィルタを用いて構成することで、たとえば特定の州および経度/緯度バウンディングボックスをフィルタから除外して、トラフィックパターンデータを提供することもできる。
【0091】
ある実施形態において、エグレスサーバ400は、低レイテンシリアルタイムスループットを維持および改善するように構成された低レイテンシアルゴリズムでデータを処理するように、構成することができる。このアルゴリズムは、計算リソースを妨害しないまたは作動不能にしない、ターゲティングされたリアルタイムデータを必要とする、ダウンストリームインターフェイスをポピュレートすることが可能な、低レイテンシファイル出力のために、データを処理するように構成することができる。ある実施形態において、システム10は、ストリーム処理サーバ200からのライブ車両移動データストリームから事実上リアルタイムで出力されるよう、道路セグメントの低レイテンシ平均道路速度データを提供するように構成される。エグレスサーバ400を、生データを順番に削除し軽量のデータパッケージをパートナー20に提供するように構成し、たとえばプッシュサーバを介してダウンストリームインターフェイスのために構成することもできる。
【0092】
図4Bに示されるように、ある実施形態において、ブロック408で、エグレスサーバ400は、本明細書に記載の連続多角形のセットによって定められる、対象の道路セグメントと、入口および出口セグメントとを含む、道路回廊を用いて構成される。システムはまた、各セグメントごとに速度しきい値を含む。ブロック410において、システムは、高スループットのリアルタイム車両移動イベントデータを取り込むように構成され、このデータは、イングレスサーバ100によってイングレスされストリーム処理サーバ300によって処理された標準トリップイベントデータを含み、これは、デバイスID、緯度/経度、点火状態、速度、およびタイムスタンプ等のデータを含む。
【0093】
ある実施形態において、ブロック412で、システムは、図4B図4Eに関して本明細書で説明するように、車両のデータポイントを追跡するように構成される。システムは、車両ごとに、車両移動イベントデータストリームから、車両ごとの道路セグメント横断時間、車両ごとの道路セグメント通過平均速度、および、車両について道路セグメントの速度しきい値を上回るデータポイントを受けた回数を、提供するように構成される。ある実施形態において、車両から捕捉されるデータポイント間の間隔は、たとえば1~3秒であってもよい。
【0094】
図4C図4Dは、複数の道路セグメントを含む道路回廊の論理的レイアウトを示す図である。道路回廊は、交通を監視する道路の一部である。ある実施形態において、道路セグメントは、所与の道路区間の周りに描いた多角形によって画定することができる。多角形は、この区間の周りに2次元形状を構成する3つ以上のポイントとして定めることができる。本明細書で使用されるデータポイントは、緯度および経度で表されるポイントならびにそのポイントについての車両イベントデータを意味する。道路回廊は、対象道路セグメントの数(n)、と、追加の入口セグメントおよび出口セグメントとを含む。したがって、道路回廊は、少なくとも3つのセグメントを含む一連の連続道路セグメントである。以下で説明するように、少なくとも3つの連続セグメントを用いて、所与のセグメントを車両が横断するときのこのセグメントについての車両データを取得する。
【0095】
図4C図4Dを参照して示され説明される例において、道路セグメントの各々は、道路の中心でドライブされる場合、1531.06ヤードである。道路回廊は11のセグメントを含み、道路回廊(全セグメント)の全長は16841.66ヤードまたは約9.57マイルである。しかしながら、この回廊は、3つ以上の道路セグメントまたはそれよりも多い任意の数のセグメントを含むことができ、道路回廊のセグメントは可変長となるように定めることができる。
【0096】
各道路セグメントは速度しきい値を含む。速度しきい値はセグメントごとに定められるので、各セグメントは異なる速度しきい値を有し得る。速度しきい値は、車速がしきい値を上回るデータポイントをカウントするためのしきい値として構成される。速度しきい値は、たとえば、セグメントが対応する道路の、規定された速度制限に対応するように定めることができるが、そのように定められる必要はない。速度しきい値は、任意の速度に対して設定することができ、したがって、任意の目的で速度データを捕捉するために定められる。
【0097】
システムは、車両イベントデータから、複数のデータポイントを監視することによって車両のセグメント横断について計算するように構成される。セグメント横断は、車両が道路セグメントを一端から他端まで完全に通過する場合のことである。
【0098】
ある実施形態において、図4Dに示されるように、ポイントAにおいて、システムは、車両がセグメント1内で最初に識別されたときに、特定のデバイスIDについて車両イベントデータを記録する。ポイントBは、横断開始データポイントであり、ポイントAで最初に識別された車両が横断してセグメント2に入っている。したがって、ポイントAにおけるイベントデータは、システムが、ポイントBにおいて、セグメント1からセグメント2へと境界を横切るものとして車両を認定することを可能にする認定ポイントである。ポイントBにおいて、システムは、この車両の車両状態を確立する。車両が境界を横切ってセグメント2に入ったことをシステムが確認すると、ポイントBが計算の開始ポイントとして使用される。
【0099】
車両速度が速度しきい値と交差する任意のポイントにおいて、システムは、そのポイントについて車両のスピードカウントを増分するように構成される。図4Dに示されるように、ポイントCにおいて、車両はまだセグメント2内に存在し、速度しきい値を上回る。システムは、その車両についてスピードカウントを1に増分する。ポイントDにおいて、システムは、車両がまだセグメント2内に存在し、加速していないことを記録する。ポイントEにおいて、システムは、車両がまだセグメント2内に存在し、速度しきい値と再び交差すると記録する。システムは、車両のスピードカウントを2に増分する。ポイントFにおいて、システムは、車両がセグメント2から出てセグメント3に入ったことを識別する。ポイントEは、セグメント3の認定データポイントでもある。よって、システムは、車両がセグメント2のセグメント横断を完了したことを識別する。このように、ポイントFは、セグメント2についての計算をトリガするためのトリガポイントとして作用する。
【0100】
計算トリガデータポイントFにおいて、システムは次に、セグメント2のセグメントイベントレコードのデータを計算する。セグメントイベントレコードは、セグメント2の横断時間および平均速度を含む。横断時間は、セグメントの横断に要する時間の量である。横断時間は、道路セグメントの外に出た第1のデータポイントの捕捉されたタイムスタンプからこの道路セグメントの内側の第1のデータポイントの捕捉されたタイムスタンプをマイナスした、ミリ秒単位の時間である。たとえば、図4Dにおいて、セグメント2の横断時間は、ポイントF(道路セグメント2の外に出た第1のデータポイント)におけるタイムスタンプからポイントB(道路セグメント2の内側の第1のデータポイント)における横断のタイムスタンプをマイナスしたものとして計算される。
【0101】
平均速度は、セグメント距離を横断時間で割ったものである。平均速度を乗算して所望の大きさを得てもよい。車両移動データポイントの所与の捕捉レート(たとえば3秒)に対し、駆動される正確な距離は、レコードによって変動し、セグメントの平均速度を計算するときには固定距離を使用することができる。たとえば、50MPHでは、車両は3秒で約73.3ヤード走行する。図4C図4Dに示す例において、セグメント距離1531.06ヤードは(横断時間に3600000を乗じたもの)で除算され、1760で除算されて、2小数点以下までの正確なMPHで平均速度が得られる。
【0102】
図4Dに示されるセグメントイベントレコードの作業例は以下の通りである。12:00:00.342で、前のセグメント(セグメント1)で見られた車両は道路セグメントに入る。車両は、次の道路セグメント(セグメント2)において、12:01:30.342で見られたと識別される。横断時間は、12:01:30.342-12:00:00.342=90000ミリ秒である。平均速度は((1531.06/90000)*3600000)/1760=34.80MPHである。システムはまた、2のスピードカウントを含むセグメント2のセグメントイベントレコードを生成する。
【0103】
図4Bを再び参照して、ブロック414において、車両が、あるセグメント全体を(前のセグメントから入り、次のセグメントに出ることによって)終了するたびに、セグメントイベントレコードが生成される。セグメントイベントレコードは、システムがセグメントイベントを生成した個々のデータポイントに対して内部的に監査することを可能にする固有のIDであるデータポイントIDを含む。したがって、各セグメントイベントレコードは、セグメントレコードを一意に識別するためのデータポイントIDを有する。セグメントイベントレコードはまた、セグメントの固有IDであるセグメントIDを含む。セグメントイベントレコードはまた、ミリ秒単位の、セグメントを横断するのに要する時間である横断時間と、MPH単位の、セグメントを通過する平均速度である平均速度とを含む。最後に、セグメントイベントレコードは、車両がセグメントを通じて速度しきい値を上回った回数である、速度しきい値超過カウントを含む。ある実施形態において、セグメントイベントレコードは、JSONフォーマットで生成されてもよい。ブロック418において、各セグメントイベントレコードが生成され、セグメントごとに送信および分割される。ある実施形態において、送信されたファイルは、ペイロードアレイ内に1つ以上のセグメントイベントレコードを含み得る。ある実施形態において、セグメントを通過する車両がない場合、ファイルは生成されない。セグメントイベントレコードの具体例としての論理ペイロードが表6に示される。
【0104】
【表6】
【0105】
図4Cに示されるように、(たとえばセグメント2について)セグメントイベントレコードが計算された後に道路回廊が別のセグメント(たとえばセグメント3)を有する場合、ポイントFは、ポイントEによって認定される、そのセグメントについての横断開始データポイントでもある。したがって、システムは、別のセグメントイベントレコードを生成するために車両状態を追跡するように構成されるが、セグメントイベントレコードの生成後に、前のセグメント(セグメント2)を計算するために使用された生データを破棄することができる。このプロセスは、車両が道路回廊のいずれかのセグメントから出るまで、または以下で説明する例外基準の1つを満たすまで、連続するセグメントごとに繰り返される。
【0106】
図4Bに示されるように、ある実施形態において、システムは、ブロック418で、車両状態が確立されスピードカウントおよびタイムスタンプがセグメントイベントレコードに記録された後に、データポイントについての車両移動イベントデータを削除するように構成される。図4Cに示されるように、車両がポイントAで認定された後にシステムがポイントBで車両の状態を確立すると、システムは、データポイントIDを使用して、セグメントを通して車両を追跡する。各ポイントが識別され、その速度カウントが計算されるので、システムはもはやそのポイントの生イベントデータを保持する必要がない。したがって、セグメントイベントレコードが作成されると、エグレスサーバ400は生データを削除してシステムのレイテンシを改善するように構成される。
【0107】
本明細書で説明するように、低レイテンシはシステムの重要な技術的特徴なので、改善されたレイテンシは、セグメントイベントをエグレスするために使用されるアルゴリズムおよびセグメントイベントレコードコンテナの設計および実装にとって偶然ではない。さらに、軽量セグメントイベントレコードコンテナは、ダウンストリームコンソール、たとえば交通管理コンソールが機能することを可能にする。たとえば、図4Bのブロック416において、セグメントイベントレコードは、プッシュサーバから外部パートナー20にリアルタイムで送信することができる。たとえば、ある実施形態において、セグメントレコードは、プッシュサーバから、AWS S3バケット、ウェブソケット、またはAPI等のインターフェイスに送られるように構成されてもよい。ある実施形態において、セグメントイベントレコードは、インサイト処理のために分析サーバ500に送信され、APIまたは他のインターフェイスのためにポータルサーバ600に出力されてもよい。したがって、ブロック418において、システムは、システム自体のレイテンシならびにダウンストリームインターフェイスおよびコンソールの操作性の両方を改善するために、エグレスサーバ400で使用される生データを破棄するように構成されてもよい。
【0108】
上記例に示されるように、少なくとも3つの連続セグメントを用いて、所与のセグメントの平均速度を計算する。図4Eは、初期の入口セグメントおよび出口セグメントを含む複数のセグメントを含む道路回廊を通して車両を追跡するためのシステムフローの実施形態を示す。ブロック430において、第1のセグメントは、車両がシステムによって最初に識別されるときに車両を認定する。車両が最初に識別されるセグメントでは、車両が横断境界でセグメントに入ったか否か判断することができない。ブロック432において、車両が第2のセグメント内にあるとシステムが識別すると、システムは、第1のセグメント内に出現した車両が第1のセグメントと第2のセグメントとの間の境界を横切ったことを確認する。次に車両状態が確立されセグメントを通して追跡される。ブロック434において、車両は、第2のセグメントから第3のセグメントに入ると追跡され、システムは、車両が第2のセグメント全体を横断したことを確認する。ブロック435において、システムは、本明細書に記載のセグメントイベントレコードのデータを算出し、セグメントイベントを作成する。ステップ436において、このプロセスは、車両が道路回廊から出るかまたは道路回廊内の所与のセグメントから出るときのブロック438まで、道路回廊の各連続セグメントについて繰り返される。車両が道路回廊の外側にある場合、ブロック540において、車両追跡は終了する。
【0109】
ある実施形態において、システムは、いくつかの例外について車両追跡を終了するように構成される。ブロック431に示されるように、ある実施形態では、システムは、システムが30分以内にその車両のデータポイントを受信していない場合、車両イベントデータの追跡を停止するように構成される。この場合、システムはブロック440に進み、その車両を追跡することを停止する。
【0110】
ブロック433において、システムはまた、前のセグメントに戻る(すなわちUターン)車両を削除または無視するように構成される。この場合、システムはブロック440に進み、その車両を追跡することを停止する。
【0111】
ある実施形態では、ブロック437およびブロック439において、イベントデータがエンジンオンまたはエンジンオフイベントを含む場合、そのセグメントの道路セグメントデータは削除される。エンジンオン/オフイベントの存在は、車両がセグメントで停止したときに接続性が失われたことを示す。この場合、システムは再びブロック440に進み、その車両を追跡することを停止する。
【0112】
理解されるように、システム10は、低レイテンシで極めて正確なインサイトを提供し、車両の変動および起こり得る偏りを考慮することができ、加えて、エッジケースが偏りを導入しないことを保証する。エッジケースは、遅いまたはアウトオブオーダーデータ、多車線州間に起因する速度の広範な変動、および結果をスキューする小型車両を、含む。
【0113】
図5は、データアナリティックスおよびインサイトのための分析サーバシステム500の論理アーキテクチャを表す。少なくとも1つの実施形態において、分析サーバシステム500は、イベントデータを分析するように配置された1つ以上のコンピュータとすることができる。リアルタイムデータおよびバッチデータの両方を、本明細書に記載の他のコンポーネントから、処理のために分析サーバシステム500に送ることができる。ある実施形態において、バッチおよびストリーミングデータ処理を組み合わせる、Apache Sparkクラスタ等のクラスタコンピューティングフレームワークおよびバッチプロセッサが、分析サーバシステム500によって採用されてもよい。分析サーバシステム500に提供されるデータは、たとえばイングレスサーバシステム100、ストリーム処理サーバシステム200、およびエグレスサーバシステム400からのデータを含み得る。
【0114】
ある実施形態において、分析サーバシステム500を、データストア107等のデータストアに格納することができる車両イベントペイロードおよび処理済みの情報を受け入れるように構成することができる。図5に示されるように、ストレージは、エグレスサーバシステム400からのリアルタイムのエグレスデータ、ストリーム処理サーバシステム200からの変換されたロケーションデータおよび拒否データ、ならびにイングレスサーバシステム100からのバッチおよびリアルタイムの生データを含む。図2に示されるように、データストア107に格納された、イングレスされたロケーションは、分析サーバシステム500に出力またはプルすることができる。分析サーバシステム500を、図2に示されるストリームプロセッササーバシステム200と同じ方法で、イングレスされたロケーションデータを処理するように構成することができる。先に述べたように、ストリーム処理サーバシステム200を、フルデータ(レイテンシのためにフィルタリングされた変換済みロケーションデータおよび拒否されたレイテンシデータ)を含むフルデータセット216と、変換されたロケーションデータ222のデータセットとに、データを分割するように構成することができる。フルデータセット216は、アクセスのためおよび分析サーバシステム500への送信のためにデータストア107に格納され、フィルタリングされた変換済のロケーションデータは、エグレスサーバシステム400に送信される。図5に示されるように、リアルタイムのフィルタリングされたデータを、パフォーマンス522、イングレス対エグレス524、動作モニタリング526、およびアラート528の報告を含む、準リアルタイムでの報告のために、処理することができる。
【0115】
したがって、図5のブロック502において、少なくとも1つの実施形態では、分析処理サーバシステム500を、図2のブロック202および図7のブロック701~705で示されるのと同じ方法で、イングレスされたロケーションから生のロケーションイベントデータの検証を任意で実行するように構成することができる。ある実施形態において、図7に示されるように、ブロック706において、システム10は、レコードのバッチ処理を用いて、複数のイベントレコードの属性に対するさらなる検証を実施し、イベントデータポイントの属性間のレコード内関係が意味のあるものであることを確認することができる。たとえば、表7に示されるように、システム10を、行程のイベントの論理的順序付け(たとえばある行程の行程イベントは「トリップ開始-トリップ終了-トリップ開始」のように交互に起こるものであって「トリップ開始-トリップ開始-トリップ終了-トリップ終了」という繰り返しではない)を確実にするために分析されたデータポイントを分析するように構成することができる。
【0116】
【表7】
【0117】
図5のブロック504に戻ると、少なくとも1つの実施形態において、分析サーバシステム500は、任意で、図2のブロック204に示されるように、ロケーションイベントデータのジオハッシュを実行するように構成されてもよい。図5のブロック506において、分析サーバシステム500は、任意で、ロケーションルックアップを実行してもよい。図5のブロック508において、分析サーバシステム500を、図2のブロック206および208に示されるデバイス匿名化を任意で実行するように構成してもよい。
【0118】
ブロック510において、少なくとも1つの実施形態では、分析サーバシステム500は、イベントデータの行程セグメント分析を実行することができる。ブロック512において、分析サーバ500は、イベント情報から行程を認定するための計算を実行するように構成される。少なくとも1つの実施形態では、ブロック514において、システムは、車両イベントデータのデータベースを分析し、開始時間、終了時間、開始ロケーション、終了ロケーション、データポイントカウント、平均間隔等の属性を有する行程オブジェクトへのポイントの行程の要約を分析することにより、能動的車両検出を提供するように構成される。ある実施形態において、行程オブジェクトを処理のために別のデータテーブルに入れてもよい。
【0119】
ある具体例としての実施形態において、システム10は、(たとえばVIN番号による)車両の事前識別を必要とすることなく車両追跡を実行するように構成されてもよい。先に述べたように、ジオハッシュをイベントデータのデータベースに用いることにより、イベントを車両に対して一意に相関させるのに十分な形状に対応する9文字の精度まで、データをジオハッシュすることができる。ある実施形態において、能動的車両検出は、ある期間にわたる複数のイベントから車両経路を特定することを含む。ある実施形態において、能動的車両検出は、1日(24時間)の期間にわたる複数のイベントから車両経路を特定することを含み得る。この特定は、たとえばコネクテッドコンポーネントアルゴリズムを用いることを含む。ある実施形態において、コネクテッドコンポーネントアルゴリズムを用いることにより、車両イベントの日を含む有向グラフにおいて車両経路を特定し、このグラフにおいて、ノードは車両でありノード間の接続は特定された車両経路である。たとえば、行程開始および行程終了のグラフが作成され、この場合のノードは開始および終了を表し、エッジは車両によって実施される行程である。各エッジにおいて、開始および終了が一時的にソートされる。エッジは、終了を、時間で順序付けられた、そのノードの次の開始に接続するために作成される。ノードは、GPS座標の9桁のジオハッシュである。コネクテッドコンポーネントアルゴリズムは、一組のノードと、接続されたエッジとを発見し、1日の始まりで生成されたデバイスIDを、決定されたサブグラフに沿って送ることにより、同じ車両によって実施されている行程(エッジ)を一意に特定する。
【0120】
この方策の具体例としての利点は、イベントデータに対して車両を予め特定する必要がない点である。本明細書に記載の行程基準を満たす車両経路からの行程セグメントを用いることにより、上記のように、行程を検出し、適格でない行程イベントを除外することができる。たとえば、車両の移動停止/エンジンオフから移動開始/エンジンオンイベントまでがx秒(30秒)以内であったことを示すイベントデータについて9桁(最高分解能)に符号化されたジオハッシュは、行程の同一車両とみなすことができる。一連の到着と出発に対し、行程を、グラフを通して、行程セグメントの最短経路として計算することができる。
【0121】
少なくとも1つの実施形態において、ブロック515において、システム10を、データウェアハウス517内にイベントデータおよび行程判定データを格納するように構成することができる。データはデータベースフォーマットで格納することができる。ある実施形態において、タイムカラムを処理済みデータに追加することができる。ある実施形態において、データベースは、関心ポイント(POI:Point of Interest)データを含むこともできる。
【0122】
分析サーバシステム500は、データウェアハウス517に格納されたデータ、たとえば、スパーク分析クラスタに対してデータ分析を実行する分析サーバコンポーネント516を含み得る。分析サーバシステム500を、評価530、クラスタリング531、人口統計分析532、およびビスポーク分析533を実行するように構成することができる。たとえば、ウェアハウス517に格納された処理済みの行程データおよびロケーションデータに対するデータに、日付カラムおよび時間カラムを追加することができる。これは、たとえば、日付および時刻によって交差点xにどれだけ多くの車両があるかを判断する、ビスポーク分析533に使用することができる。また、システム10を、図4Aに関して説明したように、エグレスサーバシステム400におけるビスポーク分析533を提供するように構成することもできる。
【0123】
ある実施形態において、地理空間インデックス行を、格納されたウェアハウス517のデータに追加して、たとえば、ジオハッシュされたデータに対するハイパーローカルターゲティングまたはアドホッククエリの高速化を実行することができる。たとえば、4桁または文字に分解されたロケーションデータは、20メートル以下の分解能に相当し得る。分析サーバ500を、検証済み処理のためのフィールドを新たに識別しラベル付けするために、認識されていないフィールドを有する無効データのデータベース上で分析を実行するように構成された診断機械学習で構成することができる。
【0124】
ある実施形態において、システム10は、車両イベントデータを処理することにより、向上したインサイトおよび効率的な処理を提供するように、構成することができる。イベントデータを処理するための、具体例としてのプロセスおよびシステムは、
データポイントを道路にスナップするためのグラフローカル検索およびカスタムメトリックを用いるRツリーにおけるK近傍、
関心ポイントに関連する駐車エリアを発見するためのカスタムメトリックを用いるDBSCAN、
National Household Travel Surveyデータ上で構築されたものから修正された分類器を用いる行程目的の分類のためのXGBoost、
ストリートアドレスマッチングのためのLevenshteinおよびSoundex、
交通量時系列予測のためのARIMA、
道路共依存の判断のための相互相関および動的タイムワーピング、
データポイントボリューム予測のためのFacebook(登録商標) Prophet、
交通渋滞状態を識別するためのガウス混合モデル、および
異常検出制御チャートのためのXmRを、含む。
【0125】
分析サーバシステム500は、上記のイングレスサーバシステム100に関して説明したように、道路スナップを実行するように構成することができる。上述のアルゴリズムは、好都合にはスナップのために個々のポイントを使用することができ、各データポイントを道路形状と比較することによって各データポイントからできるだけ多くの情報を抽出することができる。データポイントはまた、集約されたデータから形成された統計と比較されてもよい。ある実施形態において、スナップアルゴリズムは、イングレスサーバにおいて実現され、とりわけ、実質的にリアルタイムの低レイテンシフィードにおける利点を提供する。ある実施形態において、スナップアルゴリズムはまた、ストリーム処理サーバシステム200、エグレスサーバシステム400、または分析サーバシステム500において提供されてもよい。ある実施形態において、システム10はさらに、本明細書に記載のようにイベントデータをマップデータベースにマッピングするように構成されてもよい。
【0126】
ある実施形態において、ベースマップは、線分の集合として与えられる。システム10は、たとえば、本明細書に記載のRツリーインデックスを用いて、道路セグメントの線分の集合として与えられるベースマップを含むように構成されてもよい。本明細書に開示されるように、システム10は、各線分ごとに、その最も近い近傍に対する線分の関係に関する幾何学的情報を含む。各線分について、予測される交通量および速度に関する統計情報が、プロセスの最初の反復から生成される。車両移動イベントデータは、経度、緯度、進行方向、速度、および時刻を含む。本明細書に記載されるように、車両移動イベントデータは、たとえば6文字のジオハッシュにジオハッシュされる。ジオハッシュで強化された車両移動データは、ベースマップに対してマップマッチングされてもよい。
【0127】
システム10の1つの具体例としての利点は、車両移動データの大きなデータセットの中で、システムが非常に選択的でしかも高度の分解能で正確なマップインターフェイスとなるように構成できる点である。たとえば、システム10は、米国における少なくとも1000万ジオハッシュと同じくらいの数のマップデータおよびインターフェイスを識別し訂正することができる。
【0128】
別の具体例としての利点は、マップインターフェイスおよびナビゲーションシステムを改善して車両を正確にナビゲートできることである。
【0129】
別の実施形態において、上述のマップマッチング強化から進んで、分析サーバ500またはエグレスサーバ400を、車両イベント移動データポイントから正確な道路速度を決定するように構成することができる。図9に示されるように、ブロック450において、システム10は、図4A~4Eに関して本明細書に記載されるように、固有セグメントIDを有する道路セグメントを生成し、道路セグメントの長さを取得するように構成される。マップマッチングを通じて、システムは、車両イベントデータを分析して道路セグメント上の各車両データポイントの位置を特定するように構成することができる。各ポイントは、マッチングを行うために移動した距離と関連付けている。上述のように、道路はマップにおいて単一の線分として表されるので、マッチ距離は道路上のレーンの存在を示すことができる。したがって、車両イベントデータポイントは、道路セグメントの識別を判断するためにマップマッチングシステムを通じて処理される。データは、セグメントID、セグメント長、移動ID、タイムスタンプおよび速度を含む。
【0130】
図9に示されるように、ブロック452において、道路の各セグメントおよび一定期間(たとえば1日の60秒)ごとに、システム10は、車両イベントデータにおいて報告された速度の算術平均を通じて各車両の平均速度を追跡および計算するように構成される。システム10は、1日の瞬間、セグメントID、セグメント長、行程ID、および平均速度を取得する。次に、ブロック454において、システム10は、算術平均を用いて計算された平均車両速度の調和平均を計算するように構成される。したがって、システム10は、1日の瞬間、セグメントID、セグメント長、調和平均速度および車両カウントを取得する。ブロック456において、システム10は、セグメントの長さLを調和平均速度で除算してセグメントの通過時間を得るように構成される。
【0131】
ブロック458において、システム10は、各セグメントIDおよび期間について、計算された交通の平均流量、観測された車両の数、および通過時間を出力するように構成される。
【0132】
たとえば、図4B図4Eに関して示されるように、一連の道路セグメントにわたる推定通過時間を合計することにより、目的地への推定到着時間を生成する際に使用するのに適切となり得る、総通過時間の値を与えることができる。
【0133】
プールされた車両速度の調和平均を用いることにより、システム10は、報告された流量値がより低い推定値に有利に働く傾向があることを、好都合に保証する。したがって、システム10は、観測される車両の流れにおける速度の急激な低下に対してより反応するように構成され、より高速の車両が全体平均を引き上げる効果を抑える。フリーフロー交通では、速度分散が小さい場合、調和平均値は算術平均に近付いたが、分散が増加し、交通流が不安定になるにつれて、調和平均値はそれに応じて低下することがわかった。したがって、低速に関する情報は高速よりも予見性があるので、システム10は正確な交通通知を提供するように構成される。よって、システム10の測定値は、平均をより小さく見積もることにより、より応答性が高く、より正確になるように構成される。
【0134】
また、瞬間捕捉データポイントはトラップにおいて観察されるまで速度のアップストリームおよびダウンストリームの変化を考慮しなかったので、調和平均は、瞬間速度が捕捉される速度トラップの使用よりも改善された結果をもたらすことも、見出された。
【0135】
このように、システム10は、モデル化および予測を目的として履歴流量のデータセットを構築し、また(たとえばマッピングおよび交通インターフェイスのための)流量の予期しない変化のタイムリーな通知を提供するために、交通流を正確かつ頻繁に、好都合に測定することができる。したがって、システム10は、エグレスサーバシステム400(たとえば第三者20パートナーおよび/またはダウンストリームインターフェイスのため)または分析サーバシステム500(たとえばモデル化および予測のため)において、図9に関して説明されるような速度計算を提供するように構成することができる。
【0136】
図6は、ポータルサーバシステム600の論理アーキテクチャである。少なくとも1つの実施形態において、ポータルサーバシステム600は、レコードおよびイベントデータを取り込んで処理するように配置された1つ以上のコンピュータとすることができる。ポータルサーバシステム600を、ポータルAPI608がプラットフォームの第三者15ユーザからのデータをインターフェイスし受け入れるためのポータルユーザインターフェイス604およびAPIゲートウェイ606で構成することができる。ある実施形態において、ポータルサーバシステム600は、毎日の静的総会を提供するように構成されてもよく、分析サーバシステム500から提供されるデータのリアルタイムアクセスのための検索エンジンおよびアクセスポータルで構成される。少なくとも1つの実施形態において、ポータルサーバシステム600を、ユーザに、たとえば、第三者15クライアントコンピュータに、ダッシュボードを提供するように構成することができる。少なくとも1つの実施形態において、分析サーバシステム500からの情報は、ポータルユーザインターフェイス604が提供する報告またはインターフェイス生成器に流すことができる。少なくとも1つの実施形態において、報告またはインターフェイス生成器を、パフォーマンス情報に基づいて1つ以上の報告を生成するように配置することができる。少なくとも1つの実施形態において、報告を、1つ以上の報告テンプレートに基づいて決定およびフォーマットすることができる。
【0137】
低レイテンシは、車両ソースからエンドユーザ顧客に情報を配信する超高速接続を提供する。さらなるデータ捕捉は、データポイント当たり3秒という高い捕捉レートを有し、たとえば、月当たり3300億データポイントまで捕捉する。本明細書に記載のように、データは、位置データでレーンレベルに精密であり、典型的な車のサイズである半径3メートル以内に95%精密である。
【0138】
図7は、上記データ処理のデータパイプラインを示すフローチャートである。図7に示されるように、ある実施形態において、イベントデータは、データ品質チェックの7段階パイプラインを通してデータを送る。加えて、ストリーム処理とバッチ処理の両方を用いてデータ処理を行う。ストリーミングは、一回につき一レコードに対して機能し、トリップの以前のレコードのコンテキストは保持せず、属性およびレコードレベルで実行されるチェックに使用することができる。バッチ処理は、より完全にデータを観察することができ、エンドツーエンドプロセス全体を包含することができる。バッチ処理は、ストリーミングと同一のチェックに加えて、複数のレコードおよび行程にわたって実行されるチェックを受ける。
【0139】
少なくとも1つの実施形態において、ダッシュボードディスプレイが、システム10の他の構成要素によって生成された情報の表示を提供してもよい。少なくとも1つの実施形態において、ダッシュボードディスプレイは、ネットワークを通してアクセスされるクライアントコンピュータ上に示されてもよい。少なくとも1つの実施形態において、クレームされている主題の精神および/範囲から逸脱することなく、ユーザインターフェイスを採用することができる。そのようなユーザインターフェイスは、さまざまなやり方で配置できる任意の数のユーザインターフェイス要素を有することができる。いくつかの実施形態において、ユーザインターフェイスは、ウェブページ、モバイルアプリケーション、GIS可視化ツール、マッピングインターフェイス、電子メール、ファイルサーバ、PDF文書、テキストメッセージなどを用いて生成することができる。少なくとも1つの実施形態において、イングレスサーバシステム100、ストリーム処理サーバシステム200、エグレスサーバシステム400、分析サーバシステム500、またはポータルサーバシステム600は、ユーザインターフェイスを生成するためのプロセスおよび/またはAPIを含み得る。
【0140】
たとえば、図8のフローチャート800に示されるように、フィードデータを組み合わせて統合データセットにし、インターフェイス802を用いて、たとえばGIS可視化ツール(たとえばMapbox、CARTO、ArcGIS、もしくはGoogle Maps API)またはその他のインターフェイスを用いて、可視化することができる。ある実施形態において、コネクテッド車両(CV)インサイトおよびそのための交通プロダクトインターフェイス802を提供するように構成されたシステムについて、説明する。インターフェイスは、たとえばエグレスサーバまたはポータルサーバを介して分析インサイトを生成するように処理されたデータの直感的可視化物を出力するように、構成することもできる。図8に示されるように、データフィードは、たとえば、トランジットデータセット804、トランジットスケジュール806、および、行程データを含むジオフェンスされたコネクテッド車両移動データ806等の、具体例としてのフィードを含み得る。
【0141】
図1A図9との関連で記載されたシステム10、50、100、200、400、500、600、700、800および900に関して説明された実施形態は、単一のネットワークコンピュータによって実現および/またはその上で実行できる。他の実施形態において、これらのプロセスまたはこれらのプロセスの部分は、複数のネットワークコンピュータによって実装することができ、および/または複数のネットワークコンピュータ上で実行することができる。同様に、少なくとも1つの実施形態において、システム10、50、100、200、400、500、600、700、800、900、またはそれらの部分に関して説明されるプロセスは、ネットワークコンピュータ、クライアントコンピュータ、仮想マシン等の1つ以上の種々の組み合わせ上で動作することができる。さらに、少なくとも1つの実施形態では、図1A図9に関連して説明したプロセスは、図1A図9にも関連して説明したような論理アーキテクチャを有するシステムで動作することができる。
【0142】
フローチャート図の各ブロック、およびフローチャート図のブロックの組み合わせは、コンピュータプログラム命令によって実現できることが理解されるであろう。これらのプログラム命令をプロセッサに与えてマシンを生成し、プロセッサ上で実行される命令が1つ以上のフローチャートブロックで指定されたアクションを実現するための手段を生成するようにしてもよい。コンピュータプログラム命令をプロセッサが実行することにより、一連の動作ステップをプロセッサに実行させて、コンピュータで実装されるプロセスを生成し、プロセッサ上で実行される命令が、1つ以上のフローチャートブロックで指定されたアクションを実現するためのステップを提供するように、することができる。また、コンピュータプログラム命令は、フローチャートのブロックに示された動作ステップのうちの少なくともいくつかを並行して実行させることもできる。さらに、ステップのいくつかは、マルチプロセッサコンピュータシステムまたは複数のコンピュータシステムからなるグループでのように、2つ以上のプロセッサにまたがって実行することもできる。加えて、フローチャート図における1つ以上のブロックもしくはブロックの組み合わせは、本開示の範囲または精神から逸脱することなく、他のブロックもしくはブロックの組み合わせと同時に、または図示の順序とは異なる順序でさえ実行することもできる。
【0143】
したがって、フローチャート図のブロックは、指定されたアクションを実行するための組み合わせ、指定されたアクションを実行するためのステップの組み合わせ、および指定されたアクションを実行するためのプログラム命令手段をサポートする。また、フローチャート図の各ブロック、およびフローチャート図のブロックの組み合わせは、指定されたアクションまたはステップを実行する専用ハードウェアベースのシステム、または専用ハードウェアおよびコンピュータ命令の組み合わせによって実現されてもよいことも理解されるであろう。上記例は、限定的および/または網羅的な例と解釈されてはならず、むしろ、さまざまな実施形態のうちの少なくとも1つの実装形態を示す例示のためのユースケースである。
図1A
図1B
図1C
図2
図3
図4A
図4B
図4C
図4D
図4E
図5
図6
図7
図8
図9
【国際調査報告】