地理空間分析スタートガイド


このチュートリアルでは、地理空間分析について紹介します。地理空間分析を使用すると、BigQuery で地理空間データを分析して可視化できます。

目標

このチュートリアルの内容は次のとおりです。

  • 地理空間分析関数を使用して、緯度と経度の列を地理上の点に変換する
  • 30 台を超える自転車がレンタル可能なシティバイク ステーションをすべて検索するクエリを実行する
  • BigQuery Geo Viz で結果を可視化する

費用

このチュートリアルでは、Google Cloud の課金対象となるコンポーネントを使用します(BigQuery を含む)。

次の料金が発生します。

  • BigQuery 一般公開データセットに含まれるデータのクエリ
    • 毎月、最初の 1 TB は無料です。
    • 容量ベースの料金を使用している場合、クエリ費用は容量ベースの料金に含まれます。

始める前に

  1. Google Cloud アカウントにログインします。Google Cloud を初めて使用する場合は、アカウントを作成して、実際のシナリオでの Google プロダクトのパフォーマンスを評価してください。新規のお客様には、ワークロードの実行、テスト、デプロイができる無料クレジット $300 分を差し上げます。
  2. Google Cloud Console の [プロジェクト セレクタ] ページで、Google Cloud プロジェクトを選択または作成します。

    プロジェクト セレクタに移動

  3. Google Cloud プロジェクトで課金が有効になっていることを確認します

  4. Google Cloud Console の [プロジェクト セレクタ] ページで、Google Cloud プロジェクトを選択または作成します。

    プロジェクト セレクタに移動

  5. Google Cloud プロジェクトで課金が有効になっていることを確認します

  6. 新しいプロジェクトでは、BigQuery が自動的に有効になります。既存のプロジェクトで BigQuery を有効にするには、

    BigQuery API を有効にします。

    API を有効にする

    にアクセスします。

サンプルデータの探索

このチュートリアルでは、Google Cloud 一般公開データセット プログラムを通じて提供されているデータセットを使用します。一般公開データセットは、BigQuery に保存され、一般に公開されるデータセットです。この一般公開データセットは BigQuery でホストされ、ユーザーがアクセスして独自のアプリケーションに統合できます。Google はこれらのデータセットの保存費用を負担しており、プロジェクトを介してデータへの公開アクセスを提供しています。データに対して実行したクエリにのみ料金が発生します(毎月 1 TB まで無料。クエリの料金の詳細をご覧ください)。

NYC シティバイクの移動に関するデータセット

NYC シティバイクの移動

シティバイクは、マンハッタン、ブルックリン、クイーンズ、ジャージーシティの全域で 10,000 台の自転車と 600 のステーションを持つ、米国最大級の自転車シェア プログラムです。このデータセットには、2013 年 9 月にシティバイクが発足して以来毎日更新されているシティバイクの移動記録が含まれています。データはシティバイクによって処理が加えられており、システムの点検と検査のためのスタッフによる移動や、誤った開始と見なされる 60 秒未満の移動は削除されています。

まず、BigQuery コンソールで citibike_stations テーブルの詳細を表示し、このデータを確認しましょう。

citibike_stations スキーマへ移動

このチュートリアルに関連するのは、このテーブルの次の 3 つの列です。

  • bike_stations.longitude: ステーションの経度。値は有効な WGS 84 経度で、10 進数形式です。
  • bike_stations.latitude: ステーションの緯度。値は有効な WGS 84 緯度で、10 進数形式です。
  • num_bikes_available: レンタル可能な自転車の数。

30 台を超える自転車が利用可能な自転車ステーションをクエリする

チュートリアルのこのセクションでは、30 台を超える自転車をレンタルできるニューヨーク市内のシティバイク ステーションをすべて見つける GoogleSQL クエリを実行します。

クエリの詳細

次の GoogleSQL クエリを使用して、30 台を超える自転車があるシティバイク ステーションを見つけます。

SELECT
  ST_GeogPoint(longitude, latitude)  AS WKT,
  num_bikes_available
FROM
  `bigquery-public-data.new_york.citibike_stations`
WHERE num_bikes_available > 30

