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

这篇具有很好参考价值的文章主要介绍了Kibana:使用反向地理编码绘制自定义区域地图。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Elastic 地图(Maps)附带预定义区域,可让你通过指标快速可视化区域。 地图还提供了绘制你自己的区域地图的功能。 你可以使用任何您想要的区域数据,只要你的源数据包含相应区域的标识符即可。

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

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

你将学会:

  • 上传自定义区域。
  • 使用 Elasticsearch 丰富处理器进行反向地理编码。
  • 创建地图并通过网络流量可视化 CSA 区域。
  • 完成本教程后,你将拥有一个如下所示的地图:

Kibana:使用反向地理编码绘制自定义区域地图,Kibana,Elastic,elasticsearch,kibana,大数据,搜索引擎

在本博文的展示中,我将使用最新的 Elastic Stack 8.11 来进行展示。

安装

如果你还没有安装好自己的 Elasticsearch 及 Kibana 的话,请参阅如下的文章来进行安装:

  • 如何在 Linux,MacOS 及 Windows 上进行安装 Elasticsearch

  • Kibana:如何在 Linux,MacOS 及 Windows 上安装 Elastic 栈中的 Kibana

在安装的时候,请参照 Elastic Stack 8.x 的文章来进行安装。

步骤一:摄入网路流量数据

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

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

要安装 Web 日志示例数据集,请按照如下的步骤来进行:

Kibana:使用反向地理编码绘制自定义区域地图,Kibana,Elastic,elasticsearch,kibana,大数据,搜索引擎

Kibana:使用反向地理编码绘制自定义区域地图,Kibana,Elastic,elasticsearch,kibana,大数据,搜索引擎

Kibana:使用反向地理编码绘制自定义区域地图,Kibana,Elastic,elasticsearch,kibana,大数据,搜索引擎

这样它就帮我们在 Elasticsearch 中生成一个叫做 kibana_sample_data_logs 的 data stream:

Kibana:使用反向地理编码绘制自定义区域地图,Kibana,Elastic,elasticsearch,kibana,大数据,搜索引擎

步骤二:索引合并统计区 (CSA) 区域

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

在美国,这种规模通常用人口普查局所谓的综合统计区(combined statistical area - CSA)来衡量。 CSA 大致相当于人们直观地认为他们居住在哪个城市地区。它不一定与州或城市的边界一致。

CSA 通常共享相同的电信提供商和广告网络。 新的快餐特许经营权扩展到 CSA,而不是特定的城市或直辖市。 基本上,同一个 CSA 商店里的人在同一个宜家 (IKEA)。

要获取 CSA 边界数据,我们到地址 Census Bureau’s website 下载数据 cb_2018_us_csa_500k.zip,并解压改文件。

$ pwd
/Users/liuxg/data/csa
$ ls 
cb_2018_us_csa_500k.cpg            cb_2018_us_csa_500k.shp.ea.iso.xml
cb_2018_us_csa_500k.dbf            cb_2018_us_csa_500k.shp.iso.xml
cb_2018_us_csa_500k.prj            cb_2018_us_csa_500k.shx
cb_2018_us_csa_500k.shp            cb_2018_us_csa_500k.zip

我们接下来使用 Kibana 来上传 CSA 数据:

Kibana:使用反向地理编码绘制自定义区域地图,Kibana,Elastic,elasticsearch,kibana,大数据,搜索引擎

Kibana:使用反向地理编码绘制自定义区域地图,Kibana,Elastic,elasticsearch,kibana,大数据,搜索引擎

Kibana:使用反向地理编码绘制自定义区域地图,Kibana,Elastic,elasticsearch,kibana,大数据,搜索引擎

Kibana:使用反向地理编码绘制自定义区域地图,Kibana,Elastic,elasticsearch,kibana,大数据,搜索引擎

Kibana:使用反向地理编码绘制自定义区域地图,Kibana,Elastic,elasticsearch,kibana,大数据,搜索引擎

Kibana:使用反向地理编码绘制自定义区域地图,Kibana,Elastic,elasticsearch,kibana,大数据,搜索引擎

在上面:

  • 使用文件选择器从 CSA shapefile 文件夹中选择 .shp 文件
  • 使用 .dbf 文件选择器从 CSA shapefile 文件夹中选择 .dbf 文件
  • 使用 .prj 文件选择器从 CSA shapefile 文件夹中选择 .prj 文件
  • 使用 .shx 文件选择器从 CSA shapefile 文件夹中选择 .shx 文件

设置索引名称为 csa,并点击 Import file:

Kibana:使用反向地理编码绘制自定义区域地图,Kibana,Elastic,elasticsearch,kibana,大数据,搜索引擎

Kibana:使用反向地理编码绘制自定义区域地图,Kibana,Elastic,elasticsearch,kibana,大数据,搜索引擎

Kibana:使用反向地理编码绘制自定义区域地图,Kibana,Elastic,elasticsearch,kibana,大数据,搜索引擎

Kibana:使用反向地理编码绘制自定义区域地图,Kibana,Elastic,elasticsearch,kibana,大数据,搜索引擎

Kibana:使用反向地理编码绘制自定义区域地图,Kibana,Elastic,elasticsearch,kibana,大数据,搜索引擎

Kibana:使用反向地理编码绘制自定义区域地图,Kibana,Elastic,elasticsearch,kibana,大数据,搜索引擎

这样,我们就得到了如上图所示的地图。我们可以在 Kibana 中来查看 csa 索引的字段信息:

GET csa/_mapping

上面的命令显示:

{
  "csa": {
    "mappings": {
      "_meta": {
        "created_by": "file-data-visualizer"
      },
      "properties": {
        "AFFGEOID": {
          "type": "text",
          "fields": {
            "keyword": {
              "type": "keyword",
              "ignore_above": 256
            }
          }
        },
        "ALAND": {
          "type": "long"
        },
        "AWATER": {
          "type": "long"
        },
        "CSAFP": {
          "type": "text",
          "fields": {
            "keyword": {
              "type": "keyword",
              "ignore_above": 256
            }
          }
        },
        "GEOID": {
          "type": "text",
          "fields": {
            "keyword": {
              "type": "keyword",
              "ignore_above": 256
            }
          }
        },
        "LSAD": {
          "type": "text",
          "fields": {
            "keyword": {
              "type": "keyword",
              "ignore_above": 256
            }
          }
        },
        "NAME": {
          "type": "text",
          "fields": {
            "keyword": {
              "type": "keyword",
              "ignore_above": 256
            }
          }
        },
        "geometry": {
          "type": "geo_shape"
        }
      }
    }
  }
}

上面有一个字段的名称为 geometry。它是一个类型为 geo_shape 的字段。

步骤三:反向地理编码

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

我们根据官方文档,创建一个如下的 enrichment policy:

PUT /_enrich/policy/csa_lookup
{
  "geo_match": {
    "indices": "csa",
    "match_field": "geometry",
    "enrich_fields": [ "GEOID", "NAME"]
  }
}

接着,我们执行如下的 policy:

POST /_enrich/policy/csa_lookup/_execute

创建摄取管道,请运行:

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"
      }
    }
  ]
}

更新现有数据,请运行:

POST kibana_sample_data_logs/_update_by_query?pipeline=lonlat-to-csa

在运行完上面的命令后,我们可以针对索引来进行查看:

Kibana:使用反向地理编码绘制自定义区域地图,Kibana,Elastic,elasticsearch,kibana,大数据,搜索引擎

如上所示,我们可以看到一个被丰富的 csa 数据字段。它含有 GEIOD 及 NAME 子字段。

如果你想针对新添加的文档也进行同样的流程,你可以把这个 pipeline 添加到索引的设置中去:

PUT kibana_sample_data_logs/_settings
{
  "index": {
    "default_pipeline": "lonlat-to-csa"
  }
}

可视化

我们可以在 Discover 中来展现数据:

Kibana:使用反向地理编码绘制自定义区域地图,Kibana,Elastic,elasticsearch,kibana,大数据,搜索引擎

Kibana:使用反向地理编码绘制自定义区域地图,Kibana,Elastic,elasticsearch,kibana,大数据,搜索引擎

从上面我们可以看出来,有的数据含有 csa.GEOID,csa.NAME,但是有的数据不含有这两项。

按网络流量可视化组合统计区域 (CSA) 区域

Kibana:使用反向地理编码绘制自定义区域地图,Kibana,Elastic,elasticsearch,kibana,大数据,搜索引擎

Kibana:使用反向地理编码绘制自定义区域地图,Kibana,Elastic,elasticsearch,kibana,大数据,搜索引擎

Kibana:使用反向地理编码绘制自定义区域地图,Kibana,Elastic,elasticsearch,kibana,大数据,搜索引擎

Kibana:使用反向地理编码绘制自定义区域地图,Kibana,Elastic,elasticsearch,kibana,大数据,搜索引擎

Kibana:使用反向地理编码绘制自定义区域地图,Kibana,Elastic,elasticsearch,kibana,大数据,搜索引擎

Kibana:使用反向地理编码绘制自定义区域地图,Kibana,Elastic,elasticsearch,kibana,大数据,搜索引擎

Kibana:使用反向地理编码绘制自定义区域地图,Kibana,Elastic,elasticsearch,kibana,大数据,搜索引擎

从上面的可视化图中,我们可以看到它显示的图和之前的还是有些不一样。

恭喜! 你已完成本教程并掌握了可视化自定义区域的秘诀。 你现在可以尝试使用自己的数据复制相同的分析。文章来源地址https://www.toymoban.com/news/detail-812270.html

