一种适用于水文水资源的数据智能采集方法及系统与流程

文档序号:31624091发布日期:2022-09-24 00:07阅读:56来源:国知局
一种适用于水文水资源的数据智能采集方法及系统与流程

1.本技术涉及水文水资源技术领域,尤其涉及一种适用于水文水资源的数据智能采集方法及系统。


背景技术:

2.随着人类文明的进步和技术的创新,互联网在当今社会中扮演着尤为重要的角色,人工智能与物联网已经融入到人们生活的每个角落。如何充分发挥智能网络的优势,提取更加有价值的信息,摒弃无用的内容,已经成为一件急需解决的问题。纸质版的资料,往往都是人类智慧的结晶,但保存介质繁多,文字量异常庞大,如何快速提取精华内容,充分发挥老旧资料的价值也就意义重大。
3.随着我国数据资源共享机制的不断完善及信息化的不断发展,相关政府门户网站及机构网站积累了大量的水文水资源等行业数据,包括水库站点、水库水情、流域水雨情、气象等。如果对这些数据加以科学、合理利用,可为防汛抗旱决策、水利水电工程建设、水文水资源研究等提供重要支撑。但由于这些数据分散在各个网站,结构复杂,种类繁多,即便是同一种类的业务数据,数据结构也有所差异,并且网站共享的数据大部分只提供浏览功能,无法直接下载或导入数据库进一步应用,有的门户网站提供下载导出功能,需要人工操作对获取的数据进行整合,这样低效的数据采集方法也无法满足数据研究与应用要求,阻碍了水文水资源数据的开发、利用与研究。
4.为满足从互联网上进行信息快速获取的需求,国内一些公司和个人进行了信息聚合平台的开发。但这些服务系统主要提供数据聚合和搜索服务,缺少数据的准确性验证及数据的多元化应用服务。


技术实现要素:

