Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >可视化流式地理空间数据

可视化流式地理空间数据

作者头像
代码医生工作室
发布于 2019-06-21 09:28:04
发布于 2019-06-21 09:28:04
4K0
举报
文章被收录于专栏:相约机器人相约机器人

作者 | James Graham

来源 | Medium

编辑 | 代码医生团队

最近参与了一个涉及流媒体信用卡交易数据并根据风险概率对其进行分类的项目。在此基础上,想探索可视化数据的选项。决定专注于地理方面,因为它是尝试识别欺诈性交易时的关键组成部分。

代码:

https://github.com/jgraham0325/streaming-visualization

现场演示:

https://streaming-visualisation.appspot.com/

用例

能够可视化流式地理空间数据可以解决实际问题的原因有很多。从本质上讲,这些归结为在事件发生后很快做出决定的情况。它可以是负责做出决策的人或者使过程自动化的机器学习算法。

一些例子:

waze危险

联网汽车:随着汽车中传感器数量的增加及其对互联网的访问,可以在驾驶员成为危险之前提醒驾驶员注意道路上的危险。例如刚刚在前方道路上被炸毁的一棵树。

http://www.waze.com/

Azure IoT连接工厂

物联网通过可视化潜在问题的位置并找到最接近的备件供应,可以增强预测性维护。它还可以识别不明显的模式或集群。

https://azure.microsoft.com/en-gb/features/iot-accelerators/connected-factory/

FlightRadar24

航班跟踪:显示实时航班信息有助于预测延误,处理不规则操作和分析路线效率。

https://www.flightradar24.com/

实时火灾隐患(Weatherbug)

减灾:在火灾等危险事件发生之前和之后收集可操作的GIS数据,可以帮助人们避免危险情况。

http://www.weatherbug.com/

技术选择

有许多商业产品能够近乎实时地显示地理空间数据。

商业产品包括

1.ArcGIS:ESRI的基于桌面或云的产品,几十年来一直是商业地图应用的主导力量。它功能强大但许可证成本昂贵。

https://www.esri.com/arcgis-blog/products/arcgis-pro/real-time/real-time-data-arcgis-pro/

2.Cesium:特别擅长可视化3D数据。它被FlightRadar24等网站使用,每月访问量达4500万次。每月根据存储和使用情况收费。

https://cesiumjs.org/demos/

3.Kinetica:独特的卖点是GIS与AI / ML的结合。

https://www.kinetica.com/products/streaming-analytics/

4.Zoomdata:以流媒体可视化功能而闻名,但不是特别适用于GIS。能够在各种图表中显示数据,并将它们与地图上的图表相结合。

https://www.zoomdata.com/master-class/streaming-analytics-and-internet-things/geospatial-data-visualization-demo/

还有许多JavaScript API可用于更多DIY方法。

Javascript API

1.Leaflet.js:简单,开源,并提供了一个很好的插件库(包括Mapbox JS)。

https://leafletjs.com/

2.OpenLayers:功能强大,开源但比其他更复杂。

https://openlayers.org/

3.Mapbox GL:适用于使用WebGL显示复杂数据层。

https://docs.mapbox.com/mapbox-gl-js/api/

4.Google Maps JS API:易于使用,但要求付费许可超过阈值。

https://developers.google.com/maps/documentation/javascript/tutorial

5.Three.js:使用WebGL在Web浏览器中创建3D图形。

https://threejs.org/

决定:使用Leaflet.js,因为它易于使用,灵活且不会产生任何许可证费用。Node.js服务器与Socket.io库一起用于将实时事件推送到客户端浏览器中的地图。还实现了一些Three.js可视化以进行比较。

高级架构

性能

一次在地图上显示数十万个点在技术上具有挑战性,并且可能不是很有用。人们发现很难以原始格式解释这些数据。

为了解决这些问题,通常使用热图或点集合来聚合点。通过一些试验和错误,发现这些层的性能可以根据它们的实现而有很大不同。过滤器也很有用,在信用卡交易的情况下,只显示高风险交易。这使得信用卡交易的典型数量从890万/小时(基于英国平均每年924万)降至840 /小时(基于平均欺诈率0.08%并假设9/10高风险交易是误报)

作为PoC的一部分,实现了以下层:

  • Three.js(WebGL):这是资源最密集的选项,因为它渲染了世界的3D地图。使其具有高效性的唯一方法是将同时显示的点数限制为小于100.使用2D WebGL地图可以显示数千个点但分辨率太低而无法在实践中使用。

使用three.js的3D WebGL热图。闪烁指示新交易

使用three.js的2D WebGL热图

  • Leaflet.heat插件:这可以在不到1秒的时间内下载并渲染超过10K的点数。它对于识别热点很有用,但不允许用户缩小以查看各个点,这对于识别潜在的欺诈通常是必不可少的。

热图有5,000个高风险交易。

  • Leaflet MarkerCluster插件:这是最常用的插件,用于对点靠近的点进行分组,使其在屏幕上可管理。但是,渲染10K点需要2-3秒,并且由于每次添加数据点时都不能很好地处理流数据,因此需要刷新图层。将此替换为下面提到的PruneCluster实现。

