使用地理空間數據分析繪製颶風路徑

使用 BigQuery 的地理空間分析功能,可以分析地理資料並以圖表呈現,例如繪製暴風雨隨時間變化的軌跡。您可以將原始經緯度座標轉換為地理點,查詢颶風的時間路徑,並使用整合式視覺化工具繪製結果。

目標

  • 使用地理空間分析函式,將經緯度資料欄轉換為地理位置點。
  • 執行查詢,繪製颶風路徑。
  • 在 BigQuery 中以圖表呈現結果。
  • 在 BigQuery Geo Viz 中以視覺化的方式呈現結果。

費用

BigQuery 是付費產品,您在本教學課程中會產生 BigQuery 用量。BigQuery 的部分資源在一定限度內可無須支付費用使用。詳情請參閱「BigQuery 免費作業和免費方案」。

事前準備

開始本教學課程前,請先使用 Cloud de Confiance 控制台建立或選取專案。

  1. In the Cloud de Confiance console, on the project selector page, select or create a Cloud de Confiance project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator role (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  2. 新專案會自動啟用 BigQuery。如要在現有專案中啟用 BigQuery,請前往

    啟用 BigQuery API (如果尚未啟用)。

    啟用 API 所需的角色

    您必須具備 serviceusage.services.enable 權限,才能啟用 API。如果您建立了專案,可能已透過「擁有者」角色 (roles/owner) 取得這項權限。否則,您可以透過「Service Usage 管理員」角色 (roles/serviceusage.serviceUsageAdmin) 取得這項權限。瞭解如何授予角色。

    啟用 API

  3. 選用:啟用專案計費功能。如果您不想啟用計費功能或提供信用卡,仍可按照本文件中的步驟操作。BigQuery 提供沙箱,方便您執行步驟。詳情請參閱「啟用 BigQuery 沙箱」。

匯出樣本資料

本教學課程使用的資料集可透過Cloud de Confiance by S3NS 公開資料集計畫取得。公開資料集是儲存在 BigQuery 中且可供一般大眾使用的任何資料集。公開資料集是在 BigQuery 託管的資料集,讓您能夠存取及整合到應用程式中。Google 會支付這些資料集的儲存費用,並透過專案提供資料的公開存取權。您只需支付對資料執行的查詢費用 (每月前 1 TB 免費,詳情請參閱查詢定價)。

全球颶風軌跡 (IBTrACS) 資料集

全球颶風路徑 (IBTrACS) 資料集

全球熱帶氣旋 (TC) 路徑的歷來位置和強度,是由美國國家海洋暨大氣總署 (NOAA) 的 International Best Track Archive for Climate Stewardship (IBTrACS) 提供。熱帶氣旋在北大西洋和東北太平洋海盆稱為颶風,在西北太平洋海盆稱為颱風,在南北印度洋海盆稱為旋風,而在西南太平洋海盆則稱之為熱帶氣旋。

IBTrACS 收集各地國際監測中心回報的 TC 資料。國際監測中心負責預測和回報 TC 資訊,也包含部分重要歷史資料集。IBTrACS 包含 9 個不同國家/地區的資料。歷史上,描述這些系統的資料已涵蓋了軌跡和強度的最佳預測資料 (因此有「最佳軌跡」之說)。

您可以查看 hurricanes 資料表的詳細資料,開始在 Cloud de Confiance 控制台探索這項資料:

前往颶風結構定義

查詢 2017 年瑪莉亞颶風的路徑

在本教學課程的這個部分,您將執行 GoogleSQL 查詢,找出 2017 年颶風瑪麗亞的路徑。如果要繪製該颶風的路徑,您可以查詢該颶風在不同時間點的位置。

查詢詳細資料

下列 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 子句對資料點進行排序,形成按時間順序排列的風暴路徑。

執行查詢

如要使用 Cloud de Confiance 控制台執行查詢,請按照下列步驟操作:

  1. 前往 Cloud de Confiance 控制台的「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. 按一下「執行」。

    查詢需要一些時間才會完成。查詢執行完畢之後,您的結果會呈現於「Query results」(查詢結果) 窗格中。

    BigQuery 中的颶風瑪麗亞查詢結果

在 BigQuery 中以圖表呈現查詢結果

如要在 BigQuery 中以圖表呈現結果,請按照下列步驟操作:

  1. 如要在 BigQuery 中以圖表呈現結果,請在「Query results」(查詢結果) 窗格中,點選「Visualization」(圖表)。

  2. 在「資料欄」部分,選取「usa_wind」。

    地圖上會顯示颶風位置隨時間變化的點,並以顏色漸層表示風速。

  3. 選用:如要調整資料點的顯示設定,請將「Min」(最小值) 設為 0,然後從「Color」(顏色) 清單中選取其他顏色漸層。

在 BigQuery 中以視覺化方式呈現颶風瑪麗亞查詢結果

在 Geo Viz 中將查詢結果視覺化

您也可以使用 BigQuery Geo Viz 以圖表呈現結果。這項網頁工具可使用 Google Maps API,以圖表呈現 BigQuery 中的地理空間資料。

啟用 Geo Viz 並進行身分驗證

在您使用 Geo Viz 之前,您必須在 BigQuery 中對資料進行身分驗證並授予存取權。

如何設定 Geo Viz:

  1. 開啟 Geo Viz 網頁版工具。

    開啟 Geo Viz 網頁版工具

  2. 在第一步「Select data」(選取資料) 中按一下 [Authorize] (授權)。

    Geo Viz 授權按鈕

  3. 在「Choose an account」(選擇帳戶) 對話方塊中,按一下您的 Google 帳戶。

    選擇帳戶對話框

  4. 在存取對話方塊中,按一下 [Allow] (允許) 以取得您 BigQuery 資料的 Geo Viz 存取權。

    「允許存取 Geo Viz」對話方塊

在 Geo Viz 中執行查詢

在您進行身分驗證並授予權限後,下一步是在 Geo Viz 中執行查詢。

執行查詢:

  1. 在第一步「Select data」(選取資料) 中,於「Project ID」(專案 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. 查詢完成後,按一下「顯示結果」。您也可以點選步驟 2「Data」(資料)。

  5. 您會進入步驟二。在步驟二的「Geometry column」中,選擇 [point]。系統即會繪製對應至瑪利亞颶風路徑的資料點。

    BigQuery Geo Viz 中的對應結果

在 Geo Viz 中設定圖表格式

「樣式」部分會列出可自訂的視覺樣式。如要進一步瞭解樣式屬性和值,請參閱「設定圖表格式」。

如要將您的地圖進行格式化,請進行以下操作:

  1. 按一下第二步中的 [Add styles],或按一下第三步的 [Style]。

  2. 更換資料點的顏色。按一下 [fillColor]。

  3. 在「fillColor」面板中:

    1. 按一下 [Data driven]。
    2. 在「Function」(函式) 部分選擇 [linear]。
    3. 在「Field」(欄位) 部分,選擇 usa_wind。
    4. 針對「Domain」(領域),分別在第一個和第二個方塊中輸入 0 和 150。
    5. 針對「Range」(範圍),按一下第一個方塊,然後在「Hex」方塊中輸入 #0006ff;按一下第二個方塊,然後輸入 #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 和 135。
    5. 在「Range」(範圍) 部分,分別在第一個和第二個方塊中輸入 5 和 135000。

      在 BigQuery Geo Viz 中新增圓圈半徑

  10. 查看您的地圖。現在每個資料點的半徑都跟颶風的半徑對應。

    BigQuery Geo Viz 最終地圖

  11. 關閉 Geo Viz。

清除所用資源

為避免因為本教學課程所用資源,導致系統向 Google Cloud 帳戶收取費用,請刪除含有相關資源的專案,或者保留專案但刪除個別資源。

  • 您可以刪除建立的專案。
  • 或者您可以保留該專案以備將來使用。

如要刪除專案,請進行以下操作:

  1. 前往 Cloud de Confiance 控制台的「Manage resources」(管理資源) 頁面。

    前往「Manage resources」(管理資源)

  2. 在專案清單中選取要刪除的專案,然後點選「Delete」(刪除)。
  3. 在對話方塊中輸入專案 ID,然後按一下 [Shut down] (關閉) 以刪除專案。

後續步驟