CN103077204A - 一种栅格数据的统计查询方法和系统 - Google Patents
一种栅格数据的统计查询方法和系统 Download PDFInfo
- Publication number
- CN103077204A CN103077204A CN2012105818898A CN201210581889A CN103077204A CN 103077204 A CN103077204 A CN 103077204A CN 2012105818898 A CN2012105818898 A CN 2012105818898A CN 201210581889 A CN201210581889 A CN 201210581889A CN 103077204 A CN103077204 A CN 103077204A
- Authority
- CN
- China
- Prior art keywords
- statistical query
- record
- solicited message
- statistical
- geometrical boundary
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明实施例公开了一种栅格数据的统计查询方法和系统,以解决背景技术中统计查询操作的速度慢、准确率低的问题。所述方法,包括:接收到客户端发出的统计查询请求信息之后,查询区域表中是否存在与所述统计查询请求信息对应的记录;当不存在时,根据所述统计查询请求信息进行统计查询操作,将统计查询结果发送至所述客户端,并将所述统计查询结果保存到所述区域表;当存在时,将所述记录中的统计查询结果发送至所述客户端。本发明实施例提高了统计查询的速度,也解决了频繁统计查询数据文件造成的统计查询结果准确率的问题,同时也提高了栅格数据文件发生更新时的统计查询效率。
Description
技术领域
本发明实施例涉及统计技术领域,特别是涉及一种栅格数据的统计查询方法和系统。
背景技术
栅格数据结构简单、直观、非常利于计算机的操作和处理,是地理信息系统(Geographic Information System,GIS)常用的空间基础数据格式。基于栅格数据的空间分析是GIS空间分析的基础,统计查询是GIS空间分析模块的重要功能之一,也是GIS应用系统中不可缺少的业务之一,比如在全国人口普查专题工作中,往往需要对某省或某地区进行人口总量的统计,平均人口密度的计算等;在对全国水情监测工作中,往往需要对某地区某年的最大降雨量、最小降雨量进行统计查询等等,类似的实际应用需求非常广泛。当前的GIS应用系统的特点是使用的栅格数据量越来越大,达到Tb级的系统已经非常普遍,甚者达到Pb级别的应用系统也屡见不鲜;同时,用户群体不断增加,当接收到每条统计查询请求时,需要在海量的栅格数据中进行统计查询操作,此时往往各条统计查询请求中存在相同的统计查询请求,对海量的栅格数据进行频繁地统计查询操作,统计查询速度慢、准确率低。
发明内容
本发明实施例公开一种栅格数据的统计查询方法和系统,以解决背景技术中统计查询操作的速度慢、准确率低的问题。
为了解决上述问题,本发明实施例公开了一种栅格数据的统计查询方法,包括:
接收到客户端发出的统计查询请求信息之后,查询区域表中是否存在与所述统计查询请求信息对应的记录;
当不存在时,根据所述统计查询请求信息进行统计查询操作,将统计查询结果发送至所述客户端,并将所述统计查询结果保存到所述区域表;
当存在时,将所述记录中的统计查询结果发送至所述客户端。
优选的,所述统计查询请求信息,包括:几何边界和统计类型;
其中,所述几何边界包括:一般几何边界和特殊几何边界。
优选的,所述根据所述统计查询请求信息进行统计查询操作,包括:
确定与所述几何边界相交的各栅格;
获取所述各栅格的像素值和面积;
计算所述各栅格与所述几何边界相交的面积;
根据Vt=St’/St×N计算得到所述各栅格在所述几何边界中的取值,其中,Vt为所述各栅格在所述几何边界中的取值,St’为所述各栅格与所述几何边界相交的面积,St为各栅格的面积,N为各栅格的像素值;
按照所述统计类型对所述取值进行计算,得到统计查询结果。
优选的,所述区域表包括:一般区域表和特殊区域表;
其中,所述一般区域表中的记录包括:一般几何边界、统计类型和统计值;
所述特殊区域表中的记录包括:特殊几何边界、统计类型、统计值和栅格数据版本。
优选的,所述接收到客户端发出的统计查询请求信息之后,查询区域表中是否存在与所述统计查询请求信息对应的记录,包括:
当所述几何边界为所述一般几何边界时,查询所述一般区域表中是否存在与所述统计查询请求信息对应的记录;
当所述几何边界为所述特殊几何边界时,查询所述特殊区域表中是否存在与所述统计查询请求信息对应的记录。
优选的,所述查询所述一般区域表中是否存在与所述统计查询请求信息对应的记录,包括:
查询所述一般区域表中是否存在记录;
当不存在时,所述一般区域表中不存在与所述统计查询请求信息对应的记录;
当存在时,判断所述记录的一般几何边界是否与所述统计查询请求信息中的一般几何边界相同,判断所述记录的统计类型是否与所述统计查询请求信息中的统计类型相同;当所述记录的一般几何边界与所述统计查询请求信息中的一般几何边界相同,且所述记录的统计类型与所述统计查询请求信息中的统计类型相同时,所述一般区域表中存在与所述统计查询请求信息对应的记录;当所述记录的一般几何边界与所述统计查询请求信息中的一般几何边界不同,或所述记录的统计类型与所述统计查询请求信息中的统计类型不同时,所述一般区域表中不存在与所述统计查询请求信息对应的记录。
优选的,所述查询所述特殊区域表中是否存在与所述统计查询请求信息对应的记录,包括:
查询所述特殊区域表中是否存在记录;
当不存在时,所述特殊区域表中不存在与所述统计查询请求信息对应的记录;
当存在时,判断所述记录的特殊几何边界是否与所述统计查询请求信息中的特殊几何边界相同,判断所述记录的统计类型是否与所述统计查询请求信息中的统计类型相同,判断所述记录的栅格数据版本是否与预先读取的栅格数据文件的版本相同;当所述记录的特殊几何边界与所述统计查询请求信息中的特殊几何边界相同,且所述记录的统计类型与所述统计查询请求信息中的统计类型相同,且所述记录的栅格数据版本与所述预先读取的栅格数据文件的版本相同时,所述特殊区域表中存在与所述统计查询请求信息对应的记录;当所述记录的特殊几何边界与所述统计查询请求信息中的特殊几何边界不同,或所述记录的统计类型与所述统计查询请求信息中的统计类型不同,或所述记录的栅格数据版本与所述预先读取的栅格数据文件的版本不同时,所述特殊区域表中不存在与所述统计查询请求信息对应的记录。
本发明实施例还公开了一种栅格数据的统计查询系统,包括:
记录查询模块,用于接收到客户端发出的统计查询请求信息之后,查询区域表中是否存在与所述统计查询请求信息对应的记录;
统计查询模块,用于当所述区域表中不存在与所述统计查询请求信息对应的记录时,根据所述统计查询请求信息进行统计查询操作,将统计查询结果发送至所述客户端,并将所述统计查询结果保存到所述区域表;当所述区域表中存在与所述统计查询请求信息对应的记录时,将所述记录中的统计查询结果发送至所述客户端。
优选的,所述统计查询请求信息,包括:几何边界和统计类型;
其中,所述几何边界包括:一般几何边界和特殊几何边界。
优选的,所述统计查询模块,包括:
栅格确定子模块,用于确定与所述几何边界相交的各栅格;
栅格获取子模块,用于获取所述各栅格的像素值和面积;
面积计算子模块,用于计算所述各栅格与所述几何边界相交的面积;
取值计算子模块,用于根据Vt=St’/St×N计算得到所述各栅格在所述几何边界中的取值,其中,Vt为所述各栅格在所述几何边界中的取值,St’为所述各栅格与所述几何边界相交的面积,St为各栅格的面积,N为各栅格的像素值;
结果计算子模块,用于按照所述统计类型对所述取值进行计算,得到统计查询结果。
与背景技术相比,本发明实施例包括以下优点:
首先,栅格数据文件中包括区域表,当某个客户端查询某区域的某项统计查询结果时,可以将对应的统计查询结果保存到区域表中;当另一个客户端查询相同区域的相同项统计查询结果时,可以无需再对栅格数据进行查询,直接从区域表中读取之前保存的统计查询结果返回给需要的客户端,提高了统计查询的速度,也解决了频繁统计查询数据文件造成的统计查询结果准确率的问题。
其次,区域表包括一般区域表和特殊区域表,一般区域表中存储对各个客户端有意义的并且几何区域不变的统计查询的结果记录数据(如,各个省、市和县的区域范围内的统计查询结果),而且这些区域范围的数量相对固定。特殊区域表中存储对某个客户端有意义的统计查询的结果记录数据(如,自定义绘制的某一区域的统计查询结果)。当栅格数据文件发生更新时,自动重新计算因数据更新而受影响的那些区域的统计值,并更新一般区域表中相应的记录,使一般区域表中的所有记录的统计值与栅格数据文件保持同步。即使对整个栅格数据文件进行更新,进行重新统计查询操作的次数也是一定的(因为一般区域表中存储的记录数量是相对固定的,大概为几千条),相比背景技术中栅格数据文件发生更新时,每个统计查询请求需要重新计算一次更新后的统计查询结果,提高了栅格数据文件发生更新时的统计查询效率。
附图说明
图1是本发明实施例中一种栅格数据的统计查询方法流程图;
图2是本发明实施例中一种栅格数据的统计查询方法流程图;
图3是本发明实施例中几何边界与栅格的位置关系示意图;
图4是本发明实施例中一种栅格数据的统计查询系统结构图;
图5是本发明实施例中一种栅格数据的统计查询系统结构图。
具体实施方式
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。
本发明实施例公开的一种栅格数据的统计查询方法和系统,为栅格数据文件创建两个对应的数据表,分别为“一般性统计查询区域表”和“特殊性统计查询区域表”。而且栅格数据文件包含版本信息,假设此时栅格数据文件Raster Data.rd的版本为V1,当此栅格数据文件的任意部分发生数据更新时,在更新Raster Data.rd的栅格数据的同时,也更新其版本信息为V2,并记录在栅格数据文件里。
其中,“一般性统计查询区域表”包括“几何边界”属性字段(数据类型为Blob二进制,用来存储几何区域矢量数据)、“统计类型”属性字段(数据类型为string,用来存储统计计算的类型,是统计加和计算还是统计查询最大值或最小值计算)和“统计值”属性字段(数据类型为double型,用来存储统计查询的值)。“一般性统计查询区域表”中存储的是对各个客户端有意义的并且几何区域不变的统计查询的结果记录数据,例如,对描述全国人口的栅格数据进行区域查询时,对各个省、市和县的区域范围内的统计查询结果,存储在“一般性统计查询区域表”里,供以后统计查询时使用,如表1所示。
几何边界(Blob二进制) | 统计类型(string) | 统计值(double) |
安徽省 | 加和 | 65000000 |
江西省 | 平均 | 300 |
山东省 | 最大值 | 700 |
北京市 | 加和 | 25000000 |
密云县 | 平均 | 240 |
丰台区 | 平均 | 200 |
丰台区 | 加和 | 2100000 |
表1
表1中,几何边界区域范围有省、市和县,这些行政区域对每个客户端都保持不变并且具有统计意义。虽然每个客户端也许不需要对表1中所有的区域进行统计查询。但当有大量的客户端进行省、市和县区域的统计查询请求时,该表的作用就显的非常重要了,可以大大提高对客户端的一般性区域的统计查询请求处理效率。
在实际项目中,可以根据实际情况,确定是否需要对乡镇级别或更小的村级区域的统计查询结果进行存储。
“特殊性统计查询区域表”中的属性字段及数据类型如表2所示。
表2
“特殊性统计查询区域表”中存储的是对某个客户端有意义的统计查询的结果记录数据。例如,对描述全国人口的栅格数据进行区域查询时,来自某地的客户端需要统计查询大兴安岭地区或者自己手工绘制的某一区域的人口总量,那么,在接受并处理完此请求后,在“特殊性统计查询区域表”中存储此区域的统计查询结果记录数据,此统计查询结果记录数据包括该统计查询结果是根据当前栅格数据文件的哪个版本进行计算得来的。“特殊性统计查询区域表”的作用是可以有效的提高客户端频繁的对自定义区域进行统计查询的效率。如果该表的几何边界数据具有共用性,例如,该表中存储着代表某经济开发区的几何边界,可能会有多个客户端都需要对此区域进行统计查询,那么在再次统计查询该经济开发区的某项统计类型统计值时,可以从该表中直接读取,不需重复计算,能够提高统计查询请求的处理效率。
下面通过列举几个具体的实施例详细介绍本发明公开的一种栅格数据的统计查询方法和系统。
实施例一
详细介绍本发明实施例公开的一种栅格数据的统计查询方法。
参照图1,示出了本发明实施例中一种栅格数据的统计查询方法流程图。
步骤100,接收到客户端发出的统计查询请求信息之后,查询区域表中是否存在与所述统计查询请求信息对应的记录。
例如,某客户端发出统计查询北京市人口总密度的统计查询请求信息,在接收到该信息后,在区域表中查询是否存在北京市人口总密度的记录。
步骤102,当不存在时,根据所述统计查询请求信息进行统计查询操作,将统计查询结果发送至所述客户端,并将所述统计查询结果保存到所述区域表。
例如,如果步骤100查询后确定区域表中不存在北京市人口总密度的记录,则可以在栅格数据文件中统计查询北京市人口总密度,将统计查询后的北京市人口总密度发送至客户端,并将北京市人口总密度保存到区域表中。
步骤104,当存在时,将所述记录中的统计查询结果发送至所述客户端。
例如,如果步骤100查询后确定区域表中存在北京市人口总密度的记录,则将该记录中的统计查询结果,即北京市人口总密度值,直接发送至客户端。
综上所述,本发明实施例公开的一种栅格数据的统计查询方法,与背景技术相比,具有以下优点:
栅格数据文件中包括区域表,当某个客户端查询某区域的某项统计查询结果时,可以将对应的统计查询结果保存到区域表中;当另一个客户端查询相同区域的相同项统计查询结果时,可以无需再对栅格数据进行查询,直接从区域表中读取之前保存的统计查询结果返回给需要的客户端,提高了统计查询的速度,也解决了频繁统计查询数据文件造成的统计查询结果准确率的问题。
实施例二
详细介绍本发明实施例公开的一种栅格数据的统计查询方法。
参照图2,示出了本发明实施例中一种栅格数据的统计查询方法流程图。
步骤200,接收到客户端发出的统计查询请求信息之前,创建区域表。
所述统计查询请求信息,具体可以包括:几何边界和统计类型;
其中,所述几何边界具体可以包括:一般几何边界和特殊几何边界。
所述区域表具体可以包括:一般区域表和特殊区域表。
其中,所述一般区域表中的记录具体可以包括:一般几何边界、统计类型和统计值。
所述特殊区域表中的记录具体可以包括:特殊几何边界、统计类型、统计值和栅格数据版本。
例如,在接收到客户端发出的统计查询请求信息之前,对栅格数据文件Raster Data.rd创建2个空的区域表,分别为名称为“一般性统计查询区域表”的一般区域表Common Area Table和名称为“特殊性统计查询区域表”的特殊区域表Special Area Table,此时这2个区域表里没有任何记录。
步骤202,接收到客户端发出的统计查询请求信息之后,查询区域表中是否存在与所述统计查询请求信息对应的记录。
所述步骤202,具体可以分为两种情况:
(一)当所述几何边界为所述一般几何边界时,查询所述一般区域表中是否存在与所述统计查询请求信息对应的记录。
具体地,查询所述一般区域表中是否存在记录。
当不存在时,所述一般区域表中不存在与所述统计查询请求信息对应的记录。
当存在时,判断所述记录的一般几何边界是否与所述统计查询请求信息中的一般几何边界相同,判断所述记录的统计类型是否与所述统计查询请求信息中的统计类型相同;当所述记录的一般几何边界与所述统计查询请求信息中的一般几何边界相同,且所述记录的统计类型与所述统计查询请求信息中的统计类型相同时,所述一般区域表中存在与所述统计查询请求信息对应的记录;当所述记录的一般几何边界与所述统计查询请求信息中的一般几何边界不同,或所述记录的统计类型与所述统计查询请求信息中的统计类型不同时,所述一般区域表中不存在与所述统计查询请求信息对应的记录。
例如,接收到客户端C1发出的对几何区域“A”为某省(或某市县)的统计加和查询请求信息后,在一般区域表Common Area Table里查询是否存在几何边界属性字段值为“A”,并且统计类型属性字段值为“加和”的记录。如果此时一般区域表Common Area Table是空表,则没有查询到对应的记录。在一般区域表Common Area Table里查询到已经存在一条记录,该记录的几何边界与区域“A”一致,并且统计类型值也是“加和”,则一般区域表中存在对应的记录。
(二)当所述几何边界为所述特殊几何边界时,查询所述特殊区域表中是否存在与所述统计查询请求信息对应的记录。
具体地,查询所述特殊区域表中是否存在记录。
当不存在时,所述特殊区域表中不存在与所述统计查询请求信息对应的记录。
当存在时,判断所述记录的特殊几何边界是否与所述统计查询请求信息中的特殊几何边界相同,判断所述记录的统计类型是否与所述统计查询请求信息中的统计类型相同,判断所述记录的栅格数据版本是否与预先读取的栅格数据文件的版本相同;当所述记录的特殊几何边界与所述统计查询请求信息中的特殊几何边界相同,且所述记录的统计类型与所述统计查询请求信息中的统计类型相同,且所述记录的栅格数据版本与所述预先读取的栅格数据文件的版本相同时,所述特殊区域表中存在与所述统计查询请求信息对应的记录;当所述记录的特殊几何边界与所述统计查询请求信息中的特殊几何边界不同,或所述记录的统计类型与所述统计查询请求信息中的统计类型不同,或所述记录的栅格数据版本与所述预先读取的栅格数据文件的版本不同时,所述特殊区域表中不存在与所述统计查询请求信息对应的记录。
例如,一客户端C4发出对几何区域“B”(不属于确定不变的省市县的几何边界区域)的统计加和查询请求。此时栅格数据文件Raster Data.rd的版本号为vx。在特殊区域表Special Area Table里查询是否存在几何边界字段值为“B”,统计类型字段值为“加和”的记录。
如果查询到存在几何边界字段值为“B”,统计类型字段值为“加和”的记录,则进一步读取此记录的栅格数据版本属性字段值v,如果v=vx,则特殊区域表Special Area Table里存在对应的记录。如果查询到存在一条或多条记录,但是该一条或多条记录的几何边界字段值不为“B”,或者统计类型字段值不为“加和”,又或者栅格数据版本属性字段值不为vx,则特殊区域表Special Area Table里不存在对应的记录。
步骤204,当不存在时,根据所述统计查询请求信息进行统计查询操作,将统计查询结果发送至所述客户端,并将所述统计查询结果保存到所述区域表。
例如,接收到客户端C1发出的对几何区域“A”为某省(或某市县)的统计加和查询请求信息后,在一般区域表Common Area Table里查询是否存在几何边界属性字段值为“A”,并且统计类型属性字段值为“加和”的记录。如果此时一般区域表Common Area Table是空表,则没有查询到对应的记录,那么可以根据栅格数据文件Raster Data.rd对几何区域“A”进行统计加和计算,得到计算结果为v。接下来将几何区域“A”的统计加和查询结果添加到一般区域表Common Area Table里。其中,几何边界字段值为几何区域“A”的二进制数据,统计类型字段值为“加和”,统计值字段值为v。同时,将此统计查询结果v返回给客户端C1,完成此客户端C1的统计查询请求处理。
如果另外一客户端C2也发出对几何区域“A”为某省(或某市县)的统计加和查询请求。在一般区域表Common Area Table里查询到已经存在一条记录,该记录的几何边界与区域“A”一致,并且统计类型值也相同,则直接读出此记录的统计值结果(不需要再进行实时的统计查询计算)返回给该客户端C2,完成此客户端C2的统计查询请求处理。
如果一客户端C3发出对几何区域“A”为某省(或某市县)的统计平均查询请求。在一般区域表Common Area Table里进行查询,虽然存在一条记录的几何边界与区域“A”一致,但是该条记录的统计类型值不为“平均”,所以,根据栅格数据文件Raster Data.rd对几何区域“A”进行统计平均计算,得到计算结果为v2,将几何区域“A”的统计查询结果添加到一般区域表Common Area Table里。其中,几何边界字段值为几何区域“A”的二进制数据,统计类型字段值为“平均”,统计值字段值为v2。同时,将此统计查询结果v2返回给客户端C3,完成此客户端C3的统计查询请求处理。
如果一客户端C4发出对几何区域“B”(不属于确定不变的省市县的几何边界区域)的统计加和查询请求。此时栅格数据文件Raster Data.rd的版本号为vx。在特殊区域表Special Area Table里查询是否存在几何边界字段值为“B”,统计类型字段值为“加和”的记录。
如果查询到存在几何边界字段值为“B”,统计类型字段值为“加和”的记录,则进一步读取此记录的栅格数据版本属性字段值v,如果v=vx,则读取此结果记录的统计值属性字段值返回给客户端C4,完成此客户端C4的统计查询请求处理。如果v!=vx,则说明此几何区域“B”对旧版本的栅格数据文件Raster Data.rd进行过统计加和计算,而当前的栅格数据文件Raster Data.rd已经为新版本,所以,需要用几何区域“B”对新版本的栅格数据文件Raster Data.rd重新进行统计加和计算,得到计算的结果为vN,将此条记录的统计值属性字段值更新为vN,同时将栅格数据版本字段值更新为vx。将结果vN值返回给客户端C4,完成此客户端C4的统计查询请求处理。
如果没有查询到记录,则用几何区域“B”对栅格数据文件Raster Data.rd进行统计加和计算,得到计算结果为vN,在特殊区域表Special Area Table里添加一条记录,添加的记录的几何边界字段值为“B”,统计类型字段值为“加和”,统计值字段值为vN,栅格数据版本字段值为vx。
所述步骤204中,根据所述统计查询请求信息进行统计查询操作,具体可以包括:
子步骤2041,确定与所述几何边界相交的各栅格。
所述几何边界必须是封闭的,即是环形几何边界,环形几何边界中可以套有更小的环形,也可以不套有更小的环形。
所述相交具体可以包括两种情况:一是整个栅格位于几何边界内,另一是部分栅格位于几何边界内。
子步骤2042,获取所述各栅格的像素值和面积。
子步骤2043,计算所述各栅格与所述几何边界相交的面积。
子步骤2044,根据Vt=St’/St×N计算得到所述各栅格在所述几何边界中的取值。
其中,Vt为所述各栅格在所述几何边界中的取值,St’为所述各栅格与所述几何边界相交的面积,St为各栅格的面积,N为各栅格的像素值。
子步骤2045,按照所述统计类型对所述取值进行计算,得到统计查询结果。
例如,统计查询如图3所示的几何边界A的某项统计类型结果,其中几何边界A的面积为S1-S2,几何边界A与栅格b、c、f、g、h、j、k、l、n、o和p相交。栅格b、c、f、g、h、j、k、l、n、o和p的像素值分别为B、C、F、G、H、J、K、L、N、O和P。栅格b、c、f、g、h、j、k、l、n、o和p的面积分别为Sn、Sc、Sf、Sg、Sh、Sj、Sk、Sl、Sn、So和Sp。栅格b、c、f、g、h、j、k、l、n、o和p与几何边界A相交的面积分别为Sn’、Sc’、Sf’、Sg’、Sh’、Sj’、Sk’、Sl’、Sn’、So’和Sp’。根据Vt=St’/St×N分别计算得到对应各栅格的Vb、Vc、Vf、Vg、Vh、Vj、Vk、Vl、Vn、Vo、和Vp。
若对栅格数据文件进行统计加和查询时,则统计查询结果为V1=(Vb+Vc+Vf+Vg+Vh+Vj+Vk+Vl+Vn+Vo+Vp),对应实际项目应用可以为查询该区域A的总人口密度;若对栅格数据文件进行统计均值查询时,则统计查询结果为V2=V1/(S1-S2),对应实际项目应用可以为查询该区域A的平均人口密度;若对栅格数据文件进行统计最大值查询时,则统计查询结果为V3=Max{Vb,Vc,Vf,Vg,Vh,Vj,Vk,Vl,Vn,Vo,Vp},对应实际项目应用可以为查询该区域A的最大的人口密度;同样,若对栅格数据文件进行统计最小值查询时,则统计查询结果为V4=Min{Vb,Vc,Vf,Vg,Vh,Vj,Vk,Vl,Vn,Vo,Vp},对应实际项目应用可以为查询该区域A的最低的人口密度。
在实际项目中,进行统计查询计算的最常用的就是上述4种统计查询方法,当然,也可以对其他的统计查询需求进行相应的计算。
步骤206,当存在时,将所述记录中的统计查询结果发送至所述客户端。
如果一般性统计查询区域表中存在与客户端发来的统计查询请求信息对应的记录,或者特殊性统计查询区域表中存在与客户端发来的统计查询请求信息对应的记录,将所述对应的记录中的统计查询结果发送至客户端。
在优选的本发明实施例中,当栅格数据文件发生更新时(无论是来自客户端的更新栅格数据文件的请求,还是在数据服务器端进行的数据维护而需要更新栅格数据文件),都需要在修改栅格数据文件的同时,对该栅格数据文件的“一般性统计查询区域表”里的相应的记录进行重新计算并存储,“特殊性统计查询区域表”里的记录不需要做处理。
由于栅格数据文件描述的地理空间范围很大,在进行数据更新时,往往是部分数据的更新,假设更新的数据区域为C(C可以是整个栅格数据文件的区域,此时C为一个标准的矩形)。“一般性统计查询区域表”的具体更新过程可以为:对“一般性统计查询区域表”里“几何边界”属性值与区域C相交不为空的记录(即这些记录的几何区域都受到数据更新的影响,数据更新将导致更新后的统计查询结果值变更,所以在栅格数据文件更新后需要重新计算对应记录中几何边界的统计值;而与C不相交的那些记录,栅格数据文件更新对其统计值无影响,所以不需要重新统计查询计算),按记录的“几何边界”对更新后的栅格数据重新进行统计查询计算,得到新的统计查询结果值,更新此记录的原始统计值。
栅格数据文件更新,在具体应用中由客户端或服务器端引发,其最终结果都是改写服务器上的栅格数据文件。以一描述全国范围的人口数量的栅格数据文件People.rd为例,该栅格数据文件的精度为25米,栅格象素存储人口数量。假设实际应用中一般几何边界为各省区域。为了支持高效的统计查询,对此栅格数据文件建立一般性统计查询区域表,该表里有全国各省的人口统计信息,对安徽省,计算出并存储如下的统计信息:
安徽省(几何边界),加和(统计类型),50000000(统计值)
安徽省(几何边界),平均(统计类型),1300(统计值)
假设由于安徽省重新进行了人口普查工作,在得到新的人口数据后,需要更新现有的栅格数据文件People.rd中的数据,更新后,安徽省的原始统计值已经不准确,因此,需要重新对安徽省的一般性统计查询区域表中的“加和”与“平均”统计类型的统计值进行重新计算,假设重新计算后得到的统计值分别为51000000与1302,则更新一般性统计查询区域表里的记录为:
安徽省(几何边界),加和(统计类型),51000000(统计值)
安徽省(几何边界),平均(统计类型),1302(统计值)
这样,才能保证栅格数据文件People.rd与一般性统计查询区域表里的统计查询数据保持一致。相反,如果更新了栅格数据文件而未更新一般性统计查询区域表里的数据,那么以后客户端查询出的安徽省的人口统计信息数据肯定不正确。
当然,也可以对自定义的一个区域进行栅格数据更新,例如调查在安徽省内的一个经济开发区人口情况后,然后更新栅格数据文件People.rd,此时,由于数据更新的区域是自定义区域,则将与栅格数据文件People.rd对应一般性统计查询区域表里的所有记录(全国各个省的统计记录)的几何边界与此自定义区域交集非空的记录进行重新统计查询计算,因为此自定义区域是安徽省内的区域,所以更新一般性统计查询区域表后,对于安徽省的统计数据为:
安徽省(几何边界),加和(统计类型),50800000(统计值)
安徽省(几何边界),平均(统计类型),1292(统计值)
假如数据更新的自定义区域部分在安徽省,部分在江西省,则在更新栅格数据文件后需要重新计算安徽省的对应记录和江西省的对应记录,并更新一般性统计查询区域表中的对应记录。
综上所述,本发明实施例公开的一种栅格数据的统计查询方法,与背景技术相比,具有以下优点:
首先,栅格数据文件中包括区域表,当某个客户端查询某区域的某项统计查询结果时,可以将对应的统计查询结果保存到区域表中;当另一个客户端查询相同区域的相同项统计查询结果时,可以无需再对栅格数据进行查询,直接从区域表中读取之前保存的统计查询结果返回给需要的客户端,提高了统计查询的速度,也解决了频繁统计查询数据文件造成的统计查询结果准确率的问题。
其次,区域表包括一般区域表和特殊区域表,一般区域表中存储对各个客户端有意义的并且几何区域不变的统计查询的结果记录数据(如,各个省、市和县的区域范围内的统计查询结果),而且这些区域范围的数量相对固定。特殊区域表中存储对某个客户端有意义的统计查询的结果记录数据(如,自定义绘制的某一区域的统计查询结果)。当栅格数据文件发生更新时,自动重新计算因数据更新而受影响的那些区域的统计值,并更新一般区域表中相应的记录,使一般区域表中的所有记录的统计值与栅格数据文件保持同步。即使对整个栅格数据文件进行更新,进行重新统计查询操作的次数也是一定的(因为一般区域表中存储的记录数量是相对固定的,大概为几千条),相比背景技术中栅格数据文件发生更新时,每个统计查询请求需要重新计算一次更新后的统计查询结果,提高了栅格数据文件发生更新时的统计查询效率。
实施例三
详细介绍本发明实施例公开的一种栅格数据的统计查询系统。
参照图4,示出了本发明实施例中一种栅格数据的统计查询系统结构图。
所述一种栅格数据的统计查询系统,具体可以包括:
记录查询模块30,以及,统计查询模块32。
下面分别详细介绍各模块的功能以及各模块之间的关系。
记录查询模块30,用于接收到客户端发出的统计查询请求信息之后,查询区域表中是否存在与所述统计查询请求信息对应的记录。
例如,某客户端发出统计查询北京市人口总密度的统计查询请求信息,所述记录查询模块30在接收到该信息后,在区域表中查询是否存在北京市人口总密度的记录。
统计查询模块32,用于当所述区域表中不存在与所述统计查询请求信息对应的记录时,根据所述统计查询请求信息进行统计查询操作,将统计查询结果发送至所述客户端,并将所述统计查询结果保存到所述区域表;当所述区域表中存在与所述统计查询请求信息对应的记录时,将所述记录中的统计查询结果发送至所述客户端。
例如,如果所述记录查询模块30查询后确定区域表中不存在北京市人口总密度的记录,则所述统计查询模块32可以在栅格数据文件中统计查询北京市人口总密度,将统计查询后的北京市人口总密度发送至客户端,并将北京市人口总密度保存到区域表中。如果所述记录查询模块30查询后确定区域表中存在北京市人口总密度的记录,则所述统计查询模块32将该记录中的统计查询结果,即北京市人口总密度值,直接发送至客户端。
综上所述,本发明实施例公开的一种栅格数据的统计查询系统,与背景技术相比,具有以下优点:
栅格数据文件中包括区域表,当某个客户端查询某区域的某项统计查询结果时,可以将对应的统计查询结果保存到区域表中;当另一个客户端查询相同区域的相同项统计查询结果时,可以无需再对栅格数据进行查询,直接从区域表中读取之前保存的统计查询结果返回给需要的客户端,提高了统计查询的速度,也解决了频繁统计查询数据文件造成的统计查询结果准确率的问题。
实施例四
详细介绍本发明实施例公开的一种栅格数据的统计查询系统。
参照图5,示出了本发明实施例中一种栅格数据的统计查询系统结构图。
所述一种栅格数据的统计查询系统,具体可以包括:
记录查询模块40,以及,统计查询模块42。
其中,所述统计查询模块42,具体可以包括:
栅格确定子模块421,栅格获取子模块422,面积计算子模块423,取值计算子模块424,以及,结果计算子模块425。
下面分别详细介绍各模块、各子模块的功能以及之间的关系。
记录查询模块40,用于接收到客户端发出的统计查询请求信息之后,查询区域表中是否存在与所述统计查询请求信息对应的记录。
所述统计查询请求信息,具体可以包括:几何边界和统计类型。
其中,所述几何边界具体可以包括:一般几何边界和特殊几何边界。
所述区域表具体可以包括:一般区域表和特殊区域表。
其中,所述一般区域表中的记录具体可以包括:一般几何边界、统计类型和统计值。
所述特殊区域表中的记录具体可以包括:特殊几何边界、统计类型、统计值和栅格数据版本。
统计查询模块42,用于当所述区域表中不存在与所述统计查询请求信息对应的记录时,根据所述统计查询请求信息进行统计查询操作,将统计查询结果发送至所述客户端,并将所述统计查询结果保存到所述区域表;当所述区域表中存在与所述统计查询请求信息对应的记录时,将所述记录中的统计查询结果发送至所述客户端。
所述统计查询模块42,具体可以包括:
栅格确定子模块421,用于确定与所述几何边界相交的各栅格。
所述几何边界必须是封闭的,即是环形几何边界,环形几何边界中可以套有更小的环形,也可以不套有更小的环形。
所述相交具体可以包括两种情况:一是整个栅格位于几何边界内,另一是部分栅格位于几何边界内。
栅格获取子模块422,用于获取所述各栅格的像素值和面积。
例如,栅格b与几何边界A相交,所述栅格获取子模块422可以获取栅格b的像素值B和栅格b的面积Sb。
面积计算子模块423,用于计算所述各栅格与所述几何边界相交的面积。
例如,所述面积计算子模块423可以计算得到栅格b与几个边界A相交的面积为Sb’。
取值计算子模块424,用于根据Vt=St’/St×N计算得到所述各栅格在所述几何边界中的取值。
其中,Vt为所述各栅格在所述几何边界中的取值,St’为所述各栅格与所述几何边界相交的面积,St为各栅格的面积,N为各栅格的像素值。
所述取值计算子模块424根据Vt=St’/St×N计算得到栅格b在几个边界A中的取值Vb=Sb’/Sb×B。
结果计算子模块425,用于按照所述统计类型对所述取值进行计算,得到统计查询结果。
如果需要统计查询几何边界A的平均密度,则所述结果计算子模块425可以将Vb与几何边界A的面积相除,得到几何边界A的平均密度值。
综上所述,本发明实施例公开的一种栅格数据的统计查询系统,与背景技术相比,具有以下优点:
首先,栅格数据文件中包括区域表,当某个客户端查询某区域的某项统计查询结果时,可以将对应的统计查询结果保存到区域表中;当另一个客户端查询相同区域的相同项统计查询结果时,可以无需再对栅格数据进行查询,直接从区域表中读取之前保存的统计查询结果返回给需要的客户端,提高了统计查询的速度,也解决了频繁统计查询数据文件造成的统计查询结果准确率的问题。
其次,区域表包括一般区域表和特殊区域表,一般区域表中存储对各个客户端有意义的并且几何区域不变的统计查询的结果记录数据(如,各个省、市和县的区域范围内的统计查询结果),而且这些区域范围的数量相对固定。特殊区域表中存储对某个客户端有意义的统计查询的结果记录数据(如,自定义绘制的某一区域的统计查询结果)。当栅格数据文件发生更新时,自动重新计算因数据更新而受影响的那些区域的统计值,并更新一般区域表中相应的记录,使一般区域表中的所有记录的统计值与栅格数据文件保持同步。即使对整个栅格数据文件进行更新,进行重新统计查询操作的次数也是一定的(因为一般区域表中存储的记录数量是相对固定的,大概为几千条),相比背景技术中栅格数据文件发生更新时,每个统计查询请求需要重新计算一次更新后的统计查询结果,提高了栅格数据文件发生更新时的统计查询效率。
对于系统实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
以上对本发明实施例所公开的一种栅格数据的统计查询方法和系统,进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
Claims (10)
1.一种栅格数据的统计查询方法,其特征在于,包括:
接收到客户端发出的统计查询请求信息之后,查询区域表中是否存在与所述统计查询请求信息对应的记录;
当不存在时,根据所述统计查询请求信息进行统计查询操作,将统计查询结果发送至所述客户端,并将所述统计查询结果保存到所述区域表;
当存在时,将所述记录中的统计查询结果发送至所述客户端。
2.根据权利要求1所述的方法,其特征在于,所述统计查询请求信息,包括:几何边界和统计类型;
其中,所述几何边界包括:一般几何边界和特殊几何边界。
3.根据权利要求2所述的方法,其特征在于,所述根据所述统计查询请求信息进行统计查询操作,包括:
确定与所述几何边界相交的各栅格;
获取所述各栅格的像素值和面积;
计算所述各栅格与所述几何边界相交的面积;
根据Vt=St’/St×N计算得到所述各栅格在所述几何边界中的取值,其中,Vt为所述各栅格在所述几何边界中的取值,St’为所述各栅格与所述几何边界相交的面积,St为各栅格的面积,N为各栅格的像素值;
按照所述统计类型对所述取值进行计算,得到统计查询结果。
4.根据权利要求2所述的方法,其特征在于,所述区域表包括:一般区域表和特殊区域表;
其中,所述一般区域表中的记录包括:一般几何边界、统计类型和统计值;
所述特殊区域表中的记录包括:特殊几何边界、统计类型、统计值和栅格数据版本。
5.根据权利要求4所述的方法,其特征在于,所述接收到客户端发出的统计查询请求信息之后,查询区域表中是否存在与所述统计查询请求信息对应的记录,包括:
当所述几何边界为所述一般几何边界时,查询所述一般区域表中是否存在与所述统计查询请求信息对应的记录;
当所述几何边界为所述特殊几何边界时,查询所述特殊区域表中是否存在与所述统计查询请求信息对应的记录。
6.根据权利要求5所述的方法,其特征在于,所述查询所述一般区域表中是否存在与所述统计查询请求信息对应的记录,包括:
查询所述一般区域表中是否存在记录;
当不存在时,所述一般区域表中不存在与所述统计查询请求信息对应的记录;
当存在时,判断所述记录的一般几何边界是否与所述统计查询请求信息中的一般几何边界相同,判断所述记录的统计类型是否与所述统计查询请求信息中的统计类型相同;当所述记录的一般几何边界与所述统计查询请求信息中的一般几何边界相同,且所述记录的统计类型与所述统计查询请求信息中的统计类型相同时,所述一般区域表中存在与所述统计查询请求信息对应的记录;当所述记录的一般几何边界与所述统计查询请求信息中的一般几何边界不同,或所述记录的统计类型与所述统计查询请求信息中的统计类型不同时,所述一般区域表中不存在与所述统计查询请求信息对应的记录。
7.根据权利要求5所述的方法,其特征在于,所述查询所述特殊区域表中是否存在与所述统计查询请求信息对应的记录,包括:
查询所述特殊区域表中是否存在记录;
当不存在时,所述特殊区域表中不存在与所述统计查询请求信息对应的记录;
当存在时,判断所述记录的特殊几何边界是否与所述统计查询请求信息中的特殊几何边界相同,判断所述记录的统计类型是否与所述统计查询请求信息中的统计类型相同,判断所述记录的栅格数据版本是否与预先读取的栅格数据文件的版本相同;当所述记录的特殊几何边界与所述统计查询请求信息中的特殊几何边界相同,且所述记录的统计类型与所述统计查询请求信息中的统计类型相同,且所述记录的栅格数据版本与所述预先读取的栅格数据文件的版本相同时,所述特殊区域表中存在与所述统计查询请求信息对应的记录;当所述记录的特殊几何边界与所述统计查询请求信息中的特殊几何边界不同,或所述记录的统计类型与所述统计查询请求信息中的统计类型不同,或所述记录的栅格数据版本与所述预先读取的栅格数据文件的版本不同时,所述特殊区域表中不存在与所述统计查询请求信息对应的记录。
8.一种栅格数据的统计查询系统,其特征在于,包括:
记录查询模块,用于接收到客户端发出的统计查询请求信息之后,查询区域表中是否存在与所述统计查询请求信息对应的记录;
统计查询模块,用于当所述区域表中不存在与所述统计查询请求信息对应的记录时,根据所述统计查询请求信息进行统计查询操作,将统计查询结果发送至所述客户端,并将所述统计查询结果保存到所述区域表;当所述区域表中存在与所述统计查询请求信息对应的记录时,将所述记录中的统计查询结果发送至所述客户端。
9.根据权利要求8所述的系统,其特征在于,所述统计查询请求信息,包括:几何边界和统计类型;
其中,所述几何边界包括:一般几何边界和特殊几何边界。
10.根据权利要求9所述的系统,其特征在于,所述统计查询模块,包括:
栅格确定子模块,用于确定与所述几何边界相交的各栅格;
栅格获取子模块,用于获取所述各栅格的像素值和面积;
面积计算子模块,用于计算所述各栅格与所述几何边界相交的面积;
取值计算子模块,用于根据Vt=St’/St×N计算得到所述各栅格在所述几何边界中的取值,其中,Vt为所述各栅格在所述几何边界中的取值,St’为所述各栅格与所述几何边界相交的面积,St为各栅格的面积,N为各栅格的像素值;
结果计算子模块,用于按照所述统计类型对所述取值进行计算,得到统计查询结果。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210581889.8A CN103077204B (zh) | 2012-12-27 | 2012-12-27 | 一种栅格数据的统计查询方法和系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210581889.8A CN103077204B (zh) | 2012-12-27 | 2012-12-27 | 一种栅格数据的统计查询方法和系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103077204A true CN103077204A (zh) | 2013-05-01 |
CN103077204B CN103077204B (zh) | 2016-01-20 |
Family
ID=48153734
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210581889.8A Active CN103077204B (zh) | 2012-12-27 | 2012-12-27 | 一种栅格数据的统计查询方法和系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103077204B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2016110121A1 (zh) * | 2015-01-05 | 2016-07-14 | 华为技术有限公司 | 数据栅格化、用户行为分析的方法和装置 |
CN110298778A (zh) * | 2019-06-10 | 2019-10-01 | 东南大学 | 一种基于栅格数据和面积比修正的交通小区人口统计方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1534520A (zh) * | 2003-03-28 | 2004-10-06 | 微软公司 | 对数据库结果及推导目标进行高速缓存和无效的系统和方法 |
JP2006215608A (ja) * | 2005-02-01 | 2006-08-17 | Metocean Environment Inc | 森林性猛禽類の営巣適地の解析方法、システム及びプログラム |
CN101286210A (zh) * | 2007-04-11 | 2008-10-15 | 中国科学院地理科学与资源研究所 | 一种人口空间分布数值模拟系统 |
-
2012
- 2012-12-27 CN CN201210581889.8A patent/CN103077204B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1534520A (zh) * | 2003-03-28 | 2004-10-06 | 微软公司 | 对数据库结果及推导目标进行高速缓存和无效的系统和方法 |
JP2006215608A (ja) * | 2005-02-01 | 2006-08-17 | Metocean Environment Inc | 森林性猛禽類の営巣適地の解析方法、システム及びプログラム |
CN101286210A (zh) * | 2007-04-11 | 2008-10-15 | 中国科学院地理科学与资源研究所 | 一种人口空间分布数值模拟系统 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2016110121A1 (zh) * | 2015-01-05 | 2016-07-14 | 华为技术有限公司 | 数据栅格化、用户行为分析的方法和装置 |
CN110298778A (zh) * | 2019-06-10 | 2019-10-01 | 东南大学 | 一种基于栅格数据和面积比修正的交通小区人口统计方法 |
CN110298778B (zh) * | 2019-06-10 | 2022-12-27 | 东南大学 | 一种基于栅格数据和面积比修正的交通小区人口统计方法 |
Also Published As
Publication number | Publication date |
---|---|
CN103077204B (zh) | 2016-01-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11874855B2 (en) | Parallel data access method and system for massive remote-sensing images | |
US20220067117A1 (en) | System and method for linking data records for parcels | |
WO2023040883A1 (zh) | 区域识别方法和装置 | |
CN110168529A (zh) | 数据存储方法、装置和存储介质 | |
US20190228337A1 (en) | Method and apparatus for acquiring information | |
CN101976534B (zh) | 电子地图生成的方法及装置 | |
CN107977396B (zh) | 一种KeyValue数据库的数据表的更新方法与表数据更新装置 | |
CN104850641A (zh) | 一种推荐信息的方法及装置 | |
US10838988B2 (en) | System and method for efficient geospatial indexing | |
Kong et al. | A center-based modeling approach to solve the districting problem | |
CN104933173A (zh) | 一种用于异构多数据源的数据处理方法、装置和服务器 | |
CN104850627A (zh) | 进行分页展示的方法及装置 | |
CN117033366B (zh) | 基于知识图谱的泛在时空数据交叉验证方法及装置 | |
US20170118286A1 (en) | Non-transitory computer-readable storage medium, exclusive switching method and exclusive switching apparatus | |
CN112214561A (zh) | 地图数据处理方法、装置、计算机设备及存储介质 | |
Wu et al. | Novel parallel algorithm for constructing Delaunay triangulation based on a twofold-divide-and-conquer scheme | |
CN104765782A (zh) | 一种索引排序更新方法及装置 | |
Neun et al. | Web service approaches for providing enriched data structures to generalisation operators | |
CN103077204A (zh) | 一种栅格数据的统计查询方法和系统 | |
CN110134721A (zh) | 基于位图的数据统计方法、装置及电子设备 | |
Glake et al. | Data management in multi-agent simulation systems | |
CN110555448A (zh) | 一种细分派件区域的方法和系统 | |
Ruiz-Lendínez et al. | Method for an automatic alignment of imagery and vector data applied to cadastral information in Poland | |
CN105023089A (zh) | 基于gis平台的城市管理数据监测系统及其方法 | |
CN108959324B (zh) | 多媒体展示资源库存量的预估方法、装置及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |