本发明专利技术提供了一种栅格数据读取处理方法和装置,涉空间信息服务技术领域。所述方法包括:预先在服务器中将缓存分配为N个用于存储N个栅格块数据的缓存栅格块,针对所述N个缓存栅格块,建立内存数据库并生成相应的内存记录表,所述内存记录表用于记录各个缓存栅格块的使用信息;然后,接收客户端的栅格数据读取请求;在所述内存记录表中查询是否存在请求的栅格块数据;如果存在,则从缓存栅格块中读出栅格块数据返回给客户端;如果不存在,则从磁盘中提取相应栅格块数据存入空的缓存栅格块或替换进入一缓存栅格块,并更新所述内存记录并将栅格块数据返回给客户端。本发明专利技术大大提高了栅格数据的处理效率,节省了系统资源。
【技术实现步骤摘要】
本专利技术涉空间信息服务
,特别是涉及一种栅格数据读取处理方法和装置。
技术介绍
基于栅格模型的数据结构简称为栅格数据结构,是指将空间分割成有规则的网格,成为栅格数据块,在各个栅格数据块上给出相应的属性值来表示地理实体的一种数据组织形式。栅格数据结构因为相对简单,而且空间分析和地理现象的模拟比较容易,有利于遥感数据的匹配应用和分析,输出方法快速,且成本比较低廉,因此被广泛应用于地理信息系统(Geographiclnformation System, GIS)中。 但是,在地理信息系统的应用中,经常需要频繁的读写处理栅格数据,而栅格数据结构的图形数据量大、冗余度高,在进行数据读写时需要耗费大量的时间,对于频繁读写来说,效率会进一步地降低。因为栅格数据结构的图形数据量大,会占用系统较多的空间,一般来说这些数据都是存储在硬盘中,当系统需要时,在从硬盘的文件中进行I/o操作来实现数据的读写,并且在磁盘中是通过处理磁盘数据库文件的方式获取数据。而频繁的读写,无疑舍增加I/o操作的次数,占用大量系统资源,降低系统的反应速度,并且磁盘的数据库文件的处理方式效率也不高。参照图1,其为栅格数据的应用环境假设数据服务器上有一系列栅格数据文件,分别为filel. rd, file2. rd, , fileN. rd ;每个栅格文件数据结构中又包含一系列栅格块数据;栅格块数据是每个客户请求栅格数据的基本单位;每个栅格块数据是由m*n个象素组成;对于大型的数据服务器,栅格数据文件可达上万个乃至更多;同时又有大量的远程客户端进行栅格数据文件访问请求,比如图I中,Clientl:请求filel. rd中第1,3,7块数据,...,ClientX:请求 fileX. rd 中第 m, n, s 块数据...,ClientZ:请求 fileZ. rd 中第a,b,c块数据...;那么针对各个客户端请求中的栅格块数据,如果都从硬盘的文件中进行I/O操作来读取数据到缓存中进行处理并返回给客户端,而大量的从硬盘的数据库文件中进行I/O操作导致占用大量系统资源,降低系统的反应速度,并且在磁盘的数据库文件处理效率低。
技术实现思路
本专利技术所要解决的技术问题是提供一种栅格数据读取处理方法和装置,解决现有技术中针对客户端请求,获取栅格数据效率低,并且系统反应速度低等问题。为了解决上述问题,本专利技术公开了一种栅格数据读取处理方法,包括根据栅格数据文件中的栅格块数据大小,预先在服务器中将缓存分配为N个用于存储N个栅格块数据的缓存栅格块,并采用标识号记录每个缓存栅格块的起始地址;所述N ^ 2 ;针对所述N个缓存栅格块,建立内存数据库并生成相应的内存记录表,所述内存记录表用于记录各个缓存栅格块的使用信息;所述使用信息包括针对每个缓存栅格块,记录其中存储的栅格块数据的栅格块数据信息,以及该缓存栅格块起始地址的标识号,并将同一缓存栅格块对应的栅格块数据信息与标识号相关联;所述栅格块数据信息包括栅格块数据的属性信息;在分配完缓存栅格块和建立内存数据库及相应的内存记录表后,针对客户端的栅格数据读取请求,读取栅格数据的处理过程包括接收客户端的栅格数据读取请求,并提取栅格数据取读请求中的各栅格块属性信息;在所述内存记录表中查询是否存在所述栅格块属性信息;如果存在所述栅格块属性信息,则根据相应的标识号从缓存栅格块中读出栅格块数据返回给客户端,并更新所述内存记录表中相应的栅格块数据信息; 如果不存在所述栅格块属性信息,则从磁盘中相应的栅格数据文件中提取相应栅格块数据存入空的缓存栅格块或替换进入一缓存栅格块,并更新所述内存记录表中对应缓存栅格块的栅格块数据信息,并将栅格块数据返回给客户端。优选的,所述如果不存在所述栅格块属性信息,则从磁盘中相应的栅格数据文件中提取相应栅格块数据存入空的缓存栅格块或替换进入一缓存栅格块,并将新的栅格块数据的栅格块数据信息及所述缓存栅格块的标识号更新入所述内存记录表,并将栅格块数据返回给客户端,包括如果不存在所述栅格块属性信息,则从磁盘中相应的栅格数据文件中读取相应栅格块数据到内存,并判断所述N个缓存栅格块中是否存在与该栅格块数据大小相应的、空的缓存栅格块;若存在空的缓存栅格块,则将所述新读取的所述栅格块数据的存入空的缓存栅格块,并将新的栅格块数据的栅格块数据信息及所述缓存栅格块的标识号更新入所述内存记录表,并将栅格块数据返回给客户端;若不存在空的缓存栅格块,则将所述新读取的所述栅格块数据替换掉一缓存栅格块中已存在的栅格块数据,并将新的栅格块数据的栅格块数据信息及所述缓存栅格块的标识号更新入所述内存记录表,并将所述缓存栅格块中的栅格块数据读出并返回客户端;其中,所述栅格块数据信息包括还包括使用历史信息,所述被替换的缓存栅格块根据各缓存栅格块中存储的栅格块数据的栅格块数据使用历史信息进行确定。优选的,所述栅格块数据的栅格块数据使用历史信息包括服务器针对所述栅格块数据的最后访问时间,和/或,针对所述栅格块数据的访问累加次数。优选的,所述被替换的缓存栅格块根据各缓存栅格块中存储的栅格块数据的栅格块数据使用历史信息进行确定包括查找内存记录表中最后访问时间最早值,将所述新读取的所述栅格块数据,替换所述最后访问时间最早值对应的该缓存栅格块中的栅格块数据;或,查找内存记录表中访问累加次数最小值,将所述新读取的所述栅格块数据,替换所述访问累加次数最小值对应的该缓存栅格块中的栅格块数据。优选的,所述栅格块数据的栅格块属性信息包括栅格块数据的栅格号,和栅格块数据所属的栅格数据文件的文件名称。优选的,还包括定期将所述内存记录表存储至磁盘文件中。优选的,当栅格数据读取处理装置重启时,重新加载所述磁盘文件中的内存记录表,并从磁盘中相应的栅格数据文件中提取对应的栅格块数据存入相应的缓存栅格块中。优选的,所述并采用标识号记录每个缓存栅格块的起始地址包括将所述缓存栅格块的起始地址存储于一数组内,所述数组大小为N个。相应的,本专利技术还公开了一种栅格数据读取处理装置,包括 缓存栅格块配置模块,用于根据栅格数据文件中的栅格块数据大小,预先在服务器中将缓存分配为N个用于存储N个栅格块数据的缓存栅格块,并采用标识号记录每个缓存栅格块的起始地址;所述N > 2 ;内存数据库建立模块,用于针对所述N个缓存栅格块,建立内存数据库并生成相应的内存记录表,所述内存记录表用于记录各个缓存栅格块的使用信息;所述使用信息包括针对每个缓存栅格块,记录其中存储的栅格块数据的栅格块数据信息,以及该缓存栅格块起始地址的标识号,并将同一缓存栅格块对应的栅格块数据信息与标识号相关联;请求接收模块,用于接收客户端的栅格数据读取请求,并提取栅格数据取读请求中的各栅格块属性信息;栅格块信息查询模块,用于在所述内存记录表中查询是否存在所述栅格块属性信息;第一返回模块,用于如果存在所述栅格块属性信息,则根据相应的标识号从缓存栅格块中读出栅格块数据返回给客户端,并更新所述内存记录表中相应的栅格块数据信息;第二返回模块,用于如果不存在所述栅格块属性信息,则从磁盘中相应的栅格数据文件中提取相应栅格块数据存入空的缓存栅格块或替换进入一缓存栅格块,并更新所述内存记录表中对应缓存栅格块的栅格块数据信息,并将栅格块数据本文档来自技高网...
【技术保护点】
一种栅格数据读取处理方法,其特征在于,包括:根据栅格数据文件中的栅格块数据大小,预先在服务器中将缓存分配为N个用于存储N个栅格块数据的缓存栅格块,并采用标识号记录每个缓存栅格块的起始地址;所述N≥2;针对所述N个缓存栅格块,建立内存数据库并生成相应的内存记录表,所述内存记录表用于记录各个缓存栅格块的使用信息;所述使用信息包括:针对每个缓存栅格块,记录其中存储的栅格块数据的栅格块数据信息,以及该缓存栅格块起始地址的标识号,并将同一缓存栅格块对应的栅格块数据信息与标识号相关联;所述栅格块数据信息包括栅格块数据的属性信息;在分配完缓存栅格块和建立内存数据库及相应的内存记录表后,针对客户端的栅格数据读取请求,读取栅格数据的处理过程包括:接收客户端的栅格数据读取请求,并提取栅格数据取读请求中的各栅格块属性信息;在所述内存记录表中查询是否存在所述栅格块属性信息;如果存在所述栅格块属性信息,则根据相应的标识号从缓存栅格块中读出栅格块数据返回给客户端,并更新所述内存记录表中相应的栅格块数据信息;如果不存在所述栅格块属性信息,则从磁盘中相应的栅格数据文件中提取相应栅格块数据存入空的缓存栅格块或替换进入一缓存栅格块,并更新所述内存记录表中对应缓存栅格块的栅格块数据信息,并将栅格块数据返回给客户端。...
【技术特征摘要】
【专利技术属性】
技术研发人员:孙成宝,
申请(专利权)人:北京地拓科技发展有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。