使用反向地理编码映射自定义区域

编辑

使用反向地理编码映射自定义区域编辑

地图 附带 预定义区域,允许您通过指标快速可视化区域。 地图 还提供了映射您自己的区域的功能。您可以使用任何您喜欢的区域数据,只要您的源数据包含对应区域的标识符即可。

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

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

您将学习

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

完成本教程后,您将拥有一个类似于此的地图

Map showing custom regions

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

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

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

要安装网络日志样本数据集

  1. 在主页上,单击 尝试样本数据
  2. 展开 其他样本数据集
  3. 样本网络日志 卡上,单击 添加数据

步骤 2:索引合并统计区 (CSA) 区域编辑

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

美国人口普查局称之为合并统计区 (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:反向地理编码编辑

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

  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. 要创建摄取管道,请运行

    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. 打开主菜单,然后单击 发现
  8. 将数据视图设置为 Kibana 样本数据日志
  9. 打开 时间过滤器,并将时间范围设置为最近 30 天。
  10. 扫描 可用字段 列表,直到找到 csa.GEOID 字段。您也可以按名称搜索字段。
  11. 单击 添加图标 将字段切换到文档表中。
  12. 找到 csa.NAME 字段并将其添加到您的文档表中。

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

View of data in Discover

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

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

  1. 打开主菜单,然后单击 地图
  2. 单击 创建地图
  3. 单击 添加图层
  4. 单击 Choropleth
  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

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