到了这里,关于Kibana:使用反向地理编码绘制自定义区域地图的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 百度地图采集经纬度坐标数据定位的javascript实战开发(地理坐标拾取系统、地址定位点选插件、实时定位、数据导入、地理编码、位置纠偏)

    在百度地图的标注开发中,最为关键的操作就是经纬度坐标信息的拾取。在不同的应用场景,坐标的拾取方式不同。现就常见的地理坐标拾取系统、地址定位点选插件、手机端GPS实时定位、数据导入、地理编码、位置纠偏等做全面的介绍。 传送门:http://api.map.baidu.com/lbsapi/

    2024年02月01日
    浏览(45)
  • vue使用百度地图获取可视区域四角坐标(百度地图四角坐标,百度地图3D可视区域四角坐标)

    百度地图api只提供了左下角和右上角两个坐标,左上角坐标和右下角坐标需要自己操作获取,方法如下: 然后在地图上添加监听事件, 这样用户在拖拽或缩放地图时也可以获取到地图可视区域的四角坐标: 创作不易,感觉有用就一键三连,感谢(●\\\'◡\\\'●)

    2024年02月11日
    浏览(73)
  • 【Android Framework系列】第13章 SVG矢量图形自定义组件(绘制中国地图)

    本章节我们来了解下什么是 SVG 矢量图形,怎么通过 SVG 实现图形的绘制,通过 SVG 实现不规则的自定义控件,项目实现一个中国地图,实现每个省都能够点击,项目地址在文末请自取。 SVG 指可伸缩矢量图形 (Scalable Vector Graphics) SVG 用来定义用于网络的基于矢量的图形 SVG 使用

    2024年02月10日
    浏览(61)
  • echarts地图的常见用法:基本使用、区域颜色分级、水波动画、区域轮播、给地图添加背景图片和图标、3d地图

    最近几天用echarts做中国地图,就把以前写的demo:在vue中实现中国地图 拿来用,结果到项目里直接报错了,后来发现是因为版本的问题,没办法只能从头进行踩坑了。以下内容基于 vue3 和 echarts 5.32 常用的功能应该就这些,已经非常全了,创作不易,觉得不错就点个赞。 获取

    2023年04月15日
    浏览(51)
  • uniapp使用高德地图地理位置逆解析/将获取到的经纬度转化为地址

    1、在高德登录注册,进行个人或企业开发者认证(个人开发者可以随时升级企业开发者) 高德地图开发aip网址 2、进入控制台,按以下图示操作 添加完成之后把key复制一下。 3、使用uni.request进行请求(用什么框架就这么请求,这里示例的是uniapp),请求地址为:https://rest

    2024年02月08日
    浏览(48)
  • 使用unity绘制扇形,圆形和矩形区域

    使用unity绘制扇形.圆形和矩形区域: 效果如图: 扇形  矩形  圆形  下面是代码: 1.首先我们需要给对应的组件添加一个LineRenderer组件并获得他 2.编写方法: 1.扇形 其中 positionCount 之所以需要+2 是因为除了我们需要的角度外 还需要额外绘制2条回归线所以直接通过代码的方式设置

    2024年02月15日
    浏览(49)
  • uniapp的逆地理编码 和地理编码

    1.先打开高德地图api找到那个 地理编码 2.封装好我们的请求 3.逆地理编码 和地理编码 都是固定的 记住自己封装的请求 就可以了 这个 是固定的 方式 下面这个是固定的 可以复制过去 getlocation就是uniapp提供的 获取经纬度 然后 下面的 就是高德地图提供的 方法 要想使用我们的

    2024年02月12日
    浏览(33)
  • 【QT--使用百度地图API显示地图并绘制路线】

    先吐槽一下下,本身qt学的就不咋滴,谁想到第一件事就是让写一个上位机工具,根据CAN总线传来的位置信息,在地图上去绘制路线,并获取当前路段的限速信息等。当听到这个需求的时候,第一时间是有点懵逼的。自己原本是没接触过这方面的知识,而且qt学的也特别的垃圾

    2024年01月24日
    浏览(44)
  • vue使用Echarts绘制地图

      大致实现就是这个效果,鼠标滑过的时候会显示该区域的一个信息,加上自定义的显示图标 有需要希望可以帮到各位 目录 一、在vue中引入Echarts  二、下载并引入china.json文件 三、准备html容器、css中给图表需要的宽高 四、完整代码 这个可以看Echarts官方文档,按照步骤一步

    2024年02月09日
    浏览(46)
  • Python 地图篇 - 使用pyecharts绘制世界地图、中国地图、省级地图、市级地图实例详解

    [ 系列文章篇 ] 2022 见证中国崛起从 Python 绘制中国地图开始:使用 pyecharts 最新版本绘制中国地图实例详解,个性化地图定制及常用参数解析 [ 专栏推荐 ] Python 短视频自动化发布,包含抖音、快手、 bilibili 、小红书、微视、好看视频、西瓜视频、视频号等 10 余种平台 先给大

    2024年02月03日
    浏览(47)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包