使用Leaflet Marker Cluster插件的高风险交易的聚集点

单个位置的15个高风险交易示例。使用MarkerCluster,由于整个图层刷新,新数据会导致“蜘蛛”收缩到单个点

  • Leaflet PruneCluster插件:这被发现是性能最佳的解决方案,并且与流数据配合良好。它也是为物联网应用而设计的,现有点可能经常改变位置。在美观上它与Marker Cluster插件非常相似。

PruneCluster的性能统计数据如下所示

基于Leaflet PruneCluster插件的地图上渲染点的指示性能

挑战和经验教训

  • 事件缓存: Redis Pub / Sub使得将新事件推送到客户端变得简单,但是在客户端首次连接时不提供检索最近先前事件的选项。在Redis或时间序列模块中使用排序集可以允许这样做,但会增加额外的复杂性。对于此PoC,在Javascript阵列中的服务器上维护一个简单的缓存,允许新连接的客户端根据最大阈值加载先前的事件。
  • 历史分析:需要引入滑块来控制显示的时间段。使用JQuery和Leaflet.js可以很容易地实现这一点。
  • 街景:是调查潜在风险区域的有用工具。虽然Google Maps API与此功能的集成度最高,但可以将其构建到几乎所有基于浏览器的地图中,如此PoC所示。

结论

地理空间可视化数据可以解锁可能会错过的有价值的见解。只需极少的努力和慷慨的开源社区,就可以创建强大的可视化而无需花一分钱!

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-04-19,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 相约机器人 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
WebGIS开发框架及特点
WebGIS开发框架是用于构建基于Web的地理信息系统(GIS)应用程序的软件工具和技术的集合。它们提供了一组预先构建的组件、API和工具,简化了WebGIS应用的开发过程。
数字孪生开发
2025/02/12
1480
WebGIS开发框架及特点
使用 geopandas 和 shapely(.shp) 进行地理空间数据处理和可视化
首先,我们需要安装 geopandas 和 shapely 库。可以通过以下命令来安装:
全栈若城
2024/02/29
2.9K0
使用 geopandas 和 shapely(.shp) 进行地理空间数据处理和可视化
Python中最好用的6个地图可视化库
地理空间数据无处不在:在这次新冠肺炎大流行中,我们见识到了各种地理空间数据可视化工具制作出的各种风格的地图。而对Python的使用者来说,有几个非常强大的库可以帮助我们进行地理空间数据可视化。
DataCharm
2021/02/22
2.2K0
Python中最好用的6个地图可视化库
WebGL开发地图可视化系统的技术框架
开发基于 WebGL 的地图可视化系统需要选择合适的技术框架和工具,以确保高效渲染、灵活交互和良好的性能。以下是常用的技术框架及其特点。
数字孪生开发者
2025/01/30
1770
WebGL开发地图可视化系统的技术框架
你必须掌握的可视化大屏开发模式
我们都尝试去观察生活,但是有时却缺少了总结生活;有时我们太着眼细节,忽略了大局。数据和可视化似乎是两个好兄弟,就像仰望星空与脚踏实地的两种状态。
合一大师
2020/07/20
1.6K0
你必须掌握的可视化大屏开发模式
GIS历史概述与WebGis应用开发技术浅解
声明:本篇在李晓晖的《杂谈WebGIS》,补充更多的资料说明。基于地图二次开发一直断断续续在做,这里算是补充一下基本功把。其实对于前端,WebGis开发都是api,抄demo,改。GIS深入似大海,杂鱼汤来一碗
周陆军
2019/08/11
4K0
常见的WebGIS地图库
Mapbox GL JS 是目前最新潮的前端地图库,它的矢量压缩、动态样式和三维性能令人印象深刻。它本身是开源的,但一般依赖于Mapbox公司提供的底图服务。
Jean
2021/11/23
3.6K0
常见的WebGIS地图库
强烈推荐!汇总了几个前端离不开的2D图形库
在现代前端开发中,无论是构建游戏、数据可视化还是动画效果,合适的2D图形库可以增加用户的趣味性,接下来就给大家介绍几个常用的2D图形库
程序员老鱼
2023/08/10
1.6K0
强烈推荐!汇总了几个前端离不开的2D图形库
地图可视化的艺术:深入比较Mapbox、OpenLayers、Leaflet和Cesium,不同场景下应如何选择地图库
在现代前端开发中,地图应用变得越来越重要,特别是在数据可视化、地理信息系统和移动应用中。本文将详细比较四款流行的地图库:Mapbox、OpenLayers、Leaflet 和 Cesium,分析它们的特点、功能、开源情况、包体积、市场占有率、适宜人群与应用环境,并提供安装与基础使用代码示例。
watermelo37
2025/01/22
7250
地图可视化的艺术:深入比较Mapbox、OpenLayers、Leaflet和Cesium,不同场景下应如何选择地图库
空间地理数据可视化之 mapview 包
本期 R 可视化将介绍 mapview 包的基本内容。这是《Geospatial Health Data》[1]一书中关于空间地理数据可视化 中所提到的最后一个 R 包,关于 mapview 包的更多内容,可进入mapview官网[2]探索学习。
庄闪闪
2021/10/22
1.5K0
空间地理数据可视化之 mapview 包
主流webgis框架介绍与对比
想写本文,主要是源于前两天有个老师找到我说让我录一个大概半个小时的视频,跟大家分享一下各webgis框架之间的区别以及在应用的过程中应该如何选择。其实之前也有学员问过类似的问题,当时只是针对他们的疑问做了回答。虽然各个框架都有用过,有几个还算比较熟悉,但并没有全面的对各个框架进行过比较,刚好借着这个机会,一方面重新对各个框架有一个比较全面的认识,另一方面对各个框架做一个比较,以便后面使用的时候有一个较好的选择。
牛老师讲GIS
2021/09/10
2.6K0
Python奇淫技巧,5个数据可视化工具
数据可视化的工具和程序库已经极大丰盛,当你习惯其中一种或数种时,你会干得很出色,但是如果你因此而沾沾自喜,就会错失从青铜到王者的新工具和程序库。如果你仍然坚持使用Matplotlib(这太神奇了),Seaborn(这也很神奇),Pandas(基本,简单的可视化)和Bokeh,那么你真的需要停下来了解一下新事物了。例如,python中有许多令人惊叹的可视化库,而且通用化程度已经很高,例如下面这五个:
Python数据科学
2019/05/16
4.1K0
Python奇淫技巧,5个数据可视化工具
空间地理数据可视化之 leaflet 包及其拓展
这一期 R 可视化介绍的是 leaflet 包及其扩展内容,除了《Geospatial Health Data》[1]一书中介绍的关于此包的基本使用方法外,小编还在网上探索了 leaflet 包的其他内容,详细见 CSDN[2] 网站。关于 leaflet 包的更多内容,可进入leaflet官网[3]查看学习。
庄闪闪
2021/09/14
2.7K0
浅谈数据可视化那些可用的工具和示例【可视化】
什么是数据可视化?数据可视化主要旨在借助于图形化手段,清晰有效地传达与沟通信息。为了有效地传达思想概念,美学形式与功能需要齐头并进,通过直观地传达关键的方面与特征,从而实现对于相当稀疏而又复杂的数据集
灯塔大数据
2018/04/10
1.9K0
浅谈数据可视化那些可用的工具和示例【可视化】
WebGIS开发框架及其特点
WebGIS(Web Geographic Information System)是基于Web技术的地理信息系统,能够通过浏览器实现地理数据的展示、分析和交互。以下是常见的WebGIS开发框架及其特点。
数字孪生开发
2024/12/31
2100
WebGIS开发框架及其特点
优质开源GIS项目-Mars3D三维可视化平台
Mars3D三维可视化平台,是一款支持多行业应用的网页端二三维 GIS 可视化地图平台。支持无插件轻量级的系统运行方式,广泛应用于高效的数据管理、展示及应用,提供地图数据、三维实景数据、互联网数据等多种时空数据的加载与展示,同时扩展了电子沙盘、智慧园区、城市规划、卫星仿真、气象水文、城市可视化和专题图等多种应用场景,满足用户多元业务可视化应用需求。
Towserliu
2025/01/08
3750
优质开源GIS项目-Mars3D三维可视化平台
空间数据可视化神器,Pydeck!
Pydeck库通过deck.gl对数据进行空间可视化渲染,对3D的可视化支持非常强。
小F
2022/02/17
1.9K0
空间数据可视化神器,Pydeck!
Mars3D三维可视化平台
Mars3D平台可用于构建无插件、跨操作系统、 跨浏览器的三维 GIS 应用程序。平台使用 WebGL 来进行硬件加速图形化,跨平台、跨浏览器来实现真正的动态大数据三维可视化。通过 Mars3D产品可快速实现浏览器和移动端上美观、流畅的三维地图呈现与空间分析。
鱼找水需要时间
2023/02/16
1.7K0
Mars3D三维可视化平台
可视化:覆盖全球的网络攻击如何展现?
数据可视化一直是一个很有趣的领域。许多普通人直观上难以感受的数据,如漏洞分布、实时流量分析等,通过数据可视化的手法,可以清晰地看出数据的结构特点和每一个部分之间的内在联系。 著名数据可视化库 D3.js 的部分应用 D3.js 可视化群关系,来自利用 d3.js 对大数据资料进行可视化分析 数据可视化除了常用的图表之类,与地理位置信息系统(GIS)的结合也是其中一个有趣的应用。 首先是数据的准备,要做全球的分布图,得有全网扫描的实力才行哦。HeartBleed 风波的当天晚上,ZoomEye 就给全球
大数据文摘
2018/05/22
1.6K0
WebGL开发地图可视化系统
开发基于 WebGL 的地图可视化系统是一项复杂的任务,涉及多个技术领域和设计决策。以下是开发流程和关键步骤的概述,不涉及具体代码实现。
数字孪生开发者
2025/01/30
1020
WebGL开发地图可视化系统
相关推荐
WebGIS开发框架及特点
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档