CN114328779A - 基于云计算高效检索浏览的地理信息云盘 - Google Patents
基于云计算高效检索浏览的地理信息云盘 Download PDFInfo
- Publication number
- CN114328779A CN114328779A CN202111593520.4A CN202111593520A CN114328779A CN 114328779 A CN114328779 A CN 114328779A CN 202111593520 A CN202111593520 A CN 202111593520A CN 114328779 A CN114328779 A CN 114328779A
- Authority
- CN
- China
- Prior art keywords
- file
- information
- data
- geographic
- meta
- 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.)
- Pending
Links
Images
Landscapes
- Processing Or Creating Images (AREA)
Abstract
针对空间大数据规模大、多样化、流转快、时序性强、价值高的特征,提出基于云计算高效检索浏览的地理信息云盘,包括地理信息数据的云存储、构建基于HDFS‑adLuc云的地理索引方法、地理信息文件元信息的建模方法、超大影像并行动态切片、在线云端快速浏览,有效解决大规模文件的存储、检索和在线快速浏览问题,改变了地理数据以文件形式保存在本地硬盘或者存储介质阵列上的现状,文件组织有序、浏览方便、检索高效、迁移共享方便,本申请设计并实现了一个面向地理信息数据应用的云盘***,解决大规模非结构化文件数据的存储、检索、在线快速浏览问题,原型***的实验测试说明其可靠性稳定性好,存储检索浏览效率高,具有良好的实用价值。
Description
技术领域
本申请涉及一种高效检索浏览的地理信息云盘,特别涉及一种基于云计算高效检索浏览的地理信息云盘,属于地理信息云盘技术领域。
背景技术
遥感、测绘和GIS技术的数据处理能力一直在进步,空间数据采集设备和获取方式一直在更新,随着互联网技术和信息化的推进,每时每刻产生的数据越来越多,特别是包含地理空间信息的数据,都以文件形式保存下来。无论是传统测量产生的数据文件还是无人机、航拍、卫星产生的影像文件,海量文件数据的存储管理有更高要求,传统的文件存储方式已不能满足大规模地理信息数据管理的需求。
矢量文件一般存储在本地文件***,需要借助专业GIS软件如ArcGIS、MapInfo进行浏览,学习成本高,操作复杂。栅格影像文件一般存在本地文件***或者存储介质阵列上,当影像数据量过大时还要进行分盘分区存储,也需要借助专业RS软件如ERDAS、ENVI浏览,并且大型文件打开速度慢、处理效率低下。此外,现有技术存储方式下,本地文件的检索内容十分有限,只停留在基于文件名的检索,对大数据量的文件检索效率低下,没有发挥地理元信息应有的价值。文件共享传输的方式也是通过物理拷贝,速度慢且容易发生中断和损坏。文件数据密集型的行业如测绘数据采集部、档案馆对文件存储和管理的要求更高,而现有技术处理地理信息数据的方法又过于局限,亟须一种有效的针对大规模地理信息数据的存储管理方案。
要解决大规模数据存储,首先需要突破传统单机存储方式的限制。目前业界利用基于资源虚拟化的云环境来实现高可用、可扩展的海量数据存储***,并利用各类优化技术对***进行优化,一些较大的互联网公司都推出了在线网盘服务,主要设置文件存储和文件管理的功能,只需连网就可以操作文件,但目前的网盘***普遍都没有空间数据处理能力,对地理信息数据只能按照普通文件处理,不能解决地理信息数据检索难、处理效率低的问题。
现有技术有基于MongoDB的海量遥感影像大数据存储方法,采用GridFS大文件存储方式来存储影像,再将其有关的属性信息以一条文档的形式***MongoDB数据库,但没有涉及矢量数据的存储和管理方案。现有技术有基于PostgreSQL的地理空间数据存储管理方法,但没有突破传统关系数据库单机的限制,没有设计影像数据的存储和管理方案。现有技术有基于NoSQL数据库的空间大数据基于云计算存储策略,但对空间数据的类型主要支持矢量数据,对于查询检索的设计不够完善。
针对影像文件的快速浏览问题,现有技术有基于HBase存储海量影像瓦片数据的方法,但采用的方法是提前对所有影像都切好片,占用的存储空间很大。现有技术有Hadoop平台上利用MapReduce实现并行提取海量遥感影像元数据的方法,但对影像的显示采用的是传统方法,不能处理达到几十GB的超大影像的三维显示问题。现有技术有基于云计算构建子金字塔的策略来加快金字塔的构建和影像的浏览,但只能在本地操作,并且共享传输不方便。
综合来看,现有技术云盘的地理信息服务存在明显不足,其主要缺陷和设计难点包括:
第一,越来越多包含地理空间信息的数据,都以文件形式保存下来。无论是传统测量产生的数据文件还是无人机、航拍、卫星产生的影像文件,海量文件数据的存储管理有更高要求,现有技术的文件存储方式不能满足大规模地理信息数据管理的需求;矢量文件一般存储在本地文件***,需要借助专业GIS软件如ArcGIS、MapInfo进行浏览,学习成本高,操作复杂。栅格影像文件一般存在本地文件***或存储介质阵列上,当影像数据量过大时还要进行分盘分区存储,也需要借助专业RS软件如ERDAS、ENVI浏览,并且大型文件打开速度慢、处理效率低下,此外,现有技术存储方式下,本地文件的检索内容十分有限,只停留在基于文件名的检索,对大数据量的文件检索效率低下,没有发挥地理元信息应有的价值,文件共享传输的方式也是通过物理拷贝,速度慢且容易发生中断和损坏,现有技术处理地理信息数据的方法又过于局限,亟须一种有效的针对大规模地理信息数据的存储管理方案。
第二,要解决大规模数据存储,首先需要突破传统单机存储方式的限制,但现有技术的或者没有涉及矢量数据的存储和管理方案,或者没有设计影像数据的存储和管理方案,或者对空间数据的类型主要支持矢量数据,对于查询检索的设计不够完善,或者采用的方法是提前对所有影像都切好片,占用的存储空间很大,或者不能处理达到几十GB的超大影像的三维显示问题,或者只能在本地操作,并且共享传输不方便。一些较大的互联网公司推出在线网盘服务,主要设置文件存储和文件管理的功能,但目前的网盘***普遍都没有空间数据处理能力,对地理信息数据只能按照普通文件处理,不能解决地理信息数据检索难、处理效率低的问题;
第三,在当前的大数据时代,亟需存储、检索和管理海量文件数据的新***提高工作效率,同时也是制约大数据发挥更大价值的瓶颈,特别是现有技术对地理信息数据的管理一直没有很完善的解决方案,常见的设置文件存储服务网盘如百度网盘、微云网盘等只能设置文件名级别的检索,地理元信息没有发挥应有的价值,对地理信息数据的管理操作也非常有限,而传统的空间数据管理软件如ArcGIS使用门槛很高,需要专业技术背景,费用成本也很高,并且只能在单结点计算机上使用,文件共享也不方便,现有技术无法有效解决大规模文件地存储、检索和在线快速浏览问题,造成地理信息的存储、检索和浏览效率很低,应用受到极大限制,云盘的地理信息服务失去了实际利用价值;
第四,传统单机存储和处理的方式已无法满足现在地理信息数据数据管理的需求,而云环境设置的弹性存储能力和计算能力,很适合解决地理信息大数据存储和计算资源分配问题,但也面临一系列问题:一是无法解决海量地理信息数据的存储和管理问题,不能水平扩展和故障转移,地理文件共享需要繁琐的文件传输;二是无法解决海量文件的快速检索问题,缺少多维度的查询内容和更多种类的查询方式,缺少超大规模的文件检索和快速响应机制;三是无法解决超大影像的在线浏览问题,传统方式对所有文件都切片和全部建立影像金字塔浪费空间和资源的缺点,传统切片和建金字塔的效率低,缺少小型矢量文件的在线浏览功能,无法解决大规模非结构化文件数据的存储、检索、在线快速浏览问题云盘的地理信息服务实用价值低,并且可靠性没有保障。
发明内容
针对地理信息数据大数据传统单机存储容量限制、文件检索低效和文件浏览需借助于专业软件的问题,本申请设计了基于云环境和分布式架构的云盘***,并通过原型***的验证云盘***的有效性,该云盘***能应用于个人地理信息数据的管理和涉及多个部门的智慧城市数据中心的建设,具有良好的实用价值,个人用户可以通过云盘随时随地地管理个人的小规模地理信息数据,单位组织可以通过云盘高效管理大规模的地理信息数据,该云盘可以提高地理信息数据存储管理和采用的效率,同时也能促进地理空间数据的科学研究与应用信息共享,通过将该云盘集成到时空信息云平台,还能为平台的数据管理与高性能计算设置可行的解决方案,为智慧城市数据中心的建设设置参考依据。
为实现以上技术效果,本申请所采用的技术方案如下:
基于云计算高效检索浏览的地理信息云盘,基于时空信息云平台的架构,设计实现云计算环境和分布式架构的地理信息数据大数据管理云盘***,包括地理信息数据的云存储、构建基于HDFS-adLuc云的地理索引方法、地理信息文件元信息的建模方法、超大影像并行动态切片、在线云端快速浏览,解决大规模文件存储、检索和在线快速浏览问题;
第一,针对大规模地理信息数据存储问题,设计实现基于HDFS的云计算地理信息数据存储管理模块,可进行水平扩展和故障转移,在HDFS设置的文件操作接口的基础上,设置地理信息数据基本操作接口和文件管理,同时设置文件共享来避免繁琐的文件传输;
第二,针对海量地理信息文件元信息利用率不高、查询方式过于简单的问题,构建基于HDFS-adLuc云的地理索引方法,采用文件的基本元信息和地理元信息构建索引,设置多维度的查询内容和更多种类的查询方式,直接根据地理范围查找文件,提高文件检索的效率和命中率,基于云计算索引的构建配合分布式文件存储,设置超大规模的文件检索和快速响应机制;
第三,针对地理信息数据直接浏览不便的问题,设计实现基于Spark的影像交互式并行动态切片方法,动态切片的计算能力借助于基于云计算集群水平扩展,并基于Leaflet实现影像瓦片的在线快速浏览;
本申请的核心技术点:一是构建基于HDFS-adLuc云的地理索引方法;二是地理信息文件元信息的建模方法,包括:地理元信息获取、索引数据组织建模;三是地理影像文件云端快速浏览,包括:基于Spark的影像交互式并行动态切片方法、瓦片数据的云存储;
地理信息云盘***设计包括:一是地理信息云盘***总体架构;二是地理信息云盘业务流程;三是文件存储模块设计,包括文件接入、文件基本操作;四是文件索引模块设计,包括获取地理元信息、构建云计算索引、文件检索、云索引查询优化;五是地理信息数据浏览模块设计,包括地理信息数据检测、影像切片、地理信息数据显示、GIS应用数据库设计。
基于云计算高效检索浏览的地理信息云盘,进一步的,构建基于HDFS-adLuc云的地理索引方法:基于HDFS存储地理信息数据,并引入基于Lucene优化的搜索与分析引擎,构成基于云计算的实时文件存储框架HDFS-adLuc,每个地理信息数据字段都被索引并可被搜索,在应用中通过RESTful API和各类语言客户端、命令行进行交互,采用HDFS-adLuc构建基于云计算的地理索引的步骤包括:
步骤1:地理信息文件元信息准备:包括各类地理信息文件元信息的获取和数据组织建模两个阶段,本申请提出一种地理信息文件元信息的建模方法;
步骤2:Analyzer分析器设计:首先采用默认的或者安装的第三方分词器对建模后的地理信息文件元信息文档进行分词,然后去除文档的标点符号、停止词,进行大小写、单复数的转换,被索引的文档经过处理变成词项Term;对于地理信息数据的地理范围元信息,设置类型多边形geo_shape,分析器会采用Geohash算法将空间对象转换成base32编码的字符串,用于之后检索;
步骤3:选择索引分片:分析器处理后的文档经协调结点导入HDFS-adLuc集群进行缓存,协调结点是集群中作为客户端接入的结点,协调结点默认都包含集群各结点分片的元数据信息,协调结点默认采用MurMurHash3算法对输入的文档ID进行哈希,其结果再对分片数量取模,得到的结果就是索引文档存储的分片位置;
步骤4:缓存索引数据:当分片所在结点接收到来自协调结点的请求后,将该请求写入事务日志,并将文档加入内存缓冲,如果请求在主分片上成功处理,该请求会并行发送到该分片的副本上,然后客户端会收到确认通知;内存缓冲被周期性刷新,内容被写到文件***缓存的一个新段上,该段未同步但开放,内容可被搜索,保证云计算地理索引的实时性;
步骤5:索引落地到存储介质:每30分钟或当事务日志很大时,清空事务日志,文件***缓存被同步,内存中的缓存被清除,内容被写入一个新段,并将地理索引数据刷新到存储介质,此时一个跨多结点的云计算地理索引成功建立;
从HDFS-adLuc集群查询地理信息数据信息分为查询分发和结果归总两个阶段:
(1)查询分发阶段:协调结点将查询请求路由到索引的全部分片上,每个分片独立执行查询,并为查询结果创建一个优先队列,以关联性得分排序,所有分片都将匹配文档的ID及其关联性得分返回给协调结点,协调结点创建一个优先队列并对结果进行全局排序,得到很多文档匹配结果,每个分片只发送前10个结果给协调结点,协调结点为全部分片上的这些结果创建优先队列并返回前10个作为hit;
(2)结果归总阶段:协调结点向包含初始文档的分片发起请求,各个分片将上面命中的所有索引文档的信息返回给协调结点作为结果。
基于云计算高效检索浏览的地理信息云盘,进一步的,地理信息文件元信息的建模方法:首先根据需求准备各类地理信息元数据,并对数据进行建模组织成可被检索的文档,在云盘***中同时兼顾到普通文件、矢量文件和栅格文件的检索,对不同类型的文件添加不同字段,建立不同的模型,采用非结构化的文档,地理信息文件元信息的建模分为两个阶段,即地理元信息获取和地理元信息类型组织;
(1)地理元信息获取
地理信息数据的基本元信息通过在浏览器上传文件时调用浏览器的APl即可读取,但涉及到地理范围、坐标投影文件元信息通过专门的方法获取;
采用通过Python接口来读取文件的地理元信息,获取栅格数据波段、地理范围、分辨率元信息、矢量数据的要素类型、地理范围、坐标投影元信息;
对于栅格数据,首先通过gdal.Open()打开栅格文件创建数据对象,再通过数据对象的属性或者方法来获取栅格文件的元信息;
对于矢量数据,首先注册相应格式的驱动,再通过driver.Open()打开矢量文件创建数据对象,然后通过属性或者方法来获取矢量文件的元信息:
地理范围信息需要根据像素宽高、范围和参考系信息计算得到,还要根据需求进行投影变换,本申请将地理信息数据的坐标投影都变换到WGS1984大地坐标系下以便对栅格和矢量数据文件元信息进行统一检索;
空间数据地理范围的获取:不采用外包矩形而直接采用要素轮廓建立索引,通过栅格矢量化或者边缘检测的方法来提取栅格或者矢量文件中地理要素的轮廓;直接采用最小外包矩形法来获取地理信息数据元信息;
(2)索引数据组织建模
获取到地理信息数据所需的元信息后,把这些元信息数据组织成HDFS-adLuc能够处理的格式,在元数据实际导入后才能进行有效检索,根据需求设计地理元信息的结构,并设计地理信息数据各类元信息的值与HDFS-adLuc中合适的数据类型相应的Mapping;
本申请设计一个兼容协同的地理元信息索引模型,统一索引文件基础元信息、栅格元信息和矢量元信息,将索引信息放在一个文件中,但不同类型的文件内容不同,地理信息数据基本元信息的设计考虑云盘对非地理信息数据检索的兼容性,地理信息数据栅格元信息的索引结构针对栅格文件特别是影像文件设计,地理信息数据矢量元信息的索引结构针对矢量文件特别是Shapefile格式的文件设计,对地理信息数据检索核心功能关联的字段采用了Multi-fields进行建模。
基于云计算高效检索浏览的地理信息云盘,进一步的,基于Spark的影像交互式并行动态切片方法:直接采用分布式文件***的影像作为输入进行切片,没有额外的文件IO成本,还利用集群的计算能力来并行切片,再将瓦片发布TMS地图服务,实现超大影像的快速浏览,用户所要做的工作只是上传文件和点击浏览,无需借助专业软件;
基于Spark的影像交互式并行切片方法主要分为读取解析影像文件创建RDD、对每个RDD交互式分块分层切片、瓦片持久化差异存储三个步骤;
采用RDD弹性云计算数据集,RDD中的数据分布在多台机器上,从HDFS中直接读取影像文件的方法创建RDD,当HDFS的数据结点和Spark的计算结点相同时,直接在当前结点上读取影像文件块,免去影像文件网络传输的I/O成本,本申请并不需要一次性将所有数据都读入内存创建RDD,对于大数据量的影像文件同一时刻需要加载进内存的数据只是整体数据的一个子集,一小份RDD被处理后会被存储到存储介质、或者缓存下来或者从内存中清理掉,专门适合进行处理超大的影像文件;
影像RDD创建后各台计算结点对影像数据进行分块和分层,分块是对影像数据按照预先设计好的影像块大小进行分割,大多数情况下只是浏览影像数据的一小部分,分块之后在采用影像时只需将要显示和处理的若干个影像块数据读入内存,并非未分块前的一整幅影像;分层就是把初始影像数据按照不同分辨率管理,把分辨率高的影像层依次通过采样算法得到分辨率低一层的影像数据,避免大数据量实时采样的时间成本;
本申请在影像RDD分块时采用等大小非乱序分块规则,等大小为块与块之间的宽、高分别相等,分块规律,使加载时间保持一致、简化内存存储,采用固定大小的分块方法,设置每个影像块的大小为256×256个像素,对影像RDD进行基于四叉树的分块;
影像分块后,对瓦片建立空间索引进行编码,采用Hilbert空间曲线,当索引编码邻近时能很好的保持瓦片数据的邻接关系,并且数据存取和查询效率高;
对小影像块进行重采样生成较低分辨率的影像,依次进行,直到完成预定的分层数量;分层影像采用基于倍率n的方法构建,形成多个分辨率层次,采用倍率抽取方法对影像进行分层,从底层到顶层,分辨率越来越低,数据量大小越来越小,但表示范围不变,用下式来表示各层的分辨率:
tm=to×n
其中,tm为第m层影像的分辨率,to为图像数据的初始分辨率,n为倍率;对影像进行分层时采用2:1的倍率,即上层影像的分辨率是下层的一半,分层时对小影像RDD值重采样,采用Spark处理三次卷积法。
基于云计算高效检索浏览的地理信息云盘,进一步的,瓦片数据的云存储:基于瓦片文件数据量大且具有空间邻近性的特点,设置列式数据库HBase存储瓦片文件,列式存储相邻列上的数据物理上存储在相邻的位置,这和小瓦片的Hilbert空间索引编码特征相同,把小瓦片的Hilbert索引编码作为小瓦片数据存储时的RowKey,RowKey相邻小瓦片在物理上存储在同一个Region里,当需要读取某个地理范围的影像时,向HBase查询接口传入包含该地理范围内瓦片的列的范围,一次获取到整列的数据,在指定的列中获取所需的瓦片***I/O效率高;
针对瓦片特点和瓦片查询需求,本申请设计的小瓦片数据在HBase中的存储表结构以上面切片的Hilbert编码为Rowkey,主要包括两个列族,ImageData列族存储小瓦片所在的图层名、行列号、缩放层级信息,ImageMeta存储小瓦片的其它元信息如分辨率、像素宽高信息,作为影像其它信息的存储位置。
基于云计算高效检索浏览的地理信息云盘,进一步的,地理信息云盘***总体架构:统基于基础设施云平台设置的存储、计算资源之上,分为GIS存储层、GIS业务层、前端表现层;
云平台基础设施层为云盘设置底层技术支持,在CPU、内存、存储介质、网络物理资源虚拟化的基础上,向用户设置一组按需取用的公共资源服务,包括与各个业务关联的计算资源、持久存储资源以及将这些资源组合在一起并将它们有条件公开到互联网的可配置联网资源,在云平台上搭建计算集群、存储集群,构建良好可扩展性和定制性的集群;
GIS存储层为云盘设置存储海量用户GIS文件及业务计算结果和中间临时资源,存储资源主要分为三类,第一类是用户上传的各类文件,这是最原始和重要的用户数据,保存在HDFS文件***中,第二类是由用户文件的元信息创建的索引数据,保存在HDFS-adLuc集群中,第三类是由用户上传的栅格文件切片后产生的瓦片数据,保存在基于HDFS的HBase数据库中,此外,还有用户资料数据、应用基本数据等其它资源存储在关系数据库中;
GIS业务层采用模块化设计文件存储、文件检索以及影像浏览3个主要模块,此外还设计用户管理、文件分享的其它业务,每个模块设置功能专一的服务,减小模块之间的耦合度;
前端表现层是与用户交互的前端界面,主要交互元素包括主要包括文件上传、文件管理浮动工具栏、文件检索框、检索条件复选框、文件地图、矢量浏览、影像浏览。
基于云计算高效检索浏览的地理信息云盘,进一步的,地理信息云盘业务流程:核心业务以web应用服务器为业务调度中心,所有请求操作都通过它与各个子业务模块进行交互,然后计算结果再通过它返回给前端界面;
云盘采用的典型业务流程包括:当用户选择完待上传的文件时,首先浏览器客户端读取文件名、文件大小、文件修改日期的文件基本元信息,然后点击上传按钮就会将文件本身和读取到的文件基本元信息发送到Web应用服务器,Web应用服务器接受到这些信息后会先将文件基本元信息***到Web应用基础数据库,同时把文件初始数据存储到基于HDFS的基于云计算文件***上;之后,***就会对文件的基本元信息构建索引并导入到HDFS-adLuc,当***检测到文件是地理信息数据时,就会调用索引构建算法计算文件的地理元信息,然后更新索引;当用户选择浏览影像数据时,***首先会检测影像是否已切片,若已经切片完成,则直接从HBase数据库中读取瓦片用于在线浏览,若影像是第一次浏览还未切片,则***会调用基于Spark的影像切片算法先将影像并行切片并保存到HBase数据库,然后就通过TMS地图服务在线浏览瓦片地图。
基于云计算高效检索浏览的地理信息云盘,进一步的,文件存储模块设计:设置稳定、可靠的海量普通文件和地理信息数据的存储和管理,主要包括文件接入和文件信息基本操作两个方面:
(1)文件接入:设置文件与云盘***交互的第一道入口,同时获取文件最基本的元信息,将用户的文件以及文件基本元信息传输到云盘***,文件接入是最直接与用户交互的基础,同时也是后续文件数据处理的准备工作;
(2)文件基本操作:设置最基本的文件管理功能,设计文件下载、文件收藏、文件分享、文件重命名、文件移动和文件信息修改6个文件管理模块,通过浮动工具栏触发文件操作。
基于云计算高效检索浏览的地理信息云盘,进一步的,文件索引模块设计:对用户上传的普通文件基本元信息建立索引、对地理信息数据建立分布式时空索引,为用户设置多维度、更高效的文件检索服务,主要包括地理元信息获取、分布式索引构建和文件检索三个方面的功能;
(1)获取地理元信息
对地理信息数据建立云计算时空索引后,对海量文件进行近实时的检索,特别是根据地理范围和时间范围的检索,云计算时空索引大幅增强文件检索功能和效率,地理元信息的获取设计针对栅格数据TIFF格式的影像和矢量数据Shapefile格式的文件两类地理元信息获取方法;
1)栅格文件地理元信息的获取:计算出瓯格文件的空间范围,同时取得其它空间信息,为基于云计算时空索引的构建准备数据;
2)矢量文件地理元信息的获取:计算出矢量文件的空间范围、图层和要素信息,同时取得其它空间元信息,为基于云计算时空索引的构建准备数据;
(2)构建云计算索引
主要包括元信息建模和索引导入两个方面:
1)元信息建模:将地理信息数据基本元信息和栅格或者矢量元信息组织成符合HDFS-adLuc索引格式的数据,根据检索需求对需要检索的字段设置合适的type,信息建模分为三类,分别针对普通文件元信息、栅格文件元信息、矢量文件元信息;
2)索引导入:将建模后的文件元信息传输到HDFS-adLuc云计算集群中,对索引过的数据进行检索,索引导入方法包括批量导入和分阶段导入,批量导入减少网络I/O和提高索引效率,分阶段导入首先保证文件最基本的可被检索性,然后再扩展检索的空间能力;
(3)文件检索
包括多条件组合检索和搜索结果排序两个方面:多条件组合搜索为用户设置灵活的文件检索能力,动态添加和删除检索条件,获取检索结果;检索结果排序设置对检索结果按关联度或者按时间排序;
(4)云索引查询优化
基于云计算地理索引的构建与查询从以下几个方面优化:
优化一:索引构建时不设置实时刷新,将refresh_interval设为-1,需要在查询时进行一次索引刷新然后再查询,将refresh_interval设为一个较大的值;
优化二:依据实际网络情况设置bulk size,bulk线程池用于HDFS-adLuc索引的批量操作,伴随shard的增多,HDFS-adLuc的索引生成速度协同上升,为满足每个shard都到达自己的极限,加大bulk size,保证给每个shard充足的数据;
优化三:将元信息数据导入HDFS-adLuc时,采用Node Client建立连接,减少一次网络传输;
采用HDFS-adLuc进行检索包括查询和过滤,把所以匹配到的文档的_score标记为1,但查询结果不能被缓存,过滤结果设置为缓存,在查询中直接引用之前输入过的地理对象的名字,地理对象内任何坐标的变化都会导致Geohash集合的变化,只有重复采用来做过滤的地理对象才缓存。
基于云计算高效检索浏览的地理信息云盘,进一步的,地理信息数据浏览模块设计:设置栅格文件和矢量文件的在线浏览,主要包括地理信息数据检测、影像切片服务和地理信息数据显示三个方面:
(1)地理信息数据检测
识别用户上传的文件元信息,并自动补充数据来源、文件类别、地理标签信息,考虑到空间数据来源丰富,结构各异,约定规则后实现半自动的文件类型检测,本申请设计根据文件后缀经验信息识别文件来源与手动添加文件标签相结合的方法检测文件类型;
(2)影像切片
l)影像并行切片:将大影像分多级切割成不同分辨率的小瓦片,再利用这些规则小瓦片实现影像快速显示,云盘***设计基于Spark的影像交互式并行动态切片方法,发挥Spark分布式并行计算优势,当***检测到上传文件的文件是影像时,直接采用HDFS中的影像文件作为输入导入Spark创建RDD,然后Spark集群就会对影像从最大分辨率一直到满足需求的最低分辨率进行切片,切片后的瓦片数据存储在基于HDFS的数据库HBase中;
2)瓦片存储:针对瓦片的特点和采用的基于云计算技术栈,采用基于HDFS的基于云计算列式数据库HBase,存储数量较大的同一类数据,保证较高的数据检索效率;
3)瓦片地图服务发布:设置瓦片在线访问的服务接口,通过发布地图服务,让其它模块获取到瓦片数据,根据瓦片和技术栈的特点,设计基于Scala的TMS地图服务,采用Spray建立一个TMS控制器并发布成RESTful接口的服务,控制器获取到请求瓦片的的x、y、z值,并从HBase中取出相应的瓦片返回给请求方;
(3)地理信息数据显示
1)影像瓦片显示:将影像快速显示在前端界面上,方便快速浏览栅格文件,针对瓦片显示设计采用Leaflet开源库,渲染基于WMS、WMTS、TMS地图服务的地图,处理发布的地图服务;
2)矢量显示:将矢量文件快速显示在前面界面上,方便浏览矢量文件,针对二类矢量数据的显示进行设计,对GeoJSON格式的矢量Leaflet开源库直接支持,对于Shapefile格式的是矢量通过前端js库解析处理;
(4)GIS应用数据库设计
GIS应用数据库与各个子模块紧密关联,存储用户信息、文件信息和各类状态信息,与Web应用服务器交互来持久化各类数据,Web基础服务器是云盘***数据与任务的调度中心;
GIS应用数据库主要包含文件基本元信息、地理元信息、文件类型、用户信息方面的数据,考虑***的可扩展性,设计一些冗余字段。
与现有技术相比,本申请的创新点和优势在于:
第一,针对空间大数据规模大、多样化、流转快、时序性强、价值高的明显特征,设计基于云计算高效检索浏览的地理信息云盘,基于时空信息云平台的架构,包括地理信息数据的云存储、构建基于HDFS-adLuc云的地理索引方法、地理信息文件元信息的建模方法、超大影像并行动态切片、在线云端快速浏览,有效解决大规模文件的存储、检索和在线快速浏览问题,改变了地理数据以文件形式保存在本地硬盘或者存储介质阵列上的现状,文件组织有序、浏览方便、检索高效、迁移共享方便,并对地理信息数据的管理提出一套很完善的解决方案,地理元信息发挥在存储检索中的价值,对地理信息数据的管理操作也更加高效,不需要专业技术背景,费用成本也很低,并且可以在分布式和云计算集群计算机上使用,文件共享方便,满足地理信息数据数据管理需求,云环境设置的弹性存储能力和计算能力有效解决了地理信息大数据存储和计算资源分配问题;
第二,针对大规模地理信息数据存储问题,本申请设计并实现了基于HDFS的云计算地理信息数据存储管理模块,突破传统单机存储的限制,并且可进行水平扩展和故障转移,在HDFS设置的文件操作接口的基础上,设置地理信息数据基本操作接口和文件管理,方便进行文件基本操作,同时设置文件共享来避免繁琐的文件传输;
第三,针对海量地理信息文件元信息利用率不高、查询方式过于简单的问题,构建基于HDFS-adLuc云的地理索引方法,采用文件的基本元信息和地理元信息构建索引,能设置更多维度的查询内容和更多种类的查询方式,直接根据地理范围查找文件,提高文件检索的效率和命中率,还设置灵活的文件查询方式,基于云计算索引的构建配合分布式文件存储,设置超大规模的文件检索和快速响应机制;
第四,针对地理信息数据直接浏览不便的问题,设计并实现了基于Spark的影像交互式并行动态切片方法,避免了传统方式对所有文件都切片和全部建立影像金字塔浪费空间和资源的缺点,提高影像切片的效率,动态切片的计算能力借助于基于云计算集群水平扩展,比传统切片和建金字塔的效率高得多,并基于Leaflet实现影像瓦片的在线快速浏览;本申请设计并实现了一个面向地理信息数据应用的云盘***,解决大规模非结构化文件数据的存储、检索、在线快速浏览问题,原型***的实验测试说明其可靠性稳定性好,存储检索浏览效率高,具有良好的实用价值;
第五,针对地理信息数据大数据传统单机存储容量限制、文件检索低效和文件浏览需借助于专业软件的问题,本申请设计了基于云环境和分布式架构的云盘***,并通过原型***的验证云盘***的有效性,该云盘***能应用于个人地理信息数据的管理和涉及多个部门的智慧城市数据中心的建设,具有良好的实用价值,个人用户可以通过云盘随时随地地管理个人的小规模地理信息数据,单位组织可以通过云盘高效管理大规模的地理信息数据,该云盘可以提高地理信息数据存储管理和采用的效率,同时也能促进地理空间数据的科学研究与应用信息共享,通过将该云盘集成到时空信息云平台,还能为平台的数据管理与高性能计算设置可行的解决方案,为智慧城市数据中心的建设设置参考依据。
附图说明
图1是地理信息数据基本元信息索引结构模型示意图。
图2是栅格文件基本元信息索引结构模型示意图。
图3是矢量文件基本元信息索引结构模型示意图。。
图4是地理信息数据元信息索引结构模型的Mapping设计图。
图5是基于Spark的影像交互式并行切片方法的原理图。
图6是小瓦片数据在HBase中的云存储表结构示意图。
图7是基于云计算高效检索浏览的地理信息云盘的总体架构图。
图8是高效检索浏览的地理信息云盘***的核心业务流程图。
图9是本申请的文件存储模块的设计结构图。
图10是本申请的文件索引模块的设计结构图。
图11是本申请的地理信息数据浏览模块设计结构图。
图12是本申请GIS应用数据库设计的E-R图。
具体实施方法
下面结合附图,对本申请设置的基于云计算高效检索浏览的地理信息云盘的技术方案进行进一步的描述,使本领域的技术人员能够更好的理解本申请并能予以实施。
遥感、测绘、GIS技术不断进步使得空间数据的采集、转换、处理越来越容易,当前已经全面进入大数据时代,空间大数据规模大、多样化、流转快、时序性强、价值高的特征日益明显。这些数据很大一部分以文件的形式保存在本地硬盘或者存储介质阵列上,采用时会出现文件组织杂乱、浏览不便、检索低效、迁移共享困难等问题。此外,地理信息数据种类和数量的增加还会使数据管理难度加大。
大数据时代,高效的存储、检索和管理海量文件数据已成为提高工作效率的关键,同时也是制约大数据发挥更大价值的瓶颈,特别是现有技术对地理信息数据的管理一直没有很完善的解决方案。常见的设置文件存储服务网盘如百度网盘、微云网盘等只能设置文件名级别的检索,地理元信息没有发挥应有的价值,对地理信息数据的管理操作也非常有限,而传统的空间数据管理软件如ArcGIS使用门槛很高,需要专业技术背景,费用成本也很高,并且只能在单结点计算机上使用,文件共享也不方便。
传统单机存储和处理的方式已无法满足现在地理信息数据数据管理的需求,而云环境设置的弹性存储能力和计算能力很适合解决地理信息大数据存储和计算资源分配问题。本申请从实际需求出发,基于时空信息云平台的架构,设计并实现基于云计算环境和分布式架构的地理信息数据大数据管理云盘***,包括地理信息数据的云存储、构建基于HDFS-adLuc云的地理索引方法、地理信息文件元信息的建模方法、超大影像并行动态切片、在线云端快速浏览,有效解决大规模文件地存储、检索和在线快速浏览问题。
1)针对大规模地理信息数据存储问题,设计并实现了基于HDFS的云计算地理信息数据存储管理模块,突破传统单机存储的限制,并且可进行水平扩展和故障转移,在HDFS设置的文件操作接口的基础上,设置地理信息数据基本操作接口和文件管理,方便进行文件基本操作,同时设置文件共享来避免繁琐的文件传输;
2)针对海量地理信息文件元信息利用率不高、查询方式过于简单的问题,构建基于HDFS-adLuc云的地理索引方法,采用文件的基本元信息和地理元信息构建索引,能设置更多维度的查询内容和更多种类的查询方式,直接根据地理范围查找文件,提高文件检索的效率和命中率,还设置灵活的文件查询方式,基于云计算索引的构建配合分布式文件存储,设置超大规模的文件检索和快速响应机制;
3)针对地理信息数据直接浏览不便的问题,设计并实现了基于Spark的影像交互式并行动态切片方法,避免了传统方式对所有文件都切片和全部建立影像金字塔浪费空间和资源的缺点,提高影像切片的效率,动态切片的计算能力借助于基于云计算集群水平扩展,比传统切片和建金字塔的效率高得多,并基于Leaflet实现影像瓦片的在线快速浏览;
本申请的核心技术点:一是构建基于HDFS-adLuc云的地理索引方法;二是地理信息文件元信息的建模方法,包括:地理元信息获取、索引数据组织建模;三是地理影像文件云端快速浏览,包括:基于Spark的影像交互式并行动态切片方法、瓦片数据的云存储;
地理信息云盘***设计包括:一是地理信息云盘***总体架构;二是地理信息云盘业务流程;三是文件存储模块设计,包括文件接入、文件基本操作;四是文件索引模块设计,包括获取地理元信息、构建云计算索引、文件检索、云索引查询优化;五是地理信息数据浏览模块设计,包括地理信息数据检测、影像切片、地理信息数据显示、GIS应用数据库设计;
本申请设计并实现了一个面向地理信息数据应用的云盘***,解决大规模非结构化文件数据的存储、检索、在线快速浏览问题,原型***的实验和测试说明本申请设计的方法可以有效解决上述问题,具有良好的实用价值。
一、构建基于HDFS-adLuc云的地理索引方法
基于HDFS存储地理信息数据,并引入基于Lucene优化的搜索与分析引擎,构成基于云计算的实时文件存储框架HDFS-adLuc,每个地理信息数据字段都被索引并可被搜索,在应用中通过RESTful API和各类语言客户端、命令行进行交互,采用HDFS-adLuc构建基于云计算的地理索引的步骤包括:
步骤1:地理信息文件元信息准备:包括各类地理信息文件元信息的获取和数据组织建模两个阶段,本申请提出一种地理信息文件元信息的建模方法;
步骤2:Analyzer分析器设计:首先采用默认的或者安装的第三方分词器对建模后的地理信息文件元信息文档进行分词,然后去除文档的标点符号、停止词,进行大小写、单复数的转换,被索引的文档经过处理变成词项Term;对于地理信息数据的地理范围元信息,设置类型多边形geo_shape,分析器会采用Geohash算法将空间对象转换成base32编码的字符串,用于之后检索;
步骤3:选择索引分片:分析器处理后的文档经协调结点导入HDFS-adLuc集群进行缓存,协调结点是集群中作为客户端接入的结点,协调结点默认都包含集群各结点分片的元数据信息,协调结点默认采用MurMurHash3算法对输入的文档ID进行哈希,其结果再对分片数量取模,得到的结果就是索引文档存储的分片位置。
步骤4:缓存索引数据:当分片所在结点接收到来自协调结点的请求后,将该请求写入事务日志,并将文档加入内存缓冲,如果请求在主分片上成功处理,该请求会并行发送到该分片的副本上,然后客户端会收到确认通知;内存缓冲被周期性刷新,内容被写到文件***缓存的一个新段上,该段未同步但开放,内容可被搜索,保证云计算地理索引的实时性;
步骤5:索引落地到存储介质:每30分钟或当事务日志很大时,事务日志会被清空,文件***缓存被同步,内存中的缓存被清除,内容被写入一个新段,并将地理索引数据刷新到存储介质,此时一个跨多结点的云计算地理索引成功建立。
从HDFS-adLuc集群查询地理信息数据信息分为查询分发和结果归总两个阶段:
(1)查询分发阶段:协调结点将查询请求路由到索引的全部分片上,每个分片独立执行查询,并为查询结果创建一个优先队列,以关联性得分排序,所有分片都将匹配文档的ID及其关联性得分返回给协调结点,协调结点创建一个优先队列并对结果进行全局排序,得到很多文档匹配结果,默认情况下每个分片只发送前10个结果给协调结点,协调结点为全部分片上的这些结果创建优先队列并返回前10个作为hit;
(2)结果归总阶段:协调结点向包含初始文档的分片发起请求,各个分片将上面命中的所有索引文档的信息返回给协调结点作为结果。
二、地理信息文件元信息的建模方法
首先根据需求准备各类地理信息元数据,并对数据进行建模组织成可被检索的文档,在云盘***中同时兼顾到普通文件、矢量文件和栅格文件的检索,对不同类型的文件添加不同字段,建立不同的模型,采用非结构化的文档,地理信息文件元信息的建模分为两个阶段,即地理元信息获取和地理元信息类型组织。
(1)地理元信息获取
地理信息数据的基本元信息通过在浏览器上传文件时调用浏览器的APl即可读取,但涉及到地理范围、坐标投影文件元信息通过专门的方法获取。
采用通过Python接口来读取文件的地理元信息,获取栅格数据波段、地理范围、分辨率元信息、矢量数据的要素类型、地理范围、坐标投影元信息。
对于栅格数据,首先通过gdal.Open()打开栅格文件创建数据对象,再通过数据对象的属性或者方法来获取栅格文件的元信息。
对于矢量数据,首先注册相应格式的驱动,再通过driver.Open()打开矢量文件创建数据对象,然后通过属性或者方法来获取矢量文件的元信息:
通过以上方法获取的大多数元信息都可直接用来构建索引,但地理范围信息不能直接得到,需要根据像素宽高、范围和参考系信息计算得到,还要根据需求进行投影变换,本申请将地理信息数据的坐标投影都变换到WGS1984大地坐标系下以便对栅格和矢量数据文件元信息进行统一检索。
空间数据地理范围的获取:不采用外包矩形而直接采用要素轮廓建立索引,通过栅格矢量化或者边缘检测的方法来提取栅格或者矢量文件中地理要素的轮廓,提高搜索准确度,然而采用复杂轮廓提取算法会大幅增加索引构建时间,特别是在地理信息数据本身很大的情况下提取轮廓会有明显的延迟,而且孤岛和洞这样的特殊情况也没有得到处理。
由于本申请设计的云盘的目标之一是提高地理信息数据检索的效率,用户一般存储的是个人地理信息数据或者某一地区的文件,只要目标文件能被命中,就能满足基本需求,在搜索结果过多或者过少的情况下,动态调整搜索范围的大小来过滤地理信息数据,所以在本申请的云盘***中,直接采用最小外包矩形法来获取地理信息数据元信息。
(2)索引数据组织建模
获取到地理信息数据所需的元信息后,把这些元信息数据组织成HDFS-adLuc能够处理的格式,在元数据实际导入后才能进行有效检索,根据需求设计地理元信息的结构,并设计地理信息数据各类元信息的值与HDFS-adLuc中合适的数据类型相应的Mapping。
本申请设计一个兼容协同的地理元信息索引模型,统一索引文件基础元信息、栅格元信息和矢量元信息,将索引信息放在一个文件中,但不同类型的文件内容不同,地理信息数据基本元信息的设计考虑云盘对非地理信息数据检索的兼容性,具体结构如图1所示,地理信息数据栅格元信息的索引结构针对栅格文件特别是影像文件设计,具体结构如图2所示,地理信息数据矢量元信息的索引结构针对矢量文件特别是Shapefile格式的文件设计,具体结构如图3所示,云盘***针对各类元信息的值和检索需求设计的Mapping如图4,对地理信息数据检索核心功能关联的字段采用了Multi-fields进行建模。
三、地理影像文件云端快速浏览
如何快速浏览地理信息数据的内容,现有技术对于超大栅格影像文件的快速浏览一直没有高效的解决方案。
存储在本地存储介质上的影像文件,需要借助专业的软件来进行文件的浏览与操作,此时能处理的文件大小会受到软件本身的限制或者操作***、硬件环境的限制。对于超大影像如单幅大于10G的影像,采用专业软件打开时,会有漫长的金字塔建立时间,有时软件还会崩溃,造成不必要的空间、时间和精力的浪费,这是传统C/S架构解决方案的弊端。
存储在数据库中的影像文件,对数据库的容量和访问性能有较高要求,此时要浏览影像需要开发额外的前端界面,工作量较大。现有的解决方案很多是入库之前对所有的影像文件都建立金字塔,之后直接读取金字塔的瓦片来实现影像的快速浏览,这对于采用率低和以存储为主的采用场景是不必要的,反而产生了数量巨大的金字塔文件。
(一)基于Spark的影像交互式并行动态切片方法
云盘***实现超大影像的在线快速浏览,现有技术影像快速浏览的方法主要是借助于金字塔瓦片文件,将影像按照不同的级别分块,形成分辨率由粗到细、数据量由小到大的小瓦片文件。基于云盘的存储采用的是基于HDFS-adLuc的文件***,本申请设计基于Spark的影像并行切片方法,直接采用分布式文件***的影像作为输入进行切片,没有额外的文件IO成本,还利用集群的计算能力来并行切片,再将瓦片发布TMS地图服务,实现超大影像的快速浏览,用户所要做的工作只是上传文件和点击浏览,无需借助专业软件。
采用云盘***来实现影像的快速浏览与传统方式相比有如下优点:一是影像切片速度快,Spark基于内存的计算运算要比基于硬盘的运算和MapReduce快很多;二是支持超大影像的基于云计算并行切片,Spark直接采用基于云计算文件***的影像文件作为输入,并且无额外的文件传输和I/O成本;三是云盘利用Spark实现按需快速切片,节省空间,不必事先对所有影像文件都切好片,只有当用户需要时才切片;四是云盘采用B/S架构,一次切片,查看方便,分享给其它人也方便:五是基于Spark丰富的组件,除用于并行计算,还能用于数据查询、流式计算、机器学习和图计算,方便后续对地理信息进行数据挖掘;
基于Spark的影像交互式并行切片方法的原理如图5所示。主要分为读取解析影像文件创建RDD、对每个RDD交互式分块分层切片、瓦片持久化差异存储三个步骤。
采用RDD弹性云计算数据集,RDD中的数据分布在多台机器上,从HDFS中直接读取影像文件的方法创建RDD,当HDFS的数据结点和Spark的计算结点相同时,直接在当前结点上读取影像文件块,免去影像文件网络传输的I/O成本,克服传统方法影像传输成本高的问题。本申请并不需要一次性将所有数据都读入内存创建RDD,对于大数据量的影像文件同一时刻需要加载进内存的数据只是整体数据的一个子集,一小份RDD被处理后会被存储到存储介质、或者缓存下来或者从内存中清理掉,专门适合进行处理超大的影像文件。
影像RDD创建后各台计算结点对影像数据进行分块和分层,分块是对影像数据按照预先设计好的影像块大小进行分割,大多数情况下只是浏览影像数据的一小部分,分块之后在采用影像时只需将要显示和处理的若干个影像块数据读入内存,并非未分块前的一整幅影像;分层就是把初始影像数据按照不同分辨率管理,把分辨率高的影像层依次通过采样算法得到分辨率低一层的影像数据,避免大数据量实时采样的时间成本。
瓦片数据块太大或者太小都会影响***的性能,如果数据块太大,则可能导致读取过多多余数据,如果数据块太小,虽然减少了多余数据,但却增加了存储介质寻址和读操作次数,不利于节省总的读数据时间,对于网络传输,也有同样的影响。本申请在影像RDD分块时采用等大小非乱序分块规则,等大小为块与块之间的宽、高分别相等,分块规律,使加载时间保持一致、简化内存存储,采用固定大小的分块方法,设置每个影像块的大小为256×256个像素,对影像RDD进行基于四叉树的分块。
影像分块后,为了能够高效获取到瓦片数据,对瓦片建立空间索引进行编码,采用Hilbert空间曲线,当索引编码邻近时能很好的保持瓦片数据的邻接关系,并且数据存取和查询效率高。
对小影像块进行重采样生成较低分辨率的影像,依次进行,直到完成预定的分层数量。分层影像采用基于倍率n的方法构建,形成多个分辨率层次,采用倍率抽取方法对影像进行分层,从底层到顶层,分辨率越来越低,数据量大小越来越小,但表示范围不变,用下式来表示各层的分辨率:
tm=to×n
其中,tm为第m层影像的分辨率,to为图像数据的初始分辨率,n为倍率;对影像进行分层时采用2:1的倍率,即上层影像的分辨率是下层的一半,分层时对小影像RDD值重采样,采用Spark处理三次卷积法。
(二)瓦片数据的云存储
基于瓦片文件数据量大且具有空间邻近性的特点,设置列式数据库HBase存储瓦片文件,列式存储相邻列上的数据物理上存储在相邻的位置,这和小瓦片的Hilbert空间索引编码特征相同,把小瓦片的Hilbert索引编码作为小瓦片数据存储时的RowKey,RowKey相邻小瓦片在物理上存储在同一个Region里,当需要读取某个地理范围的影像时,向HBase查询接口传入包含该地理范围内瓦片的列的范围,一次获取到整列的数据,在指定的列中获取所需的瓦片***I/O效率高。
针对瓦片特点和瓦片查询需求,本申请设计的小瓦片数据在HBase中的存储表结构以上面切片的Hilbert编码为Rowkey,主要包括两个列族,ImageData列族存储小瓦片所在的图层名、行列号、缩放层级信息,ImageMeta存储小瓦片的其它元信息如分辨率、像素宽高信息,作为影像其它信息的存储位置,具体设计如图6所示。
四、地理信息云盘***设计
(一)地理信息云盘***总体架构
云盘总体架构设计如图7,***基于基础设施云平台设置的存储、计算资源之上,分为GIS存储层、GIS业务层、前端表现层。
云平台基础设施层为云盘设置底层技术支持,在CPU、内存、存储介质、网络物理资源虚拟化的基础上,向用户设置一组按需取用的公共资源服务,包括与各个业务关联的计算资源、持久存储资源以及将这些资源组合在一起并将它们有条件公开到互联网的可配置联网资源,在云平台上搭建计算集群、存储集群,构建良好可扩展性和定制性的集群。
GIS存储层为云盘设置存储海量用户GIS文件及业务计算结果和中间临时资源,存储资源主要分为三类,第一类是用户上传的各类文件,这是最原始和重要的用户数据,保存在HDFS文件***中,第二类是由用户文件的元信息创建的索引数据,保存在HDFS-adLuc集群中,第三类是由用户上传的栅格文件切片后产生的瓦片数据,保存在基于HDFS的HBase数据库中,此外,还有用户资料数据、应用基本数据等其它资源存储在关系数据库中。
GIS业务层采用模块化设计文件存储、文件检索以及影像浏览3个主要模块,此外还设计用户管理、文件分享的其它业务,每个模块设置功能专一的服务,减小模块之间的耦合度。
前端表现层是与用户交互的前端界面,主要交互元素包括主要包括文件上传、文件管理浮动工具栏、文件检索框、检索条件复选框、文件地图、矢量浏览、影像浏览。
(二)地理信息云盘业务流程
云盘***的核心业务流程见图8。云盘***的核心业务以web应用服务器为业务调度中心,所有请求操作都通过它与各个子业务模块进行交互,然后计算结果再通过它返回给前端界面。
云盘采用的典型业务流程包括:当用户选择完待上传的文件时,首先浏览器客户端读取文件名、文件大小、文件修改日期的文件基本元信息,然后点击上传按钮就会将文件本身和读取到的文件基本元信息发送到Web应用服务器,Web应用服务器接受到这些信息后会先将文件基本元信息***到Web应用基础数据库,同时把文件初始数据存储到基于HDFS的基于云计算文件***上;之后,***就会对文件的基本元信息构建索引并导入到HDFS-adLuc,当***检测到文件是地理信息数据时,就会调用索引构建算法计算文件的地理元信息,然后更新索引。当用户选择浏览影像数据时,***首先会检测影像是否已切片,若已经切片完成,则直接从HBase数据库中读取瓦片用于在线浏览,若影像是第一次浏览还未切片,则***会调用基于Spark的影像切片算法先将影像并行切片并保存到HBase数据库,然后就通过TMS地图服务在线浏览瓦片地图。
(三)文件存储模块设计
文件存储模块为用户设置稳定、可靠的海量普通文件和地理信息数据的存储和管理,主要包括文件接入和文件信息基本操作两个方面,具体的功能设计如图9所示。
(1)文件接入
为用户设置文件与云盘***交互的第一道入口,同时获取文件最基本的元信息,将用户的文件以及文件基本元信息传输到云盘***,文件接入是最直接与用户交互的基础,同时也是后续文件数据处理的准备工作。
(2)文件基本操作
为用户设置最基本的文件管理功能,方便用户组织自己的文件,设计文件下载、文件收藏、文件分享、文件重命名、文件移动和文件信息修改6个文件管理模块,通过浮动工具栏的方式触发文件操作。
(四)文件索引模块设计
对用户上传的普通文件基本元信息建立索引、对地理信息数据建立分布式时空索引,为用户设置更多维度、更高效的文件检索服务,主要包括地理元信息获取、分布式索引构建和文件检索三个方面的功能,具体的功能设计如下图10所示。
(1)获取地理元信息
为建立云计算时空索引做准备,在文件上传时通过浏览器只能获取到文件的基本元信息,只利用文件基本元信息来构建索引产生的检索效果跟本地操作***的文件检索几乎相同,检索字段非常有限并且命中率低。对地理信息数据建立云计算时空索引后,对海量文件进行近实时的检索,特别是根据地理范围和时间范围的检索,云计算时空索引大幅增强文件检索功能和效率,地理元信息的获取设计针对栅格数据TIFF格式的影像和矢量数据Shapefile格式的文件两类地理元信息获取方法。
1)栅格文件地理元信息的获取:栅格文件地理元信息获取的目标主要是计算出瓯格文件的空间范围,同时取得其它空间信息,为基于云计算时空索引的构建准备数据。
2)矢量文件地理元信息的获取:矢量文件地理元信息获取的目标主要是计算出矢量文件的空间范围、图层和要素信息,同时取得其它空间元信息,为基于云计算时空索引的构建准备数据。
(2)构建云计算索引
主要包括元信息建模和索引导入两个方面。
1)元信息建模:将地理信息数据基本元信息和栅格或者矢量元信息组织成符合HDFS-adLuc索引格式的数据,根据检索需求对需要检索的字段设置合适的type,信息建模分为三类,分别针对普通文件元信息、栅格文件元信息、矢量文件元信息。
2)索引导入:将建模后的文件元信息传输到HDFS-adLuc云计算集群中,对索引过的数据进行检索,索引导入方法包括批量导入和分阶段导入,批量导入减少网络I/O和提高索引效率,分阶段导入首先保证文件最基本的可被检索性,然后再扩展检索的空间能力。
(3)文件检索
包括多条件组合检索和搜索结果排序两个方面:多条件组合搜索为用户设置灵活的文件检索能力,可动态添加和删除检索条件,高效获取检索结果;检索结果排序设置对检索结果按关联度或者按时间排序。
(4)云索引查询优化
基于云计算地理索引的构建与查询从以下几个方面优化:
优化一:索引构建时不设置实时刷新,将refresh_interval设为-1,需要在查询时进行一次索引刷新然后再查询,将refresh_interval设为一个较大的值;
优化二:依据实际网络情况设置bulk size,bulk线程池用于HDFS-adLuc索引的批量操作,伴随shard的增多,HDFS-adLuc的索引生成速度协同上升,为满足每个shard都到达自己的极限,加大bulk size,保证给每个shard充足的数据;
优化三:将元信息数据导入HDFS-adLuc时,采用Node Client建立连接,减少一次网络传输。
采用HDFS-adLuc进行检索包括查询和过滤,把所以匹配到的文档的_score标记为1,但查询结果不能被缓存,过滤结果设置为缓存,在查询中直接引用之前输入过的地理对象的名字,地理对象内任何坐标的变化都会导致Geohash集合的变化,只有重复采用来做过滤的地理对象才缓存。
(五)地理信息数据浏览模块设计
为用户设置栅格文件和矢量文件的在线浏览服务,主要包括地理信息数据检测、影像切片服务和地理信息数据显示三个方面,具体的功能设计如图11所示:
(1)地理信息数据检测
智能识别用户上传的文件元信息,并自动补充数据来源、文件类别、地理标签信息,考虑到空间数据来源丰富,结构各异,约定规则后实现半自动的文件类型检测。
从实际需求的角度出发,本申请设计根据文件后缀经验信息识别文件来源与手动添加文件标签相结合的方法检测文件类型。
(2)影像切片
l)影像并行切片:将大影像分多级切割成不同分辨率的小瓦片,再利用这些规则小瓦片实现影像快速显示。
传统的切片方式,如采用ArcGIS、GDAL设置的工具切片,都存在效率低下、只能处理本地影像数据等缺陷,最重要的是不能满足按需快速切片的需求。如果在影像上传时就将所有的影像都先切好片存储在数据库中,又太浪费空间,对于一些很少访问的文件就没有必要。针对切片的问题,云盘***设计基于Spark的影像交互式并行动态切片方法,发挥Spark分布式并行计算优势,当***检测到上传文件的文件是影像时,便会直接采用HDFS中的影像文件作为输入导入Spark创建RDD,然后Spark集群就会对影像从最大分辨率一直到满足需求的最低分辨率进行切片,切片后的瓦片数据存储在基于HDFS的数据库HBase中。
2)瓦片存储:瓦片存储的目标是为切片后的瓦片数据设置存储能力,方便以后采用。对大影像切片后,就会生成大规模的小瓦片,并且由Spark生成的瓦片的大小和顺序很有规律,每一行都存储了图层名,空间索引键和对应位置瓦片的值,针对瓦片的特点和采用的基于云计算技术栈,本***采用的是基于HDFS的基于云计算列式数据库HBase,十分适合存储数量较大的同一类数据,能保证较高的数据检索效率。
3)瓦片地图服务发布:设置瓦片在线访问的服务接口,通过发布地图服务,让其它模块获取到瓦片数据,根据瓦片和技术栈的特点,设计基于Scala的TMS地图服务,采用Spray建立一个TMS控制器并发布成RESTful接口的服务,控制器获取到请求瓦片的的x、y、z值,并从HBase中取出相应的瓦片返回给请求方。
(3)地理信息数据显示
1)影像瓦片显示:将影像快速显示在前端界面上,方便用户快速浏览自己的栅格文件,针对瓦片显示设计采用Leaflet开源库,渲染基于WMS、WMTS、TMS地图服务的地图,有效处理发布的地图服务。
2)矢量显示:将矢量文件快速显示在前面界面上,方便用户浏览自己的矢量文件,主要针对二类矢量数据的显示进行设计,对GeoJSON格式的矢量Leaflet开源库直接支持,对于Shapefile格式的是矢量通过前端js库解析处理。
(4)GIS应用数据库设计
GIS应用数据库与各个子模块紧密关联,存储用户信息、文件信息和各类状态信息,与Web应用服务器交互来持久化各类数据,Web基础服务器是云盘***数据与任务的调度中心。
GIS应用数据库主要包含文件基本元信息、地理元信息、文件类型、用户信息方面的数据,考虑***的可扩展性,设计一些冗余字段。
数据库的E-R图设计如图12所示,考虑到每个实体的属性过多,所以E-R图中只列出部分重要属性:根据实体之间的关系,总共10张表来存储云盘***主要的业务数据。
Claims (10)
1.基于云计算高效检索浏览的地理信息云盘,其特征在于,基于时空信息云平台的架构,设计实现云计算环境和分布式架构的地理信息数据大数据管理云盘***,包括地理信息数据的云存储、构建基于HDFS-adLuc云的地理索引方法、地理信息文件元信息的建模方法、超大影像并行动态切片、在线云端快速浏览,解决大规模文件存储、检索和在线快速浏览问题;
第一,针对大规模地理信息数据存储问题,设计实现基于HDFS的云计算地理信息数据存储管理模块,可进行水平扩展和故障转移,在HDFS设置的文件操作接口的基础上,设置地理信息数据基本操作接口和文件管理,同时设置文件共享来避免繁琐的文件传输;
第二,针对海量地理信息文件元信息利用率不高、查询方式过于简单的问题,构建基于HDFS-adLuc云的地理索引方法,采用文件的基本元信息和地理元信息构建索引,设置多维度的查询内容和更多种类的查询方式,直接根据地理范围查找文件,提高文件检索的效率和命中率,基于云计算索引的构建配合分布式文件存储,设置超大规模的文件检索和快速响应机制;
第三,针对地理信息数据直接浏览不便的问题,设计实现基于Spark的影像交互式并行动态切片方法,动态切片的计算能力借助于基于云计算集群水平扩展,并基于Leaflet实现影像瓦片的在线快速浏览;
本申请的核心技术点:一是构建基于HDFS-adLuc云的地理索引方法;二是地理信息文件元信息的建模方法,包括:地理元信息获取、索引数据组织建模;三是地理影像文件云端快速浏览,包括:基于Spark的影像交互式并行动态切片方法、瓦片数据的云存储;
地理信息云盘***设计包括:一是地理信息云盘***总体架构;二是地理信息云盘业务流程;三是文件存储模块设计,包括文件接入、文件基本操作;四是文件索引模块设计,包括获取地理元信息、构建云计算索引、文件检索、云索引查询优化;五是地理信息数据浏览模块设计,包括地理信息数据检测、影像切片、地理信息数据显示、GIS应用数据库设计。
2.根据权利要求1所述基于云计算高效检索浏览的地理信息云盘,其特征在于,构建基于HDFS-adLuc云的地理索引方法:基于HDFS存储地理信息数据,并引入基于Lucene优化的搜索与分析引擎,构成基于云计算的实时文件存储框架HDFS-adLuc,每个地理信息数据字段都被索引并可被搜索,在应用中通过RESTful API和各类语言客户端、命令行进行交互,采用HDFS-adLuc构建基于云计算的地理索引的步骤包括:
步骤1:地理信息文件元信息准备:包括各类地理信息文件元信息的获取和数据组织建模两个阶段,本申请提出一种地理信息文件元信息的建模方法;
步骤2:Analyzer分析器设计:首先采用默认的或者安装的第三方分词器对建模后的地理信息文件元信息文档进行分词,然后去除文档的标点符号、停止词,进行大小写、单复数的转换,被索引的文档经过处理变成词项Term;对于地理信息数据的地理范围元信息,设置类型多边形geo_shape,分析器会采用Geohash算法将空间对象转换成base32编码的字符串,用于之后检索;
步骤3:选择索引分片:分析器处理后的文档经协调结点导入HDFS-adLuc集群进行缓存,协调结点是集群中作为客户端接入的结点,协调结点默认都包含集群各结点分片的元数据信息,协调结点默认采用MurMurHash3算法对输入的文档ID进行哈希,其结果再对分片数量取模,得到的结果就是索引文档存储的分片位置;
步骤4:缓存索引数据:当分片所在结点接收到来自协调结点的请求后,将该请求写入事务日志,并将文档加入内存缓冲,如果请求在主分片上成功处理,该请求会并行发送到该分片的副本上,然后客户端会收到确认通知;内存缓冲被周期性刷新,内容被写到文件***缓存的一个新段上,该段未同步但开放,内容可被搜索,保证云计算地理索引的实时性;
步骤5:索引落地到存储介质:每30分钟或当事务日志很大时,清空事务日志,文件***缓存被同步,内存中的缓存被清除,内容被写入一个新段,并将地理索引数据刷新到存储介质,此时一个跨多结点的云计算地理索引成功建立;
从HDFS-adLuc集群查询地理信息数据信息分为查询分发和结果归总两个阶段:
(1)查询分发阶段:协调结点将查询请求路由到索引的全部分片上,每个分片独立执行查询,并为查询结果创建一个优先队列,以关联性得分排序,所有分片都将匹配文档的ID及其关联性得分返回给协调结点,协调结点创建一个优先队列并对结果进行全局排序,得到很多文档匹配结果,每个分片只发送前10个结果给协调结点,协调结点为全部分片上的这些结果创建优先队列并返回前10个作为hit;
(2)结果归总阶段:协调结点向包含初始文档的分片发起请求,各个分片将上面命中的所有索引文档的信息返回给协调结点作为结果。
3.根据权利要求1所述基于云计算高效检索浏览的地理信息云盘,其特征在于,地理信息文件元信息的建模方法:首先根据需求准备各类地理信息元数据,并对数据进行建模组织成可被检索的文档,在云盘***中同时兼顾到普通文件、矢量文件和栅格文件的检索,对不同类型的文件添加不同字段,建立不同的模型,采用非结构化的文档,地理信息文件元信息的建模分为两个阶段,即地理元信息获取和地理元信息类型组织;
(1)地理元信息获取
地理信息数据的基本元信息通过在浏览器上传文件时调用浏览器的APl即可读取,但涉及到地理范围、坐标投影文件元信息通过专门的方法获取;
采用通过Python接口来读取文件的地理元信息,获取栅格数据波段、地理范围、分辨率元信息、矢量数据的要素类型、地理范围、坐标投影元信息;
对于栅格数据,首先通过gdal.Open()打开栅格文件创建数据对象,再通过数据对象的属性或者方法来获取栅格文件的元信息;
对于矢量数据,首先注册相应格式的驱动,再通过driver.Open()打开矢量文件创建数据对象,然后通过属性或者方法来获取矢量文件的元信息:
地理范围信息需要根据像素宽高、范围和参考系信息计算得到,还要根据需求进行投影变换,本申请将地理信息数据的坐标投影都变换到WGS1984大地坐标系下以便对栅格和矢量数据文件元信息进行统一检索;
空间数据地理范围的获取:不采用外包矩形而直接采用要素轮廓建立索引,通过栅格矢量化或者边缘检测的方法来提取栅格或者矢量文件中地理要素的轮廓;直接采用最小外包矩形法来获取地理信息数据元信息;
(2)索引数据组织建模
获取到地理信息数据所需的元信息后,把这些元信息数据组织成HDFS-adLuc能够处理的格式,在元数据实际导入后才能进行有效检索,根据需求设计地理元信息的结构,并设计地理信息数据各类元信息的值与HDFS-adLuc中合适的数据类型相应的Mapping;
本申请设计一个兼容协同的地理元信息索引模型,统一索引文件基础元信息、栅格元信息和矢量元信息,将索引信息放在一个文件中,但不同类型的文件内容不同,地理信息数据基本元信息的设计考虑云盘对非地理信息数据检索的兼容性,地理信息数据栅格元信息的索引结构针对栅格文件特别是影像文件设计,地理信息数据矢量元信息的索引结构针对矢量文件特别是Shapefile格式的文件设计,对地理信息数据检索核心功能关联的字段采用了Multi-fields进行建模。
4.根据权利要求1所述基于云计算高效检索浏览的地理信息云盘,其特征在于,基于Spark的影像交互式并行动态切片方法:直接采用分布式文件***的影像作为输入进行切片,没有额外的文件IO成本,还利用集群的计算能力来并行切片,再将瓦片发布TMS地图服务,实现超大影像的快速浏览,用户所要做的工作只是上传文件和点击浏览,无需借助专业软件;
基于Spark的影像交互式并行切片方法主要分为读取解析影像文件创建RDD、对每个RDD交互式分块分层切片、瓦片持久化差异存储三个步骤;
采用RDD弹性云计算数据集,RDD中的数据分布在多台机器上,从HDFS中直接读取影像文件的方法创建RDD,当HDFS的数据结点和Spark的计算结点相同时,直接在当前结点上读取影像文件块,免去影像文件网络传输的I/O成本,本申请并不需要一次性将所有数据都读入内存创建RDD,对于大数据量的影像文件同一时刻需要加载进内存的数据只是整体数据的一个子集,一小份RDD被处理后会被存储到存储介质、或者缓存下来或者从内存中清理掉,专门适合进行处理超大的影像文件;
影像RDD创建后各台计算结点对影像数据进行分块和分层,分块是对影像数据按照预先设计好的影像块大小进行分割,大多数情况下只是浏览影像数据的一小部分,分块之后在采用影像时只需将要显示和处理的若干个影像块数据读入内存,并非未分块前的一整幅影像;分层就是把初始影像数据按照不同分辨率管理,把分辨率高的影像层依次通过采样算法得到分辨率低一层的影像数据,避免大数据量实时采样的时间成本;
本申请在影像RDD分块时采用等大小非乱序分块规则,等大小为块与块之间的宽、高分别相等,分块规律,使加载时间保持一致、简化内存存储,采用固定大小的分块方法,设置每个影像块的大小为256×256个像素,对影像RDD进行基于四叉树的分块;
影像分块后,对瓦片建立空间索引进行编码,采用Hilbert空间曲线,当索引编码邻近时能很好的保持瓦片数据的邻接关系,并且数据存取和查询效率高;
对小影像块进行重采样生成较低分辨率的影像,依次进行,直到完成预定的分层数量;分层影像采用基于倍率n的方法构建,形成多个分辨率层次,采用倍率抽取方法对影像进行分层,从底层到顶层,分辨率越来越低,数据量大小越来越小,但表示范围不变,用下式来表示各层的分辨率:
tm=to×n
其中,tm为第m层影像的分辨率,to为图像数据的初始分辨率,n为倍率;对影像进行分层时采用2:1的倍率,即上层影像的分辨率是下层的一半,分层时对小影像RDD值重采样,采用Spark处理三次卷积法。
5.权利要求1所述基于云计算高效检索浏览的地理信息云盘,其特征在于,瓦片数据的云存储:基于瓦片文件数据量大且具有空间邻近性的特点,设置列式数据库HBase存储瓦片文件,列式存储相邻列上的数据物理上存储在相邻的位置,这和小瓦片的Hilbert空间索引编码特征相同,把小瓦片的Hilbert索引编码作为小瓦片数据存储时的RowKey,RowKey相邻小瓦片在物理上存储在同一个Region里,当需要读取某个地理范围的影像时,向HBase查询接口传入包含该地理范围内瓦片的列的范围,一次获取到整列的数据,在指定的列中获取所需的瓦片***I/O效率高;
针对瓦片特点和瓦片查询需求,本申请设计的小瓦片数据在HBase中的存储表结构以上面切片的Hilbert编码为Rowkey,主要包括两个列族,ImageData列族存储小瓦片所在的图层名、行列号、缩放层级信息,ImageMeta存储小瓦片的其它元信息如分辨率、像素宽高信息,作为影像其它信息的存储位置。
6.权利要求1所述基于云计算高效检索浏览的地理信息云盘,其特征在于,地理信息云盘***总体架构:统基于基础设施云平台设置的存储、计算资源之上,分为GIS存储层、GIS业务层、前端表现层;
云平台基础设施层为云盘设置底层技术支持,在CPU、内存、存储介质、网络物理资源虚拟化的基础上,向用户设置一组按需取用的公共资源服务,包括与各个业务关联的计算资源、持久存储资源以及将这些资源组合在一起并将它们有条件公开到互联网的可配置联网资源,在云平台上搭建计算集群、存储集群,构建良好可扩展性和定制性的集群;
GIS存储层为云盘设置存储海量用户GIS文件及业务计算结果和中间临时资源,存储资源主要分为三类,第一类是用户上传的各类文件,这是最原始和重要的用户数据,保存在HDFS文件***中,第二类是由用户文件的元信息创建的索引数据,保存在HDFS-adLuc集群中,第三类是由用户上传的栅格文件切片后产生的瓦片数据,保存在基于HDFS的HBase数据库中,此外,还有用户资料数据、应用基本数据等其它资源存储在关系数据库中;
GIS业务层采用模块化设计文件存储、文件检索以及影像浏览3个主要模块,此外还设计用户管理、文件分享的其它业务,每个模块设置功能专一的服务,减小模块之间的耦合度;
前端表现层是与用户交互的前端界面,主要交互元素包括主要包括文件上传、文件管理浮动工具栏、文件检索框、检索条件复选框、文件地图、矢量浏览、影像浏览。
7.权利要求1所述基于云计算高效检索浏览的地理信息云盘,其特征在于,地理信息云盘业务流程:核心业务以web应用服务器为业务调度中心,所有请求操作都通过它与各个子业务模块进行交互,然后计算结果再通过它返回给前端界面;
云盘采用的典型业务流程包括:当用户选择完待上传的文件时,首先浏览器客户端读取文件名、文件大小、文件修改日期的文件基本元信息,然后点击上传按钮就会将文件本身和读取到的文件基本元信息发送到Web应用服务器,Web应用服务器接受到这些信息后会先将文件基本元信息***到Web应用基础数据库,同时把文件初始数据存储到基于HDFS的基于云计算文件***上;之后,***就会对文件的基本元信息构建索引并导入到HDFS-adLuc,当***检测到文件是地理信息数据时,就会调用索引构建算法计算文件的地理元信息,然后更新索引;当用户选择浏览影像数据时,***首先会检测影像是否已切片,若已经切片完成,则直接从HBase数据库中读取瓦片用于在线浏览,若影像是第一次浏览还未切片,则***会调用基于Spark的影像切片算法先将影像并行切片并保存到HBase数据库,然后就通过TMS地图服务在线浏览瓦片地图。
8.权利要求1所述基于云计算高效检索浏览的地理信息云盘,其特征在于,文件存储模块设计:设置稳定、可靠的海量普通文件和地理信息数据的存储和管理,主要包括文件接入和文件信息基本操作两个方面:
(1)文件接入:设置文件与云盘***交互的第一道入口,同时获取文件最基本的元信息,将用户的文件以及文件基本元信息传输到云盘***,文件接入是最直接与用户交互的基础,同时也是后续文件数据处理的准备工作;
(2)文件基本操作:设置最基本的文件管理功能,设计文件下载、文件收藏、文件分享、文件重命名、文件移动和文件信息修改6个文件管理模块,通过浮动工具栏触发文件操作。
9.权利要求1所述基于云计算高效检索浏览的地理信息云盘,其特征在于,文件索引模块设计:对用户上传的普通文件基本元信息建立索引、对地理信息数据建立分布式时空索引,为用户设置多维度、更高效的文件检索服务,主要包括地理元信息获取、分布式索引构建和文件检索三个方面的功能;
(1)获取地理元信息
对地理信息数据建立云计算时空索引后,对海量文件进行近实时的检索,特别是根据地理范围和时间范围的检索,云计算时空索引大幅增强文件检索功能和效率,地理元信息的获取设计针对栅格数据TIFF格式的影像和矢量数据Shapefile格式的文件两类地理元信息获取方法;
1)栅格文件地理元信息的获取:计算出瓯格文件的空间范围,同时取得其它空间信息,为基于云计算时空索引的构建准备数据;
2)矢量文件地理元信息的获取:计算出矢量文件的空间范围、图层和要素信息,同时取得其它空间元信息,为基于云计算时空索引的构建准备数据;
(2)构建云计算索引
主要包括元信息建模和索引导入两个方面:
1)元信息建模:将地理信息数据基本元信息和栅格或者矢量元信息组织成符合HDFS-adLuc索引格式的数据,根据检索需求对需要检索的字段设置合适的type,信息建模分为三类,分别针对普通文件元信息、栅格文件元信息、矢量文件元信息;
2)索引导入:将建模后的文件元信息传输到HDFS-adLuc云计算集群中,对索引过的数据进行检索,索引导入方法包括批量导入和分阶段导入,批量导入减少网络I/O和提高索引效率,分阶段导入首先保证文件最基本的可被检索性,然后再扩展检索的空间能力;
(3)文件检索
包括多条件组合检索和搜索结果排序两个方面:多条件组合搜索为用户设置灵活的文件检索能力,动态添加和删除检索条件,获取检索结果;检索结果排序设置对检索结果按关联度或者按时间排序;
(4)云索引查询优化
基于云计算地理索引的构建与查询从以下几个方面优化:
优化一:索引构建时不设置实时刷新,将refresh_interval设为-1,需要在查询时进行一次索引刷新然后再查询,将refresh_interval设为一个较大的值;
优化二:依据实际网络情况设置bulk size,bulk线程池用于HDFS-adLuc索引的批量操作,伴随shard的增多,HDFS-adLuc的索引生成速度协同上升,为满足每个shard都到达自己的极限,加大bulk size,保证给每个shard充足的数据;
优化三:将元信息数据导入HDFS-adLuc时,采用Node Client建立连接,减少一次网络传输;
采用HDFS-adLuc进行检索包括查询和过滤,把所以匹配到的文档的_score标记为1,但查询结果不能被缓存,过滤结果设置为缓存,在查询中直接引用之前输入过的地理对象的名字,地理对象内任何坐标的变化都会导致Geohash集合的变化,只有重复采用来做过滤的地理对象才缓存。
10.权利要求1所述基于云计算高效检索浏览的地理信息云盘,其特征在于,地理信息数据浏览模块设计:设置栅格文件和矢量文件的在线浏览,主要包括地理信息数据检测、影像切片服务和地理信息数据显示三个方面:
(1)地理信息数据检测
识别用户上传的文件元信息,并自动补充数据来源、文件类别、地理标签信息,考虑到空间数据来源丰富,结构各异,约定规则后实现半自动的文件类型检测,本申请设计根据文件后缀经验信息识别文件来源与手动添加文件标签相结合的方法检测文件类型;
(2)影像切片
l)影像并行切片:将大影像分多级切割成不同分辨率的小瓦片,再利用这些规则小瓦片实现影像快速显示,云盘***设计基于Spark的影像交互式并行动态切片方法,发挥Spark分布式并行计算优势,当***检测到上传文件的文件是影像时,直接采用HDFS中的影像文件作为输入导入Spark创建RDD,然后Spark集群就会对影像从最大分辨率一直到满足需求的最低分辨率进行切片,切片后的瓦片数据存储在基于HDFS的数据库HBase中;
2)瓦片存储:针对瓦片的特点和采用的基于云计算技术栈,采用基于HDFS的基于云计算列式数据库HBase,存储数量较大的同一类数据,保证较高的数据检索效率;
3)瓦片地图服务发布:设置瓦片在线访问的服务接口,通过发布地图服务,让其它模块获取到瓦片数据,根据瓦片和技术栈的特点,设计基于Scala的TMS地图服务,采用Spray建立一个TMS控制器并发布成RESTful接口的服务,控制器获取到请求瓦片的的x、y、z值,并从HBase中取出相应的瓦片返回给请求方;
(3)地理信息数据显示
1)影像瓦片显示:将影像快速显示在前端界面上,方便快速浏览栅格文件,针对瓦片显示设计采用Leaflet开源库,渲染基于WMS、WMTS、TMS地图服务的地图,处理发布的地图服务;
2)矢量显示:将矢量文件快速显示在前面界面上,方便浏览矢量文件,针对二类矢量数据的显示进行设计,对GeoJSON格式的矢量Leaflet开源库直接支持,对于Shapefile格式的是矢量通过前端js库解析处理;
(4)GIS应用数据库设计
GIS应用数据库与各个子模块紧密关联,存储用户信息、文件信息和各类状态信息,与Web应用服务器交互来持久化各类数据,Web基础服务器是云盘***数据与任务的调度中心;
GIS应用数据库主要包含文件基本元信息、地理元信息、文件类型、用户信息方面的数据,考虑***的可扩展性,设计一些冗余字段。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111593520.4A CN114328779A (zh) | 2021-12-23 | 2021-12-23 | 基于云计算高效检索浏览的地理信息云盘 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111593520.4A CN114328779A (zh) | 2021-12-23 | 2021-12-23 | 基于云计算高效检索浏览的地理信息云盘 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114328779A true CN114328779A (zh) | 2022-04-12 |
Family
ID=81055402
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111593520.4A Pending CN114328779A (zh) | 2021-12-23 | 2021-12-23 | 基于云计算高效检索浏览的地理信息云盘 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114328779A (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115391699A (zh) * | 2022-08-30 | 2022-11-25 | 中科星图数字地球合肥有限公司 | 一种云优化的静态地理信息矢量数据在线服务方法 |
CN115658045A (zh) * | 2022-12-06 | 2023-01-31 | 西安恒歌数码科技有限责任公司 | 一种快速搭建地理信息数据应用的***和方法 |
CN115774767A (zh) * | 2023-02-10 | 2023-03-10 | 成都纵横自动化技术股份有限公司 | 一种地理信息元数据处理方法及装置 |
CN117195316A (zh) * | 2023-08-21 | 2023-12-08 | 深圳市云存宝技术有限公司 | 一种基于云技术的云硬盘管理方法、装置、服务器及介质 |
CN117668122A (zh) * | 2024-01-31 | 2024-03-08 | 中国电子科技集团公司第十五研究所 | 地理信息数据同步方法、装置、电子设备及存储介质 |
-
2021
- 2021-12-23 CN CN202111593520.4A patent/CN114328779A/zh active Pending
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115391699A (zh) * | 2022-08-30 | 2022-11-25 | 中科星图数字地球合肥有限公司 | 一种云优化的静态地理信息矢量数据在线服务方法 |
CN115391699B (zh) * | 2022-08-30 | 2023-11-10 | 中科星图数字地球合肥有限公司 | 一种云优化的静态地理信息矢量数据在线服务方法 |
CN115658045A (zh) * | 2022-12-06 | 2023-01-31 | 西安恒歌数码科技有限责任公司 | 一种快速搭建地理信息数据应用的***和方法 |
CN115774767A (zh) * | 2023-02-10 | 2023-03-10 | 成都纵横自动化技术股份有限公司 | 一种地理信息元数据处理方法及装置 |
CN117195316A (zh) * | 2023-08-21 | 2023-12-08 | 深圳市云存宝技术有限公司 | 一种基于云技术的云硬盘管理方法、装置、服务器及介质 |
CN117668122A (zh) * | 2024-01-31 | 2024-03-08 | 中国电子科技集团公司第十五研究所 | 地理信息数据同步方法、装置、电子设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN114328779A (zh) | 基于云计算高效检索浏览的地理信息云盘 | |
Li et al. | A spatiotemporal indexing approach for efficient processing of big array-based climate data with MapReduce | |
CN109284338B (zh) | 一种基于混合索引的卫星遥感大数据优化查询方法 | |
CN106611046B (zh) | 一种基于大数据技术的空间数据存储处理中间件*** | |
CN106708993B (zh) | 基于大数据技术的空间数据存储处理中间件框架实现方法 | |
CN103995861B (zh) | 一种基于空间关联的分布式数据装置、方法及*** | |
US20200272636A1 (en) | Tiered storage for data processing | |
CN111291016A (zh) | 一种海量遥感影像数据分层混合存储与索引方法 | |
Wang et al. | Research and implementation on spatial data storage and operation based on Hadoop platform | |
Emmanouil et al. | Big data analytics in prevention, preparedness, response and recovery in crisis and disaster management | |
CN104820714A (zh) | 基于hadoop的海量瓦片小文件存储管理方法 | |
Xiao et al. | Remote sensing image database based on NOSQL database | |
Van et al. | An efficient distributed index for geospatial databases | |
US10558665B2 (en) | Network common data form data management | |
CN115238015A (zh) | 一种基于微服务的时空大数据平台 | |
Wang et al. | Parallel trajectory search based on distributed index | |
Hu et al. | A hierarchical indexing strategy for optimizing Apache Spark with HDFS to efficiently query big geospatial raster data | |
Jing et al. | An improved distributed storage and query for remote sensing data | |
Mitra et al. | Stash: Fast hierarchical aggregation queries for effective visual spatiotemporal explorations | |
Tian et al. | A survey of spatio-temporal big data indexing methods in distributed environment | |
Gao et al. | Geospatial data storage based on HBase and MapReduce | |
Zhong et al. | A novel method to manage very large raster data on distributed key-value storage system | |
Li et al. | An improved distributed storage model of remote sensing images based on the HDFS and pyramid structure | |
Ghosh et al. | Aid*: a spatial index for visual exploration of geo-spatial data | |
Albrecht et al. | Pairs (Re) loaded: system design & benchmarking for scalable geospatial applications |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |