文/王源
在大数据中,大约有80%的数据与空间位置相关。而POI 数据,是空间数据的典型代表之一。POI(Point of Interest)即兴趣点,泛指一切可以抽象为点的地理实体。从宏观层面上来说,POI 数据能够从多个维度进行描述,比如空间维度、时间维度和类别维度。从微层面度来说,POI 数据的每一个实体都包含其特定的名称、联系方式,以及简介等等。要全面认识POI 数据,必须同时从宏观层面与微观层面进行可视化分析。
本文提出一种面向海量POI 数据分析的Web 可视化框架,面向不同场景,提供多存储模式、多维度索引、多层次Web 服务、多视图交互界面,实现POI 数据宏观层面与微观层面的综合表达,支持高效、灵活、便捷、丰富的POI 可视化分析。
随着数据规模的上升,传统方法难以快速、有效地表达出海量POI 数据所蕴含的信息,过去已有学者探索了面向海量POI 的可视化方法。张铁映等人[2]DBSCAN 算法应用于POI可视化,实验表明DBSCAN 算法能有效解决海量POI 重叠遮盖的问题。Grant McKenzie 等人[3]则提出基于栅格瓦片与矢量瓦片自适应切换的POI 可视化方法,POI 在较低缩放级别以栅格瓦片展示,在较高缩放级别以矢量瓦片展示,但切换的临界点需要根据经验来设定。David Da Costa 等人[4]基于POI 之间的相似性将其表达于圆形空间,可显著提升展示效率。华一新等人[5]针对个人地理标记数据的特点,提出了基于数据拓扑图的可视化方法,相比常规地图表达效率更高。
图1:海量POI 可视化分析框架结构
以上工作都以POI 为研究对象,只是侧重点各有不同。但目前仍然没有相关工作将海量POI 的存储、处理、访问、可视化等多个环节进行整体设计,因此难以适应不同场景的可视化需求。下面,将对本文提出的海量POI 可视化分析框架进行详细介绍。
如图1所示,为支持海量POI 数据可视化分析的全生命周期,本框架主要分为四层:存储管理层主要解决海量POI 数据的存储与管理问题,Web 服务层主要用于后台数据与前端页面的交互,数据可视化层对各类POI 信息表达进行了多视图集成。
为适应多源异构的海量POI 数据,本文设计了多存储模式融合的POI 存储管理方法。
对POI个体而言,其组织方式是结构化的,适合作为行数据处理。完成数据预处理(数据去重、数据修补、格式统一)后,即可存入关系数据库,用于满足POI 个体查询的需求。同时,在关系数据库中建立了空间索引,快速缩小筛选范围,提升查询效率。
POI 个体间的关系是非结构化的,因此在研究POI 关系时,适合作为图数据处理。按照一定条件(如某一字段完全或部分相同),将POI 个体信息与关系信息导出,分别生成图数据的结点表与边表。将其存储于图数据库,即可更加便捷地查询POI 个体之间的关系。
POI 数据中常见的时间标签、空间坐标以及类别属性,可以分别视为时间维、空间维以及类别维(如行业类别、企业性质等)等不同维度,转换为Data Cube 形式,进行快速维度过滤,支持POI 数据的多维度组合分析。
Web 服务是后台数据能力与前端可视化界面的桥梁,本文设计了多层级组合的海量POI 数据Web 服务,包括关键词查询、关系查询与多维查询。
关键词查询,主要用于获取特定POI 个体的细节信息。用户输入关键词后,可选择其他筛选条件,比如省份、年份、行业类别等。关键词查询服务将根据上述条件,在关系数据库或HDFS 中,通过SQL 查找满足条件的POI 个体,查询结果将以JSON 形式返回给前端。
关系查询,主要支持POI关系网络的获取。用户需要输入中心POI 以及感兴趣的关系类型(比如同类、竞争等等)。关系查询服务将根据上述条件,在图数据库中,通过Cypher 查找中心POI 的关系网络,将结果以JSON 形式返回给前端。
多维查询,主要包含时间、空间与类别维度的POI 集合过滤。对于不同维度,用户需要输入相应的过滤条件,前端会将其传输至服务器。对应的Web 服务将根据过滤条件,在Data Cube 中查找POI 集合。基于Data Cube的结构特性,多个维度的查询可以相互组合完成。
为兼顾POI 的宏观与微观表达,本文设计了多视图集成的可视化方法。
POI 的微观探索,由POI 个体的气泡式表达与POI 关系的力导向图表达组成。用户可以通过关键词及其它筛选条件,精确查找所需POI 个体,以气泡形式展示在地图上,点击气泡可查看详细信息。同时,POI 关系将通过力导向图表示。
POI 的宏观分析,由于数据源与处理方式的不同,分为精确匹配与多维过滤两部分。精确匹配,指通过关键词与其它筛选条件,查找POI 个体数据,再根据时间、地点、类别等属性进行统计,最后通过分层设色图、饼状图、柱状图等方式表达。而多维过滤,是基于Data Cube,借助各维度索引查找POI 集合。
本文采用的数据为全国企业POI 数据,数据规模达1600 万条,时间上起于1960年,止于2013年,空间上涵盖了全国各个省市的数据。同时,包含法人代表、注册资金、员工人数、邮编、地址、联系方式,以及行业类别、经营范围等属性字段。
图2:不同场景下的POI 可视化展示
对POI 个体,可结合关键词与其他筛选条件(区域、时间和类别)进行查看。比如输入关键词“测绘”,选择区域“湖北”,选择时间“2004”,选择类别为“技术服务”,将展示对应POI 个体,点击可查看详细信息,如图2(a)所示。点击标签中的“相关公司”与“竞争公司”后,可查看对应关系图。如图2(b)所示,POI 的颜色代表对应企业的类型,POI 的半径代表对应企业的注册资金规模,POI 间连线的长度代表了关系的强弱。对于精确匹配的POI个体,通过缩放分层设色图,可查看不同层级上的POI 时空分布,如图2(c)所示。而通过多维过滤,可对POI 进行统计分析,如图2(d)所示。
本文面向海量POI 数据,提出了一种Web 可视化分析框架。该框架支持多存储模式,满足不同数据组织形式需求;提供多维度索引,实现快速数据访问;支持RESTful Web 服务,满足不同设备访问需求;提供多视图可视化方案,实现POI 信息的全方位表达。
为进一步提升海量POI 可视化分析服务质量,未来工作可从以下几个方向继续推进:
(1)扩展更多统计分析服务(比如点模式分析方法),深入挖掘海量POI 数据所蕴含的信息;
(2)引入更多关联数据源(比如夜光遥感影像),与POI 数据结合分析;
(3)融合分布式计算方法,提升海量POI 数据处理效率。