一种基于城市多源异构数据构建城市画像的方法与流程

文档序号:15236583发布日期:2018-08-24 05:40阅读:448来源:国知局

本发明属于大数据处理技术领域,尤其涉及一种基于城市多源异构数据构建城市画像的方法。



背景技术:

当前,城市发展面临诸如人口膨胀、环境恶化、公共卫生事件频发、交通拥堵、资源浪费等的挑战,智慧城市是未来的发展趋势。

智慧城市是指在信息技术和互联网相结合的基础上,通过各种智能化的应用,提升城市基础设施的运作效率,提升城市运行管理和公共服务水平,让人们的生活更美好。在智慧城市的建设和管理中,物联网、云计算、大数据等技术发挥着越来越重要的作用。在智慧城市中,由于物联网技术的采用很多的基础设施与设备都具备了被感知、被监控的功能,同时这也导致了这些基础设施和设备产生了大量的数据。这些数据的来源广泛、结构多样,涵盖智能交通、智能医疗、智能楼宇、智能电网、智能农业、智能安防、智能环保、智慧旅游、智慧教育、智能水务等大数据资源,涉及方方面面智慧城市应用范畴。其多是互联网、传感设备、视频监控、移动设备、智能设备、非传统信息化设备等渠道产生的海量结构化或非结构化数据,并且时时刻刻都在源源不断地渗入城市日常管理和运作的方方面面。这些数据构成了智慧城市中的大数据,而这些大数据是支撑智慧城市发展的重要信息资源,城市运行体征是通过数据进行量化表现出来的,通过大数据技术收集各部门有关城市运行体征的数据,可帮助城市管理者进行数据汇总、分析,最终对城市体征的量化形态即各类数据进行管理。

在智慧城市实践中,如何收集、维护、应用这些多源、异构数据,成为对数据进行进一步智能化分析、处理的关键环节与必要前提。但现有的城市数据管理技术大多基于某一具体的应用场景,专注运用某一专题内的数据,缺乏对城市数据整体的统筹与融合。



技术实现要素:

本发明的目的是提供一种基于城市多源异构数据构建城市画像的方法,通过汇聚、积累、标准化存储管理多源异构城市数据,实现多源异构数据的关联融合,并在此基础上提供高效的数据服务,从而构建能服务于深度学习训练预测以及全方位城市数据展示的多维数据“城市画像”。

为了实现上述目的,本发明技术方案如下:

一种基于城市多源异构数据构建城市画像的方法,所述基于城市多源异构数据构建城市画像的方法,包括:

设计城市多源异构数据对应的归一化栅格数据模型;

从城市多源异构数据接口获取原始数据,对采集的原始数据进行预处理,将预处理结果进行序列化,发布到消息队列的指定内部分类中;

建立城市多源异构数据对应的数据栅格化转换模块,从消息队列的内部分类中提取数据,根据所述归一化栅格数据模型及数据的原始结构、业务特征、时空属性,采用对应算法,对提取的数据进行栅格化转换和数据补全;

将经栅格化转换和数据补全后形成的栅格数据保存到依据归一化栅格数据模型设计的目标数据库,形成城市多源异构数据构成的城市画像,并根据栅格数据的特征,提供相应的数据接口,服务于深度学习算法及智慧城市的应用。

进一步地,所述归一化栅格数据模型将城市空间划分为多个栅格,根据数据的空间分布,将数据映射到每个对应的栅格中,并对所有栅格进行编号,使用栅格编号作为数据在目标数据库中的空间信息。

进一步地,所述目标数据库为栅格数据库,所述栅格数据库包括关系型数据库的实现和非关系型数据库的实现;所述关系型数据库为每一类数据建立单独的数据表,在数据表中,数据对应的栅格编号与时间信息各为数据库中一列,数据中每一属性对应一列;所述非关系型数据库使用行键表示数据属性、时间信息,使用列表示空间信息,列名为栅格编号。

进一步地,所述非关系型数据库的行键包括对数据属性采用散列算法编码后获得的字符串,以及数据对应的时间信息。

进一步地,所述根据所述归一化栅格数据模型及数据的原始结构、业务特征、时空属性,采用对应算法,对提取的数据进行栅格化转换和数据补全,包括:

对分布于空间点位坐标,随时间改变,且仅在有限位置具有真实数值的传感数据,将真实数据依据其坐标投影至对应栅格中,并在此基础上,利用数据在空间与时间维度的相似性,计算并补全其余栅格中的数据;

对于分布于空间中,只具有位置属性的数据,分别统计每种数据在每个栅格中的数量,将位置分布数据转化为栅格化的密度分布数据;