5.本技术提供了一种适用于水文水资源的数据智能采集方法及系统,以解决水文水资源数据分散、利用率低、采集效率低的问题。
6.第一方面,本技术解决上述技术问题所采取的技术方案如下:
7.一种适用于水文水资源的数据智能采集方法,包括以下步骤:
8.基于scrapy框架获取原始水文水资源数据;
9.对所述原始水文水资源数据按照预设方式进行存储;
10.对存储的所述原始水文水资源数据进行数据清洗。
11.进一步的,所述基于scrapy框架获取原始水文水资源数据,包括以下步骤:
12.根据不同的数据源类型设置对应的数据采集单位,所述数据采集单位包括若干水文水资源数据采集请求,每一个所述水文水资源数据采集请求对应一种类型的所述原始水文水资源数据;
13.通过所述数据采集单位发送所述水文水资源数据采集请求;
14.获取dom数据;
15.对所述dom数据进行解析。
16.进一步的,对所述dom数据进行解析,包括:删除所述dom数据中无用的数据,所述无用的数据包括标签、层叠样式表和js数据。
17.进一步的,对所述dom数据进行解析,还包括:对所述dom数据中的以表格形式呈现的表格数据按照行和列进行循环解析。
18.进一步的,对所述原始水文水资源数据按照预设方式进行存储,包括:将结构化数据存储在关系型数据库中,将非结构化数据存储在非关系型数据库中。
19.进一步的,对存储的所述原始水文水资源数据进行数据清洗,包括:
20.根据不同的业务类型,提取对应的业务数据;
21.对所述业务数据进行清洗,获得业务模型数据;
22.将所述业务模型数据存入数据仓库。
23.进一步的,对所述业务数据进行清洗,包括:
24.将缺失的所述业务数据删除或进行填充,其中,对缺失的所述业务数据进行填充是按照历史均值、中位数、众数、同期经验值或零值之一进行填充;
25.将所述业务数据的数据类型均转换为数值型数据;
26.对所述业务数据进行无量纲化处理。
27.进一步的,所述原始水文水资源数据包括:水情日报、河道水情、水库水情、降雨量、旬月水沙、河流凌情、水质、水温。
28.第二方面,本技术为解决上述技术问题,提供的一种系统如下;
29.一种适用于水文水资源的数据智能采集系统,包括:
30.数据采集装置,用于获取原始水文水资源数据;
31.存储装置,用于存储所述原始水文水资源数据和业务模型数据;
32.数据清洗装置,用于对所述原始水文水资源数据进行清洗。
33.进一步的,所述数据采集装置包括:
34.引擎单元,用于发送水文水资源数据采集请求,并在采集所述原始水文水资源数据时进行信号、数据的传输;
35.调度单元,用于接收所述引擎单元发送的所述原始水文水资源数据采集请求,并按照预设方式对所述原始水文水资源数据采集请求进行整理排队,将排列好的所述原始水文水资源数据采集请求依次发送至引擎单元;
36.下载单元,用于根据所述引擎单元发送的所述原始水文水资源数据请求下载所述原始水文水资源数据;
37.所述存储装置包括:
38.关系型数据库,用于存储结构化数据;
39.非关系型数据库,用于存储非结构化数据;
40.数据仓库,用于存储业务模型数据;
41.所述数据清洗装置包括:
42.采集器,用于从所述原始水文水资源数据中提取不同业务类型对应的业务数据;
43.管线单元,用于对所述业务数据进行清洗。
44.本技术提供的技术方案包括以下有益技术效果:
45.(1)利用大数据思维,对采集到的原始数据进行数据清洗处理,提高数据质量,强化数据在应用过程中的有效性和可靠性;
46.(2)本技术的技术方案对采集到的原始水文水资源数据根据不同的业务类型,提取对应的业务数据,并对业务数据进行清洗,获取业务模型数据,以此整合多渠道权威网络数据,可以将某一水域的水文水资源数据立体的呈现出来,从根源上解决了某一水域的水文水资源的数据分散,而不能综合利用的问题。
附图说明
47.图1为本技术实施例提供的基于scrapy的水文水资源数据获取原理图;
48.图2为本技术实施例提供的适用于水文水资源的数据采集流程图;
49.图3为本技术实施例提供的数据统计分析看板;
50.图4为本技术实施例提供的黄河流域水文、水质站点数据图;
51.图5为本技术实施例提供的关中水系水文、水质站点数据图;
52.图6为本技术实施例提供的黄河流域河道水情数据图;
53.图7为本技术实施例提供的黄河流域水质站点实时数据图。
具体实施方式
54.为便于对申请的技术方案进行描述和理解,以下结合附图及实施例对本技术的技术方案作进一步的说明。
55.本技术的目的是提供一种适用于水文水资源的数据智能采集方法,主要包括数据获取、数据存储、数据清洗三个方面的内容。网络数据内容量巨大,而且信息分散,人工查阅费时费力,本技术采用人工智能采集技术,定时采集网络上的有用信息数据,将采集到的数据归类汇总后,再进行数据格式的统一,从根源上解决了数据离散的问题。对传统的纸质和影像资料采用人工查阅的方式获取所需的信息数据犹如大海捞针,不仅效率低下,而且容易出错,将传统的纸质和影像资料转化成电子版,再进行适当的编辑后,也可以采用本技术提供的数据智能采集方法,实现传统资料的电子化归档,为后续的数据挖掘提供数据源。
56.以下以黄河流域和关中水系为例,对本技术提供的水文水资源数据智能采集的技术方案进行说明,但本技术的技术方案并不仅限于应用于黄河流域和关中水系。
57.黄河流域水文水资源数据采集范围主要包含以下两个方面:
58.(1)黄河水文(水情日报、河道水情、水库水情、降雨量、旬月水沙、黄河凌情等)、水质(水质类别、水温、ph、溶解氧、电导率、浊度、高锰酸钾指数、总磷、总氮等)等实时数据。
59.(2)黄河流经城市人口经济情况、相关重大水利枢纽、黄河治理政策等其他数据。
60.关中水系水文水资源数据采集范围主要包含以下两个方面:
61.(1)关中水库水情、关中河流水情等实时数据;
62.(2)关中水库基本信息、关中河流基本信息、关中水厂基本信息等。
63.本技术提供的水文水资源的数据智能采集方法的核心思想是:基于庞大的水文水资源等公共数据资源,结合scrapy框架的数据采集方法及微服务架构松耦合性、开发效率高的特点,充分发挥互联网共享数据的价值,提高水文水资源领域内的数据利用率和采集效率。具体的实现方式如下:
64.(1)数据获取
65.参见图1和图2,分别为本技术实施例提供的基于scrapy的水文水资源数据获取原理图和适用于水文水资源的数据采集流程图。
66.如图1中所示的:
67.引擎单元(engine):用于根据不同的数据源类型发送水文水资源数据采集请求,并用于及时通讯,即用于在水文水资源的数据采集过程中进行信号、数据的传输,其中,每一个水文水资源数据采集请求分别对应一种类型的水文水资源数据,下载单元根据引擎单元发送的水文水资源数据采集请求下载、采集原始的水文水资源数据;
68.调度单元(scheduler):用于接收和存放引擎单元发送的水文水资源数据采集请求,并按照一定的方式对若干水文水资源数据采集请求进行整理排列、入队,如,将同一数据源类型的水文水资料数据采集请求连续的排列成一组,再将不同数据源类型的水文水资源数据采集请求以组为单位进行排列,即按照水文水资料数据采集请求发送的先后顺序,如果前面已经存在同一数据源类型的水文水资料数据采集请求,则将最新发送的同一数据源类型的水文水资料数据采集请求提到前面,与已经存在的同一数据源类型的水文水资料数据采集请求排列成一组,按照同样的方式,将不同类型的数据源类型对应的水文水资料数据采集请求以组为单位进行排列。当引擎单元需要时,再将排列好的水文水资源数据采集请求按照排列的顺序依次发送给引擎单元;
69.下载单元(downloader):用于根据引擎单元发送的所有的水文水资源数据采集请求下载、采集原始水文水资源数据,并将采集到的原始水文水资源数据发送给引擎单元,再由引擎单元发送给采集器处理;
70.采集器(spider):用于处理所有通过水文水资源数据采集请求采集到的原始水文水资源数据,即从采集到的原始水文水资源数据中分析提取所需数据,获取数据列队item(一种数据类型)字段需要的数据,并将需要跟进的数据所在页面的链接url(universal resource locator,统一资源定位符),即将需要跟进的数据的水文水资源数据采集请求提交给引擎单元,并再次将该请求发送至调度单元;
71.管线单元(pipeline):用于处理采集器中的水文水资源数据列队item,并进行数据清洗;
72.下载中间件(downloader middlewares):作为数据自定义扩展下载功能组件;
73.采集中间件(spider middlewares):是自定义扩展操作引擎和采集器中间通信的功能组件。
74.根据上述的组成结构,本技术实施例的水文水资源数据采集的主要方式为:
75.首先,根据采集的不同类型的水文水资源数据的类型,分别设置对应的数据采集单位,该数据采集单位可以发送水文水资源数据采集请求。
76.接着,引擎单元通过数据采集单位发送若干不同的水文水资源数据采集请求,并将若干不同的水文水资源数据采集请求发送至调度单元,由调度单元按照预设的方式对若干水文水资源数据采集请求进行排队。
77.其次,当引擎单元需要水文水资源数据采集请求时,调度单元将排列好的水文水资源数据采集请求依次发送给引擎单元,再由引擎单元发送给下载单元。
78.再者,下载单元根据引擎单元发送的所有水文水资源数据采集请求下载、采集原
始水文水资源数据,并将采集到的原始水文水资源数据发送给引擎单元,再由引擎单元发送给采集器处理。
79.然后,由采集器从原始水文水资源数据中提取不同业务类型对应的业务数据,如降雨量、黄河凌情等不同的业务数据。
80.最后,由管线单元对采集器提取的业务数据进行数据清洗,得到最终需要的数据。
81.如图2中所示,本技术实施例提供的适用于水文水资源的数据智能采集方法的具体的实施步骤为:
82.水文水资源数据获取过程中主要采用两项关键技术:一是基于scrapy的数据获取,二是数据解析。scrapy是一套基于twisted的异步处理框架,纯python实现的数据采集框架。该框架具有快速、高层次的屏幕抓取和web抓取等特点。一般情况下,水文水资源相关数据都以表格形式展示。不同网址的页面内容存在差异性,需要定制不同的数据采集代码逻辑,定时执行爬取,以便最大限度保证数据采集的及时性和完整性。
83.数据采集的主要方式是针对不同的网站开发不同的数据采集单位,即开发不同的数据采集应用程序,由于数据源的字段类型与数目不同,网页的结构也不同,均需根据不同的数据源定制开发对应的数据采集单位。本技术实施例针对黄河流域水文水资源数据定制开发水情日报、河道水情、水库水情、降雨量、旬月水沙、黄河凌情、水质、黄河治理政策等20余项数据采集单位;针对关中地区水文水资源数据定制开发水库水情、关中河流水情等10余项数据采集单位。
84.例如:采集黄河降雨量的数据采集单位,采集的页面地址是"http://106.37.208.243:8068/gjz/business/publish/realdatas.html"。首先,需要创建一个数据采集单位riverwaterqualityspider,而且要继承数据采集基类scrapy.spider,继承基类方法start_requests,是采集数据的入口。通常查询网页数据时,是在浏览器输入网址及可返回数据,但本技术实施例的数据采集的方法是用无头浏览器,通过应用程序代码发送http请求,从而获取数据。selenium是无头浏览器的核心组件,执行完driver.get(self.start_urls),即通过执行driver.get(self.start_urls)程序就会获取到网页的dom数据。
85.下一步是对dom数据进行解析,需要过滤掉无用的标签、层叠样式表(css)、js数据等,根据业务类型提取出对应的业务数据。一般情况,有价值的数据都会以表格的形式呈现,且都是结构化的数据,只需要对表格按行tr、列td循环解析。riverswaterqualitysource是实体,通过实体一次保存一条记录输入到数据库,datasave是数据访问层,用于进行数据的写入。
86.(2)数据存储
87.数据存储主要是采用关系型数据库(sql)和非关系型数据库(nosql)相结合的方式。由于水文水资源的常规数据都比较规整,适合关系型数据库的表格式存储模式,表格之间容易关联协作存储,也容易提取数据。全站获取的数据不适合存储在数据表的行和列中,而是大块存储,如文档、键值或者图结构等,则采用非关系型数据库进行存储,再结合elasticsearch实现全文检索。
88.通过数据存储将采集到的数据资源统一管理起来,为进一步数据探查、数据读取和数据处理做准备。数据储存方式主要如下:
89.关系数据库:mysql、sql server、oracle、postgresql等;
90.非关系数据库:redis、mongodb、hbase、neo4j;
91.消息队列:activemq、kafka、rabbitmq;
92.文件数据:excel、csv;
93.接口数据:json、xml;
94.数据仓库:hive。
95.(3)数据清洗
96.采用etl进行数据清洗,一般分下面三步:
97.首先,需要提取数据,可以采用不同的工具进行数据提取,如kettle、datax等。将采集到的数据集中到一个平台中,根据具体业务类型,即需要分析的各数据模型,形成最终的业务模型。
98.其次,对提取的数据进行数据清洗,如删除无用数据,去重数据,缺失数据填写等。可采用一些工具进行数据清洗,如sql server 2000的dts、sql server2005的ssis服务等。也可使用sql直接处理数据(需要较高的开发能力)。通常将两者结合处理,采用工具清洗一部分数据的同时,使用sql或python脚本再处理较复杂的部分数据。最后生成统一的数据模型。
99.最后将得到的统一的数据模型存入数据仓库中,以便后续对数据进行利用等。
100.其中,对结构化数据清洗包括:
101.结构化数据清洗是对数据缺失、数据冗余、数据错误和数据冲突这四种数据噪声的处理手段。如黄河水情、流域水情等数据,都应用了这四种清洗方法。根据原始站点数据样例建模,采集后的数据主要应用以下清洗方式:
102.数据缺失:可以统一按缺失补零,或者对缺失的数据采用历史均、同期经验值等进行填充。
103.数据冗余:对数据库增加唯一索引约束,可以在程序中增加去重逻辑。
104.数据错误:如水流量,采集数据为汉字或空,可以设置程序进行处理,如将汉字描述的内容转换为不同的数值。
105.数据冲突:对超出正常范围、逻辑上不合理或者相互矛盾的数据进行替换或删除处理。
106.上述结构化数据清洗完后,后续加入分析结构化数据的关联关系逻辑,统一构建模型存入数据库。
107.对非结构化数据清洗包括:
108.非结构化数据主要指人口经济、治理政策等的相关数据,如各区县政府网站。采集某政府网站的所有a标签,以超链接作为唯一key值,采集链接对应的网页内容。
109.主要数据问题有两类,第一类是获取超链接的死循环问题,对此采用时间超时及超链接对比策略进行处理;第二类是数据重复问题,对此采用对比超链接,内容相似度对比的方式进行处理。一般来说,对采集到的上述两类非结构化数据需要经过以下步骤处理:
110.第一,缺失值处理,可以采用删除或填充方式进行处理,若进行填充,则可以采用固定值进行填充,比如用0、均值、中位数、或众数进行填充。
111.第二,异常值处理,异常值的处理通常是将其删除,取值异常可以用分布图、直方
图、箱线图或者使用模型来识别,重复数据也是异常值的一种,需要对重复数据进行去重处理。
112.第三,类型转换,数据库中存储的是字符数据,但建模计算需要使用数值型数据,所以需要进行数据类型转换,日期的类型一般也要转换,还有一些算法在计算时都是采用整数进行计算,所以对一些标签要转换成整数标签。
113.第四,无量纲化,特征与特征之间存在的量纲不同,则会导致数值的范围差别很大。为了避免机器学习中因为量纲的不同,导致的结果差异,则引入特征工程(作用是无量纲化)的概念,一般包括归一化和标准版,归一化适用于小范围的精准数据集,受异常值的影响较大;标准化是平均值为0,标准差为1,对少量异常值不敏感,也适用于大数据场景,模型的鲁棒性比较好,所以一般都是使用标准化。其中,标准化公式和归一化公式如下:
114.式中,x

表示标准化值,x表示当前值,mean表示平均值,σ表示标准差。
115.x
″′
=x

(mx-mi)+mi,式中,x

表示归一化值,x表示当前值,min表示最小值,max表示最大值,mx表示最大值,mi表示最小值。
116.与上述适用于水文水资源的数据智能采集方法相对应的,本技术实施例还提供了适用于水文水资源的数据智能采集系统,该系统包括:
117.数据采集装置,用于获取原始水文水资源数据;
118.存储装置,用于存储原始水文水资源数据;
119.数据清洗装置,用于对原始水文水资源数据进行清洗。
120.具体的,数据采集装置包括:
121.引擎单元,用于通过数据采集应用程序发送原始水文水资源数据采集请求,并在采集原始水文水资源数据时进行信号、数据的传输;
122.调度单元,用于接收引擎单元发送的原始水文水资源数据采集请求,并按照预设方式对原始水文水资源数据采集请求进行整理排队,将排列好的原始水文水资源数据采集请求依次发送至引擎单元;
123.下载单元,用于根据引擎单元发送的原始水文水资源数据请求下载所述原始水文水资源数据。
124.数据清洗装置包括:
125.采集器,用于从原始水文水资源数据中提取不同业务类型对应的业务数据;
126.管线单元,用于对业务数据进行清洗。
127.对采用本技术实施例提供的适用于水文水资源的数据智能采集方法和系统采集的水文水资源数据进行后续的分析和利用,可以获得很多有益的结果。
128.参见图3、图4、图5、图6和图7,分别为本技术实施例提供的数据统计分析看板、黄河流域水文、水质站点数据图、关中水系水文、水质站点数据图、黄河流域水道水情数据图和黄河流域水质站点实时数据图。
129.如图3中所示,应用本技术实施例提供的方法采集到的黄河流域和关中水网的水文水资源相关数据,可以快速形成各类准确的数据统计分析看板。如图4中所示的,应用本
申请实施例提供的方法采集到的黄河流域各水文、水质站点数据,并结合gis技术形成数据图进行展示,并且可以对各个站点的水文数据趋势、水质情况等进行查询。如图5中所示的,应用本技术实施例提供的方法采集到的关中水系各水文、水质站点数据,并结合gis技术形成数据图进行展示,并且可以对各个站点的水文数据趋势、水质情况等进行查询。如图6中所示的,应用本技术实施例提供的方法采集到的黄河流域重要河道的水文数据,可以形成各个重要河道的水情统计图。如图7中所示的,应用本技术实施例提供的方法采集到的黄河流域重要水质站点的实时数据,可以获知重要水质站点的实时水质数据。
130.本技术实施例提供的适用于水文水资源的数据智能采集方法和系统,通过自动化采集水文水资源等相关公开数据,有效解决行业内公开数据分散、利用率低下、采集效率低下的问题。效果体现在以下几个方面:
131.(1)获取黄河流域、关中水系等基础数据、水文水资源数据,建立大数据集,可以为水利水电工程建设、水环境治理等提供数据指导。
132.(2)利用大数据思维,对采集到的数据进行数据清洗处理,提高数据质量,强化数据在应用过程中的有效性和可靠性。
133.(3)本技术实施例提供的方法通过整合多渠道权威网络数据及实体资料,将黄河流域水文数据立体的呈现出来,从根源上解决了数据分散的问题。例如,降雨量影响河道的水位,水位又与水电站的发电量紧密相关,河流,水库,天气等,间接影响着工业的发展和人民的生活。根据本技术实施例提供的数据采集方法采集的黄河流域的各种数据可以为黄河流域工业发展与生态保护的提供重要依据。
134.(4)黄河及其支流水质数据,包括水质等级,水温,ph值,浊度,氨氮,磷,氧含量等,水质也是黄河流域生态保护的一个重要指标。通过对采用本技术实施例提供的数据采集方法采集的黄河流域的各河流数据的网状排列的分析,可以精准的找到污染源,从而在生态保护方面发挥很好的指导作用。
135.以上对本技术说明性的具体实施方式进行了描述,以便于本技术领域的技术人员更好地理解本技术的技术方案。对于本领域的技术人员来说,其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换。凡在本技术的精神和原则之内,所作的任何修改、等同替换、改进等,均包含在本技术的保护范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1