使用 Colab 笔记本直观呈现地理空间分析数据

在本教程中,您将使用 Colab 笔记本直观呈现 BigQuery 中的地理空间分析数据。

本教程使用以下 BigQuery 公共数据集

如需了解如何访问这些公共数据集,请参阅在 Google Cloud 控制台中访问公共数据集。

您可以使用公共数据集创建以下可视化图表:

  • Ford GoBike 共享数据集中所有共享单车站的散点图
  • 旧金山街区数据集中的多边形
  • 按街区显示共享单车站数量的分级统计图
  • 旧金山警察局 (SFPD) 报告数据集中的突发事件热图

目标

  • 使用 Google Cloud 设置身份验证,并视情况添加 Google 地图。
  • 在 BigQuery 中查询数据,并将结果下载到 Colab 中。
  • 使用 Python 数据科学工具执行转换和分析。
  • 创建可视化图表,包括散点图、多边形、分级统计图和热图。

费用

在本文档中,您将使用 Google Cloud的以下收费组件:

如需根据您的预计使用量来估算费用,请使用价格计算器

新 Google Cloud 用户可能有资格申请免费试用

完成本文档中描述的任务后,您可以通过删除所创建的资源来避免继续计费。如需了解详情,请参阅清理

准备工作

  1. In the Google Cloud console, on the project selector page, select or create a Google Cloud 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. Verify that billing is enabled for your Google Cloud project.

  3. Enable the BigQuery and Google Maps JavaScript APIs.

    Roles required to enable APIs

    To enable APIs, you need the Service Usage Admin IAM role (roles/serviceusage.serviceUsageAdmin), which contains the serviceusage.services.enable permission. Learn how to grant roles.

    Enable the APIs

  4. 确保您拥有必要的权限,以便执行本文档中的任务。
  5. 所需的角色

    如果您创建了一个新项目,那么您就是项目所有者,并且会获得完成本教程所需的所有必要 IAM 权限。

    如果您要使用现有项目,则需要具备以下项目级角色才能运行查询作业。

    Make sure that you have the following role or roles on the project:

    Check for the roles

    1. In the Google Cloud console, go to the IAM page.

      Go to IAM
    2. Select the project.
    3. In the Principal column, find all rows that identify you or a group that you're included in. To learn which groups you're included in, contact your administrator.

    4. For all rows that specify or include you, check the Role column to see whether the list of roles includes the required roles.

    Grant the roles

    1. In the Google Cloud console, go to the IAM page.

      前往 IAM
    2. 选择项目。
    3. 点击 授予访问权限
    4. 新的主账号字段中,输入您的用户标识符。 这通常是员工身份池中的用户的标识符。如需了解详情,请参阅在 IAM 政策中表示员工池用户,或与您的管理员联系。

    5. 选择角色列表中,选择一个角色。
    6. 如需授予其他角色,请点击 添加其他角色,然后添加其他各个角色。
    7. 点击 Save(保存)。
    8. 如需详细了解 BigQuery 中的角色,请参阅预定义的 IAM 角色

      创建 Colab 笔记本

      本教程将构建一个 Colab 笔记本,以直观呈现地理空间分析数据。您可以通过点击 GitHub 版教程顶部的链接,在 Colab、Colab Enterprise 或 BigQuery Studio 中打开笔记本的预构建版本 - Colab 中的 BigQuery 地理空间可视化

      1. 打开 Colab。

        打开 Colab

      2. 打开笔记本对话框中,点击新建笔记本

      3. 点击 Untitled0.ipynb,然后将笔记本的名称更改为 bigquery-geo.ipynb

      4. 选择文件 > 保存

      使用 Google Cloud 和 Google 地图进行身份验证

      本教程将查询 BigQuery 数据集并使用 Google Maps JavaScript API。如需使用这些资源,您可以使用 Google Cloud 和 Maps API 对 Colab 运行时进行身份验证。

      使用 Google Cloud进行身份验证

      1. 如需插入代码单元,请点击 代码

      2. 如需使用项目进行身份验证,请输入以下代码:

        # REQUIRED: Authenticate with your project.
        GCP_PROJECT_ID = "PROJECT_ID"  #@param {type:"string"}
        
        from google.colab import auth
        from google.colab import userdata
        
        auth.authenticate_user(project_id=GCP_PROJECT_ID)
        
        # Set GMP_API_KEY to none
        GMP_API_KEY = None

        PROJECT_ID 替换为您的项目 ID。

      3. 点击  运行单元

      4. 出现提示时,如果您同意,请点击允许,以授予 Colab 访问您的凭证的权限。

      5. 使用 Google 账号登录页面上,选择您的账号。

      6. 登录第三方创建的笔记本代码页面上,点击继续

      7. 选择第三方创建的笔记本代码可以访问的内容页面上,点击全选,然后点击继续

        完成授权流程后,Colab 笔记本中不会生成任何输出。单元格旁边的对勾标记表示代码已成功运行。

      (可选)使用 Google 地图进行身份验证

      如果您将 Google Maps Platform 用作底图的地图提供方,则必须提供 Google Maps Platform API 密钥。该笔记本会从您的 Colab Secret 中检索此密钥。

      仅当您使用的是 Maps API 时,才需要执行此步骤。如果您不使用 Google Maps Platform 进行身份验证,pydeck 会改用 carto 地图。

      1. 按照 Google 地图文档中使用 API 密钥页面上的说明,获取 Google 地图 API 密钥。

      2. 切换到您的 Colab 笔记本,然后点击  Secret

      3. 点击添加新 Secret

      4. 对于名称,请输入 GMP_API_KEY

      5. 字段中,输入您之前生成的 Maps API 密钥值。

      6. 关闭 Secret 面板。

      7. 如需插入代码单元,请点击 代码

      8. 如需使用 Maps API 进行身份验证,请输入以下代码:

        # Authenticate with the Google Maps JavaScript API.
        GMP_API_SECRET_KEY_NAME = "GMP_API_KEY" #@param {type:"string"}
        
        if GMP_API_SECRET_KEY_NAME:
          GMP_API_KEY = userdata.get(GMP_API_SECRET_KEY_NAME) if GMP_API_SECRET_KEY_NAME else None
        else:
          GMP_API_KEY = None
      9. 出现提示时,如果您同意,点击授予访问权限,以授予笔记本访问您的密钥的权限。

      10. 点击  运行单元

        完成授权流程后,Colab 笔记本中不会生成任何输出。单元格旁边的对勾标记表示代码已成功运行。

      安装 Python 软件包并导入数据科学库

      除了 colabtools (google.colab) Python 模块之外,本教程还使用了其他一些 Python 软件包和数据科学库。

      在本部分中,您将安装 pydeckh3 软件包。pydeck 使用 deck.gl 提供支持,可在 Python 中提供大规模空间渲染。h3-py 在 Python 中提供了 Uber 的 H3 六边形分层地理空间索引系统。

      然后,导入 h3pydeck 库以及以下 Python 地理空间库:

      • geopandas,用于扩展 pandas 所用的数据类型,以允许对几何类型执行空间操作。
      • shapely,用于操控和分析各个平面几何对象。
      • branca,用于生成 HTML 和 JavaScript 色图。
      • geemap.deck,用于使用 pydeckearthengine-api 进行可视化。

      导入库后,您可以为 Colab 中的 pandas DataFrames 启用交互式表格。

      安装 pydeckh3 软件包。

      1. 如需插入代码单元,请点击 代码

      2. 如需安装 pydeckh3 软件包,请输入以下代码:

        # Install pydeck and h3.
        !pip install pydeck>=0.9 h3>=4.2
      3. 点击  运行单元

        完成安装后,Colab 笔记本中不会生成任何输出。单元格旁边的对勾标记表示代码已成功运行。

      导入 Python 库

      1. 如需插入代码单元,请点击 代码

      2. 如需导入 Python 库,请输入以下代码:

        # Import data science libraries.
        import branca
        import geemap.deck as gmdk
        import h3
        import pydeck as pdk
        import