对于原始数据已具备栅格特征的数据,将其原始栅格尺寸转换为归一化栅格数据模型中统一尺寸的栅格数据,转换过程将原始栅格数据分布按照类型或数值的百分比,映射到目标栅格中。

进一步地,所述对采集的原始数据进行预处理,包括:过滤因数据源异常而导致的错误信息。

进一步地,所述内部分类根据数据源、或内容、或地点、或时间进行分类建立,每个内部分类对应有预设的标准格式,预设的标准格式包含属性类别、数据存储类型和序列化方式。

进一步地,所述从消息队列的内部分类中提取数据,还包括:

对从内部分类中提取的数据,进行去重、去除无关数据的预处理。

进一步地,所述目标数据库包括栅格数据库和数据仓库,所述基于城市多源异构数据构建城市画像的方法,包括:

建立城市多源异构数据对应的数据栅格化转换模块,从消息队列的内部分类中提取数据,将提取的数据保存到目标数据库中的数据仓库中。

本发明提出的一种基于城市多源异构数据构建城市画像的方法,通过构建城市多源异构数据对应的归一化栅格数据模型,根据所述归一化栅格数据模型对城市多源异构数据进行关联融合处理以得到城市画像,城市空间中的多源异构数据被映射到统一、规整的栅格空间中,实现了异构数据关联融合的目标,能够为智慧城市的具体应用提供基础的数据。

附图说明

图1为本发明基于城市多源异构数据构建城市画像的方法流程图。

具体实施方式

下面结合附图和实施例对本发明技术方案做进一步详细说明,以下实施例不构成对本发明的限定。

本技术方案涉及的城市多源异构数据涵盖城市运转中产生的一切可获取数据,包括各种实时接入的传感数据,地图数据、遥感影像数据及其间接产生的信息,以及政府各部门收录、统计的城市基本面数据、统计数据,以及城市交通流量数据、空气质量数据、气象数据、遥感影像数据、poi分布数据、土地利用数据等。这些数据来源各异,格式多样,具有各自不同的时间、空间精度,所以,当这些数据被运用于深度学习等复杂运算前,需要用一套规范化流程对其进行归一化关联融合处理。

如图1所示,本技术方案的一种实施例,一种基于城市多源异构数据构建城市画像的方法,包括如下步骤:

步骤s1、设计城市多源异构数据对应的归一化栅格数据模型。

本技术方案首先构建归一化栅格数据模型,将城市空间划分为多个栅格(例如等间距按照1km×1km划分),并对所有栅格进行编号,就是将原来的地理信息(经纬度)转换为栅格编号,使用栅格编号作为数据在数据库中的空间信息。上述城市多源异构数据中存在多种具备时间、空间属性的数据,本技术方案将城市空间划分为等间距栅格(例如,1km×1km),并将上述数据根据其空间分布,映射到每个栅格中,即进行栅格化。每个栅格中的同一类数据为均匀分布,而在不同栅格内可能存在差异,同时,当原始数据存在时间维度时,栅格内数据同样随时间而变化。通过这种方式,城市空间中的多源异构数据被映射到统一、规整的栅格空间中,进而实现了异构数据关联融合的目标。

需要说明的是,栅格可以按照行政区块划分为不规则的形状,本发明对此不做限制。

本实施例归一化栅格数据模型采用关系型数据库(如mysql,oracle)存放时间变化不明显的栅格数据,采用适合大数据存储的非关系型数据库(nosql数据库,如hbase)存放随时间变化明显的栅格数据。

关系型数据库适合存储随时间变化不明显的结构化数据,如栅格元数据(即栅格编号、栅格经纬度范围、行政区划等栅格基本信息)、poi原始数据、土地利用数据等。此类数据的表结构设计如下:为每一类数据建立单独的数据表,结构化数据中每一属性对应一列,每条数据对应一行。其优点在于查询效率高、查询方式多样,但不适合用于存储海量数据。

非关系型数据库hbase适合存储海量随时间变化明显的栅格数据,如栅格化的交通态势数据、气象数据等。使用hbase中“行键”表示数据属性、时间信息,使用“列”表示空间信息。列名就是上一步得到的“栅格编号”。此外,非关系型数据库还可以采用cassandra,这里不再赘述。

栅格化数据hbase数据库设计的关键在于其行键(即rowkey)。行键的设计主要考虑以下两个问题:

一、由于栅格化数据的主要应用需求在于根据数据属性名称、时间进行添加、查询操作,行键中必须包含数据属性名称、时间两个要素;

二、行键中高位决定了数据在集群中的物理存储路径,为了使集群负载均衡,对行键的高位应进行特殊处理。

综上所述,行键设计如下:对数据属性采用散列算法进行编码,常用的散列算法有md5、sha-1、ripemd、haval等,以保证行键高位的随机性,并在属性后添加时间信息,方便根据时间进行查询。

例如,2017年11月6日下午14时的温度数据所对应的行键为:

"78b21a804f24074f8103e571472556be_2017110614"。

列设计的重点与难点在于如何简洁表示地理信息,本实施例为了对数据进行栅格化,先假设将某城市定义为由1km*1km栅格组成的矩形区域,对所有栅格由西到东、由北到南依次进行编号,即将经纬度等其他形式的地理信息转换为栅格编号。将行键对应的数据看作一个“图层”,即特定时间点、特定属性的所有栅格点的数据,由多列数据组成。假设指定区域共有1000个栅格,则每个行键(图层)对应1000列,列名为[1,1000]的数字。

本技术方案能够接入并关联融合的数据包括(但不限于):

空气质量数据:从公开数据接口(数据云市场等)来源获取,范围可达全国300多个城市,获取每个城市每小时更新的空气质量监测站数据。具体数据类型包括aqi、pm2.5浓度、no2浓度、so2浓度等。

气象数据:从中国气象数据网等专业气象网站获取,包括公开接口数据及文件数据,范围为全国县级以上城市,获取每个城市每小时更新的气象监测数据。具体类型包括气温、气压、降水量等。

交通态势数据:从高德地图等地图服务供应商公开接口获取,范围包括数据可获取的若干特定城市,数据形式为给定区域或给定线路的交通态势。具体类型包括交通总体态势、畅通率、缓行率、拥堵率等。

poi数据:从高德地图等地图服务供应商公开接口获取,范围为半径50km的任意原型区域或多边形区域,获取区域内poi信息,包括名称、类型、地址等。poi数据可以通过按类别计数的方式转化为栅格化数据,其演变周期相对较长,不一定包含时间维度。

土地利用数据:通过遥感影像、土地勘测等手段得到的公开土地利用分类数据,例如含有覆盖信息、海拔高度信息的arcgis栅格文件等。数据范围可覆盖全国,精度受数据源影响(例如90m×90m),获取每个区域内的一级分类与二级分类,一级分类包括林地、草地、人工表面等类型,二级分类对一级分类做进一步细分。土地利用数据演变周期相对较长,不一定包含时间维度。

经过栅格化的城市多源异构数据,其分布在空间中的栅格与图像点阵具有相似的数据结构,且每一类数据能够与彩色图像、遥感图像中的不同分量(例如rgb分量、遥感影像中的多种光谱)进行类比。栅格化数据可以被看作描述城市综合运行状态的“城市画像”。

步骤s2、从城市多源异构数据接口获取原始数据,对采集的原始数据进行预处理,将预处理结果进行序列化,发布到消息队列的指定内部分类中。

消息队列中间件是分布式系统中重要的组件,例如activemq、rabbitmq、zeromq、metamq、kafka等,实现消息发布和订阅。为处理多源、数量庞大的流数据,本技术方案采用kafka架构,具有高吞吐率、高扩展性、高容错率、o(1)时间复杂度的消息持久化的特点。

本实施例采用kafka架构使数据采集与处理过程分离,满足数据实时接入处理需求。kafka架构的数据采集模块从外部数据源采集数据,发布到内部分类,然后由数据栅格化转换模块从内部分类中提取数据进行后续的处理。可完美解决数据采集与数据处理速度不匹配的问题,从而实现海量数据的实时处理。

本实施例的kafka数据采集模块,用于根据数据源特点,实时获取各类数据源原始数据。以通过中国气象数据网公开接口,获取气象数据为例:该数据接口每小时更新前一小时气象数据,因此应设计实现定时数据采集模块,每小时通过http请求,获取目标地面气象检测站的原始数据。

本实施例采用消息队列中间件的数据采集模块,接入城市多源异构数据接口获取原始数据。针对不同的数据源,有预先设计好的不同的数据采集模块,接入到不同数据源的数据接口,采集原始数据。

例如:

交通态势数据对应数据采集模块1,将数据采集模块1接入到高德地图的服务供应商的公开接口,获取交通态势数据。

气象数据对应数据采集模块2,将数据采集模块2接入到中国气象数据网的公开接口,获取气象数据。

本实施例数据采集模块还对原始数据进行预处理,过滤因数据源异常而导致的各类错误信息,最后将预处理结果进行序列化(如转换为二进制流或json字符串等),发布到指定kafka内部分类中。

