使用地理空间分析绘制飓风路径

本教程将向您介绍地理空间分析。借助地理空间分析,您可以在 BigQuery 中轻松分析和直观呈现地理空间数据。

浏览示例数据

本教程使用通过 Google Cloud 公共数据集计划提供的数据集。 公共数据集是存储在 BigQuery 中且可供公众使用的任何数据集。公共数据集由 BigQuery 托管,可供您访问并集成到您的应用中。Google 会支付这些数据集的存储费用,并使用项目提供对数据的公开访问权限。您只需支付数据查询费用(每月前 1 TB 数据免费,具体以查询价格详情为准)。

全球飓风轨迹 (IBTrACS) 数据集

全球飓风轨迹 (IBTrACS) 数据集

全球热带气旋 (TC) 轨迹的历史位置和强度由 NOAA 的 International Best Track Archive for Climate Stewardship (IBTrACS) 提供。热带气旋在北大西洋和东北太平洋海盆称为飓风,在西北太平洋海盆称为台风,在印度洋北部和南部海盆称为气旋,在西南太平洋海盆称为热带气旋。

IBTrACS 收集国际监测中心报告的 TC 相关数据,这些监测中心负责预测和报告 TC,IBTrACS 还会包括一些重要的历史数据集。BTrACS 包括来自 9 个不同国家/地区的数据。从历史上看,描述这些系统的数据包括了对其轨迹和强度的最佳估计(因此称为“最佳轨迹”)。

您可以通过查看 hurricanes 表的详细信息,在 Google Cloud 控制台中探索此数据:

转到飓风架构

查询 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 函数将 latitudelongitude 列中的值转换为 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. 对于数据列,请选择 usa_wind

    系统会显示一张地图,其中包含飓风随时间变化的位置点,并以颜色渐变样式表示风速。

  3. 可选:如需调整点的可见性,请将最小值设置为 0,然后从颜色列表中选择其他颜色渐变。

BigQuery 中的玛丽亚飓风查询结果可视化图表

在 Geo Viz 中直观呈现查询结果

您还可以使用 BigQuery Geo Viz(一种使用 Google 地图 API 将 BigQuery 中的地理空间数据可视化的 Web 工具)将结果可视化。

启动 Geo Viz 并进行身份验证

在使用 Geo Viz 之前,您必须对 BigQuery 中的数据进行身份验证并授予访问权限。

如需设置 Geo Viz,请执行以下操作:

  1. 打开 Geo Viz Web 工具。

    打开 Geo Viz Web 工具

  2. 在第一步选择数据 (Select data) 下,点击授权 (Authorize)。

    Geo Viz 授权按钮

  3. 选择账号对话框中,点击您的 Google 账号。

    选择账号对话框

  4. 在访问对话框中,点击允许以授予 Geo Viz 对 BigQuery 数据的访问权限。

    “允许 Geo Viz 访问”对话框

在 Geo Viz 中运行查询

进行身份验证并授予访问权限后,下一步就是在 Geo Viz 中运行查询。

如需运行查询,请执行以下步骤:

  1. 第一步是选择数据,在项目 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. 查询完成后,点击显示结果。您还可以点击第二步数据

  5. 您将进入第二步。在第二步中,对于几何图形列 (Geometry column),选择。这绘制了与飓风玛丽亚的路径相对应的点。

    BigQuery Geo Viz 中的映射结果

在 Geo Viz 中设置可视化内容的格式

样式部分提供了可供自定义的视觉样式列表。如需详细了解样式属性和值,请参阅设置可视化图表的格式

要设置地图格式,请执行以下操作:

  1. 点击第二步中的添加样式 (Add styles) 或点击第三步样式

  2. 更改点的颜色。点击 fillColor

  3. fillColor 面板中,执行以下操作:

    1. 点击数据驱动 (Data driven)。
    2. 函数 (Function) 部分,选择 linear
    3. 字段 (Field) 部分,选择 usa_wind
    4. 区间 (Domain) 部分,分别在第一个框和第二个框中输入 0150
    5. 范围 (Range) 部分,点击第一个框,并在十六进制颜色值 (Hex) 框中输入 #0006ff。然后点击第二个框并输入 #ff0000.系统即会根据风速更改点的颜色。蓝色代表风速较弱,红色代表风速较强。

      在 BigQuery Geo Viz 中添加填充颜色

  4. 检查地图。如果将鼠标指针悬停在其中一个点上,该点的天气数据即会显示。

    地图点详情

  5. 点击 fillOpacity

  6. 字段中,输入 .5

    在 BigQuery Geo Viz 中设置地图填充不透明度

  7. 检查地图。点的填充颜色现在为半透明。

  8. 根据飓风的半径更改点的大小。点击 circleRadius

  9. circleRadius 面板中,请执行以下操作:

    1. 点击数据驱动 (Data driven)。
    2. 函数 (Function) 部分,选择 linear
    3. 字段 (Field) 部分,选择 radius_50kt
    4. 区间 (Domain) 部分,分别在第一个框和第二个框中输入 0135
    5. 范围 (Range) 部分,分别在第一个框和第二个框中输入 5135000

      在 BigQuery Geo Viz 中添加圆半径

  10. 检查地图。现在,每个点的半径均对应于飓风的半径。

    BigQuery Geo Viz 最终地图

  11. 关闭 Geo Viz。