空間分析用のグリッド システム
このドキュメントでは、BigQuery で地理空間グリッド システム(S2 や H3 など)を使用して、標準化された地理的領域で空間データを整理する目的と方法について説明します。また、アプリに適したグリッド システムを選択する方法についても説明します。このドキュメントは、空間データを扱い、BigQuery で空間分析を行うすべてのユーザーに役立ちます。
空間分析の概要と課題
空間分析は、物理空間内のエンティティ(店舗や住宅)とイベントの関係を示す際に役立ちます。地球の表面を物理空間として使用する空間分析を地理空間分析と呼びます。BigQuery では、地理空間分析を大規模に実行できる地理空間機能と関数が用意されています。
多くの地理空間ユースケースでは、局所的な領域内でデータの集計を行い、領域の統計の集計値を他の領域と比較します。これらの局所的な領域は、空間データベース テーブルでポリゴンとして表されます。状況によっては、この方法を統計地理情報と呼ぶこともあります。レポート、分析、空間インデックスを改善するには、地理的範囲を決定する方法を標準化する必要があります。たとえば、小売業者は、店舗がある地域や、新店舗の建設を検討している地域における、人口統計の変化を時系列で分析できます。保険会社は、特定の地域で発生している自然災害のリスクを分析することで、不動産リスクについてよく理解することができます。
多くの地域でデータのプライバシーに対して厳格な規制が適用されています。データに含まれる個人のプライバシーを保護するため、位置情報を含むデータセットは個人を特定できないようにするか、部分的に匿名化する必要があります。たとえば、未払いの住宅ローンに関するデータを含むデータセットに対して、地域別に信用集中リスクを分析できます。この場合、データセットを匿名化し、コンプライアンスを遵守した形式にするには、物件の場所に関する情報を保持する際に、具体的な住所や経緯度座標を除外する必要があります。
上記の例で、分析の設計者は次のような課題に直面しています。
- 時間の経過に伴う変化を分析する範囲の境界線をどのように設定すべきか
- 既存の行政境界(国勢調査区やマルチ解像度グリッド システムなど)を使用するにはどうすればよいか
このドキュメントでは、各選択肢、ベスト プラクティス、一般的な落とし穴を回避するための方法を説明することで、これらの質問に答えることを目的としています。
統計地域を選択する際の一般的な落とし穴
不動産販売、マーケティング キャンペーン、e コマース配送、保険ポリシーなどのビジネス データセットは空間分析に適しています。多くの場合、こうしたデータセットには、便利な空間結合キー(国勢調査区、郵便番号、都市名など)が含まれています。国勢調査区、郵便番号、市区町村を表す一般公開データセットはすぐに利用できることもあり、統計集計の管理境界として使用したくなります。
これらの管理境界は一見便利に見えますが、欠点もあります。これらの境界は、分析プロジェクトの初期段階ではうまく機能していても、後の段階で不具合が生じることもあります。
郵便番号
郵便番号は、世界中のさまざまな国で郵便物の配達に使用されています。この汎用性により、空間データセットと非空間データセットの両方で場所と地域を参照するために使用されることがよくあります。住宅ローンに関する前述の例では、ダウンストリーム分析を行う前に、データセットの匿名化が必要になることがよくあります。各物件の住所には郵便番号が含まれているため、郵便番号参照テーブルにアクセスできます。これは、空間分析の結合キーとして便利なオプションです。
郵便番号を使用する際の落とし穴は、郵便番号がポリゴンとして表されていないことと、郵便番号の地域について信頼できる唯一の情報源がないことにあります。また、郵便番号は実際の人の行動を適切に表すものではありません。米国で最も一般的に使用されている郵便番号データは、米国国勢調査局 TIGER/Line シェープファイルから取得できます。これには ZCTA5(郵便番号集計エリア)というデータセットが含まれています。このデータセットは、郵便物の配達ルートから導出された郵便番号の境界線の概略を表します。また、個々の建物を表す郵便番号に境界がない場合もあります。この問題は他の国でも発生するため、システムやデータセット間で使用できる郵便番号の境界について、正式なセットを含む単一のグローバル ファクト テーブルを作成することは困難です。
また、世界中で使用されている標準的な郵便番号の形式はありません。3~10 桁の数字、または英数字の組み合わせがあります。別の国と重複していることもあるため、郵便番号に加えて送信元の国を別の列に保存する必要があります。また、郵便番号を使用しない国もあり、このことが分析をさらに複雑にしています。
国勢統計区、市、郡
行政区、市、郡のような正式な境界が存在しない行政単位もあります。たとえば、都市の境界は、ほとんどの場合、行政機関によって明確に定められています。国勢調査区は米国国勢調査局で明確に定義されています。他のほとんどの国でも同様です。
これらの行政区分やその他の行政区分を使用する場合の欠点は、時間の経過とともに変化することと、地理的に互いに一貫していないことです。郡や市は統廃合があり、名前が変わることもあります。米国では 10 年ごとに更新されていますが、他の国では別のタイミングで更新されています。わかりにくい点としては、地理的境界が変更されても固有識別子がそのまま使用されるケースがあり、時間の経過に伴う変化を分析して理解することが難しいこともあります。
一部の行政区画には、地理的階層のない個別の地域という欠点もあります。個々の領域を比較するだけでなく、領域自体の集計を他の集計と比較することも一般的な要件です。たとえば、Huff モデルを実装している小売業者は、複数の距離を使用してこの分析を実行しています。この距離は、ビジネスの他の場所で使用されている管理領域に対応していない場合があります。
単一解像度グリッドとマルチ解像度グリッド
単一解像度のグリッドは、それらの単位を含むより大きな領域と地理的な関係を持たない個別の単位で構成されています。たとえば、郵便番号は、郵便番号を含む市や郡など、より大きな行政単位の境界と一貫性のない地理的な関係にあります。空間分析では、領域のポリゴンを定義する歴史や法令に関する深い知識がなくても、さまざまな領域がどのように関連しているかを理解することが重要です。
マルチ解像度グリッドは、各ズームレベルのセルのレベルが上がると、より小さなセルに分割されるため、階層型グリッドと呼ばれることもあります。マルチ解像度グリッドは、より大きな単位に含まれる単位の明確な階層で構成されます。たとえば、国勢調査区にはブロック グループが含まれ、ブロック グループにはブロックが含まれます。この一貫した階層関係は、統計の集計に役立ちます。たとえば、ある地域に含まれるすべてのブロック グループの収入の平均を算出することで、そのブロック グループを含む国勢調査地域の平均収入を表示できます。郵便番号では、すべての郵便地域が単一の解像度で配置されるため、これは不可能です。隣接性を定義する標準的な方法や、国別の収入を比較する方法がないため、ある地域の収入を周辺の地域の収入と比較することは困難です。
S2 と H3 のグリッド システム
このセクションでは、S2 と H3 のグリッド システムの概要について説明します。
S2
S2 ジオメトリは、Google が開発し、2011 年に一般公開したオープンソースの階層型グリッド システムです。S2 グリッド システムを使用すると、各セルに固有の 64 ビット整数を割り当てることで、空間データを整理し、インデックスに登録できます。解像度は 31 段階あります。各セルは正方形で表され、球状のジオメトリ(ジオグラフとも呼ばれます)に対する操作用に設計されています。各正方形は 4 つの小さな正方形に分割されます。ネイバー トラバーサル(隣接する S2 セルを識別する機能)は、分析の種類に応じて、関連するネイバーが 4 つまたは 8 つあるため、明確に定義されていません。マルチ解像度の S2 グリッドセルの例を次に示します。
BigQuery は S2 セルを使用して空間データをインデックス化し、複数の関数を公開します。たとえば、S2_CELLIDFROMPOINT
は、指定されたレベルの地表上のポイントを含む S2 セル ID を返します。
H3
H3 は、Uber が開発し、Overture Maps で使用されているオープンソースの階層型グリッド システムです。解像度は 16 段階です。各セルは六角形で表され、S2 と同様に、各セルには一意の 64 ビット整数が割り当てられます。メキシコ湾をカバーする H3 セルの可視化の例では、小さな H3 セルは大きなセルに完全には含まれていません。
各セルは 7 つの小さな六角形に分割されます。この分割は正確ではありませんが、多くのユースケースには適しています。各セルは 6 つの隣接セルとエッジを共有するため、隣接セルの移動が簡単になります。たとえば、各レベルで 12 個の五角形があり、6 個ではなく 5 個の隣接する頂点とエッジを共有します。H3 は BigQuery ではサポートされていませんが、BigQuery 向けの Carto Analytics ツールボックスを使用して H3 サポートを BigQuery に追加できます。
S2 ライブラリと H3 ライブラリはどちらもオープンソースで、Apache 2 ライセンスで利用できますが、H3 ライブラリには詳細なドキュメントがあります。
HEALPix
天球をグリッド化する別のスキームとして、天文学の分野でよく使用される Hierarchical Equal Area isoLatitude Pixelation(HEALPix)があります。HEALPix は階層型ピクセル深度とは無関係ですが、計算時間は一定です。
HEALPix とは、球体を等面積でピクセル化する階層的スキームです。天球(またはその他の球)上のデータを表現して分析するために使用されます。HEALPix グリッドには、一定の計算時間に加えて、次の特性があります。
- グリッドセルは階層的であり、親子関係が維持される。
- 特定の階層では、セルの面積は等しい。
- セルは等緯度分布に従い、スペクトル手法で高いパフォーマンスを実現する。
BigQuery は HEALPix をサポートしていませんが、JavaScript など、さまざまな言語で実装されているため、BigQuery のユーザー定義関数(UDF)で使用できます。
各インデックス戦略のユースケースの例
このセクションでは、ユースケースに最適なグリッド システムを評価するうえで役立つ例をいくつか紹介します。
分析とレポートの多くのユースケースでは、分析自体の一部として、またはビジネス ステークホルダーへのレポートとして、可視化が使用されます。これらの可視化は、通常は Web Mercator で表示されます。これは、Google マップやその他の多くのウェブ マッピング アプリケーションで使用される平面投影です。可視化が重要な場合、H3 セルは主観的に優れた可視化エクスペリエンスを提供します。S2 セルは、特に高緯度で S3 よりも歪みが大きくなり、平面投影で表示すると低緯度のセルと一致しません。
H3 セルは、分析において近隣比較が重要な役割を果たす実装を簡素化します。たとえば、都市の各セクションを比較分析することで、新しい小売店や流通センターを開設するのに適した場所を決めることができます。分析では、隣接するセルと比較される特定のセルの属性の統計計算が必要です。
S2 セルは、距離や角度の測定を含む分析など、基本的にグローバルな分析に適しています。Niantic の Pokemon Go は、S2 セルを使用してゲームアセットの配置場所と配信方法を決定します。S2 セルの正確なサブディビジョン プロパティにより、ゲームアセットを世界中に均等に分散できます。
次のステップ
- 空間クラスタリングに関するベスト プラクティスを確認する。BigQuery での空間クラスタリング - ベスト プラクティスをご覧ください。
- 不完全なデータから空間階層を作成する方法を学習する。
- GitHub の S2 ジオメトリについて学習する。
- GitHub の H3 ジオメトリについて学習する。
- H3、BigQuery、Earth Engine の使用例を確認する。