本实施例kafka内部分类(topic)根据数据源、内容、地点、时间等要素进行分类建立。以空气质量为例:首先,空气质量数据来源多样,如pm25.in提供的免费数据接口、中国环境检测总站提供的"全国城市空气质量实时发布平台"等,各数据源数据不尽相同,因此kafka内部分类可基于数据源分成多类;其次,空气质量内容包括城市总体空气质量数据、城市中各监测站空气质量数据两部分,kafka内部分类可按内容分为两类;再次,根据空气质量监测站的地理位置,kafka内部分类可按区域划分为多类;最后,根据空气监测站采集时间、采集程序获取数据时间等属性,kafka内部分类可按年、月、日等时间要素分为多类。又或者将所有空气质量分为一类。本实施还同时预估每一内部分类数据量,根据数据源更新频率与数据量、服务器集群规模与性能、系统实时性与准确性等条件,选择适当的kafka集群broker数量与partition数量、kafka数据保留时长等配置,便于后续使用、维护、扩展。

本实施例每个内部分类对应有预设的标准格式,预设的标准格式包含属性类别、数据存储类型和序列化方式等信息,作为后续程序的标准,解耦数据采集程序、数据处理程序的实现,便于"消息订阅-发布模式"的设计与实现。

例如内部分类对应的预设标准格式为json格式,将气象网站下载的原始文件txt格式的文件、或从公开api接口下载的气象数据,最终转化为统一的json格式。

本实施例数据采集模块都对应有指定的内部分类,通过本步骤,将采集得到的原始数据统一转换为各内部分类对应的预设的标准格式。从而将城市多源异构数据统一变换为消息队列中间件kafka能够进行统一处理的数据格式,便于后续进一步进行处理。

步骤s3、建立城市多源异构数据对应的数据栅格化转换模块,从消息队列的内部分类中提取数据,根据所述归一化栅格数据模型及数据的原始结构、业务特征、时空属性,采用对应算法,对提取的数据进行栅格化转换和数据补全。

本实施例设计不同数据栅格化转换模块,用来处理需要放入对应目标数据库的数据,并为数据栅格化转换模块订阅对应的kafka内部分类,通过订阅对应的内部分类实现对要处理数据的选择,在进行数据处理时,从订阅的内部分类中提取数据即可。

本实施例根据所述归一化栅格数据模型及数据的原始结构、业务特征、时空属性,采用对应算法,对提取的数据进行栅格化转换和数据补全,包括:

对空气质量、气象数据等分布于空间点位坐标,随时间改变,且仅在有限位置具有真实数值的传感数据,将真实数据依据其坐标投影至对应栅格中。

对于poi等分布于空间中,只具有位置属性的数据,分别统计每种poi在每个栅格中的数量,从而将位置分布数据转化为栅格化的密度分布数据。

对于原始数据已具备栅格特征的土地高程、土地利用等数据,由于其原始栅格尺寸各不相同,同样需要转换为栅格数据模型中统一尺寸的栅格数据,转换过程将原始栅格数据分布按照类型或数值的百分比,映射到目标栅格中。

本实施例还利用数据在空间与时间维度的相似性,计算并补全其余栅格中的数据。

需要指出的是,由于受到数据源的限制,无法完全获取数据(如空气质量、气象等传感数据、交通态势数据),有些栅格中会缺失一些数据。为了补全缺失数据的栅格,本实施例对数据缺失栅格,运用k最近邻算法(knn),条件随机场算法(crf)、人工神经网络(ann)等方法,利用数据在空间与时间维度的相似性,计算并补全其中数据。以k最近邻算法(knn,k-nearestneighbor)为例,其基本思路是对于无法获取数据的栅格,寻找距离其最近的k个拥有数据的栅格,获取数据并取平均数作为本栅格的数据。同时,结合土地利用等数据,对补全结果进行进一步优化。例如,若某栅格无法获取交通态势数据,且其人工表面覆盖率为0,其交通态势数据与临界栅格没有关联。此外,可建立crf、ann等机器学习模型,对数据缺失栅格进行预测,其中包含数据的栅格可作为模型训练集,而特征向量可由栅格的基本特征与其他栅格数据组合构成。

最终,将具有空间属性的数据按照其空间属性(即位置信息)放入对应的栅格中。本实施例,将城市空间中的多源异构数据被映射到统一、规整的栅格空间中,在一个栅格中,有各类数据,例如交通数据、气象数据、空气质量数据、土地利用数据等等。各类数据进行关联融合,其组织形式与彩色图像的rgb分量或遥感图像中的多光谱信息具有高度相似性,可以直观地表现城市各个栅格单元的综合运行状态。

