使用反向地理编码绘制自定义区域

编辑

使用反向地理编码绘制自定义区域

编辑

地图 带有 预定义区域,使您可以快速按指标可视化区域。地图 还提供了绘制您自己区域的功能。只要您的源数据包含相应区域的标识符,您就可以使用任何您想要的区域数据。

但是,当您的源数据不包含区域标识符时,您如何绘制区域?这就是反向地理编码的用武之地。反向地理编码是根据要素的位置为其分配区域标识符的过程。

在本教程中,您将使用反向地理编码来可视化美国人口普查局的联合统计区域 (CSA),并按网络流量进行显示。

您将学习

  • 上传自定义区域。
  • 使用 Elasticsearch enrich 处理器 进行反向地理编码。
  • 创建地图并通过网络流量可视化 CSA 区域。

完成本教程后,您将拥有如下所示的地图

Map showing custom regions

步骤 1:索引网络流量数据

编辑

GeoIP 是一种将 IP 地址转换为经度和纬度的常用方法。GeoIP 在全球范围内对城市级别大致准确,在选定国家/地区对社区级别准确。它不如手机的实际 GPS 位置那么好,但比仅仅一个国家、州或省要精确得多。

在本教程中,您将使用 Kibana 随附的 Web 日志示例数据集。Web 日志示例数据集具有经度和纬度。如果您的 Web 日志数据不包含经度和纬度,请使用 GeoIP 处理器 将 IP 地址转换为 geo_point 字段。

要安装 Web 日志示例数据集,请参阅 添加示例数据

步骤 2:索引联合统计区域 (CSA) 区域

编辑

GeoIP 的详细程度对于推动决策制定非常有用。例如,假设您想根据用户的位置发起营销活动,或者向执行利益相关者展示哪些大都市地区正在经历流量增加。

美国的那种规模通常由人口普查局所谓的联合统计区域 (CSA) 来捕获。CSA 大致等同于人们直观地认为自己居住在哪个城市区域。它不一定与州或城市边界重合。

CSA 通常共享相同的电信提供商和广告网络。新的快餐连锁店会扩展到 CSA,而不是特定的城市或自治市。基本上,同一个 CSA 中的人在同一家宜家购物。

要获取 CSA 边界数据

  1. 转到 人口普查局网站 并下载 cb_2018_us_csa_500k.zip 文件。
  2. 解压缩 zip 文件。
  3. 在 Kibana 中,转到 地图
  4. 单击 创建地图
  5. 单击 添加图层
  6. 单击 上传文件
  7. 使用文件选择器从 CSA shapefile 文件夹中选择 .shp 文件。
  8. 使用 .dbf 文件选择器从 CSA shapefile 文件夹中选择 .dbf 文件。
  9. 使用 .prj 文件选择器从 CSA shapefile 文件夹中选择 .prj 文件。
  10. 使用 .shx 文件选择器从 CSA shapefile 文件夹中选择 .shx 文件。
  11. 将索引名称设置为 csa 并单击 导入文件
  12. 导入完成后,单击 添加为文档图层
  13. 添加工具提示字段

    1. 单击 + 添加 以打开字段选择。
    2. 选择 NAMEGEOIDAFFGEOID
    3. 单击 添加
  14. 单击 保留更改

查看地图,您可以了解人口普查局眼中的大都市区域构成。

Map showing metro area

步骤 3:反向地理编码

编辑

要通过 Web 日志流量可视化 CSA 区域,Web 日志流量必须包含 CSA 区域标识符。您将使用 Elasticsearch enrich 处理器 将 CSA 区域标识符添加到 Web 日志示例数据集中。如果您的源数据已包含区域标识符,则可以跳过此步骤。

  1. 使用导航菜单或 全局搜索字段 转到 开发工具
  2. 控制台 中,创建 geo_match 富集策略

    PUT /_enrich/policy/csa_lookup
    {
      "geo_match": {
        "indices": "csa",
        "match_field": "geometry",
        "enrich_fields": [ "GEOID", "NAME"]
      }
    }
  3. 要初始化策略,请运行

    POST /_enrich/policy/csa_lookup/_execute
  4. 要创建 ingest 管道,请运行

    PUT _ingest/pipeline/lonlat-to-csa
    {
      "description": "Reverse geocode longitude-latitude to combined statistical area",
      "processors": [
        {
          "enrich": {
            "field": "geo.coordinates",
            "policy_name": "csa_lookup",
            "target_field": "csa",
            "ignore_missing": true,
            "ignore_failure": true,
            "description": "Lookup the csa identifier"
          }
        },
        {
          "remove": {
            "field": "csa.geometry",
            "ignore_missing": true,
            "ignore_failure": true,
            "description": "Remove the shape field"
          }
        }
      ]
    }
  5. 要更新现有数据,请运行

    POST kibana_sample_data_logs/_update_by_query?pipeline=lonlat-to-csa
  6. 要在摄取时在新文档上运行管道,请运行

    PUT kibana_sample_data_logs/_settings
    {
      "index": {
        "default_pipeline": "lonlat-to-csa"
      }
    }
  7. 转到 Discover
  8. 将数据视图设置为 Kibana 示例数据日志
  9. 打开 时间筛选器,并将时间范围设置为最近 30 天。
  10. 浏览 可用字段 列表,直到找到 csa.GEOID 字段。您也可以按名称搜索该字段。
  11. 单击 添加图标 以将该字段切换到文档表中。
  12. 找到 csa.NAME 字段并将其添加到文档表中。

您的 Web 日志数据现在包含来自匹配的 csa 区域的 csa.GEOIDcsa.NAME 字段。不包含在 CSA 区域中的 Web 日志流量没有 csa.GEOIDcsa.NAME 字段的值。

View of data in Discover

步骤 4:通过网络流量可视化联合统计区域 (CSA) 区域

编辑

现在,我们的网络流量包含 CSA 区域标识符,您将通过网络流量可视化 CSA 区域。

  1. 转到 地图
  2. 单击 创建地图
  3. 单击 添加图层
  4. 单击 等值线图
  5. 对于 边界源

    1. 选择 来自 Elasticsearch 的点、线和多边形
    2. 数据视图 设置为 csa
    3. 连接字段 设置为 GEOID
  6. 对于 统计信息源

    1. 数据视图 设置为 Kibana 示例数据日志
    2. 连接字段 设置为 csa.GEOID.keyword
  7. 单击 添加并继续
  8. 滚动到 图层样式 并将 标签 设置为 固定
  9. 单击 保留更改
  10. 保存 地图。

    1. 为地图指定标题。
    2. 添加到仪表板 下,选择
    3. 单击 保存并添加到库
Final map showing custom regions

恭喜!您已完成本教程,并掌握了可视化自定义区域的方法。现在,您可以尝试使用自己的数据复制相同的分析。