CN105045930B - 一种栅格数据切片生成的方法及系统 - Google Patents

一种栅格数据切片生成的方法及系统 Download PDF

Info

Publication number
CN105045930B
CN105045930B CN201510549761.7A CN201510549761A CN105045930B CN 105045930 B CN105045930 B CN 105045930B CN 201510549761 A CN201510549761 A CN 201510549761A CN 105045930 B CN105045930 B CN 105045930B
Authority
CN
China
Prior art keywords
data
task
slice
file
datarams
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.)
Active
Application number
CN201510549761.7A
Other languages
English (en)
Other versions
CN105045930A (zh
Inventor
程曦
史凤玲
袁红念
曹倩倩
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
HEROLAND SPATIAL INFORMATION TECH Co.,Ltd.
Original Assignee
Wuhan Yunkongjian Geography Information Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Wuhan Yunkongjian Geography Information Technology Co Ltd filed Critical Wuhan Yunkongjian Geography Information Technology Co Ltd
Priority to CN201510549761.7A priority Critical patent/CN105045930B/zh
Publication of CN105045930A publication Critical patent/CN105045930A/zh
Application granted granted Critical
Publication of CN105045930B publication Critical patent/CN105045930B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/29Geographical information databases

Landscapes

  • Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Remote Sensing (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Processing Or Creating Images (AREA)

Abstract

本发明涉及一种栅格数据切片生成的方法,包括以下步骤,S1,设置切片参数;S2,遍历切片参数中的源数据文件夹集合,从中筛选出切片任务所需要的数据,并根据任务所需要的数据建立R树索引;S3,按照切片任务所需要的数据来确定单次栅格数据切片任务所需要覆盖的地理范围;S4,根据单次栅格数据切片任务覆盖的地理范围和R树索引循环进行切片任务,生成栅格数据切片。本发明一种栅格数据切片生成的方法,充分发挥局域网并行计算的优势;同时本发明还对数据划分和更新有一套统一的机制,无需人工对数据配置和监控。运用发明的方法,能够高效、稳定、准确地进行大数据容量的栅格地图瓦片生成。

Description

一种栅格数据切片生成的方法及系统
技术领域
本发明涉及地理信息领域,具体涉及一种栅格数据切片生成的方法及系统。
背景技术
地图瓦片是一种多分辨率层次模型,从瓦片金字塔的底层到顶层,分辨率越来越低,但表示的地理范围不变。常见的谷歌地图瓦片就是一种典型的地图瓦片,其表示的范围是经度-180度到180度,纬度-85度到85度的范围,采用的是Web墨卡托地图投影。凡是采用谷歌地图瓦片的切片模型的在线地图,都可以看成是谷歌地图瓦片的一个实例。中国地区的谷歌地图瓦片有21个级别。任意一个级别表示的地理范围是一致的,第0级只有一张256×256大小的地图切片,第1级的行列瓦片数均是第0级的两倍,因此有四张256×256大小的切片,依次类推。第20级拥有1048576×1048576张切片,数量非常庞大。如果需要存储这么多切片,并且一张切片的平均大小按照15KB来计算,则需要15360TB的存储空间。这么庞大的数据量,生成一次是需要很长时间的。但为了网络地图发布的需要,花费较长时间生成切片又是值得的。目前在常见的网络地图发布服务商中,只有谷歌地图的切片数据是最丰富最完整最全面的。谷歌地图的最大切片级别往往比其他服务商的切片级别高上很多,例如在中国地区,它比百度地图提供的影像地图服务就要高上两个级别。一个级别是4倍的数据量,两个级别就是16倍的数据量。级别的提升,意味着生成时间和存储量的提高。在现今科学日益发达,计算机技术更加先进的时代,信息的及时更新是很重要的。如果地图数据更新周期太长,则反映不了现今的一些地理数据变化。而卫星影像数据,包括航拍的数据处理和更新时间并不长,很有可能很快就有局部甚至全部更新地图瓦片的需求。因此,高效率、高稳定性、高准确度和高数据容量的地图瓦片生成机制是很有必要的。现今常用的地图瓦片生成技术,已知的就是按照顺序对单个图片出图,或者是按照数据划分来使用服务器集群来对地图区域出图。但是这些技术没有充分利用计算机性能;或者是配置麻烦,需要专业的知识来操作;或者虽然是利用了服务器集群来计算,但没有充分发挥出服务器的性能以及集群计算的优势;或者是数据划分和更新没有统一的机制,需要利用人工来指定数据的配置和进行监控。
发明内容
本发明所要解决的技术问题是提供一种具有性能优良、更加方便快捷、支持数据量更大的栅格数据切片生成方法及系统。
本发明解决上述技术问题的技术方案如下:一种栅格数据切片生成的方法,包括以下步骤,
S1,设置切片参数;
S2,遍历切片参数中的源数据文件夹集合,从中筛选出切片任务所需要的数据,并根据任务所需要的数据建立R树索引;
S3,按照切片任务所需要的数据来确定单次栅格数据切片任务所需要覆盖的地理范围;
S4,根据单次栅格数据切片任务覆盖的地理范围和R树索引循环进行切片任务,生成栅格数据切片。
在上述技术方案的基础上,本发明还可以做如下改进。
进一步,在步骤S2中所述切片任务所需要的数据包括文件的相对路径、文件表示的地理范围、分辨率大小;
所述R树索引建立的方法为,首先将筛选出数据的文件的相对路径、文件表示的地理范围和分辨率的大小信息存储起来形成一个文件信息数组,并统计所有文件的地理范围的并集,然后将文件信息数组中的地理范围与所有文件信息数组中的地理范围建立R树索引。
进一步,在步骤S3中,确定单次栅格数据切片任务所需覆盖的地理范围的方法为,根据筛选的任务切片所需要的数据中的文件表示的地理范围数据和最大级别的栅格数据的分辨率来确定单次栅格数据切片任务所需覆盖的地理范围。
进一步,在步骤S4中,循环进行切片任务生成栅格数据切片的方法包括以下步骤,
S41,根据单次栅格数据切片任务覆盖的地理范围查询R树索引,找出用于本次任务切片的数据文件;
S42,将本次任务切片的数据文件与当前需要覆盖的地理范围进行求交,得到需要读取的文件数据范围;
S43,对需要读取的文件数据范围进行两两求差,得到每个文件读取数据范围的结果;
S44,对每个文件读取数据范围的结果进行分割形成矩形区域数据,并为每个矩形区域数据分配数据内存块;
S45,根据读取任务读取指定范围的矩形区域中的数据,并将读取的数据存储在相对应的数据内存块P中,并将数据内存块P的地址存储在预先分配的且存储有最大级别的切片数据结果的数据内存M中;
S46,使用并行的方法,以行为单位通过读取数据内存M中的数据经过投影转换的方法读取数据内存P中的数据;
S47,在数据内存M完成数据读取任务后,删除数据内存块P中读取过的相对应内存数据,并开始生成数据内存M中最大级别的栅格数据切片;
S48,根据数据内存M中的数据和数据内存块P中没有读取过的内存循环生成下一级的栅格数据切片。
进一步,在步骤S43中,对需要读取的文件数据范围进行两两求差的方法为,使用最高分辨率的数据文件范围依次减去低分辨率数据文件范围,得到每个文件读取数据范围的结果。
进一步,在步骤S45中,指定范围的矩形区域中数据的读取是以队列的方式加入到读取任务中来的。
进一步,在步骤S46中,通过读取数据内存M中的数据经过投影转换的方法读取数据内存P中的数据的方法为,通过查找数据内存M中的栅格点,再计算栅格点投影到数据内存块P中的相对坐标,根据相对坐标读取数据内存块P中的数据;若设定的输出切片的投影和当前使用的数据文件投影相同,则无需进行投影转换。
进一步,还包括栅格数据切片压缩,所述栅格数据切片压缩的方法为将需要压缩的栅格数据切片的内存的地址传入到数据压缩线程进行压缩处理。
进一步,还包括栅格数据切片的写入,将栅格数据切片内存的地址传入到写入线程队列中,由写入线程负责写入。
本发明的有益效果是:本发明一种栅格数据切片生成的方法,充分利用了多核计算机的优势,采用自动通信的方式进行协商,厘清任务,无需人工再去配置,并且自动计算好任务模型,充分发挥局域网并行计算的优势;同时本发明还对数据划分和更新有一套统一的机制,无需人工对数据配置和监控。运用发明的方法,能够高效、稳定、准确地进行大数据容量的栅格地图瓦片生成;而即使是矢量地图瓦片,只要是运用本发明所述的思想,也能够同样高效、稳定、准确地生成地图瓦片。
基于上述一种栅格数据切片生成的方法,本发明还提供一种栅格数据切片生成的系统。
一种栅格数据切片生成的系统,包括参数设置模块、数据筛选模块、地理范围确定模块和栅格数据切片生成模块;
所述参数设置模块,其用于设置参数,所述参数包括源数据文件夹集合;
所述数据筛选模块,其用于通过遍历切片参数中的源数据文件夹集合,从中筛选出切片任务所需要的数据,并根据任务所需要的数据建立R树索引;
所述地理范围确定模块,其用于按照切片任务所需要的数据来确定单次栅格数据切片任务所需要覆盖的地理范围;
所述栅格数据切片生成模块,其用于根据单次栅格数据切片任务覆盖的地理范围和R树索引循环进行切片任务,生成栅格数据切片
附图说明
图1为本发明一种栅格数据切片生成的方法的流程图;
图2为本发明一种栅格数据切片生成的系统的结构框图。
具体实施方式
以下结合附图对本发明的原理和特征进行描述,所举实例只用于解释本发明,并非用于限定本发明的范围。
栅格数据是按网格单元的行与列排列、具有不同灰度或颜色的阵列数据。常见的栅格数据有遥感影像数据和DEM数据、DOM数据等等。而本发明所做的栅格数据切片生成不是遥感数据的处理平台,因此不包括对原始数据的加工、配准、辐射校正、镶嵌、融合等遥感数据专用的处理方法,本发明所做的栅格切片生成,指的是对常用栅格数据成果的进一步加工,仅仅是对数据做了投影转换、切割、压缩等操作,因此本发明使用的数据为常用栅格数据产品的成果数据,即格式为TIFF、HGT、IMG等包含地理坐标信息的栅格数据成果。本实施例以格式为TIFF的全色遥感影像数据(或者是TIFF的航拍影像数据)和格式为HGT的DEM数据为例。
如图1所示,一种栅格数据切片生成的方法,包括以下步骤,
S1,设置切片参数;这个步骤可以由界面来操作,也可以是使用预设配置好的文件来设置;这些参数包括,源数据文件夹集合、输出文件夹集合、切片宽和切片高、目标数据投影、起始经纬度、第0级切片行数和列数、切片目标级别数、切片重采样方法、各种线程数、内存使用限制等。
S2,遍历切片参数中的源数据文件夹集合,从中筛选出切片任务所需要的数据,并根据任务所需要的数据建立R树索引;这一步,是程序通过读取特定文件名后缀的文件的文件元数据信息,或者是通过文件名和文件大小来判断筛选的。筛选时,会将该文件的相对路径、表示的地理范围以及分辨率大小等信息存储起来,成为一个数组。统计所有文件的地理范围的并集,和最大的数据分辨率。对这个文件信息数组,使用文件信息里的地理范围建立R树索引。
S3,按照切片任务所需要的数据来确定单次栅格数据切片任务所需要覆盖的地理范围;确定单次栅格数据切片任务所需覆盖的地理范围的方法为,根据筛选的任务切片所需要的数据中的文件表示的地理范围数据和最大级别的栅格数据的分辨率来确定单次栅格数据切片任务所需覆盖的地理范围。如果源数据分辨率差别很大的话,会影响单次任务读取的数据量,并且最后出来的切片结果很可能不太理想。因此在这里我们要求源数据的分辨率尽量是接近的,并且和切片最大级别的栅格分辨率也是接近的,这样才能保证程序的性能,以及最后出来的切片效果。若切片所设置的最大级别的栅格分辨率远低于数据的栅格分辨率,虽然最后出来的切片是清晰的,但是却浪费了数据。而若应用上我们不要求生成所设所有级别的所有切片,只是保证数据尽量完整清晰的话,在S2中收集数据信息时,可以计算出每一个数据文件可以支持的最大级别,最后在每一次需要生成切片时,使用该数据文件最多只能生成到它可以支持的最大级别的切片。
S4,根据单次栅格数据切片任务覆盖的地理范围和R树索引循环进行切片任务,生成栅格数据切片;这一过程分为以下几个小步骤:
S41,根据单次栅格数据切片任务覆盖的地理范围查询R树索引,找出用于本次任务切片的数据文件;为了保证切片的速度和质量,程序对读取不同物理存储下的文件采用多个线程来进行读取,对不同物理存储下的结果写入同样也是如此。这些文件读取和写入的线程专门用于负责文件的读取和写入,不与其他工作线程冲突。读取线程是从读取队列中得到当前要读取的文件数据名称和读取的文件范围,并分配好内存。如果内存使用量没有达到当前设定的内存使用上限,则读取线程可以继续读取下一个覆盖范围需要读取的任务的数据文件,依此类推。但当前读取的数据一定会将整个单次覆盖范围的数据全面覆盖到,而不管内存使用量有没有达到。因此,分配单次覆盖范围时,一定要注意到内存的使用上限,不能让范围太大造成程序内存不足而无法运行。
S42,将本次任务切片的数据文件与当前需要覆盖的地理范围进行求交,得到需要读取的文件数据范围;
S43,对需要读取的文件数据范围进行两两求差,得到每个文件读取数据范围的结果;由于数据文件之间的范围可能发生覆盖,为了避免过多的内存使用,对于范围重叠区域我们只读取数据分辨率较大的数据文件的范围。这里在求交之后,对于求交得到的数据范围还要做一个两两求差的操作,使用高分辨率的数据文件范围依次减去低分辨率数据文件的范围,得到一个最终的每个文件读取数据范围的结果。
S44,对每个文件读取数据范围的结果进行分割形成矩形区域数据,并为每个矩形区域数据分配数据内存块;因为矩形相减之后,得到的图形不再是矩形,因此需要把它们分割成矩形,以便与分配的内存块对应,避免内存使用冗余。分割算法比较简单,其中一种就是使用直线去将每个270度角处分割开,对于完全处于多边形内部的洞,可以看成是反的,只在九十度洞处进行分割。这样把区域分割开之后,就可以进去数据读取了。
S45,根据读取任务读取指定范围的矩形区域中的数据,并将读取的数据存储在相对应的数据内存块P中,并将数据内存块P的地址存储在预先分配的且存储有最大级别的切片数据结果的数据内存M中;数据读取是以队列的方式加入到读取任务中来的,同样,每个单次覆盖范围的处理也是使用队列来进行的。当读取线程收到队列中的读取任务时,会读取数据读取任务中指明的数据的相应范围,并且存储在内存P中。在这里,程序会预先分配好当前处理的最大级别的数据内存块M,这个内存块里的内存数据对应着最大级别的切片数据结果。这个内存块M里暂时没有读取数据,因此可以在单次覆盖范围里的数据文件较多时(这里要计算一个判断标准),先存储读取线程分配的数据内存P的地址。而若单次覆盖范围内的数据文件较少则没有必要了,在需要使用数据内存M的时候查找每个格点属于哪个内存块P即可。
S46,使用并行的方法,以行为单位通过读取数据内存M中的数据经过投影转换的方法读取数据内存P中的数据;如果设定的输出切片的投影和当前使用的数据文件投影相同,则无需进行投影转换;若投影不同,则需要预先计算好每个数据内存M里的格网点投影到数据内存P里的坐标,这个坐标是相对坐标。而为什么不在处理每个M里的格网点的时候计算投影呢?原因是这种批量的计算可以针对特殊的情况进行优化,例如Web墨卡托到经纬度坐标的转换,可以观察到的规律是X是按比例转换,而对于Y值相同的两个点P1,P2,其转换后的Y值也是相同的。在这里我们就可以做文章,只需要做一列真正的投影转换,而其余的坐标转换靠增加偏移量和单纯的数据复制即可。而如果对每个格网点在读取的时候再计算投影,则会损耗大量的时间。同样,投影转换也是使用单独的线程来处理。在某个处理线程处理某一行的数据时,对单个格点,若存在投影转换,则读取投影转换处理后的结果;若不存在,则即时计算当前格点对应数据内存P里的哪一块数据的哪块坐标。得到坐标之后,读取相应的数据内存P里相应坐标处的数据。这里根据重采样方法不同,可以有不同的重采样方法,来插值得到P里相应坐标处的数据。因为当前的覆盖范围里获取到的数据文件可能无法覆盖整个范围,或者是精度达不到当前级别要求而没有读取,数据内存块M里可能会有一些区域是没有读取到数据的。因此可以再开辟一块内存B,使用bit位来标记M相应的格点是否读取了数据。
S47,在数据内存M完成数据读取任务后,删除数据内存块P中读取过的相对应内存数据,并开始生成数据内存M中最大级别的栅格数据切片;因为内存P里存储的只是当前覆盖范围里的数据,而这些数据在最高级别获取了它之后已经没什么作用了,应该删除掉以释放空间。而P里没有读取过的内存,则是低级别需要使用的内存。M的数据读取完成之后,M相对应的级别的切片就可以开始生成了。程序按照当前覆盖范围和对应的每个切片的范围来切割切片数据。
S48,根据数据内存M中的数据和数据内存块P中没有读取过的内存循环生成下一级的栅格数据切片;在这里,下一级较小的切片任务同样会生成一个数据内存M’,同时M’里也会初始化对应级别的数据内存P里的地址,或者是在生成时再查找。同样是多线程来处理M’的每一行数据,但是这里不再需要做大量的投影转换,因为M’需要的数据可以从M当中获取得到,只有少部分的属于M’对应级别的数据内存P里的数据才需要做投影转换。在这里,某个线程在处理某一行的M’某个格网的数据时,先计算其对应M里的坐标位置,再判断M相应的标记内存B是否读取了相应数据。若读取了,直接通过不同的重采样方法得到M里相应坐标的栅格值;若没有读取,则查询P里的相应内存,通过预先进行的投影转换或者直接计算得到P里的相应位置,再重采样得到当前的栅格值。同样,处理时,会有内存标记B’标记当前内存是否是可用栅格值。
在S47中,在最大级别栅格数据切片生成后,若栅格数据切片需要压缩(例如影像数据),则将要处理的切片内存的地址传入到数据压缩线程进行处理。对于影像数据的内部数据,使用libjpeg-turbo库进行jpeg编码(该库的jpeg编码解码速度要比gdiplus库快上3倍以上),而对于位于边缘的数据,则使用libpng库生成png的透明图片。完成后,将切片数据地址传入写入线程的队列中,由写入线程负责写入。这里写入线程会根据一些hash算法,将当前的切片写入到不同的存储设备中,以加快写入速度。
在S48中,在下一级较小栅格数据切片生成后,也会将切片任务送入到数据压缩线程和数据写入线程进行处理,同时删除M相应的内存以释放空间。
若所有级别处理完,则当前覆盖范围的任务已经处理完,可以处理下一个覆盖范围的任务了。在这里,要注意到的是,若写入时发现要写入的位置已经有数据并且是png数据,则读取要写入位置的数据,与当前要写入的数据重新组合成一张新的图片。若新的图片全部覆盖完整,则将其转换为jpeg文件。若不完整,则还是以透明png图片的方式来存储。
本发明能提升性能包括以下三个原因:1.整个过程中,所有的数据文件只被读取了一次,也就是处理它能达到的最大清晰度级别的那一次;而现有的处理方法,往往是每个级别都读取了多次的数据,或者是先将数据生成到存储中,再来处理低级别时读取以前存储的数据再来生成低级别的数据,造成了数据多次读取,而导致处理缓慢。2.写入数据使用的是多个切片文件一起写入,避免了小文件的写入,提高了写入速度。3.读取和写入均是独立的线程,不影响当前处理的任务。由于数据存在一个预读的工作,在处理下一个范围时,无需再等待数据读取,而可以直接处理。数据写入也不影响重采样、压缩的过程,因此避免了IO等待的时间,充分利用了计算机硬件的性能。而在做投影变换、重采样、查找数据、数据压缩的时候都采用的是最好的算法,因此性能又能得到进一步的提升。
根据本发明的方法,利用局域网计算机自动配置、任务分配的栅格数据切片生成如下:
现在假设局域网里互相连通的机器都安装上了本发明的客户端软件,然后在任意一台计算机上启动了。这台计算机上的客户端软件首先会向所有的局域网机器端口发出连接请求,而安装了本客户端软件的机器会收到该端口传来的请求并做出响应,建立和主机双向的TCP/IP连接。这样,只要启动一台计算机上的软件,就会和其他所有主机建立连接,那么最终会是所有的机器之间两两都有双向的TCP/IP连接。现在启动局域网栅格数据切片生成的任务。主机发出指令,每一台机器统计自身机器在当前任务下的数据文件配置情况,并且得到一个最终的范围并集。将这个范围并集传输到主机上,主机再得到更大的并集。主机根据这个最大的范围并集,确定每一台机器要处理的范围。这里假设每一台机器的性能差别不大,若性能差别很大,则还需要计算性能差值,以确定不同机器的不同处理范围。这里尽量让每台机器的处理范围和自身数据的范围并集一致,避免数据拷贝。得到每台机器的处理范围后,发出通知让机器两两之间拷贝数据。具体的方法则是每台机器向其他所有机器发出自己的处理范围,然后其他机器根据发出的这个处理范围和自身数据范围的交集,确定要传送的数据范围,并查找传送的数据范围内的数据文件,传送到相应的机器上。这一过程做完之后,每台机器就可以开始独立处理各自的数据范围内的数据了。这个过程和单机处理栅格数据切片的过程是一致的。
当每台机器各自的数据范围的数据处理完成后,还面临这一个边缘数据的整合问题。在这里,主机在最开始一步的时候会向每台机器发送处理范围和自身处理范围交界的机器信息,每台机器数据范围内数据处理完成后,会询问自身处理范围交接处的机器数据是否处理完,若处理完,则读取交接处的每一级别的png数据,传送到发出询问的机器中。发出询问的机器则负责将边界处的png数据融合成一个完整的jpeg数据,并且存储起来,同时发送给其边界交接处的机器,然后边界交接处的机器也会将这个数据来更新自身存储的png数据。这样就完成了整个局域网栅格数据切片的任务。
基于本发明一种栅格数据切片生成的方法,本发明还提供一种栅格数据切片生成的系统。
如图2所示,一种栅格数据切片生成的系统,包括参数设置模块、数据筛选模块、地理范围确定模块和栅格数据切片生成模块;
所述参数设置模块,其用于设置参数,所述参数包括源数据文件夹集合;
所述数据筛选模块,其用于通过遍历切片参数中的源数据文件夹集合,从中筛选出切片任务所需要的数据,并根据任务所需要的数据建立R树索引;
所述地理范围确定模块,其用于按照切片任务所需要的数据来确定单次栅格数据切片任务所需要覆盖的地理范围;
所述栅格数据切片生成模块,其用于根据单次栅格数据切片任务覆盖的地理范围和R树索引循环进行切片任务,生成栅格数据切片。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (8)

1.一种栅格数据切片生成的方法,其特征在于,包括以下步骤,
S1,设置切片参数;
S2,遍历切片参数中的源数据文件夹集合,从中筛选出切片任务所需要的数据,并根据任务所需要的数据建立R树索引;
S3,按照切片任务所需要的数据来确定单次栅格数据切片任务所需要覆盖的地理范围;
S4,根据单次栅格数据切片任务覆盖的地理范围和R树索引循环进行切片任务,生成栅格数据切片;
在步骤S2中所述切片任务所需要的数据包括文件的相对路径、文件表示的地理范围、分辨率大小;
所述R树索引建立的方法为,首先将筛选出数据的文件的相对路径、文件表示的地理范围和分辨率的大小信息存储起来形成一个文件信息数组,并统计所有文件的地理范围的并集,然后将文件信息数组中的地理范围与所有文件信息数组中的地理范围建立R树索引;
在步骤S4中,循环进行切片任务生成栅格数据切片的方法包括以下步骤,
S41,根据单次栅格数据切片任务覆盖的地理范围查询R树索引,找出用于本次任务切片的数据文件;
S42,将本次任务切片的数据文件与当前需要覆盖的地理范围进行求交,得到需要读取的文件数据范围;
S43,对需要读取的文件数据范围进行两两求差,得到每个文件读取数据范围的结果;
S44,对每个文件读取数据范围的结果进行分割形成矩形区域数据,并为每个矩形区域数据分配数据内存块;
S45,根据读取任务读取指定范围的矩形区域中的数据,并将读取的数据存储在相对应的数据内存块P中,并将数据内存块P的地址存储在预先分配的且存储有最大级别的切片数据结果的数据内存M中;
S46,使用并行的方法,以行为单位通过读取数据内存M中的数据经过投影转换的方法读取数据内存P中的数据;
S47,在数据内存M完成数据读取任务后,删除数据内存块P中读取过的相对应内存数据,并开始生成数据内存M中最大级别的栅格数据切片;
S48,根据数据内存M中的数据和数据内存块P中没有读取过的内存循环生成下一级的栅格数据切片。
2.根据权利要求1所述的一种栅格数据切片生成的方法,其特征在于:在步骤S3中,确定单次栅格数据切片任务所需覆盖的地理范围的方法为,根据筛选的任务切片所需要的数据中的文件表示的地理范围数据和最大级别的栅格数据的分辨率来确定单次栅格数据切片任务所需覆盖的地理范围。
3.根据权利要求1所述的一种栅格数据切片生成的方法,其特征在于:在步骤S43中,对需要读取的文件数据范围进行两两求差的方法为,使用最高分辨率的数据文件范围依次减去低分辨率数据文件范围,得到每个文件读取数据范围的结果。
4.根据权利要求1所述的一种栅格数据切片生成的方法,其特征在于:在步骤S45中,指定范围的矩形区域中数据的读取是以队列的方式加入到读取任务中来的。
5.根据权利要求1所述的一种栅格数据切片生成的方法,其特征在于:在步骤S46中,通过读取数据内存M中的数据经过投影转换的方法读取数据内存P中的数据的方法为,通过查找数据内存M中的栅格点,再计算栅格点投影到数据内存块P中的相对坐标,根据相对坐标读取数据内存块P中的数据;若设定的输出切片的投影和当前使用的数据文件投影相同,则无需进行投影转换。
6.根据权利要求1所述的一种栅格数据切片生成的方法,其特征在于:还包括栅格数据切片压缩,所述栅格数据切片压缩的方法为将需要压缩的栅格数据切片的内存的地址传入到数据压缩线程进行压缩处理。
7.根据权利要求1所述的一种栅格数据切片生成的方法,其特征在于:还包括栅格数据切片的写入,将栅格数据切片内存的地址传入到写入线程队列中,由写入线程负责写入。
8.一种栅格数据切片生成的系统,其特征在于,包括参数设置模块、数据筛选模块、地理范围确定模块和栅格数据切片生成模块;
所述参数设置模块,其用于设置参数,所述参数包括源数据文件夹集合;
所述数据筛选模块,其用于通过遍历切片参数中的源数据文件夹集合,从中筛选出切片任务所需要的数据,并根据任务所需要的数据建立R树索引;
所述地理范围确定模块,其用于按照切片任务所需要的数据来确定单次栅格数据切片任务所需要覆盖的地理范围;
所述栅格数据切片生成模块,其用于根据单次栅格数据切片任务覆盖的地理范围和R树索引循环进行切片任务,生成栅格数据切片;
在所述数据筛选模块中所述切片任务所需要的数据包括文件的相对路径、文件表示的地理范围、分辨率大小;
所述R树索引建立的方法为,首先将筛选出数据的文件的相对路径、文件表示的地理范围和分辨率的大小信息存储起来形成一个文件信息数组,并统计所有文件的地理范围的并集,然后将文件信息数组中的地理范围与所有文件信息数组中的地理范围建立R树索引;
所述栅格数据切片生成模块具体用于,
根据单次栅格数据切片任务覆盖的地理范围查询R树索引,找出用于本次任务切片的数据文件;
将本次任务切片的数据文件与当前需要覆盖的地理范围进行求交,得到需要读取的文件数据范围;
对需要读取的文件数据范围进行两两求差,得到每个文件读取数据范围的结果;
对每个文件读取数据范围的结果进行分割形成矩形区域数据,并为每个矩形区域数据分配数据内存块;
根据读取任务读取指定范围的矩形区域中的数据,并将读取的数据存储在相对应的数据内存块P中,并将数据内存块P的地址存储在预先分配的且存储有最大级别的切片数据结果的数据内存M中;
使用并行的方法,以行为单位通过读取数据内存M中的数据经过投影转换的方法读取数据内存P中的数据;
在数据内存M完成数据读取任务后,删除数据内存块P中读取过的相对应内存数据,并开始生成数据内存M中最大级别的栅格数据切片;
根据数据内存M中的数据和数据内存块P中没有读取过的内存循环生成下一级的栅格数据切片。
CN201510549761.7A 2015-08-31 2015-08-31 一种栅格数据切片生成的方法及系统 Active CN105045930B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201510549761.7A CN105045930B (zh) 2015-08-31 2015-08-31 一种栅格数据切片生成的方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510549761.7A CN105045930B (zh) 2015-08-31 2015-08-31 一种栅格数据切片生成的方法及系统

Publications (2)

Publication Number Publication Date
CN105045930A CN105045930A (zh) 2015-11-11
CN105045930B true CN105045930B (zh) 2018-07-03

Family

ID=54452476

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510549761.7A Active CN105045930B (zh) 2015-08-31 2015-08-31 一种栅格数据切片生成的方法及系统

Country Status (1)

Country Link
CN (1) CN105045930B (zh)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106599025B (zh) * 2016-10-25 2022-03-04 中国电力科学研究院 一种基于数据交换格式的矢量数据切片方法及系统
CN110505218B (zh) * 2019-08-07 2021-11-16 中国电子科技集团公司第二十八研究所 基于json的栅格数据自适应压缩传输方法及计算机存储介质
CN111159326B (zh) * 2020-01-02 2023-05-09 中国航空工业集团公司西安航空计算技术研究所 一种机载数字地图局部数据增量更新方法和装置
CN111459934B (zh) * 2020-03-19 2023-09-22 北京图创时代科技有限公司武汉分公司 一种多源地图数据切片系统及方法
CN114020755B (zh) * 2022-01-06 2022-04-15 北京帝测科技股份有限公司 影像地图瓦片发布方法、影像地图瓦片生成方法及装置
CN116628123B (zh) * 2023-07-19 2023-12-12 深圳市易图资讯股份有限公司 基于空间数据库的动态切片生成方法和系统

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1971560A (zh) * 2006-09-28 2007-05-30 江苏天泽信息产业有限公司 栅格电子地图源数据生成、组织及目标数据生成的方法
CN103473732A (zh) * 2013-08-30 2013-12-25 国家电网公司 基于并发控制和双缓存技术的移动gis切片地图展现方法
CN103488760A (zh) * 2013-09-26 2014-01-01 中国测绘科学研究院 地理信息瓦片服务的提供方法及实现该方法的装置
CN103699582A (zh) * 2013-12-03 2014-04-02 天津市普迅电力信息技术有限公司 一种多源地图数据处理方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9286304B2 (en) * 2013-04-16 2016-03-15 International Business Machines Corporation Management of file storage locations

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1971560A (zh) * 2006-09-28 2007-05-30 江苏天泽信息产业有限公司 栅格电子地图源数据生成、组织及目标数据生成的方法
CN103473732A (zh) * 2013-08-30 2013-12-25 国家电网公司 基于并发控制和双缓存技术的移动gis切片地图展现方法
CN103488760A (zh) * 2013-09-26 2014-01-01 中国测绘科学研究院 地理信息瓦片服务的提供方法及实现该方法的装置
CN103699582A (zh) * 2013-12-03 2014-04-02 天津市普迅电力信息技术有限公司 一种多源地图数据处理方法

Also Published As

Publication number Publication date
CN105045930A (zh) 2015-11-11

Similar Documents

Publication Publication Date Title
CN105045930B (zh) 一种栅格数据切片生成的方法及系统
CN108776699B (zh) 一种气象数据和卫星遥感数据处理方法及装置
CN104376053B (zh) 一种基于海量气象数据的存储与检索方法
AU2009286145B2 (en) Architectures and methods for creating and representing time-dependent imagery
US10621217B2 (en) Portable globe creation for a geographical information system
CN103995861B (zh) 一种基于空间关联的分布式数据装置、方法及系统
CN103595791B (zh) 一种海量遥感数据的云存取方法
CN102722549A (zh) 一种基于集群的遥感数据集实时渲染服务
US20110055290A1 (en) Provisioning a geographical image for retrieval
CN113626550B (zh) 基于三元组双向索引与优化缓存的影像瓦片地图服务方法
CN112559534B (zh) 一种遥感影像数据归档管理系统及方法
CN111125080A (zh) 基于图斑模型的多源遥感影像一体化管理系统及方法
CN106503093B (zh) 一种适用于分布式计算环境的大型遥感影像重构方法
CN107590083B (zh) 一种基于owga内存缓存的海量遥感瓦片数据快速发布方法
CN112113544B (zh) 一种基于无人机影像的遥感数据处理方法及系统
CN111914041B (zh) 一种电网地图矢量数据提供方法
CN110175175A (zh) 一种基于spark的分布式空间二级索引与范围查询算法
CN115238015A (zh) 一种基于微服务的时空大数据平台
US20210035265A1 (en) Cloud computing flexible large area mosaic engine
EP3182299B1 (en) Methods and systems for estimating the number of points in two-dimensional data
JP2023542380A (ja) プライベートクラウドコンテナクラスタ遺伝子情報の取得方法及び装置
CN111061806B (zh) 面向分布式的海量地理瓦片的存储方法与网络化访问方法
CN116361494A (zh) 一种卫星遥感影像瓦片实时生成方法
US11604777B1 (en) Indexing service for petabyte-scale datasets
CN107679126A (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
GR01 Patent grant
GR01 Patent grant
TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20200630

Address after: 430000 408, room 4, 5 building, Yang Yuan science and Technology Pioneer Park, 1004 Heping Road, Wuchang District, Wuhan, Hubei.

Patentee after: HEROLAND SPATIAL INFORMATION TECH Co.,Ltd.

Address before: 430000 Hubei city of Wuhan province Hongshan East Lake New Technology Development Zone, Optics Valley Lu Tong Jian Tiancheng Meiya 5 unit 1002 Optics Valley Road

Patentee before: WUHAN YUNKONGJIAN GEOGRAPHY INFORMATION TECHNOLOGY Co.,Ltd.

PE01 Entry into force of the registration of the contract for pledge of patent right
PE01 Entry into force of the registration of the contract for pledge of patent right

Denomination of invention: A method and system of raster data slice generation

Effective date of registration: 20210624

Granted publication date: 20180703

Pledgee: Guanggu Branch of Wuhan Rural Commercial Bank Co.,Ltd.

Pledgor: HEROLAND SPATIAL INFORMATION TECH Co.,Ltd.

Registration number: Y2021420000047

PC01 Cancellation of the registration of the contract for pledge of patent right
PC01 Cancellation of the registration of the contract for pledge of patent right

Date of cancellation: 20230831

Granted publication date: 20180703

Pledgee: Guanggu Branch of Wuhan Rural Commercial Bank Co.,Ltd.

Pledgor: HEROLAND SPATIAL INFORMATION TECH CO.,LTD.

Registration number: Y2021420000047