而本技术方案的主要目的是对城市多源异构数据进行关联融合处理构建城市画像,因此目标数据库也可以仅包括栅格数据库。

本实施例采用数据栅格化转换模块,从订阅的内部分类中提取数据后,还需要进行预处理,本实施例预处理包括去重、去除无关数据等步骤。

步骤s4、将经栅格化转换和数据补全后形成的栅格数据保存到依据归一化栅格数据模型设计的目标数据库,形成城市多源异构数据构成的城市画像,并根据栅格数据的特征,提供相应的数据接口,服务于深度学习算法及智慧城市的应用。

本实施例将经栅格化转换和数据补全后形成的栅格数据保存到依据归一化栅格数据模型设计的目标数据库,所述目标数据库为栅格数据库,所述栅格数据库包括关系型数据库的实现和非关系型数据库的实现;所述关系型数据库为每一类数据建立单独的数据表,在数据表中,数据对应的栅格编号与时间信息各为数据库中一列,数据中每一属性对应一列;所述非关系型数据库使用行键表示数据属性、时间信息,使用列表示空间信息,列名为栅格编号。

栅格数据库包括关系型数据库的实现和非关系型数据库的实现,其中关系型数据库用于存放时间变化不明显的栅格数据,非关系型数据库存放随时间变化明显的栅格数据。

对于关系型数据库,为每一类数据建立单独的数据表。数据表中,数据的空间信息(栅格编号)与时间信息各为数据库中一列,数据中每一属性对应一列,即每行数据包括特定时间、特定栅格的所有数据。

对于非关系型数据库,本实施例选用hbase(一种列式的非关系型分布式数据库),具备扩展性强、查询效率高的特点。根据预先构建的归一化栅格数据模型,将从内部分类中提取的预设的标准格式数据先根据数据的空间属性计算得到对应的栅格编号,确定其对应的栅格,然后将栅格编号作为列名,将该栅格中的数据放入该列,从而将数据关联融合到目标数据库中。

本实施例优选地,目标数据库包括栅格数据库和数据仓库,所述基于城市多源异构数据构建城市画像的方法,包括:

建立城市多源异构数据对应的数据栅格化转换模块,从消息队列的内部分类中提取数据,将提取的数据保存到目标数据库中的数据仓库中。

此时,目标数据库包括栅格数据库和数据仓库,其中数据仓库用于保存从订阅的内部分类中提取的数据,数据以内部分类预设的标准格式直接保存到数据仓库,为的是将所有从外部数据源采集的数据都进行保存。本实施例数据仓库选用hive,具备支持类sql语言操作、高容错的特点,用于存储从内部分类中提取的数据。

需要说明的是,本实施例数据仓库中保存着所有从内部分类中提取的数据,所以数据仓库中保留着数据的位置信息(经纬度信息);其次,本实施例目的数据库会有其他一张数据表,专门用于保存“栅格编号”与“经纬度”之间的对应关系,这张数据表主要用于栅格化过程中;最后,在栅格化数据库中,不保存经纬度信息,仅以栅格编号来表示关联融合后的栅格数据的空间信息。

本技术方案在栅格化之后,建立了目标数据库,从而能够为深度学习算法及智慧城市的具体应用提供基础的数据。因此通过综合考虑数据容量、数据增量规模、数据接口访问量等因素,并对服务器资源以及各类公有云服务进行评估,建立服务器集群,搭建hbase、hive、kafka、mysql环境。

hbase等环境下存储的栅格数据库,可为栅格数据可视化、深度学习模型训练等具体应用提供接口,具体接口包括:

获取栅格数据,根据属性、时间范围及栅格编号(可选)获取全部或指定位置的栅格数据;

获取poi数据,根据poi类型,获取类型下所有poi的坐标集合;

获取栅格信息,获取所有栅格点的经纬度信息,获取区域经纬度信息;

获取预测数据,根据属性、时间范围、及栅格编号(可选)获取全部或指定区域内,通过特定模型预测得到的栅格数据,并在此基础上,获取相应时间点上预测数据与真实数据的误差;

导出训练集,为满足深度神经网络等机器学习模型的训练需求,可将栅格数据按需求输出为指定文件格式,作为神经网络等模型的训练集输入。

以上实施例仅用以说明本发明的技术方案而非对其进行限制,在不背离本发明精神及其实质的情况下,熟悉本领域的技术人员当可根据本发明作出各种相应的改变和变形,但这些相应的改变和变形都应属于本发明所附的权利要求的保护范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1