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

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

▶ フォースクエア・ラボズ・インコーポレイテッドの特許一覧

特表2023-550731地理空間データ分析および視覚化プラットフォーム
<>
  • 特表-地理空間データ分析および視覚化プラットフォーム 図1
  • 特表-地理空間データ分析および視覚化プラットフォーム 図2
  • 特表-地理空間データ分析および視覚化プラットフォーム 図3
  • 特表-地理空間データ分析および視覚化プラットフォーム 図4
  • 特表-地理空間データ分析および視覚化プラットフォーム 図5
  • 特表-地理空間データ分析および視覚化プラットフォーム 図6
  • 特表-地理空間データ分析および視覚化プラットフォーム 図7
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2023-12-05
(54)【発明の名称】地理空間データ分析および視覚化プラットフォーム
(51)【国際特許分類】
   G06F 16/29 20190101AFI20231128BHJP
   G09B 29/00 20060101ALI20231128BHJP
   G06T 17/05 20110101ALI20231128BHJP
   G06F 16/909 20190101ALI20231128BHJP
   G06F 16/44 20190101ALI20231128BHJP
【FI】
G06F16/29
G09B29/00 F
G06T17/05
G06F16/909
G06F16/44
【審査請求】未請求
【予備審査請求】未請求
(21)【出願番号】P 2023528736
(86)(22)【出願日】2021-11-16
(85)【翻訳文提出日】2023-07-14
(86)【国際出願番号】 US2021059532
(87)【国際公開番号】W WO2022104269
(87)【国際公開日】2022-05-19
(31)【優先権主張番号】63/114,381
(32)【優先日】2020-11-16
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.JAVASCRIPT
(71)【出願人】
【識別番号】519094167
【氏名又は名称】フォースクエア・ラボズ・インコーポレイテッド
(74)【代理人】
【識別番号】100108453
【弁理士】
【氏名又は名称】村山 靖彦
(74)【代理人】
【識別番号】100110364
【弁理士】
【氏名又は名称】実広 信哉
(74)【代理人】
【識別番号】100133400
【弁理士】
【氏名又は名称】阿部 達彦
(72)【発明者】
【氏名】アイザック・メイロ・ブロツキー
(72)【発明者】
【氏名】シャン・ヘ
(72)【発明者】
【氏名】イブ・グリーン
(72)【発明者】
【氏名】シーナ・ラッサエイ・カシュク
【テーマコード(参考)】
2C032
5B050
5B175
【Fターム(参考)】
2C032HC27
5B050AA01
5B050BA07
5B050BA08
5B050BA17
5B050CA08
5B050DA10
5B050EA09
5B050FA02
5B050FA05
5B175DA03
(57)【要約】
本開示は、データセットの地理空間処理および分析を容易にし、ネットワーク上で地理空間分析データの視覚化を提供するためのシステムおよび方法に関する。プラットフォームは、離散グローバルグリッドシステムを利用して、エリア(たとえば、地図、都市、州、国、大陸、世界など)を離散グリッドセルのセットに区分けする。グリッドセルのセットは、より細かい解像度のグリッドに細分化され得る。例において、プラットフォームは、グリッドセルのためにヘックスタイルの使用を生成し、採用する。
【特許請求の範囲】
【請求項1】
1つまたは複数のデータセットからのデータにアクセスするステップと、
前記1つまたは複数のデータセットに関連する空間情報に基づいて、タイルの第1の解像度レベルを決定するステップと、
前記1つまたは複数のデータセットからの前記データをタイルの第1のセットに符号化するステップであって、1つまたは複数のタイルが、前記第1の解像度レベルに関連付けられる、ステップと、
タイルの第2のセットを生成すべきかどうかを決定するステップであって、タイルの前記第2のセットが、第2の解像度に関連付けられる、ステップと、
タイルの前記第2のセットを生成すると決定されるとき、
タイルデータの第1のセットからの少なくとも第1のタイルおよび第2のタイルからのデータをグループ化するステップと、
前記第1のタイルおよび前記第2のタイルからの前記データを集約するステップと、
前記集約されたデータを少なくとも第3のタイルに符号化するステップであって、タイルの前記第2のセットが、前記第3のタイルを含む、ステップとを含む方法。
【請求項2】
前記データをタイルの前記第1のセットに符号化するステップが、タイルの前記第1のセットに含まれる前記タイルのタイル識別子を生成することを含む請求項1に記載の方法。
【請求項3】
少なくとも前記第1のタイルおよび前記第2のタイルからのデータをグループ化するステップが、
第1の切り捨てられた識別子を生成するために前記第1のタイルの第1のタイル識別子を切り捨てることと、
第2の切り捨てられた識別子を生成するために前記第2のタイルの第2のタイル識別子を切り捨てることと、
前記第1の切り捨てられた識別子と前記第2の切り捨てられた識別子とを比較することと、
前記第1の切り捨てられた識別子と前記第2の切り捨てられた識別子とが同じであるとき、前記第1のタイルおよび前記第2のタイルからのデータをグループ化することとを含む請求項1に記載の方法。
【請求項4】
前記第3のタイルが、第3のタイル識別子に関連付けられ、前記第3のタイル識別子が、前記第1の切り捨てられた識別子および前記第2の切り捨てられた識別子と同じである請求項3に記載の方法。
【請求項5】
前記第1の解像度レベルが、前記空間情報に含まれる解像度の最も細かいレベルに基づく請求項1に記載の方法。
【請求項6】
第2の解像度レベルが、より粗い解像度レベルおよび前記第1の解像度レベルである請求項5に記載の方法。
【請求項7】
タイルの第3のセットを生成すべきかどうかを決定するステップであって、タイルの前記第3のセットが、第3の解像度に関連付けられる、ステップと、
タイルの前記第3のセットを生成すると決定されるとき、
タイルデータの第2のセットからの少なくとも第4のタイルおよび第5のタイルからのデータをグループ化するステップと、
前記第4のタイルおよび前記第5のタイルからの前記データを集約するステップと、
前記集約されたデータを少なくとも第6のタイルに符号化するステップであって、タイルの前記第3のセットが、前記第6のタイルを含む、ステップとをさらに含む請求項6に記載の方法。
【請求項8】
1つまたは複数のデータセットにアクセスするステップと、
前記1つまたは複数のデータセットからのデータをヘックスタイルのセットに符号化するステップと、
地図ビューを決定するステップと、
前記地図ビューに基づいて、ヘックスタイルの前記セットからのヘックスタイルのサブセットをロードするステップであって、ヘックスタイルの前記サブセットが、前記地図ビューに対応する、ステップと、
ヘックスタイルの前記サブセットを復号するステップと、
ヘックスタイルの前記サブセットをレンダリングするステップとを含む方法。
【請求項9】
六角形タイルのサブセットが、前記地図ビューに対応する離散グローバルグリッドシステムの一部を表す請求項8に記載の方法。
【請求項10】
ヘックスタイルの前記サブセットを復号するステップが、
ヘックスタイルの前記サブセット内の密なタイルにグリッド識別子を追加すること、あるいは
前記1つまたは複数のデータセットの互換性のないデータフォーマットの間の変換をすることのうちの少なくとも一方を含む請求項8に記載の方法。
【請求項11】
ヘックスタイルの前記サブセットが、ヘックスタイルの前記サブセットに符号化された時間のデータを含む請求項8に記載の方法。
【請求項12】
ヘックスタイルの前記サブセットをレンダリングするステップが、前記地図ビュー上に被せられるアニメーションを生成することであって、前記アニメーションが、ヘックスタイルの前記サブセットに符号化された時間のデータに基づいてヘックスタイルデータの変化を描く、生成することを含む請求項11に記載の方法。
【請求項13】
前記ヘックスタイルをレンダリングするステップが、ヘックスタイルの前記復号されたサブセットからの復号されたデータが前記地図ビュー上に被せられるようにすることを含む請求項8に記載の方法。
【請求項14】
少なくとも1つのプロセッサと、
前記少なくとも1つのプロセッサによって実行されるときに、
1つまたは複数のデータセットからのデータにアクセスすることと、
前記1つまたは複数のデータセットに関連する空間情報に基づいて、ヘックスタイルの第1の解像度レベルを決定することと、
前記1つまたは複数のデータセットからの前記データをヘックスタイルの第1のセットに符号化することであって、1つまたは複数のヘックスタイルが、前記第1の解像度レベルに関連付けられる、符号化することと、
ヘックスタイルの第2のセットを生成すべきかどうかを決定することであって、ヘックスタイルの前記第2のセットが、第2の解像度に関連付けられる、決定すること、ならびに、
ヘックスタイルの前記第2のセットを生成すると決定されるとき、
ヘックスタイルデータの前記第1のセットからの少なくとも第1のヘックスタイルおよび第2のヘックスタイルからのデータをグループ化することと、
前記第1のヘックスタイルおよび前記第2のヘックスタイルからの前記データを集約すること、ならびに、
前記集約されたデータを少なくとも第3のヘックスタイルに符号化することであって、ヘックスタイルの前記第2のセットが、前記第3のヘックスタイルを含む、符号化することと、
を含む方法を実行するコンピュータ実行可能命令を符号化するメモリと
を含むシステム。
【請求項15】
前記データをヘックスタイルの前記第1のセットに符号化することが、ヘックスタイルの前記第1のセットに含まれるヘックスタイルのヘックスタイル識別子を生成することを含む請求項14に記載のシステム。
【請求項16】
少なくとも前記第1のヘックスタイルおよび前記第2のヘックスタイルからのデータをグループ化することが、
第1の切り捨てられた識別子を生成するために前記第1のヘックスタイルの第1のヘックスタイル識別子を切り捨てることと、
第2の切り捨てられた識別子を生成するために前記第2のヘックスタイルの第2のヘックスタイル識別子を切り捨てることと、
前記第1の切り捨てられた識別子と前記第2の切り捨てられた識別子とを比較することと、
前記第1の切り捨てられた識別子と前記第2の切り捨てられた識別子とが同じであるとき、前記第1のヘックスタイルおよび前記第2のヘックスタイルからのデータをグループ化することとを含む請求項14に記載のシステム。
【請求項17】
前記第3のヘックスタイルが、第3のヘックスタイル識別子に関連付けられ、前記第3のヘックスタイル識別子が、前記第1の切り捨てられた識別子および前記第2の切り捨てられた識別子と同じである請求項16に記載のシステム。
【請求項18】
前記第1の解像度レベルが、前記空間情報に含まれる解像度の最も細かいレベルに基づく請求項14に記載のシステム。
【請求項19】
第2の解像度レベルが、より粗い解像度レベルおよび前記第1の解像度レベルである請求項18に記載のシステム。
【請求項20】
前記方法が、
ヘックスタイルの第3のセットを生成すべきかどうかを決定することであって、ヘックスタイルの前記第3のセットが、第3の解像度に関連付けられる、決定することと、
ヘックスタイルの前記第3のセットを生成すると決定されるとき、
ヘックスタイルデータの第2のセットからの少なくとも第4のヘックスタイルおよび第5のヘックスタイルからのデータをグループ化することと、
前記第4のヘックスタイルおよび前記第5のヘックスタイルからの前記データを集約することと、
前記集約されたデータを少なくとも第6のヘックスタイルに符号化することであって、ヘックスタイルの前記第3のセットが、前記第6のヘックスタイルを含む、符号化することとをさらに含む請求項19に記載のシステム。
【発明の詳細な説明】
【技術分野】
【0001】
関連出願の相互参照
本出願は、2020年11月16日に出願した、「Geospatial Data Analytics and Visualization」と題した米国特許仮出願第63/114,381号の優先権を主張するものであり、この仮出願の開示全体は、参照によりその全体が本明細書に組み込まれる。
【背景技術】
【0002】
ネットワーク上で地理空間分析を実行することは、ネットワーク上で分析を実行するために必要とされる大量のデータを送信する困難などのいくつかの問題を生じる。さらに、通常の地理空間分析システムは、概して、ラスタタイルシステムまたはベクトルタイルシステムを使用して実装される。これらのシステムの各々は、特定の欠点を有する。たとえば、ラスタタイルシステムは、フロントエンドデバイス上で分析を実行するために使用されるときに困難を生じる。さらに、ベクトルタイルシステムでデータを符号化することは、計算コストが高くなり得る。
【0003】
実施形態が説明されたのは、これらのおよびその他の通常の考慮事項に関してである。また、比較的特定の問題が検討されたが、実施形態は、背景技術において特定された特定の問題を解決することに限定されるべきでないことを理解されたい。
【発明の概要】
【課題を解決するための手段】
【0004】
本明細書において導入される技術は、データセットの地理空間処理を容易にし、ネットワーク上で地理空間分析データの視覚化を提供するためのシステムおよび方法を用いて、従来技術の欠点および制限を少なくとも部分的に克服する。特に、システムは、ヘックスタイル(hex tile)フォーマットの独自の実装および仕様を含む。ヘックスタイルは、ネットワーク(たとえば、インターネット)上で地理空間分析データを転送するためのシステムである。ヘックスタイルのフォーマットは、地理空間グリッドシステムを用いて高性能なデータ転送を可能にし、同じタイルシステムを使用して異なるデータセットの統一を可能にする。ヘックスタイルは、通常のラスタタイルシステムおよびベクトルタイルシステムとの類似点を有する。ラスタタイルシステムとは異なり、ヘックスタイルシステムは、フロントエンドでの分析のために使用され得る。ベクトルタイルシステムとは異なり、ヘックスタイルシステムは、分析データセットの表現のためにより効率的にデータを符号化することができる。ヘックスタイルシステムは、データが分析され、探索され、視覚化され、その他のデータセットと統合されることを可能にする分析タイルシステムを他にはない形で提供する。
【0005】
この概要は、「発明を実施するための形態」において以下でさらに説明される概念の選択を簡素化された形態で導入するために提供される。この概要は、特許請求の対象の重要な特徴または必須の特徴を特定するように意図されておらず、特許請求の対象の範囲を限定するために使用されるように意図されてもいない。
【0006】
本明細書において導入される技術が、同様の参照番号が同様の要素を参照するために使用される添付の図面の図に限定としてではなく例として示される。
【図面の簡単な説明】
【0007】
図1】データセットの地理空間分析、統一、および視覚化を実行するためのプラットフォームを提供するためのシステムの一実施形態を示す高レベルのブロック図である。
図2】地理空間分析アプリケーションを含むコンピューティングデバイスの一実施形態を示すブロック図である。
図3】データセットに対して地理空間分析を実行するための例示的な方法の一実施形態を示す流れ図である。
図4】ヘックスタイルへのデータセットのオフライン符号化を実行するための例示的な方法を示す流れ図である。
図5】ヘックスタイルへのデータセットのオンライン符号化を実行するための例示的な方法を示す流れ図である。
図6】分析サーバから受信されたヘックスタイルデータを表示するための例示的な方法を示す流れ図である。
図7】本開示の態様による、本開示の態様が実施されてよいデバイスの簡略化されたブロック図である。
【発明を実施するための形態】
【0008】
本開示の態様は、概して、データセットの地理空間分析、統一、および視覚化を実行するためのプラットフォームを提供することに関する。本開示は、データセットの地理空間処理および分析を容易にし、ネットワーク上で地理空間分析データの視覚化を提供するためのシステムおよび方法に関する。プラットフォームは、離散グローバルグリッドシステム(discrete global grid system)を利用して、エリア(たとえば、地図、都市、州、国、大陸、世界など)を離散グリッドセル(discrete grid cell)のセットに区分けする。グリッドセルのセットは、より細かい解像度のグリッドに細分化され得る。例において、プラットフォームは、グリッドセルのためにヘックスタイルの使用を生成し、採用する。ヘックスタイルの使用は、利点の中でもとりわけ、隣接するセルとの一定の距離、セルの同心円を形成する能力、コンパクトなセル表現、およびヘックスタイル内のデータの微々たる計算量の集約などの、六角形セルの分析上の利点を提供する、計算効率が高く一貫性のある階層型グリッドを提供する。
【0009】
六角形グリッドベースの地理空間インデックス付けシステムは、地理空間グリッドシステムにおける重要な技術的進歩である。六角形グリッドベースの地理空間インデックス付けシステムは、六角形セルの分析上の利点を提供する計算効率が高く一貫性のある階層型グリッドである。六角形セルの分析上の利点は明らかであるが、しかし、重大な技術的問題に対処し、地理空間データ分析に使用するためのグローバルに一貫性のある効率的な六角形グリッドを作成する根強いニーズが存在する。
【0010】
本開示の態様は、ヘックスタイルデータを使用してグローバルな分析の計算および実行を可能にする。例において、グローバルな分析は、ある場所(たとえば、国、世界など)の大きなエリアにわたるデータに、高レベルの詳細さで計算または計算のセットを適用する。大規模なデータセットに関して、そのような分析を実行することは、概して、非常に大きなサーバ上であっても、メモリに収まり得る比較的多くのデータを処理することをともなう。ヘックスタイルを利用することによって、データは、計算を進めるために必要なときに分けてロードされ、新しいエリアが処理されていくにつれてアンロードされることが可能である。さらに、複数のデータセットがヘックスタイルとして符号化される場合、異なるデータセットからの対応する部分が、分析のために容易に特定され、ロードされ得る。
【0011】
ヘックスタイルの使用は、オンザフライで実行されることも可能であり、すなわち、分析を実行するデバイスが、ヘックスタイルを提供する前に、特定のヘックスタイルまたはヘックスタイルのセットに分析を適用することができる。そうすることで、関連するヘックスタイルによって表されるデータセットの部分のみが、クライアントの要求に応じて計算される。これは、各クライアントの要求の前に実行され、それによって、実際にはデータセットの小さなサブセットがクライアントの要求に応じて計算されたときに、要求された分析に基づいて1つまたは複数の大規模でグローバルなデータセットが計算されたように感じさせることができる。そうすることで、本明細書において開示される態様は、クライアントの要求に応答してデータセットに対して計算を迅速に実行し、それによって、個々のクライアントデバイスのロード時間および帯域幅の要件を低減することができる。
【0012】
さらなる態様において、ヘックスタイルの使用は、ローカルの分析の処理をサポートする。ローカルの分析は、たとえば、ウェブブラウザまたはその他のアプリケーションを使用して、クライアントデバイス上で処理される。ヘックスタイルの使用は、たとえ基礎となるデータセットが大きすぎてクライアントシステムに転送することができないときでも、分析がクライアントデバイス上でローカルで実行されることを可能にする。さらに、そのようにする際、ヘックスタイルの使用は、クライアントデバイスによるローカルの分析の計算をクライアントデバイスのユーザにグローバルな分析の計算であるように見せる、オンデマンドの関連データの配信を可能にする。たとえば、ユーザが地図ビュー(map view)を調整するとき、新しいエリアを表示するために必要とされる追加的なヘックスタイルの要求が、自動的に生成される。分析の計算が、追加的なヘックスタイルに対して自動的に実行され、それによって、クライアントデバイスがビューを変更するときにデータの粒度の一定のレベルを維持する。そうすることで、本明細書において開示される態様は、関連データをクライアントデバイスにリアルタイムで容易に送信し、それによって、データセット全体の転送を必要とせずに、グローバルなデータセットがクライアントデバイスに転送されたように見せることができる。本開示の例はグリッドシステムにおいてヘックスタイルを使用することに関するが、当業者は、その他の種類のタイルが、本開示の範囲を逸脱することなく、本明細書において開示される態様とともに採用されてよいことを理解するであろう。たとえば、正方形、長方形、またはその他の幾何学的形状のタイルが、本開示の範囲を逸脱することなく使用されてよい。
【0013】
図1は、データセットの地理空間分析、統一、および視覚化を実行するためのプラットフォームを提供するためのシステム100の一実施形態を示す高レベルのブロック図である。示されたシステム100は、ユーザによってアクセスされ得る1つまたは複数のクライアントデバイス115a...115nと、地理空間分析サーバ101と、複数のサードパーティサーバ125とを有してよい。図1および残りの図において、参照番号の後の文字、たとえば、「115a」は、その特定の参照番号を有する要素への参照を表す。後に続く文字がない本文中の参照番号で、たとえば、「115」は、その参照番号を持つ要素のインスタンスへの全体的な参照を表す。示された実施形態において、システム100のこれらのエンティティは、ネットワーク105を介して通信可能なように結合される。
【0014】
ネットワーク105は、通常の種類、有線、またはワイヤレスであってよく、スター構成、トークンリング構成、またはその他の構成を含む多数の異なる構成を有する場合がある。さらに、ネットワーク105は、任意の数のネットワークおよび/またはネットワークの種類を含む場合がある。たとえば、ネットワーク105は、ローカルエリアネットワーク(LAN)、ワイドエリアネットワーク(WAN)(たとえば、インターネット)、仮想プライベートネットワーク(VPN)、モバイル(セルラ)ネットワーク、ワイヤレス広域ネットワーク(WWAN)、WiMAX(登録商標)ネットワーク、Bluetooth(登録商標)通信ネットワーク、ピアツーピアネットワーク、および/または複数のデバイスが通信してよいその他の相互に接続されたデータパス、これらの様々な組合せなどを含む場合がある。ネットワーク105は、様々な異なる通信プロトコルでデータを送信するための電気通信ネットワークに結合されるかまたはその一部を含む場合もある。一部の実装において、ネットワーク105は、ショートメッセージングサービス(SMS)、マルチメディアメッセージングサービス(MMS)、ハイパーテキスト転送プロトコル(HTTP)、直接データ接続、WAP、電子メールなどを介してデータを送受信するためのBluetooth通信ネットワークまたはセルラ通信ネットワークを含む場合がある。一部の実装において、ネットワーク105によって送信されるデータは、ネットワーク105に結合された指定されたコンピューティングデバイスにルーティングされるパケット化されたデータ(たとえば、インターネットプロトコル(IP)データパケット)を含む場合がある。図1は、クライアントデバイス115、地理空間分析サーバ101、および複数のサードパーティサーバ125に結合された1つのネットワーク105を示すが、実際には、1つまたは複数のネットワーク105が、これらのエンティティに接続され得る。
【0015】
クライアントデバイス115a...115n(個々にクライアントデバイス115とも呼ばれる)は、データ処理および通信能力を有するコンピューティングデバイスであってよい。一部の実装において、クライアントデバイス115は、メモリ、プロセッサ(たとえば、仮想、物理など)、電源、ネットワークインターフェース、ディスプレイ、グラフィックス処理ユニット(GPU)、ワイヤレストランシーバ、キーボード、カメラ(たとえば、ウェブカメラ)、センサ、ファームウェア、オペレーティングシステム、ウェブブラウザ、アプリケーション、ドライバ、および種々の物理接続インターフェース(たとえば、USB、HDMI(登録商標)など)などのソフトウェアならびに/またはハードウェアコンポーネントを含んでよい。クライアントデバイス115a...115nは、ワイヤレスおよび/または有線接続を使用して、ネットワーク105を介して互いにおよびシステム100のその他のエンティティに結合し、通信してよい。クライアントデバイス115の例は、ラップトップ、デスクトップ、タブレット、モバイル電話(たとえば、スマートフォン、フィーチャーフォンなど)、サーバアプライアンス、サーバ、仮想マシン、スマートテレビ、メディアストリーミングデバイス、ユーザウェアラブルコンピューティングデバイス、またはネットワーク105にアクセスすることができる任意のその他の電子デバイスを含む場合があるがこれらに限定されない。図1の例では、クライアントデバイス115aは、下でより詳細に説明される地理空間分析アプリケーション103aを実装するように構成される。クライアントデバイス115は、ネットワーク105に結合された1つ以上のエンティティによって提供される情報を見るためのディスプレイを含む。たとえば、クライアントデバイス115は、地理空間分析サーバ101にデータを送信し、地理空間分析サーバ101からデータを受信するように適合されてよい。図1には2つ以上のクライアントデバイス115が描かれているが、システム100は、任意の数のクライアントデバイス115を含んでよい。さらに、クライアントデバイス115a...115nは、同じまたは異なる種類のコンピューティングデバイスであってよい。
【0016】
図1の例において、地理空間分析サーバ101および複数のサードパーティサーバ125の各々は、プロセッサ、メモリ、アプリケーション、データベース、およびネットワーク通信能力を含むコンピューティングデバイスであってよく、またはそのようなコンピューティングデバイスによって実装されてよい。
【0017】
図1の例において、地理空間分析サーバ101のコンポーネントは、下でより詳細に説明される地理空間分析アプリケーション103bを実装するように構成される。一部の実装において、地理空間分析サーバ101は、ウェブ、モバイル、および/またはクラウドアプリケーションを介して、データセットの地理空間分析、統一、および視覚化を実行するためのプラットフォームを提供してよい。
【0018】
一部の実装において、地理空間分析サーバ101は、ハードウェアサーバ、ソフトウェアサーバ、またはソフトウェアとハードウェアとの組合せであってよい。たとえば、地理空間分析サーバ101は、1つもしくは複数のハードウェアサーバ、仮想サーバ、サーバアレイ、ストレージデバイス、および/もしくはシステムなどを含む場合があり、ならびに/または集中型もしくは分散型/クラウドベースである場合がある。一部の実装において、地理空間分析サーバ101は、ホストサーバ環境内で動作し、抽象化レイヤ(たとえば、仮想マシンマネージャ)を介して、たとえば、プロセッサ、メモリ、アプリケーション、データベース、ストレージ、ネットワークインターフェースなどを含むホストサーバの物理ハードウェアにアクセスする1つまたは複数の仮想サーバを含む場合がある。一部の実装において、地理空間分析サーバ101は、ネットワーク105に結合されているクライアントデバイス115および複数のサードパーティサーバ125のうちの1つまたは複数からのコンテンツ要求を処理し、満たす、および/またはコンテンツを受信するための構造および/または機能を有するハイパーテキスト転送プロトコル(HTTP)サーバ、表現状態転送(REST: Representational State Transfer)サービス、またはその他のサーバの種類であってよい。
【0019】
また、その代わりに、または追加で、地理空間分析サーバ101は、地理空間分析サーバ101と、クライアントデバイス115および複数のサードパーティサーバ125のうちの1つまたは複数にインストールされたまたはその他の方法で実装されたアプリケーションとの間の命令、データ、結果、およびその他の情報の送信のための独自のアプリケーションプログラミングインターフェース(API)を実装してよい。たとえば、APIは、地理空間分析サーバ101によってHTTPプロトコルを介して公開されるソフトウェアインターフェースである場合がある。APIは、たとえば、地理空間分析アプリケーション103aから生じるAPI要求に対して、地理空間分析サーバ101によってホストされるサービスの内部データおよび機能を公開する。また、地理空間分析サーバ101は、構造化データをリレーショナルデータベースに記憶するための、ネットワーク105を介して地理空間分析サーバ101に結合されたデータベースと、非構造化または半構造化データのためのファイルシステム(たとえば、HDFS、NFSなど)とを含む場合がある。
【0020】
一部の実装において、地理空間分析サーバ101は、ネットワーク105を介して、システム100のその他のエンティティにデータを送信し、システム100のその他のエンティティからデータを受信する。たとえば、地理空間分析サーバ101は、クライアントデバイス115に命令を含むデータを送信し、クライアントデバイス115から命令を含むデータを受信する。一部の実装において、地理空間分析サーバ101は、クライアントデバイス115a...115nのユーザが個々のユーザアカウントを作成し、管理することを可能にし、地理空間分析および視覚化タスクのヘックスタイルデータを受信し、記憶し、および/またはネットワーク105を介した地理空間分析サーバ101からクライアントデバイス115へのそのようなヘックスタイルデータの転送を管理するように動作可能であってよい。地理空間分析サーバ101は、ネットワーク105を介して、クライアントデバイス115および複数のサードパーティサーバ125を含むシステム100のその他のエンティティにデータを送信し、そのようなその他のエンティティからデータを受信してよい。地理空間分析サーバ101は、上述の行為および/または機能を提供することに限定されず、その他のネットワークアクセス可能なサービスを含む場合があることを理解されたい。さらに、図1には単一の地理空間分析サーバ101が描かれているが、任意の数の地理空間分析サーバ101またはサーバクラスタが存在してよいことを理解されたい。
【0021】
図1の例において、システム100は、複数のサードパーティサーバ125を含む。複数のサードパーティサーバ125は、複数のクライアントデバイス115および地理空間分析サーバ101などのシステム100の1つまたは複数のエンティティと通信してよい。たとえば、サードパーティサーバ125は、ソーシャルメディアサーバ、ウェブマッピングサーバ(web mapping server)、衛星画像サーバ、電気通信サーバ、空間データベースサーバ、リモートセンシングサーバ、ヘルスケアサーバ、公共部門サーバ(public sector server)、保険サーバ、気象サーバなどを含む場合がある。一部の実装において、複数のサードパーティサーバ125の各々は、信頼できるサードパーティアプリケーションまたはシステムが、本明細書において説明される機能を実行するために地理空間または地理空間関連情報にアクセスすることを可能にするアプリケーションプログラミングインターフェース(API)を提供または促進するように構成されてよい。
【0022】
地理空間分析アプリケーション103は、データセットの地理空間分析、統一、および視覚化を実行するための機能を提供するためのソフトウェアおよび/または論理を含んでよい。一部の実装において、地理空間分析アプリケーション103は、フィールドプログラマブルゲートアレイ(FPGA)または特定用途向け集積回路(ASIC)などのプログラミング可能なまたは特殊なハードウェアを使用して実装される場合がある。一部の実装において、地理空間分析アプリケーション103は、ハードウェアとソフトウェアとの組合せを使用して実装される場合がある。その他の実装において、地理空間分析アプリケーション103は、クライアントデバイス115と地理空間分析サーバ101との組合せで、またはクライアントデバイス115もしくは地理空間分析サーバ101のいずれか一方によって記憶され、実行される場合がある。
【0023】
一部の実装において、地理空間分析アプリケーション103aは、一部の機能がクライアントデバイス115上で実行され、追加的な機能が地理空間分析アプリケーション103bによって地理空間分析サーバ101上で実行されるシンクライアントアプリケーションであってよい。一部の実装において、地理空間分析アプリケーション103は、場合によっては、ネットワーク105を介して地理空間分析サーバ101、クライアントデバイス115、および/または複数のサードパーティサーバ125から受信された情報に少なくとも部分的に基づくことがある、これらの行為および/または機能を実行するための様々なユーザインターフェースを生成し、提示してよい。一部の実装において、地理空間分析アプリケーション110は、ウェブブラウザ、ウェブブラウザを介してアクセス可能なウェブアプリケーション、クライアントデバイス115上のネイティブアプリケーション(たとえば、モバイルアプリケーション、インストールされたアプリケーションなど)、これらの組合せなどで動作可能なコードである。地理空間分析アプリケーション103aおよび103bの追加的な構造、行為、および/または機能が、少なくとも図2を参照して下でさらに検討される。
【0024】
一部の実装において、地理空間分析アプリケーション103aおよび103bは、本明細書において説明される行為および/または機能にアクセスするためにユーザが地理空間分析サーバ101に登録されることを要求する場合がある。たとえば、地理空間分析アプリケーション103によって提供される様々な行為および/または機能にアクセスするために、地理空間分析アプリケーション103は、ユーザがそのユーザのアイデンティティ(identity)を認証することを要求する場合がある。たとえば、地理空間分析アプリケーション103は、アクセスを求めるユーザが、関連するユーザインターフェースにおいて資格証明情報(credential)を入力することによってそのユーザのアイデンティティを認証することを要求する場合がある。別の例において、地理空間分析アプリケーション103は、ユーザを登録および/または認証するために、連携アイデンティティサーバ(federated identity server)(図示せず)とインタラクションする場合がある。
【0025】
図1に示されたシステム100は、データセットの地理空間分析、統一、および視覚化を実行するためのプラットフォームを提供するための例示的なシステムの代表であり、様々な異なるシステム環境および構成が、考えられ、本開示の範囲内にあることを理解されたい。たとえば、様々な機能が、地理空間分析サーバ101からクライアントデバイス115にまたはその逆に移される場合があり、一部の実装は、追加のまたはより少ないコンピューティングデバイス、サービス、および/またはネットワークを含む場合があり、様々な機能をクライアントまたはサーバサイドに実装する場合がある。さらに、システム100の様々なエンティティは、単一のコンピューティングデバイスもしくはシステム、または追加のコンピューティングデバイスもしくはシステムなどに統合される場合がある。
【0026】
図2は、地理空間分析アプリケーション103を含むコンピューティングデバイス200の一実施形態を示すブロック図である。コンピューティングデバイス200は、一部の例によれば、プロセッサ235、メモリ237、ディスプレイデバイス239、通信ユニット241、およびデータストレージ243も含む場合がある。コンピューティングデバイス200のコンポーネントは、バス220によって通信可能なように結合される。バス220は、業界標準アーキテクチャ(ISA)バス、周辺装置相互接続(PCI: peripheral component interconnect)バス、ユニバーサルシリアルバス(USB)、または同様の機能を提供するための当技術分野で知られている何らかのその他のバスを含む1つまたは複数のバスを表す場合がある。一部の実施形態において、コンピューティングデバイス200は、クライアントデバイス115、地理空間分析サーバ101、またはクライアントデバイス115と地理空間分析サーバ101との組合せである場合がある。コンピューティングデバイス200がクライアントデバイス115または地理空間分析サーバ101であるそのような実施形態において、クライアントデバイス115および地理空間分析サーバ101は、上で説明されたが図2に示されていないその他のコンポーネントを含む場合があることを理解されたい。
【0027】
プロセッサ235は、様々な入力/出力、論理的、および/または数学的動作を実行することによってソフトウェア命令を実行してよい。プロセッサ235は、たとえば、複合命令セットコンピュータ(CISC)アーキテクチャ、縮小命令セットコンピュータ(RISC)アーキテクチャ、および/または命令セットの組合せを実装するアーキテクチャを含む、データ信号を処理するための様々なコンピューティングアーキテクチャを有してよい。プロセッサ235は、物理的および/または仮想的であってよく、単一の処理ユニットまたは複数の処理ユニットおよび/もしくはコアを含む場合がある。一部の実装において、プロセッサ235は、電子表示信号を生成し、ディスプレイデバイスに提供し、画像の表示をサポートし、画像をキャプチャし、送信し、複雑なタスクを実行することができる場合がある。一部の実装において、プロセッサ235は、メモリ237のデータおよび命令にアクセスし、メモリ237にデータを記憶するために、バス220を介してメモリ237に結合されてよい。バス220は、プロセッサ235を、たとえば、メモリ237、通信ユニット241、地理空間分析アプリケーション103、およびデータストレージ243を含むコンピューティングデバイス200のその他のコンポーネントに結合してよい。その他のプロセッサ、複数のプロセッサ、オペレーティングシステム、センサ、ディスプレイ、および物理的構成が可能であることは、当業者に明らかであろう。
【0028】
メモリ237は、コンピューティングデバイス200のその他のコンポーネントのためのデータを記憶し、そのようなデータへのアクセスを提供してよい。メモリ237は、本明細書の他の箇所で検討されるように、単一のコンピューティングデバイスに含まれるか、または複数のコンピューティングデバイスの間に分散されてよい。一部の実装において、メモリ237は、プロセッサ235によって実行されてよい命令および/またはデータを記憶する場合がある。命令および/またはデータは、本明細書において説明される技術を実行するためのコードを含んでよい。たとえば、一実施形態において、メモリ237は、地理空間分析アプリケーション103を記憶する場合がある。メモリ237は、たとえば、オペレーティングシステム、ハードウェアドライバ、その他のソフトウェアアプリケーション、データベースなどを含むその他の命令およびデータを記憶することもできる。メモリ237は、コンピューティングデバイス200のプロセッサ235およびその他のコンポーネントとの通信のためにバス220に結合されてよい。
【0029】
メモリ237は、1つまたは複数の非一時的なコンピュータが使用可能(たとえば、読み取り可能、書き込み可能)なデバイス、スタティックランダムアクセスメモリ(SRAM)デバイス、ダイナミックランダムアクセスメモリ(DRAM)デバイス、組み込みメモリデバイス、ディスクリートメモリデバイス(たとえば、PROM、FPROM、ROM)、ハードディスクドライブ、光ディスクドライブ(CD、DVD、Blu-ray(登録商標)など)媒体を含む場合があり、それは、プロセッサ235によって処理するかまたはプロセッサ235に関連して処理するための命令、データ、コンピュータプログラム、ソフトウェア、コード、ルーチンなどを含むか、記憶するか、伝達するか、または転送することができる任意の有形の装置またはデバイスであることが可能である。一部の実装において、メモリ237は、揮発性メモリおよび不揮発性メモリのうちの1つまたは複数を含む場合がある。メモリ237は、単一のデバイスである場合があり、または複数の種類のデバイスおよび構成を含む場合があることを理解されたい。
【0030】
ディスプレイデバイス239は、液晶ディスプレイ(LCD)、発光ダイオード(LED)、または任意のその他の同様の装備が整ったディスプレイデバイス、スクリーン、もしくはモニタである。ディスプレイデバイス239は、本明細書において説明されるように、ユーザインターフェース、電子画像、およびデータを表示するための装備が整った任意のデバイスを表す。異なる実施形態において、ディスプレイは、2値(ピクセルに関して2つの異なる値のみ)、モノクローム(1色の複数の階調)であるか、または複数の色および階調を可能にする。ディスプレイデバイス239は、コンピューティングデバイス200のプロセッサ235およびその他のコンポーネントとの通信のためにバス220に結合される。ディスプレイデバイス239は、任意であることが可能であることに留意されたい。たとえば、コンピューティングデバイス200が地理空間分析サーバ101である場合、ディスプレイデバイス239は、システムの一部ではない。
【0031】
通信ユニット241は、プロセッサ235をネットワーク105およびその他の処理システムにリンクすることによってデータを受信および送信するためのハードウェアである。通信ユニット241は、クライアントデバイス115からユーザ入力などのデータを受信し、データをユーザインターフェースエンジン208に送信する。また、通信ユニット241は、たとえば、クライアントデバイス115上でユーザインターフェースを表示するためのユーザインターフェースエンジン208からの命令を送信する。通信ユニット241は、バス220に結合される。一実施形態において、通信ユニット241は、クライアントデバイス115または別の通信チャネルへの直接的な物理接続のためのポートを含む場合がある。たとえば、通信ユニット241は、クライアントデバイス115との有線通信のためのRJ45ポート等を含む場合がある。別の実施形態において、通信ユニット241は、IEEE 802.11、IEEE 802.16、Bluetooth(登録商標)、または別の好適なワイヤレス通信方法などの1つまたは複数のワイヤレス通信方法を使用してクライアントデバイス115または任意のその他の通信チャネルとデータをやりとりするためのワイヤレストランシーバ(図示せず)を含む場合がある。
【0032】
さらに別の実施形態において、通信ユニット241は、ショートメッセージングサービス(SMS)、マルチメディアメッセージングサービス(MMS)、ハイパーテキスト転送プロトコル(HTTP)、直接データ接続、WAP、電子メール、または別の好適な種類の電子通信を介するなど、セルラ通信ネットワーク上でデータを送信および受信するためのセルラ通信トランシーバを含む場合がある。さらに別の実施形態において、通信ユニット241は、有線ポートおよび無線トランシーバを含む場合がある。通信ユニット241は、当業者に理解されるであろうように、TCP/IP、HTTP、HTTPS、およびSMTPなどの標準的なネットワークプロトコルを使用するファイルおよび/またはメディアオブジェクトの配信のためのネットワーク105へのその他の通常の接続も提供する。
【0033】
データストレージ243は、本明細書において説明される機能を提供するためのデータを記憶する非一時的メモリである。データストレージ243は、コンピューティングデバイス200に含まれる場合があり、またはコンピューティングデバイス200とは異なるが、コンピューティングデバイス200に結合されるかもしくはコンピューティングデバイス200によってアクセスされ得る別のコンピューティングデバイスおよび/もしくはストレージシステムに含まれる場合がある。データストレージ243は、データを記憶するための1つまたは複数の非一時的コンピュータ可読媒体を含む場合がある。一部の実装において、データストレージ243は、メモリ237と合併される場合があり、またはメモリ237とは異なる場合がある。データストレージ243は、ダイナミックランダムアクセスメモリ(DRAM)デバイス、スタティックランダムアクセスメモリ(SRAM)デバイス、フラッシュメモリ、または何らかのその他のメモリデバイスである場合がある。一部の実装において、データストレージ243は、コンピューティングデバイス200上で動作可能なデータベース管理システム(DBMS)を含む場合がある。たとえば、DBMSは、構造化照会言語(SQL)DBMS、NoSQL DMBS、これらの様々な組合せなどを含む可能性がある。場合によっては、DBMSは、行および列からなる多次元テーブルにデータを記憶し、プログラムの動作を使用してデータの行を操作、たとえば、挿入、問い合わせ、更新、および/または削除してよい。その他の実装において、データストレージ243は、ハードディスクドライブ、CD-ROMデバイス、DVD-ROMデバイス、DVD-RAMデバイス、DVD-RWデバイス、フラッシュメモリデバイス、またはより永続的に情報を記憶するための何らかのその他の大容量ストレージデバイスを含む不揮発性メモリまたは同様の永続的ストレージデバイスおよび媒体を含む場合もある。データストレージ243は、バス220に通信可能なように結合される。データストレージ243は、データセットの地理空間分析、統一、および視覚化、ならびに本明細書において説明されるその他の機能を実行することに関連するデータを記憶する。データストレージ243は、データの中でもとりわけ、ヘックスタイルデータカタログ253および地理空間データセット251を記憶してよい。データストレージ243に記憶されるデータは、下でより詳細に説明される。
【0034】
図2に描かれたように、メモリ237は、地理空間分析アプリケーション103aおよび/または103bを含んでよい。一部の実装において、地理空間分析アプリケーション103aおよび/または103bは、ヘックスタイルエンコーダエンジン202、ヘックスタイルローダエンジン204、ヘックスタイルデコーダエンジン206、およびユーザインターフェースエンジン208を含んでよい。コンポーネント202、204、206、および208は、協力および通信のために、バス220および/またはプロセッサ235によって互いにならびに/またはコンピューティングデバイス200のその他のコンポーネント237、239、241、および243に通信可能なように結合され得る。コンポーネント202、204、206、および208は、それらのそれぞれの機能性を提供するためのソフトウェアおよび/または論理を含んでよい。一部の実装において、コンポーネント202、204、206、および208は、フィールドプログラマブルゲートアレイ(FPGA)または特定用途向け集積回路(ASIC)を含むプログラミング可能なまたは特殊なハードウェアを使用して実装される場合がある。一部の実装において、コンポーネント202、204、206、および208は、プロセッサ235によって実行可能なハードウェアとソフトウェアとの組合せを使用して実装される場合がある。一部の実装において、コンポーネント202、204、206、および208の各々は、メモリ237に記憶され、それらのコンポーネントの行為および/または機能を提供するためにプロセッサ235によってアクセス可能および実行可能であるように構成された命令のセットであってよい。一部の実装において、コンポーネント202、204、206、および208は、通信ユニット241を介して、クライアントデバイス115およびサードパーティサーバ125のうちの1つまたは複数にデータを送信し、クライアントデバイス115およびサードパーティサーバ125のうちの1つまたは複数からデータを受信してよい。
【0035】
ヘックスタイルエンコーダエンジン202は、1つまたは複数のデータセットを入力として受信し、ヘックスタイルファイルを出力として生成するための機能を提供するためのソフトウェアおよび/または論理を含んでよい。一部の実装において、ヘックスタイルエンコーダエンジン202は、データストレージ243から任意に大きなデータセット251にアクセスし、効率的な地理空間分析を容易にするためにそれらのデータセット251を処理してヘックスタイルにする。たとえば、データセットは、クライアントデバイス115に転送され得るものよりも大きい(たとえば、ペタバイトの範囲内)場合がある。ヘックスタイルエンコーダエンジン202は、データセットの一部が必要に応じてクライアントデバイス115に転送され得るように、ヘックスタイルを作成する。ヘックスタイルは、即時のローカルのおよびグローバルな分析のために利用できるようにされてよい。ヘックスタイルエンコーダエンジン202は、データストレージ243内のヘックスタイルデータカタログ253にヘックスタイルを記憶する。ヘックスタイルデータカタログ253は、データソースについての情報(たとえば、作者、ライセンスなど)、データ自体、データがどのようにして作成されたか、利用可能な解像度、このデータを使用する地図のスクリーンショットなどを含む場合がある。
【0036】
本明細書において説明されるヘックスタイルシステムは、ヘックスタイルフォーマットの独自仕様である。ヘックスタイルフォーマットの仕様は、封入フォーマット(enclosing format)、離散グローバルグリッドシステム、および圧縮方式によって定義されてよい。たとえば、実装において、本明細書において説明されるヘックスタイルフォーマットの独自仕様は、バイナリ転送フォーマットとしてApache ARROW(商標)、離散グローバルグリッドシステム(DGGS)としてH3六角形階層型地理空間インデックス付けシステム、圧縮方式としてGNU zip(gzip)を使用する。Apache ARROW(商標)は、CPUおよびGPUのような最近のハードウェア上での効率的な分析動作のために編成されたフラットデータおよび階層型データのための言語に依存しない列指向メモリフォーマットを定義する。H3六角形階層型地理空間インデックスシステムは、分析に適しており、64ビットのセルインデックスを用いるビッグデータシステムにおける高い性能のために設計されているが、当業者は、その他の種類のインデックス付けシステムを採用されてよいことを理解するであろう。圧縮方式gzipは、ウェブブラウザにそれが広く実装されているので使用される場合がある。その他の実装において、ヘックスタイルフォーマットの仕様は、封入フォーマットとしてApache PARQUET(商標)、およびカンマ区切り値(CSV)、JavaScriptオブジェクト表記法(JSON: JavaScript Object Notation)などの非バイナリフォーマット、離散グローバルグリッドシステムとしてS2幾何学ライブラリ(S2 geometry library)、Geohash、およびPLACEKEY(商標)、圧縮方式としてZstandard(zstd)およびLZ4を使用する場合がある。ヘックスタイルフォーマットに関する特定の実装が本明細書において開示されたが、当業者は、本開示の範囲を逸脱することなくその他の実装が採用されてよいことを理解するであろう。
【0037】
本明細書において説明されるヘックスタイルシステムは、タイル毎にデータを転送する。タイルは、ヘックスタイルシステムにおいて使用される離散グローバルグリッドシステム(DGGS)の空間セルをカバーする。DGGSは、世界を離散的なグリッドセルのセットに区分けする。グリッドセルのセットは、より細かい解像度のグリッドへとどんどん細分化され得る。タイルは、同じDGGSにおけるより細かい解像度のデータをその中に含む。タイルは、その中のデータの解像度を示すメタデータ、および/またはどのサブタイルが利用可能かを示すメタデータも含む場合がある。このメタデータは、データが存在しないときにサブタイルをロードすることを回避する。たとえば、メタデータは、7つの直接的なサブタイルのリストを含んでよく、任意で、2レベル下のより細かい解像度のタイル(たとえば、7*7=49タイル)をリスト化する。
【0038】
タイル内のデータは、表形式であってよい。タイルは、そのセル内のエリアに関するそのデータを含む。たとえば、H3セル「8428347ffffff」を有するタイルは、Table 1(表1)に示される以下のデータポイントを含む場合がある。
【0039】
【表1】
【0040】
Table I(表1)の例において、ヘックスタイルは、「85283477fffff」を除くタイル内の可能なあらゆるデータポイントを含み、「疎な(sparse)」フォーマットで符号化される。代替的に、ヘックスタイルは、利用可能なデータのサブセットを含む場合がある。ヘックスタイルは、データポイントがファイルに記憶された明示的なグリッド識別子(グリッドID)を持たず、その代わりに、(グリッドIDによって定義される順序付けを使用する、またはより広く、空間充填曲線(space filling curve)を使用するなど)順序付けによってグリッドIDを暗黙的に定義する「密な(dense)」符号化もサポートする場合がある。密な符号化は、タイル内のグリッドIDを符号化する必要をなくし、ヘックスタイルシステムに関連するストレージ、メモリ、および転送コストを削減する。密なモードは、タイルのメタデータの一部としてタイル毎に示される。密なタイルのグリッドIDを再構成することが、可能である。密な符号化においては、Table I(表1)に示されたデータポイントが、下のTable 2(表2)に示されるように符号化されてよい。
【0041】
【表2】
【0042】
一部の実装において、ヘックスタイルは、時間次元を追加すること(たとえば、新しい列「タイムスタンプ」を追加すること)によって時間のデータを運ぶ場合がある。一部の実装において、ヘックスタイルは、データが存在する各時間インデックスのために列の数を1つずつ増やしてよい。たとえば、列「attribute_1」が、「attribute_1T2020-01-01」、「attribute_1T2020-01-02」、「attribute_1T2020-01-03」などに拡張されてよい。クライアントデバイス115が地理空間分析サーバ101にヘックスタイルを要求するとき、クライアントデバイス115は、任意に長い履歴をサポートするために、直近の月のデータ、直近の月の前月のデータなどだけを要求するなど、追加の制約をその要求で与えることができる。次元を追加するこの手法は、その他のカテゴリの次元、または時間と同様のバケット(bucket)に分類され得る次元をサポートするために使用されてよい。
【0043】
一部の実装において、ヘックスタイルエンコーダエンジン202は、ヘックスタイルを前もって符号化するためのオフラインエンコーダを使用する。オフラインエンコーダの実装は、GOOGLE(商標)クラウドストレージ、AMAZON(商標) Simple Storage Service、およびその他のコンテンツ配信ネットワークなどのシステムによって提供される大容量ストレージを利用し、ファイルのセットを出力する。オフラインエンコーダは、元のデータセットを受信し、そのデータセットを、ヘックスタイルにおいて使用される最も細かい解像度でDGGS上に射影する。生成されるヘックスタイルの各解像度に関して、オフラインエンコーダは、(a)タイルのデータ解像度が最も細かい解像度よりも粗い場合、データをより粗い解像度に再集約し(たとえば、グリッドIDを切り捨て(truncate)、切り捨てられたIDによってデータをグループ化し、データを集約する)、(b)タイルIDの解像度まで切り捨てられたグリッドIDによってデータをグループ化し(たとえば、切り捨てられたグリッドIDがこの解像度のタイルIDになる)、(c)各タイルファイルをその内容とともにヘックスタイルフォーマットの仕様に従って符号化し、(d)どのタイルIDが有効であるかなどの、解像度についての追加的なメタデータを書き込むように構成される。オフラインエンコーダは、どの解像度が有効であるか、またはクライアントデバイス115が視覚化中にデータの異なる解像度をいつ使用すべきかなどの、タイルセットについての追加的なメタデータを含める。一部の実装において、ヘックスタイルエンコーダエンジン202は、Apache SPARK(商標)またはDaskなどの分散型並列データ処理システムでオフラインエンコーダを実施する。ヘックスタイルエンコーダエンジン202は、データを更新するために、Apache AIRFLOW(商標)またはPrefectなどのパイプラインオーケストレーションシステムからのスケジュールに沿ってオフラインエンコーダを実行する場合がある。
【0044】
一部の実装において、ヘックスタイルエンコーダエンジン202は、ヘックスタイルをそれらが必要とされるときに符号化するためのオンラインエンコーダを使用する。オンラインエンコーダの実装は、ヘックスタイルを、それらがクライアントデバイス115によって要求されるときにのみ生成する。これは、最新のデータの使用を可能にし、基礎となるデータに関する動的な問い合わせをサポートする。オンラインエンコーダは、クライアントデバイス115からの特定のタイルIDの要求を受信し、データに関するデータベースクエリを実行し、切り捨てられたグリッドIDがタイルIDと一致するデータを特定する。一部の実装において、クライアントデバイス115からの要求は、所望のデータ解像度、時間の範囲などの追加情報または基準を含んでよい。オンラインエンコーダは、ヘックスタイルフォーマットの仕様に従ってデータをタイルフォーマットに符号化し、タイルIDに対応する要求されたタイルを含む応答をクライアントデバイス115に送信する。一部の実装において、ヘックスタイルエンコーダエンジン202は、オンラインエンコーダを、インメモリデータベース(たとえば、サービス提供の性能のために、Apache PINOT(商標)、Redisなど)、分析データベース(analytics database)(たとえば、サービス提供の性能と柔軟性との組合せのために、Elasticsearch、Apache DRUID(商標)、Apache PINOT(商標)など)、ならびにデータウェアハウス(柔軟性および大規模データセットのために、GOOGLE(商標) BigQuery、Snowflakeなど)のうちの1つまたは複数を用いるRESTウェブサービスとして実装する。
【0045】
ヘックスタイルローダエンジン204は、復号するために1つまたは複数のヘックスタイルを決定し、要求するための機能を提供するためのソフトウェアおよび/または論理を含んでよい。ヘックスタイルローダエンジン204は、クライアントデバイス115上で表示される地理空間分析データの視覚化の地図ビューを追跡する。ヘックスタイルローダエンジン204は、地図ビューのどの部分がクライアントデバイス115上でユーザに現在見えているか、地図ビューに必要とされるヘックスタイルの解像度、および要求される必要がある解像度に対応するヘックスタイルを決定する。ヘックスタイルローダエンジン204は、データストレージ243に対応するヘックスタイルを要求し、それらのヘックスタイルを復号するためにヘックスタイルデコーダエンジン206に渡す。
【0046】
一部の実装において、ヘックスタイルローダエンジン204は、クライアントデバイス115上の地図のユーザのビューのズームレベルまたは高度に基づいて、どの解像度のヘックスタイルが要求される必要があるかを決定する。ヘックスタイルローダエンジン204は、地図がよりズームアウトされる(たとえば、ユーザが地図上の大きなエリア間の大局的な違いを見る)ときにはより粗いタイルを要求し、地図がよりズームインされる(たとえば、ユーザが地図上のデータセットの細かい詳細を見る)ときにはより細かいタイルを要求する。一部の実装において、ヘックスタイルローダエンジン204は、世界のどの部分が地図ビュー上で見えているまたは見えるようになるかに基づいて、どのタイルが特に要求される必要があるかを決定する。DGGSにおいて定義された動作は、地図ビュー上で見えているすべての空間セルを提供し、さらに、ユーザの選択に基づいて現在のビューに隣接するセルが見えるようになる可能性があるときにそれらの隣接するセルを追加することをサポートする。異なる解像度のタイルは、DGGSの階層的な特徴に基づいて互いに関連付けられる。これは、クライアントデバイス115にタイルおよびその導出された分析をキャッシュするための基礎を形成し、より粗いタイルを、そのより細かいタイルが完全にロードされるとき、または部分的なデータが利用可能になるときにのみ置き換える技術を形成する。一部の実装において、ヘックスタイルローダエンジン204は、遠隔のサードパーティサーバ125内のタイル化されたデータセットへのユニフォームリソースロケータ(URL)を受信する。たとえば、ユーザが、タイル化されたデータセットへのURL参照を指定する場合がある。ヘックスタイルローダエンジン204は、URLからタイル化されたデータセットにアクセスするおよび/またはタイル化されたデータセットを要求する。
【0047】
一部の実装において、ヘックスタイルローダエンジン204は、たとえ基礎となるタイル化されたデータセットが大きすぎてクライアントデバイス115に転送することができないときでも、クライアントデバイス115上で(たとえば、ウェブブラウザにおいて)実行されるローカルの分析を容易にする。ヘックスタイルシステムは、データセットの小さな部分のみがロードされた可能性があるときに、あたかもデータセット全体がロードされているかのように見せることによって、ローカルの分析を透過的にグローバルな分析のように見せる。ユーザが地図ビュー内を動き回るとき、ヘックスタイルローダエンジン204は、クライアントデバイス115上で新しいエリアを表示するために必要とされる追加のタイルを自動的に要求し、データの粒度の一定レベルを維持しながらユーザが指定したデータ操作の実行を容易にする。たとえば、データ操作または計算が、クライアントデバイス115上でユーザに現在見えているデータに対して即座に適用される。パラメータに対するユーザの変更は、極めて流麗な分析体験を作り出すために、基礎となるデータセットの視覚化をGPUテクノロジーを使用して「毎秒60フレーム」で即座に更新してよい。
【0048】
一部の実装において、ヘックスタイルローダエンジン204は、高レベルの詳細度で地図ビュー内の大きなエリアまたは世界全体にわたるデータに計算のセットを適用することによって、グローバルな分析を容易にする。ヘックスタイルローダエンジン204は、計算を進めるために必要に応じてデータを分けてロードし、それから、新しいエリアが処理されていくにつれてデータをアンロードする。複数のデータセットがヘックスタイルである場合、ヘックスタイルローダエンジン204は、複数のタイルセットから対応する部分をロードする。一部の実装において、ヘックスタイルローダエンジン204は、分析がそれを提供する前にタイル毎に適用されるオンザフライのグローバルな分析を容易にする。これは、クライアントデバイス115によって実際に必要とされる部分のみが、計算される必要があり、実際にはクライアントデバイス115によって実際に使用された小さなサブセットのみが処理されたときに、あたかもグローバルなデータセットが処理されたように見せることを意味する。離散グローバルグリッドシステムとしてH3六角形階層型地理空間インデックス付けシステムを使用するヘックスタイルは、7つの子タイルを有する。したがって、各タイルの長さスケール(length scale)は、7の平方根 = 2.65である。ヘックスタイルローダエンジン204が解像度を一定に保つために新しいタイルをロードするズームインクリメント(zoom increment)は、2.65の2を底とする対数 = 1.41である。ヘックスタイルは、比較的少ないレベルを有し、ズームインおよびズームアウトするときの断絶(break)が比較的少なく、より少ないネットワーク負荷につながる。
【0049】
ヘックスタイルデコーダエンジン206は、1つまたは複数のタイルファイルを入力として受信し、データを出力として生成するための機能を提供するためのソフトウェアおよび/または論理を含んでよい。一部の実装において、ヘックスタイルデコーダエンジン206は、タイルを受信し、データをヘックスタイルフォーマットに符号化するために行われたステップを逆転させる。たとえば、この復号動作は、密なタイルにグリッドIDを加えることと、互換性のないデータフォーマットの間の変換をすることとを含む。出力データを受け取るアプリケーションのニーズに応じて、ヘックスタイルデコーダエンジン206は、タイルで使用されるのと同じグリッドシステム内にあるかまたは完全に別の地理的形態である可能性があるデータを生成する。たとえば、クライアントデバイス115上の視覚化アプリケーションは、グリッドセルの境界を使用するのではなく、タイル化されたデータを点としてレンダリングする必要がある可能性がある。視覚化アプリケーションは、タイルを多角形の領域としてまたはまったく別の形状でレンダリングすることを選択する可能性もある。
【0050】
ユーザインターフェースエンジン208は、ユーザにユーザインターフェースを提供するためのソフトウェアおよび/または論理を含んでよい。一部の実施形態において、ユーザインターフェースエンジン208は、ユーザインターフェースを生成するためにコンポーネント202、204、および206から命令を受信する。一部の実装において、ユーザインターフェースエンジン208は、通信ユニット241を介してクライアントデバイス115のアプリケーション(たとえば、ブラウザ)にグラフィカルユーザインターフェースデータを送信し、アプリケーションにデータをグラフィカルユーザインターフェースとして表示させる。
【0051】
図3は、データセットに対して地理空間分析を実行するための例示的な方法300の一実施形態を示す流れ図である。たとえば、図3は、ヘックスタイルのオフライン符号化を実行するための例示的な方法を示す。方法300の動作の全体的な順序が、図3に示される。方法300は、より多くのまたはより少ないステップを含んでよく、または図3に示されるステップとは異なるようにステップの順序を配列してよい。方法300は、クラウドシステムによって実行され、コンピュータ可読媒体に符号化されるかまたは記憶されるコンピュータ実行可能命令のセットとして実行され得る。さらに、方法300は、プロセッサ、ASIC、FPGA、SOC、またはその他のハードウェアデバイスに関連するゲートまたは回路によって実行され得る。
【0052】
動作302において、図2のヘックスタイルエンコーダエンジン202などの、方法300を実行するデバイス、プロセス、および/またはアプリケーションが、1つまたは複数のデータセットにアクセスする。例においては、1つまたは複数のデータセットのうちどれがアクセスされるかに関する決定がなされる場合がある。たとえば、特定の種類の分析が実行されることになる場合、分析の計算に関連する1つまたは複数のデータセットが、動作302においてアクセスされる場合がある。代替的にまたは追加的に、1つまたは複数のデータセットは、たとえば、クライアントデバイスが特定のデータおよび/または分析を要求すること、ユーザインターフェースを介した1つまたは複数のデータセットの選択などによって、要求内で特に特定される場合がある。
【0053】
動作304において、図2のヘックスタイルエンコーダエンジン202などの、方法300を実行するデバイス、プロセス、および/またはアプリケーションが、1つまたは複数のデータセットからのデータをヘックスタイルに符号化する。データセットからのデータをヘックスタイルに符号化するためのプロセスは、図4および添付の文章において説明される。306において、データセットの地図ビューに関する決定がなされる。一例において、決定は、地図の現在のビューに基づいてなされる。例において、ビューの決定は、地図ビューのズームレベル、および/または表示されているもしくは表示されるように要求されている地図の現在の解像度に基づく。追加的または代替的に、ビューを決定することは、どのデータセットがロードされるべきかも決定する場合がある。たとえば、本開示の態様は、任意の数の異なるデータセットをヘックスタイルに変換するように動作可能である。異なるデータセットは、たとえば、人口センサスデータ、気象データ(すなわち、降水量、気温、降雪量など)、会場(venue)データなどの異なる種類の情報を含んでよい。当業者は、データが空間コンポーネント(たとえば、位置情報)を含んでいる限り、どのような種類のデータもヘックスタイルに符号化され得ることを理解するであろう。任意の数の異なるデータセットが使用されてよいので、動作306においてビューを決定することは、どのデータセットが描かれるべきかを決定することも含む場合がある。決定は、1つまたは複数のデータセットの選択の受信に基づいてよい。代替的または追加的に、データセットは、実行される特定の分析または計算に基づいて決定される場合があり、その場合、分析または計算に関連するデータセットに関連するヘックスタイルが、自動的に特定される。例において、動作306は、図2のヘックスタイルローダエンジン204によって実行されてよい。
【0054】
308において、ヘックスタイルが、地図ビューに基づいてロードされる。ヘックスタイルをロードすることは、上で検討されたように、地図ビューの解像度とビューに対応する1つまたは複数のデータセットとの両方に対応するヘックスタイルを特定することを含んでよい。したがって、動作308において、複数の異なるヘックスタイルが、複数の異なるデータセットのためにロードされる場合がある。一例において、異なるヘックスタイル(たとえば、異なるデータセットからのデータを符号化するヘックスタイル)は、レイヤ化される場合がある。代替的に、異なるヘックスタイルは、関連するデータセットからのデータを符号化する単一のヘックスタイルへと組み合わされる場合がある。既に検討されたように、ビュー(たとえば、地図ビューおよび/または関連するデータセットの現在のズームレベル/解像度)に関連するヘックスタイルのみ。すなわち、地図上の現在描写されているかまたは描写のために要求されている位置に関連し、要求された解像度に一致するヘックスタイルが、動作308においてロードされる。
【0055】
検討されたように、本開示の態様は、データセットの関連する部分を決定し、現在のビューに基づいて必要とされる部分のみをロードすることによって、大きなデータセットの効率的なロードを可能にする。すなわち、動作306においてなされた決定に基づいて、方法300は、地図のどの部分が見えているかを決定し、地図ビューに基づいて、どの解像度のヘックスタイルが必要とされるかを決定する。タイルの解像度は、現在の地図ビューのズームレベルまたは高度に基づいて決定される。したがって、ビューがズームアウトされる(たとえば、エリア間の違いの大局的なビューを提供する)ときは、より粗いタイルがロードされ、ビューがズームインされる(たとえば、ヘックスタイルによって符号化されたデータセットのより細かい詳細を提供する)ときは、より細かいタイルがロードされる。そうすることで、1つまたは複数のデータセットの関連する部分が、迅速に特定され、ロードされ得る。さらに、ビューが変化する(たとえば、地図ビューがズームインまたはズームアウトする、位置を変えるなど)とき、動作306においてなされる決定が繰り返されることが可能であり、ヘックスタイルの新しいセットがロードされ、それによって、グローバルなデータセットをデバイスに実際に転送することなく、あたかもグローバルなデータセットがクライアントデバイスに転送されたかのような感覚をエミュレーションする効率的ロードプロセスを提供することが可能である。
【0056】
たとえ特定のヘックスタイルがビューによって現在必要とされていないとしても、それらの特定のヘックスタイルをキャッシュすることによって、さらなる効率が得られる場合がある。たとえば、ユーザが地図ビューの位置をわずかに調整することはよくあるので、現在のビューに隣接するヘックスタイルも、動作308においてロードされてよい。さらに、異なる解像度のヘックスタイルは、互いに階層的に関連付けられる。ユーザがビューをズームインまたはズームアウトすることもよくあるので、ヘックスタイルの階層的な性質が、現在のビューと異なる解像度のタイルをロードし、キャッシュすることを提供する。
【0057】
動作308においてタイルがロードされると、フローは、ロードされたヘックスタイルが出力データに復号される動作310に続く。一例において、復号動作310は、ロードされたヘックスタイルからデータセット情報を抽出することを含む。代替的または追加的に、復号プロセスは、ヘックスタイルデータに対して分析を実行すること、ヘックスタイルがどのデータセットに関連付けられるかを示すためにヘックスタイルデータをコーディングすること(たとえば、異なるデータセットが表示されるときに容易に区別可能であり得るように、第1のデータセットからのデータを第1の表示色を使用して復号し、第2のデータセットからのデータを第2の色を使用して復号すること)、1つまたは複数のフィルタをヘックスタイルデータに適用すること(たとえば、センサスデータの特定の年齢の範囲に関するフィルタリング、降水量の特定のレベルに関するフィルタリングなど)、データエンリッチメントを実行することなど、データに対して追加的な修正を実行することを含む場合がある。例において、復号動作310は、クライアントサーバインタラクションの中でサーバデバイスまたはクライアントデバイスによって実行されてよい。代替的に、復号動作は、クライアントデバイスとサーバデバイスとの両方によって実行されてよい。
【0058】
さらなる例において、復号化プロセスは、ヘックスタイルデータに対してデータエンリッチメント動作を実行することを含む場合がある。たとえば、様々な異なる種類の分析が、クライアントデバイスにおいて受信された要求に基づいて復号プロセスの一部として実行される場合がある。エンリッチメント動作の例は、ヘックスタイルデータをクライアントデバイス上のローカルのデータセットと組み合わせる(それによって、データのセキュリティおよびプライバシーを維持する)こと、ヘックスタイルによって表される異なるデータセットからのデータを比較するまたは組み合わせること(たとえば、年齢グループによる会場間の人気を決定するためにセンサスデータと会場データとを結合すること、降水量に基づく人口動向を決定するために降水量データと人口データとを結合することなど)を含む場合がある。当業者は、任意の種類の空間的に関連するデータがヘックスタイルに符号化され、それによって、ヘックスタイルを使用して実行され得る分析、計算、および/またはデータエンリッチメント動作の種類の柔軟性を与えることができることを理解するであろう。
【0059】
ヘックスタイルデータが復号された後、フローは、復号されたデータが提供される動作312に続く。一例において、復号されたデータを提供することは、クライアントデバイス上でレンダリングすること、またはレンダリングされるようにされることを含む場合がある。一例において、復号されたデータは、現在の地図ビュー上のオーバーレイとしてレンダリングされる場合がある。上で検討されたように、復号されたデータは、(たとえば、異なる色またはその他のインジケータを使用して)異なるデータ型からのデータを区別する、実行されたデータエンリッチメントまたは分析動作のインジケーションを提供するなどする方法でレンダリングされてよい。代替的に、復号されたデータは、後の使用のために、たとえば、APIを使用してアクセスされる、その他のアプリケーションまたはプロセスに提供されるなどするために記憶されてよい。
【0060】
一例において、出力データは、復号されたデータを操作または閲覧するための追加的な機能を提供するユーザインターフェース内にレンダリングされてよい。たとえば、ユーザインターフェースは、ユーザの要求に基づいて復号されたデータをフィルタリングまたは操作する要求を受信するように動作可能であってよい。ヘックスデータが時間のデータを含む実施形態において、ユーザインターフェースは、復号されたデータの経時的変化を表示するように動作可能であってもよい。そのような例において、ユーザインターフェースは、経時的変化を示す復号されたデータのアニメーションを引き起こす再生ボタンを含んでよい。また、ユーザインターフェースは、たとえば、時間的に前方向または後ろ方向への復号されたデータのアニメーションの再生を引き起こすように動作可能なユーザインターフェースに設けられたスライダを介して、アニメーションを表示または制御する特定の時点をユーザが選択することを可能にするように動作可能であってもよい。
【0061】
図4は、データセットをヘックスタイルに符号化するための例示的な方法400を示す。方法400の動作の全体的な順序が、図4に示される。方法400は、より多くのまたはより少ないステップを含んでよく、または図4に示されるステップとは異なるようにステップの順序を配列してよい。方法400は、クラウドシステムによって実行され、コンピュータ可読媒体に符号化されるかまたは記憶されるコンピュータ実行可能命令のセットとして実行され得る。さらに、方法400は、プロセッサ、ASIC、FPGA、SOC、またはその他のハードウェアデバイスに関連するゲートまたは回路によって実行され得る。
【0062】
フローは、データが1つまたは複数のデータセットからアクセスされる動作402で始まる。一例において、1つまたは複数のデータセットは、1つもしくは複数のデータセットの受信された選択に基づいて決定されてよく、または実行される分析の種類に基づいて自動的に決定されてよい。フローは、データセットの解像度の最も細かいレベルを決定するためにデータセットに関連する空間情報が分析される動作404に続く。例において、最も細かいレベルは、データセット内のデータポイントに関連する解像度のレベルによって決定される。たとえば、特定の緯度/経度コンポーネントは、都市によって関連付けられるデータよりも細かい解像度を有し、都市によって関連付けられるデータは、州によって関連付けられるデータよりも細かい解像度を有し、以下同様である。ヘックスタイルの解像度のレベルは、データセット内の空間情報の解像度のレベルに基づいて決定される。例において、データセット内のすべてのデータは、解像度の同じレベルに関連付けられる場合があるが、データセットは、本開示の範囲を逸脱することなく、空間データの解像度の異なるレベルを含んでもよい。
【0063】
データセット内の空間情報の最も細かい解像度を決定し、それによって、対応するヘックスタイルの解像度の最も細かいレベルを決定すると、フローは、動作404に続く。動作406において、データセットからのデータが、ヘックスタイルに符号化される。より詳細には、データセットからのデータは、たとえば、既に検討された密なまたは疎なフォーマットを使用してヘックスタイルに符号化される。しかし、当業者は、データの特定の部分がデータの特定の部分に関連する空間情報に基づいて正しいヘックスタイルに符号化される限り、データセットが任意の種類の異なるフォーマットでヘックスタイルに符号化されてよいことを理解するであろう。そのようにする際、動作404は、データセットまたはデータセット内の様々な異なるデータポイントに関連する空間情報によって定義された位置および解像度に基づいて、データセットからのデータを対応するヘックスタイルのDGGSに射影する。例において、符号化プロセスは、符号化されたデータとともにグリッド識別子を割り振ってもよい。例において、グリッド識別子は、動作404において更新または作成されたヘックスタイルに関連付けられてもよい。上述のように、ヘックスタイルは、ヘックスタイルの階層型グリッドの一部として存在する場合があり、またはヘックスタイルの階層型グリッドを構築するために使用されることが可能であり、階層内の各レベルは、異なる解像度(たとえば、地図ビューにおける異なるズームレベル)を表す。例において、グリッド識別子は、識別子の最初の部分が階層の最も粗いレベルと同一視されてよく、次の部分が次に最も粗いレベルと同一視されてよく、ヘックスタイルの階層の解像度の最も細かいレベルが達せられるまで同様に続くような、ヘックスタイルの階層関係を表す場合もある。
【0064】
フローは、異なる解像度を有する追加的なヘックスタイルが存在するおよび/または作成され得るかどうかに関する決定がなされる動作408に続く。データセットからのデータをデータセットの空間データに基づいて解像度の最も細かいレベルを表すヘックスタイルに最初に符号化した後、データがより粗い解像度を有するヘックスタイルに符号化されるべきかどうかに関する決定がなされる。符号化されるべきである場合、フローは、動作408から動作410へのYESに分岐する。動作410において、ヘックスタイルに関連するグリッド識別子が切り捨てられる。上述のように、グリッド識別子は、ヘックスタイルの階層内のその他のヘックスタイルに対して相対的に個々のヘックスタイルを表す。たとえば、上述のように、各ヘックスタイルは、7つのサブタイルに細分化され得る。各サブタイルのグリッド識別子は、サブタイルの親ヘックスタイルの識別子も含む。したがって、ヘックスタイルのグリッド識別子を切り捨てて、親ヘックスタイルのグリッド識別子を再現することによって、ヘックスタイルの親タイルが特定され得る。動作410においては、ヘックスタイルの各々のグリッド識別子を切り捨てることによって、動作406においてデータが符号化されたヘックスタイルの親ヘックスタイルが特定される。
【0065】
親タイルを特定すると、フローは、動作406において符号化されたデータがグループ化される動作412に続く。例において、符号化されたデータは、動作410において生成された切り捨てられたグリッド識別子の比較に基づいて一緒にグループ化される。一致する切り捨てられた識別子を有するデータは、一緒にグループ化され、動作414に継続し、親ヘックスタイル(たとえば、より粗い解像度を有するヘックスタイル)に集約され、符号化される。当業者は、データを集約するための任意のプロセスが動作414において実行されてよいことを理解するであろう。さらに、追加的なメタデータが、動作414において生成され、親ヘックスタイルとともに記憶されてよい。そのようなメタデータは、親ヘックスタイルの解像度についての情報、(たとえば、子ヘックスタイルの識別子を切り捨てることによって生成される)親ヘックスタイルの識別子などを含むがこれらに限定されない。特定の実施形態において、集約は必要とされない場合がある。たとえば、タイルデータを集約することなく、オフロードエンコーダが実施され得る。もっと正確に言えば、オフライン符号化プロセス中の集約は、データの個々のポイントをヘックスタイルに符号化するために使用されてよいが、必要とされない場合がある。したがって、動作414は、任意のステップである場合がある。データが動作414において集約され、または任意でスキップされ、親ヘックスタイルに符号化された後、フローは、動作408に戻り、データがさらに粗い解像度を有するヘックスタイルに集約されるべきかどうかが再び決定される。一例において、タイルの次のレベルをグループ化するとき、グループ化は、親のレベルに基づいてよく、または代替的に、タイルの次のレベルが、引き続き、動作406において符号化されたタイルの最も細かい解像度のセットに基づいてグループを生成してよい。そのような実施形態においては、(タイルの次のレベルの解像度のレベルに応じて)タイルの次のレベルの識別子を決定するために、タイルの最も細かいレベルの識別子が2回以上切り捨てられてよい。このプロセスは、ヘックスタイルの最も粗い解像度が達せられるまで継続し、最も粗い解像度が達せられた時点で、フローは、動作408から動作416へのNOに分岐する。
【0066】
動作416において、符号化されたヘックスタイルが提供される。一例において、符号化されたヘックスタイルを提供することは、符号化されたヘックスタイルをクライアントデバイスに送信することを含んでよい。代替的な例において、ヘックスタイルを提供することは、後でアクセスされ得るヘックスタイルカタログにヘックスタイルを記憶することを含んでよい。さらなる実施形態において、提供されるヘックスタイルは、新しい符号化された情報で継続的に更新されてよい。既に検討されたように、1つまたは複数のデータセットは、定期的に更新される時間のデータを含む場合がある。そのようなデータセットがヘックスタイルとして符号化されるとき、以前に符号化されたヘックスタイルは、それらの基礎となるデータセットが更新されるときに新しい時間の情報を含むように更新されてよい。代替的または追加的に、新しい時間のデータが受信されるときに、新しいヘックスタイルが作成されてよい。
【0067】
図5は、ヘックスタイルへのデータセットのオンライン符号化を実行するための例示的な方法500を示す流れ図である。方法500の動作の全体的な順序が、図5に示される。方法500は、より多くのまたはより少ないステップを含んでよく、または図5に示されるステップとは異なるようにステップの順序を配列してよい。方法500は、クラウドシステムによって実行され、コンピュータ可読媒体に符号化されるかまたは記憶されるコンピュータ実行可能命令のセットとして実行され得る。さらに、方法500は、プロセッサ、ASIC、FPGA、SOC、またはその他のハードウェアデバイスに関連するゲートまたは回路によって実行され得る。
【0068】
既に検討されたように、本明細書において開示される態様は、あたかもグローバルなデータセット全体が提供されたかのようにクライアントに見える方法で、グローバルなデータセットの一部をクライアントデバイスにオンデマンドで送信することを提供する。これは、クライアント上で表示される地図の現在のビューに関連する特定のデータを決定し、ビューに関連するヘックスタイルに符号化されたデータを配信することによって実現される。そのようにするための1つのプロセスが、図5に示されたオフライン符号化方法500に示される。フローは、ビューに関連するデータの要求がクライアントデバイスから受信される動作502で始まる。一態様において、要求は、クライアント上で表示される地図の現在のビューに関連付けられる。上で検討されたように、ビューは、表示されている現在の位置、地図の現在のズームレベルもしくは解像度、および/または1つもしくは複数の関連するデータセットを包含する場合がある。検討されたように、データセットは、クライアントデバイスによって提供されたデータセットの肯定的な選択に基づいて決定されてよく、またはクライアントデバイスによって要求された、もしくはクライアントデバイス自体によって実行されるように要求された分析もしくはエンリッチメント動作に基づいて決定されてよい。
【0069】
ビュー情報をともなう要求を受信すると、フローは、ビューに対応する1つまたは複数のデータセットが決定される動作504に続く。決定は、要求に関連するビューの位置および解像度に関連するデータを特定するための、1つまたは複数のデータセットの空間情報の分析に基づく場合がある。たとえば、ビューに関連する位置および解像度の情報が、ビューの位置および解像度に対応する空間情報を持つデータセットを特定するために、1つまたは複数のデータセットを問い合わせるために使用され得る。代替的に、位置および情報データは、たとえば、ヘックスタイルカタログからビューに対応する既存のヘックスタイルを特定するために使用されてよい。
【0070】
フローは、ビューに対応するデータを特定すると、特定されたデータがヘックスタイルに符号化される動作506に続く。例において、データをヘックスタイルに符号化することは、図4に関連して説明されたように実行されてよい。代替的または追加的に、動作506においてデータを符号化するのではなく、ビューに対応する既に符号化されたヘックスタイルが、動作506において取り出される場合がある。特定されたデータがヘックスタイルに符号化され、および/または関連するヘックスタイルがヘックスタイルカタログから取り出されると、ヘックスタイルは、動作508においてクライアントに提供される。一例において、ヘックスタイルは、動作508においてネットワークを介してクライアントに送信される場合がある。
【0071】
図6は、分析サーバから受信されたヘックスタイルデータを表示するための例示的な方法600を示す流れ図である。方法600の動作の全体的な順序が、図6に示される。方法600は、より多くのまたはより少ないステップを含んでよく、または図6に示されるステップとは異なるようにステップの順序を配列してよい。方法600は、クラウドシステムによって実行され、コンピュータ可読媒体に符号化されるかまたは記憶されるコンピュータ実行可能命令のセットとして実行され得る。さらに、方法600は、プロセッサ、ASIC、FPGA、SOC、またはその他のハードウェアデバイスに関連するゲートまたは回路によって実行され得る。
【0072】
フローは、要求が分析サーバに送信される動作602で始まる。一例において、要求は、方法600を実行するデバイス上で表示される現在の地図ビューに基づいて自動的に生成されてよい。たとえば、地図上でのズームインまたはズームアウト、地図に示される位置の変更などの地図ビューの操作を受信すると、操作を受信することに応答して、新しいビューに関連するヘックスタイルデータの要求が、自動的に生成され、分析サーバに送信されてよい。要求は、位置、ズームレベル、および/もしくは解像度などのビュー情報、ならびに/または特定のデータセットを特定するデータなどのデータセット情報を含んでよい。要求を送信することに応答して、フローは、グローバル分析サーバからヘックスタイルが受信される動作604に続く。
【0073】
フローは、ヘックスタイルデータが復号され、地図ビュー上にレンダリングされる動作606に続く。既に検討されたように、復号されたデータは、現在の地図ビュー上のオーバーレイとしてレンダリングされる場合がある。上で検討されたように、復号されたデータは、(たとえば、異なる色またはその他のインジケータを使用して)異なるデータ型からのデータを区別する、実行されたデータエンリッチメントまたは分析動作のインジケーションを提供するなどする方法でレンダリングされてよい。
【0074】
一例において、出力データは、復号されたデータを操作または閲覧するための追加的な機能を提供するユーザインターフェース内にレンダリングされてよい。動作608において、復号されたヘックスタイルデータを操作する要求が、ユーザインターフェースを介して受信される。たとえば、ユーザインターフェースは、ユーザの要求に基づいて復号されたデータをフィルタリングまたは操作する要求を受信するように動作可能であってよい。ヘックスデータが時間のデータを含む実施形態において、ユーザインターフェースは、復号されたデータの経時的変化を表示するように動作可能であってもよい。そのような例において、ユーザインターフェースは、経時的変化を示す復号されたデータのアニメーションを引き起こす再生ボタンを含んでよい。また、ユーザインターフェースは、たとえば、時間的に前方向または後ろ方向への復号されたデータのアニメーションの再生を引き起こすように動作可能なユーザインターフェースに設けられたスライダを介して、アニメーションを表示または制御する特定の時点をユーザが選択することを可能にするように動作可能であってもよい。
【0075】
復号されたヘックスタイルデータを操作する要求を受信すると、操作が実行され、操作されたデータが、動作610においてレンダリングされ、表示される。示されていないが、方法600は、ビューが変更されるたびに実行されてよい。たとえば、ユーザがズームインもしくはズームアウトするかまたは地図の位置を変更するときに、新しい要求が生成されてよく、それに応答して、対応するヘックスタイルデータが受信され、レンダリングされてよい。要求がユーザに対して表示される現在のビューに対応するので、例においては、レビューに関連するヘックスタイル(および潜在的に、キャッシュするためのいくつかの隣接ヘックスタイル)のみが、要求に応答して受信され、それによって、分析サーバとクライアントデバイスとの間でやりとりされる必要があるデータの量を削減する場合がある。そうすることで、大量のデータの転送を必要とせずに、グローバルなデータセット全体がクライアントデバイス上に存在しているようにユーザに見える方法でデータが配信され得る。代替的に、動作610においてデータをレンダリングし、表示するのではなく、動作610において、データは、記憶されるか、さらに処理されるか、または別のアプリケーションもしくはプロセスに提供される場合がある。
【0076】
図7は、本開示の態様による、本開示の態様が実施されてよいデバイスの簡略化されたブロック図を示す。デバイスは、たとえば、モバイルコンピューティングデバイスである場合がある。これらの実施形態のうちの1つまたは複数は、動作環境700において実施されてよい。これは、好適な動作環境の一例に過ぎず、使用または機能の範囲に関するいかなる限定を示唆するようにも意図されていない。使用に好適である可能性があるその他のよく知られているコンピューティングシステム、環境、および/または構成は、パーソナルコンピュータ、サーバコンピュータ、ハンドヘルドまたはラップトップデバイス、マルチプロセッサシステム、マイクロプロセッサに基づくシステム、スマートフォンなどのプログラミング可能な家庭用電化製品、ネットワークPC、ミニコンピュータ、メインフレームコンピュータ、上記のシステムまたはデバイスのいずれかを含む分散コンピューティング環境などを含むがこれらに限定されない。
【0077】
その最も基本的な構成において、動作環境700は、概して、少なくとも1つの処理ユニット702およびメモリ704を含む。コンピューティングデバイスの厳密な構成および種類に応じて、メモリ704(本明細書において説明されたようにヘックスタイルの生成および/または操作を実行するための命令)は、揮発性(RAMなど)、不揮発性(ROM、フラッシュメモリなど)、またはこれら2つの何らかの組合せである場合がある。この最も基本的な構成は、図7において破線706によって示される。さらに、動作環境700は、磁気または光ディスクまたはテープを含むがこれらに限定されないストレージデバイス(取り外し可能、708、および/または取り外し不可能、710)も含んでよい。同様に、動作環境700は、リモートコントローラ、キーボード、マウス、ペン、音声入力、オンボードセンサなどの入力デバイス714、および/またはディスプレイ、スピーカ、プリンタ、モータなどの出力デバイス712も有する場合がある。環境にさらに含まれる場合があるのは、LAN、WAN、近距離通信ネットワーク、セルラブロードバンドネットワーク、ポイントツーポイントなどの1つまたは複数の通信接続716である。
【0078】
概して、動作環境700は、少なくとも何らかの形態のコンピュータ可読媒体を含む。コンピュータ可読媒体は、処理ユニット702、または動作環境を構成するその他のデバイスによってアクセスされ得る任意の利用可能な媒体であることが可能である。限定でなく例として、コンピュータ可読媒体は、コンピュータストレージ媒体および通信媒体を含む場合がある。コンピュータストレージ媒体は、コンピュータ可読命令、データ構造、プログラムモジュール、またはその他のデータなどの情報を記憶するための任意の方法またはテクノロジーで実装された揮発性および不揮発性の取り外し可能なおよび取り外し不可能な媒体を含む。コンピュータストレージ媒体は、RAM、ROM、EEPROM、フラッシュメモリ、もしくはその他のメモリテクノロジー、CD-ROM、デジタルバーサタイルディスク(DVD)、もしくはその他の光学式ストレージ、磁気カセット、磁気テープ、磁気ディスクストレージ、もしくはその他の磁気式ストレージデバイス、または所望の情報を記憶するために使用され得る任意のその他の有形の非一時的媒体を含む。コンピュータストレージ媒体は、通信媒体を含まない。コンピュータストレージ媒体は、搬送波またはその他の伝搬もしくは変調されたデータ信号を含まない。
【0079】
通信媒体は、搬送波などの変調されたデータ信号またはその他の搬送メカニズムでコンピュータ可読命令、データ構造、プログラムモジュール、またはその他のデータを具現化し、任意の情報配信媒体を含む。用語「変調されたデータ信号」は、その信号の特徴のうちの1つまたは複数を、信号中に情報を符号化するようにして設定または変更させる信号を意味する。限定ではなく例として、通信媒体は、有線ネットワークまたは直接有線接続などの有線媒体、ならびに音響、RF、赤外線、およびその他のワイヤレス媒体などのワイヤレス媒体を含む。
【0080】
動作環境700は、1つまたは複数の遠隔のコンピュータへの論理接続を使用するネットワーク化された環境において動作する単一のコンピュータである場合がある。遠隔のコンピュータは、パーソナルコンピュータ、サーバ、ルータ、ネットワークPC、ピアデバイス、またはその他の通常のネットワークノードであってよく、概して、上述の要素の多くまたはすべて、およびそのように言及されていないその他の要素を含む。論理接続は、利用可能な通信媒体によってサポートされる任意の方法を含んでよい。そのようなネットワーキング環境は、オフィス、企業規模のコンピュータネットワーク、イントラネット、およびインターネットにおいてよく見られる。
【0081】
本明細書において開示された態様は、概して、データセットの地理空間分析、統一、および視覚化を実行するためのプラットフォームを提供するためのシステムおよび方法に関する。上の説明においては、説明の目的で、上で導入された技術の完全な理解をもたらすために多くの特定の詳細が説明されている。しかし、技術がこれらの特定の詳細なしに実施され得ることは、当業者に明らかであろう。その他の場合、構造およびデバイスは、説明を曖昧にすることを避けるためおよび理解を容易にするためにブロック図の形態で示されている。たとえば、技術は、上の一実施形態において、主にソフトウェアおよび特定のハードウェアに関連して説明されている。しかし、本発明は、データおよびコマンドを受け取り、サービスを提供する任意の周辺デバイスの一部として情報を提示することができる任意の種類のコンピューティングシステムに適用される。
【0082】
本明細書における「一実施形態(one embodiment)」または「実施形態(an embodiment)」への言及は、実施形態に関連して説明された特定の特徴、構造、または特性が少なくとも1つの実施形態に含まれることを意味する。本明細書中の様々な箇所に現れる語句「一実施形態において」は、必ずしもすべてが同じ実施形態を指しているとは限らない。
【0083】
上述の詳細な説明のいくつかの部分は、コンピュータメモリ内のデータビットに対する操作のアルゴリズムおよび記号表現の観点で提示されている。これらのアルゴリズムの記述および表現は、場合によっては、データ処理技術に精通した者によって、それらの者の成果の内容を当該技術に精通したその他の者に伝えるために使用される。ここでおよび概して、アルゴリズムは、所望の結果をもたらす自己矛盾のない一連のステップであると考えられる。ステップとは、物理量の物理的操作を必要とするステップである。必ずではないが通常、これらの量は、記憶、転送、組合せ、比較、およびその他の操作を行われ得る電気的または磁気的信号の形態をとる。これらの信号をビット、値、要素、記号、文字、語、数などと呼ぶことが、主に共通使用の理由で便利な場合があることが分かっている。
【0084】
しかし、これらのおよび同様の用語のすべては、適切な物理量に関連付けられるべきであり、これらの量に付される便宜的なラベルであるに過ぎないことに留意されたい。以下の検討から明らかなように、特段の断りのない限り、説明全体を通じて、「処理する」、「計算する(computing)」、「計算する(calculating)」、「決定する」、「表示する」などの用語を利用する検討は、コンピュータシステムのレジスタおよびメモリ内の物理的(電子的)量として表されるデータを操作し、コンピュータシステムのメモリまたはレジスタまたはその他のそのような情報ストレージ、送信、もしくは表示デバイス内の物理的量として同様に表されるその他のデータに変換するコンピュータシステムまたは同様の電子的なコンピューティングデバイスのアクションおよびプロセスを指すことが理解される。
【0085】
技術は、本明細書の動作を実行するための装置にも関する。この装置は、必要とされる目的のために特別に構築される場合があり、またはコンピュータに記憶されたコンピュータプログラムによって選択的にアクティブ化もしくは再構成される多目的コンピュータを含む場合がある。そのようなコンピュータプログラムは、フロッピーディスク、光ディスク、CD-ROM、および磁気ディスクを含む任意の種類のディスク、読み出し専用メモリ(ROM)、ランダムアクセスメモリ(RAM)、EPROM、EEPROM、磁気式もしくは光学式カード、不揮発性メモリを有するUSBキーを含むフラッシュメモリ、またはそれぞれがコンピュータシステムバスに結合された、電子的な命令を記憶するのに好適な任意の種類の媒体などであるがこれらに限定されない非一時的コンピュータ可読ストレージ媒体に記憶される場合がある。
【0086】
一部の実施形態は、すべてハードウェアの実施形態、すべてソフトウェアの実施形態、またはハードウェア要素とソフトウェア要素との両方を含む実施形態の形態をとり得る。一実施形態は、ファームウェア、常駐ソフトウェア、マイクロコードなどを含むがこれらに限定されないソフトウェアに実装される。
【0087】
さらに、一部の実施形態は、コンピュータもしくは任意の命令実行システムによる、またはコンピュータ、もしくは任意の命令実行システムに関連する使用のためにプログラムコードを提供するコンピュータが使用可能な、またはコンピュータが読み取り可能な媒体からのアクセス可能なコンピュータプログラム製品の形態をとり得る。この説明の目的で、コンピュータが使用可能な、またはコンピュータが読み取り可能な媒体は、命令実行システム、装置、もしくはデバイスによるまたは命令実行システム、装置、もしくはデバイスに関連する使用のためにプログラムを含むか、記憶するか、伝達するか、伝搬するか、または転送することができる任意の装置であることが可能である。
【0088】
プログラムコードの記憶および/または実行に好適なデータ処理システムが、システムバスを通じてメモリ要素に直接的または間接的に結合された少なくとも1つのプロセッサを含み得る。メモリ要素は、プログラムコードの実際の実行中に使用されるローカルメモリと、大容量ストレージと、実行中に大容量ストレージからコードが取り出されなければならない回数を減らすために少なくとも一部のプログラムコードの一時的なストレージを提供するキャッシュメモリとを含み得る。
【0089】
(キーボード、ディスプレイ、ポインティングデバイスなどを含むがこれらに限定されない)入力/出力またはI/Oデバイスが、直接、または介在するI/Oコントローラを通じてのどちらかでシステムに結合され得る。
【0090】
介在するプライベートまたはパブリックネットワークを通じてデータ処理システムがその他のデータ処理システムまたは遠隔のプリンタもしくはストレージデバイスに結合されるようになることを可能にするために、ネットワークアダプタも、システムに結合される場合がある。モデム、ケーブルモデム、およびイーサネットカードは、現在利用可能な種類のネットワークアダプタのほんの一部である。
【0091】
最後に、本明細書において提示されたアルゴリズムおよび表示は、いかなる特定のコンピュータまたはその他の装置にも本質的に関連しない。様々な汎用システムが本明細書の教示に従ってプログラムとともに使用されてよく、または必要とされる方法のステップを実行するためにより特化された装置を構築することが都合がよいと分かる場合がある。様々なこれらのシステムのための必要とされる構造は、上の説明から明らかであろう。さらに、技術は、いかなる特定のプログラミング言語に関連しても説明されていない。本明細書において説明されたように様々な実施形態の教示を実施するために様々なプログラミング言語が使用されてよいことは、理解されるであろう。
【0092】
実施形態の上述の説明は、例示および説明を目的として提示された。実施形態の上述の説明は、網羅的であるように、または開示された厳密な形態に本明細書を限定するように意図されていない。多くの修正および変更が、上述の教示に照らして可能である。実施形態の範囲は、この詳細な説明によって限定されず、それよりも本出願の請求項によって限定されることが意図される。当業者に理解されるであろうように、例は、それらの精神または不可欠な特徴から逸脱することなくその他の特定の形態で具現化される場合がある。同様に、モジュール、ルーチン、特徴、属性、方法、およびその他の態様の特定の命名および分割は、必須または重大ではなく、本説明書またはその特徴を実装するメカニズムは、異なる名前、分割、および/またはフォーマットを有する場合がある。さらに、当業者に明らかであろうように、本明細書のモジュール、ルーチン、特徴、属性、方法、およびその他の態様は、ソフトウェア、ハードウェア、ファームウェア、またはこれら3つの任意の組合せとして実装され得る。また、モジュールがその例である本明細書のコンポーネントがソフトウェアとして実装されるときにはいつでも、コンポーネントは、スタンドアロンプログラムとして、より大きなプログラムの一部として、複数の別々のプログラムとして、静的または動的にリンクされるライブラリとして、カーネルがロード可能なモジュールとして、デバイスドライバとして、ならびに/またはコンピュータプログラミングの分野に精通した者に現在知られているもしくは将来知られるあらゆるおよび任意のその他の方法で実装され得る。さらに、本明細書は、いかなる特定のプログラミング言語での実施形態、またはいかなる特定のオペレーティングシステムもしくは環境のための実施形態にも決して限定されない。したがって、本開示は、添付の請求項に記載の本明細書の範囲を説明するように意図されており、限定するように意図されていない。
【符号の説明】
【0093】
100 システム
101 地理空間分析サーバ
103、103a、103b 地理空間分析アプリケーション
105 ネットワーク
115、115a...115n クライアントデバイス
125 複数のサードパーティサーバ
200 コンピューティングデバイス
202 ヘックスタイルエンコーダエンジン
204 ヘックスタイルローダエンジン
206 ヘックスタイルデコーダエンジン
208 ユーザインターフェースエンジン
220 バス
235 プロセッサ
237 メモリ
239 ディスプレイデバイス
241 通信ユニット
243 データストレージ
251 地理空間データセット
253 ヘックスタイルデータカタログ
300 方法
400 方法
500 方法
600 方法
700 動作環境
702 処理ユニット
704 メモリ
706 基本的な構成
708 取り外し可能なストレージデバイス
710 取り外し不可能なストレージデバイス
712 出力デバイス
714 入力デバイス
716 通信接続
図1
図2
図3
図4
図5
図6
図7
【国際調査報告】