このクエリ句は次の処理を行います。

  • SELECT ST_GeogPoint(longitude, latitude) AS WKT, num_bikes_available
    SELECT 句で num_bikes_available 列を選択し、ST_GeogPoint 関数を使用して latitude 列と longitude 列の値を GEOGRAPHY 型(地点)に変換します。
  • FROM `bigquery-public-data.new_york.citibike_stations`
    FROM 句で、クエリ対象のテーブル citibike_stations を指定します。
  • WHERE num_bikes_available > 30
    WHERE 句は、num_bikes_available 列の値でデータをフィルタリングし、30 台を超える自転車があるステーションのみを取り出します。

クエリを実行する

Google Cloud コンソールを使用してクエリを実行するには:

  1. Google Cloud コンソールの [BigQuery] ページに移動します。

    [BigQuery] ページに移動

  2. [クエリエディタ] のテキスト領域に、次の GoogleSQL クエリを入力します。

    -- Finds Citi Bike stations with > 30 bikes
    SELECT
      ST_GeogPoint(longitude, latitude)  AS WKT,
      num_bikes_available
    FROM
      `bigquery-public-data.new_york.citibike_stations`
    WHERE num_bikes_available > 30
    
  3. [実行] をクリックします。

    クエリが完了するまでに少し時間がかかります。クエリが完了すると、結果が [クエリ結果] パネルに表示されます。

    自転車ステーションの検索結果。

Geo Viz でのクエリ結果の可視化

次に、BigQuery Geo Viz を使用して結果を可視化します。BigQuery Geo Viz は、Google Maps API を使用して BigQuery の地理空間データを可視化するためのウェブツールです。

Geo Viz の起動と認証

Geo Viz を使用するには、その前に認証を行い、BigQuery のデータへのアクセス権を付与する必要があります。

Geo Viz を設定するには:

  1. Geo Viz ウェブツールを開きます。

    Geo Viz ウェブツールを開く

    このツールを承認して使用するには、Cookie を有効にする必要が生じることがあります。

  2. 手順 1 [クエリ] で [承認] をクリックします。

    Geo Viz の [Authorize] ボタン。

  3. [Choose an account] ダイアログで Google アカウントをクリックします。

    [Choose an account] ダイアログ。

  4. アクセス ダイアログで [Allow] をクリックして、Geo Viz に BigQuery データへのアクセスを許可します。

    アクセス許可のダイアログ。

地理空間データに対して GoogleSQL クエリを実行する

認証してアクセス権を付与したら、次に Geo Viz でクエリを実行します。

クエリを実行するには:

  1. 手順 1 [Select data] で [Project ID] フィールドにプロジェクト ID を入力します。

  2. クエリ ウィンドウで、次の GoogleSQL クエリを入力します。

    -- Finds Citi Bike stations with > 30 bikes
    SELECT
      ST_GeogPoint(longitude, latitude)  AS WKT,
      num_bikes_available
    FROM
      `bigquery-public-data.new_york.citibike_stations`
    WHERE num_bikes_available > 30
    
  3. [実行] をクリックします。

  4. クエリが完了したら [Show results] をクリックします。また、手順 2 [Define columns] をクリックすることもできます。

    結果を確認。

  5. これでステップ 2 に移動します。 [Geometry column] で [WKT] を選択します。自転車ステーションに対応する点がマップ上にプロットされます。

    マップされた結果。

可視化の形式設定

[Style] セクションには、カスタマイズ可能なビジュアル スタイルの一覧が表示されます。特定のプロパティは特定のデータタイプのみに適用されます。たとえば、circleRadius は点のみに影響します。

