地理空間分析を使用してハリケーンの進路をプロットする


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

目標

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

  • 地理空間分析関数を使用して、緯度と経度の列を地理上の点に変換する
  • ハリケーンの進路をプロットするクエリを実行する
  • BigQuery で結果を可視化する
  • BigQuery Geo Viz で結果を可視化する

料金

BigQuery は有料のプロダクトです。このチュートリアルを行うと、BigQuery の使用料金が発生します。BigQuery では、特定の上限まで無料でリソースを使用できます。詳細については、BigQuery の無料のオペレーションと無料枠をご覧ください。

始める前に

このチュートリアルを始める前に、 Google Cloud コンソールを使ってプロジェクトを作成または選択します。

  1. Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  3. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  4. 新しいプロジェクトでは、BigQuery が自動的に有効になります。既存のプロジェクトで BigQuery を有効にするには、次の箇所にアクセスします。
  5. Enable the BigQuery API.

    Enable the API

  6. (省略可)プロジェクトに対する課金を有効にします。課金を有効にしない場合や、クレジット カードを指定しない場合でも、このドキュメントの手順は行えます。BigQuery には、この手順を実施するためのサンドボックスが用意されています。詳細については、BigQuery サンドボックスを有効にするをご覧ください。
  7. サンプルデータの探索

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

    グローバル ハリケーン トラック(IBTrACS)データセット

    グローバル ハリケーン トラック(IBTrACS)データセット

    NOAA の気象報告に関する国際ベストトラック アーカイブ(IBTrACS)を基に、世界中で発生した熱帯低気圧(TC)の軌跡に沿って、TC の位置と勢力をまとめています。熱帯低気圧は、北大西洋および北東太平洋海域ではハリケーン、北西太平洋海域では台風、南北インド洋海域ではサイクロン、南西太平洋海域では熱帯低気圧として知られています。

    IBTrACS は、TC の予測と報告を担当する国際的な監視センターから報告される、TC に関するデータを収集します(また、いくつかの重要な過去のデータセットも収集します)。IBTrACS には 9 か国のデータが含まれています。これらのシステムを記述するデータには、その軌跡と勢力の最適な予測値が含まれています(したがって、ベストトラックという用語が使われています)。

    まず、 Google Cloud コンソールで hurricanes テーブルの詳細を参照し、このデータを確認しましょう。

    ハリケーンのスキーマに移動

    2017 年に発生したハリケーン マリアの進路の調査

    チュートリアルのこのセクションでは、2017 年のハリケーン シーズンに発生したハリケーン マリアの進路を調べる GoogleSQL クエリを実行します。このハリケーンの進路をプロットするには、さまざまな時点でのハリケーンの位置をクエリします。

    クエリの詳細

    次の GoogleSQL クエリを使用して、ハリケーン マリアの進路を検索します。

    SELECT
      ST_GeogPoint(longitude, latitude) AS point,
      name,
      iso_time,
      dist2land,
      usa_wind,
      usa_pressure,
      usa_sshs,
      (usa_r34_ne + usa_r34_nw + usa_r34_se + usa_r34_sw)/4 AS radius_34kt,
      (usa_r50_ne + usa_r50_nw + usa_r50_se + usa_r50_sw)/4 AS radius_50kt
    FROM
      `bigquery-public-data.noaa_hurricanes.hurricanes`
    WHERE
      name LIKE '%MARIA%'
      AND season = '2017'
      AND ST_DWithin(ST_GeogFromText('POLYGON((-179 26, -179 48, -10 48, -10 26, -100 -10.1, -179 26))'),
        ST_GeogPoint(longitude, latitude), 10)
    ORDER BY
      iso_time ASC

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

    • SELECT ST_GeogPoint(longitude, latitude) AS point, name, iso_time, dist2land, usa_wind, usa_pressure, usa_sshs, (usa_r34_ne + usa_r34_nw + usa_r34_se + usa_r34_sw)/4 AS radius_34kt, (usa_r50_ne + usa_r50_nw + usa_r50_se + usa_r50_sw)/4 AS radius_50kt
      SELECT 句ですべての嵐の気象データを選択し、ST_GeogPoint 関数を使用して latitude 列と longitude 列の値を GEOGRAPHY 型(地点)に変換します。
    • FROM bigquery-public-data.noaa_hurricanes.hurricanes
      FROM 句で、クエリ対象のテーブル hurricanes を指定します。
    • WHERE name LIKE '%MARIA%' AND season = '2017' AND ST_DWithin(ST_GeogFromText('POLYGON((-179 26, -179 48, -10 48, -10 26, -100 -10.1, -179 26))'), ST_GeogPoint(longitude, latitude), 10)
      WHERE 句で、2017 年のハリケーン シーズンに発生したハリケーン マリアに対応する大西洋の地点だけのデータをフィルタリングします。
    • ORDER BY iso_time ASC
      ORDER BY 句で、これらの地点を順序付けし、時系列での暴風域の進路を形成します。

    クエリを実行する

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

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

      [BigQuery] ページに移動

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

      SELECT
        ST_GeogPoint(longitude, latitude) AS point,
        name,
        iso_time,
        dist2land,
        usa_wind,
        usa_pressure,
        usa_sshs,
        (usa_r34_ne + usa_r34_nw + usa_r34_se + usa_r34_sw)/4 AS radius_34kt,
        (usa_r50_ne + usa_r50_nw + usa_r50_se + usa_r50_sw)/4 AS radius_50kt
      FROM
        `bigquery-public-data.noaa_hurricanes.hurricanes`
      WHERE
        name LIKE '%MARIA%'
        AND season = '2017'
        AND ST_DWithin(ST_GeogFromText('POLYGON((-179 26, -179 48, -10 48, -10 26, -100 -10.1, -179 26))'),
          ST_GeogPoint(longitude, latitude), 10)
      ORDER BY
        iso_time ASC
    3. [実行] をクリックします。

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

      BigQuery でのハリケーン マリアのクエリ結果

    BigQuery でクエリ結果を可視化する

    BigQuery で結果を可視化する手順は次のとおりです。

    1. BigQuery で結果を可視化するには、[クエリ結果] ペインで [可視化] をクリックします。

    2. [DATA 列] で [usa_wind] を選択します。

      時系列でのハリケーンの位置を点で示す地図が表示され、風速に応じたカラー グラデーションでスタイル設定されています。

    3. 省略可: 点の可視性を調整するには、[最小値] を 0 に設定し、[カラー] リストから別のカラー グラデーションを選択します。

    BigQuery でのハリケーン マリアのクエリ結果の可視化

    Geo Viz でクエリ結果を可視化する

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

    Geo Viz を起動して認証する

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

    Geo Viz を設定するには:

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

      Geo Viz ウェブツールを開く

    2. 手順 1 の [Select data] で [Authorize] をクリックします。

      Geo Viz の [Authorize] ボタン

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

      [Choose an account] ダイアログ

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

      [Allow access to Geo Viz] ダイアログ

    Geo Viz でクエリを実行する

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

    クエリを実行するには:

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

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

      SELECT
        ST_GeogPoint(longitude, latitude) AS point,
        name,
        iso_time,
        dist2land,
        usa_wind,
        usa_pressure,
        usa_sshs,
        (usa_r34_ne + usa_r34_nw + usa_r34_se + usa_r34_sw)/4 AS radius_34kt,
        (usa_r50_ne + usa_r50_nw + usa_r50_se + usa_r50_sw)/4 AS radius_50kt
      FROM
        `bigquery-public-data.noaa_hurricanes.hurricanes`
      WHERE
        name LIKE '%MARIA%'
        AND season = '2017'
        AND ST_DWithin(ST_GeogFromText('POLYGON((-179 26, -179 48, -10 48, -10 26, -100 -10.1, -179 26))'),
          ST_GeogPoint(longitude, latitude), 10)
      ORDER BY
        iso_time ASC
    3. [実行] をクリックします。

    4. クエリが完了したら [Show results] をクリックします。手順 2 の [Data] をクリックしても同様に次に進むことができます。

    5. これで手順 2 に移動します。 [Geometry column] で [point] を選択します。ハリケーン マリアの進路に対応する点がプロットされます。

      BigQuery Geo Viz でマッピングされた結果

    Geo Viz での可視化のフォーマット

    [スタイル] セクションには、カスタマイズ可能なビジュアル スタイルの一覧が表示されます。スタイル プロパティと値の詳細については、可視化をフォーマットするをご覧ください。

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

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

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

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

      1. [Data driven] をクリックします。
      2. [Function] で [linear] を選択します。
      3. [Field] で [usa_wind] を選択します。
      4. [Domain] で最初のボックスに「0」、2 番目のボックスに「150」と入力します。
      5. [Range] で最初のボックスをクリックし、16 進数で「#0006ff」と入力します。2 番目のボックスをクリックし、「#ff0000」と入力します。これで、風速に基づいて点の色が変わります。弱い風の場合は青、強い風の場合は赤です。

        BigQuery Geo Viz で塗りつぶしの色を追加する

    4. マップ上で確認します。ポインタをいずれかのポイントに合わせると、その点の気象データが表示されます。

      点のマッピングの詳細

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

    6. [Value] に「.5」と入力します。

      BigQuery Geo Viz でマップ塗りつぶしの不透明度を書式設定する

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

    8. ハリケーンの半径に基づいて点のサイズを変更します。[circleRadius] をクリックします。

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

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

        BigQuery Geo Viz で円の半径を追加する

    10. マップ上で確認します。各点の半径がハリケーンの半径に対応するようになりました。

      BigQuery Geo Viz の完成マップ

    11. Geo Viz を閉じます。

    クリーンアップ

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

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

    プロジェクトを削除するには、次の操作を行います。

    1. In the Google Cloud console, go to the Manage resources page.

      Go to Manage resources

    2. In the project list, select the project that you want to delete, and then click Delete.
    3. In the dialog, type the project ID, and then click Shut down to delete the project.

    次のステップ