サポートされているスタイル プロパティは以下のとおりです。

  • fillColor。ポリゴンまたは点の塗りつぶしの色。たとえば、「linear」関数または「interval」関数を使用して、数値をカラー グラデーションにマッピングできます。
  • fillOpacity。ポリゴンまたは点の塗りつぶしの不透明度。値は 0 から 1 の範囲で指定します。0 は透明で 1 は不透明となります。
  • strokeColor。ポリゴンまたは線のストロークまたはアウトラインの色です。
  • strokeOpacity。ポリゴンまたは線のストロークまたはアウトラインの不透明度。値は 0 から 1 の範囲で指定します。0 は透明で 1 は不透明となります。
  • strokeWeight。ポリゴンまたは線のストロークまたはアウトラインの幅です。ピクセル単位で指定します。
  • circleRadius。点を表す円の半径。ピクセル単位で指定します。たとえば、「linear」関数を使用して数値を点のサイズにマッピングすると、散布図スタイルを作成できます。

各スタイルには、グローバル値(すべての結果に適用される)、データドリブン値(各結果行のデータに応じて異なる方法で適用される)のいずれかを指定できます。データドリブン値の場合、次の機能を使用して表示結果を指定します。

  • function。フィールドの値からスタイル値への計算に使用される関数。
  • identity。各フィールドのデータ値がスタイル値として使用されます。
  • categorical。ドメインにリストされた各フィールドのデータ値と、範囲内の対応するスタイルを 1 対 1 でマッピングします。
  • interval。各フィールドのデータ値がドメイン内の最も近い値に丸められ、範囲内の対応するスタイルが適用されます。
  • linear。各フィールドのデータ値がドメインの値の中で線形補間され、範囲内の対応するスタイルが混ぜ合わされて適用されます。
  • field。データ内の指定されたフィールドがスタイル関数の入力として使用されます。
  • domain。フィールドのサンプル入力値の順序付きリスト。サンプル入力(ドメイン)は、指定された関数に基づいてサンプル出力(範囲)とペアになり、すべての入力(ドメインにリストされていないものも含む)のスタイル値の導出に使用されます。ドメイン内の値は、可視化を行っているフィールドの値と同じ型(テキスト、数値など)にする必要があります。
  • range を追加します。スタイルルールのサンプル出力値のリスト。範囲の値は、制御しているスタイル プロパティと同じ型(色または数値)にする必要があります。たとえば、fillColor プロパティの範囲には色のみが含まれるようにします。

マップの形式を設定するには:

  1. 手順 2 の [Add styles] をクリックするか、手順 3 の [Style] をクリックします。

  2. 点の色を変更します。[fillColor] をクリックします。

  3. [Value] に、青の HTML カラーコード「#0000FF」を入力します。

  4. [スタイルを適用] をクリックします。

    塗りつぶしの色。

  5. マップ上で確認します。いずれかのポイントをクリックすると、値が表示されます。

    点のマッピングの詳細。

  6. [fillOpacity] をクリックします。

  7. [] フィールドに「0.5」と入力し、[スタイルを適用] をクリックします。

    塗りつぶしの透明度。

  8. マップ上で確認します。点の塗りつぶし色が半透明になります。

    半透明の点が描画された地図。

  9. 利用可能な自転車の数に基づいて点のサイズを変更します。[circleRadius] をクリックします。

  10. [circleRadius] パネルで以下を設定します。

    1. [Data driven] をクリックします。
    2. [Function] で [linear] を選択します。
    3. [Field] で [num_bikes_available] を選択します。
    4. [Domain] で最初のボックスに「30」、2 番目のボックスに「60」と入力します。
    5. [Range] で最初のボックスに「5」、2 番目のボックスに「20」と入力します。

      円の半径。

  11. マップ上で確認します。各円の半径は、その場所で利用可能な自転車の数に対応します。

    最終的なマップ。

  12. Geo Viz を閉じます。

クリーンアップ

このチュートリアルで使用したリソースについて、Google Cloud アカウントに課金されないようにするには、リソースを含むプロジェクトを削除するか、プロジェクトを維持して個々のリソースを削除します。

  • 作成したプロジェクトを削除する。
  • または、将来の使用のためにプロジェクトを保持する。

プロジェクトを削除するには:

  1. Google Cloud コンソールで、[リソースの管理] ページに移動します。

    [リソースの管理] に移動

  2. プロジェクト リストで、削除するプロジェクトを選択し、[削除] をクリックします。
  3. ダイアログでプロジェクト ID を入力し、[シャットダウン] をクリックしてプロジェクトを削除します。

次のステップ