CN107590083B - 一种基于owga内存缓存的海量遥感瓦片数据快速发布方法 - Google Patents
一种基于owga内存缓存的海量遥感瓦片数据快速发布方法 Download PDFInfo
- Publication number
- CN107590083B CN107590083B CN201610527094.7A CN201610527094A CN107590083B CN 107590083 B CN107590083 B CN 107590083B CN 201610527094 A CN201610527094 A CN 201610527094A CN 107590083 B CN107590083 B CN 107590083B
- Authority
- CN
- China
- Prior art keywords
- tile
- owga
- memory
- memory cache
- data
- 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
Links
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Information Transfer Between Computers (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本发明公开了一种基于OWGA内存缓存的海量遥感瓦片数据快速发布方法。该方法同时兼顾瓦片数据的访问时间、访问频率和键值三个属性,根据请求目标瓦片的访问时间和访问频率来构建其OWGA算子,键值作为瓦片的唯一标识,由瓦片的层级、行号、列号组合而成。在内存中采用Map<瓦片键值,瓦片对象>链表对瓦片对象进行管理,优先按照瓦片对象的OWGA值进行降序排序,后按照键值进行升序排序,以实现将客户端最近频繁请求的且高分辨率的瓦片数据一直保存在内存中,减少耗时的文件I/O操作;同时提出将请求目标瓦片临近的几张瓦片预先加载到内存缓存中的策略,达到预判客户端请求的目的,进一步提高缓存命中率,提高发布服务器的响应速度。
Description
技术领域
本发明涉及遥感应用领域,尤其是一种基于OWGA内存缓存的海量遥感瓦片数据快速发布方法。
背景技术
随着近些年遥感卫星的密集发射,每天都将产生数TB的遥感影像数据,这些遥感影像数据在国土、交通、水利和环保等领域得到了广泛的应用。海量遥感影像数据的产生不仅为这些数据的组织、存储和管理带来严峻的挑战;同时,单张遥感影像数据通常有几百MB甚至几GB,给这些数据的传播和应用提出了更高的要求。
开放地理空间联盟OGC(Open Geospatial Consortium)作为全球地理空间社区的一个非营利性国际组织,致力于提供地理空间信息行业软件和数据及服务的标准化制定工作。在地理空间数据服务的标准化工作上,OGC制定了WMS(Web地图服务)、WMTS(Web地图切片服务)、WCS(Web栅格服务)和WFS(Web要素服务)等一系列Web服务标准,旨在推动包括遥感影像在内的海量地理空间信息数据在环境、国防、卫生、农业和气象等领域的广泛应用。
目前,比较成熟的地理空间数据发布服务器软件包括GeoServer、ArcGIS Server等,可实现单张遥感影像或经拼接、融合等操作生成的大数据量影像的快速发布服务。GeoServer实现了OGC的WMS、WCS和WFS等标准,并自Geoserver 1.7.5版本起,内置的GWC(GeoWebCache)组件实现了WMTS服务。GWC的实现原理为当客户端向GeoServer服务器请求一张地图瓦片时,GWC拦截这些调用,如果GWC本地文件缓存中存在该瓦片,则直接从本地文件缓存读取该瓦片并反馈给客户端,不存在则调用GeoServer服务实时切分瓦片反馈给客户端,从而提高地图服务的速度,实现更好的用户体验。ArcGIS Server也实现了OGC的WMS、WCS和WFS等标准,并自ArcGIS Server 10.1起,开始支持WMTS服务标准,并提供了融合缓存、多图层缓存、以及按需缓存等缓存方式。
专利CN102346923B(一种基于经纬网格的数据分级组织方法)提出的五层十五级遥感数据组织模型实现了海量遥感影像数据的瓦片化组织、存储和管理,该模型是将180°*360°的地球表层空间按50°、5°、0.5°、0.05°、0.005°为基准建立十进制空间分辨率标准化数据层级,每层内再按照5∶2.5∶1构成了三级标准瓦片,每张瓦片的像元大小为1000*1000,每张瓦片的数据量可控制在几MB的数据量级,天生的小容量瓦片特性使其非常有利于遥感数据的传播和应用。虽然上述成熟的服务器可利用WMTS服务对外提供服务,但是当成百上千地图应用客户端访问同一区域瓦片时,传统的WMTS服务每次收到客户端请求都需要将目标瓦片从本地文件存储读取到内存并反馈给客户端,成百上千次的重复文件I/O操作是非常浪费服务器的时间资源的。针对此问题,本发明提出了基于OWGA内存缓存的海量遥感瓦片数据的快速发布方法,为客户端提供快速响应,达到更好的用户体验。
发明内容
本发明的目的是提供一种基于OWGA内存缓存的五层十五级组织结构的海量遥感瓦片数据快速发布方法。
为实现上述目的,发明了“一种基于OWGA(有序加权平均算子)内存缓存的海量遥感瓦片数据快速发布方法”。该方法同时兼顾请求瓦片的访问时间、访问频率和键值三个属性,根据请求目标瓦片的访问时间和访问频率来构建其OWGA算子,键值作为瓦片的唯一标识,由瓦片的层级、行号、列号组合而成。该方法是将客户端请求的瓦片数据保存在内存中,通过Map<键值,请求瓦片对象>对象进行索引和查找,并优先根据瓦片对象的OWGA值进行降序排列,当不同瓦片对象的OWGA值相等时,根据键值进行升序排列(瓦片层级数字越小,分辨率越高)。同时通过分析服务器响应HTTP请求的日志记录得出,在客户端请求某张目标瓦片时,通常会请求其邻近的几张瓦片,因此在目标瓦片响应完毕后,同时将临近瓦片预先加载到内存缓存中,重新计算OWGA值,在客户端请求这些预加载的瓦片时可立即得到响应,达到预判客户端请求的目的。
其中OWGA的计算公式如下:
其中x1,x2分别表示对象的访问时间属性、访问频率属性,u1,u2分别表示对应属性的权重,且
x1=(double)(tlastVisit-t30)/tsys-t30
x2=(double)fcurrent/fmax
其中tlastVisit表示对象最近一次的访问时间的毫秒数,tsys表示系统当前时间的毫秒数,t30表示距离当时系统30天时间的毫秒数,fcurrent表示该对象的访问频率,fmax表示系统的最大访问频率30。这样处理的目的是为了将x1,x2降到同一量级区间,同时在(0,1)之间均匀分布。根据指数函数的特性,
y=ax,(a>0且a≠1,x∈R)
当a∈(0,1)且x一定时,随着a值的增大,y值也增大。这样当瓦片对象越是最近被访问、访问越频繁,OGWA值就越大。
根据遥感数据的五层十五级组织结构得知,瓦片层级数字越小,其分辨率越高。因此瓦片的键值越小,其分辨率越高。
该方法将客户端最近频繁请求的且高分辨率的瓦片数据一直保存在内存中,减少耗时的文件I/O操作,实现服务器对客户端请求的快速响应;同时采用了预加载瓦片策略,提高了内存缓存的命中率,进一步提高服务器对客户端请求的响应速度。
附图说明
图1为遥感数据的五层十五级组织结构图;
图2为服务器响应客户端HTTP请求流程图;
图3为服务器解析URL流程图
图4为服务器响应请求目标瓦片的流程图
图5为服务器响应预加载瓦片的流程图
具体实施方式
本发明主要提供了针对图1所示的五层十五级组织结构的海量遥感瓦片数据的快速发布服务,其中服务器响应客户端瓦片数据下载HTTP请求的流程图如图2所示。
首先,为了防止部署瓦片发布服务器的机器卡死或内存不足等现象,瓦片发布服务器程序首先获取部署机器的可用内存,预设该内存的50%作为服务器程序运行内存,同时为了防止服务器报内存溢出等异常,预留运行内存的10%作为可用内存阈值。当可用内存低于阈值时,开始删除内存缓存的一部分数据。
进一步,客户端按照一定的约定,向服务器发起HTTP请求,下载相应的瓦片数据。服务器循环监听客户端瓦片数据下载请求,如图3所示的服务器解析URL流程图,获取URL,若HTTP请求不符合约定规范,则返回相应的错误代码给客户端;否则解析URL得到请求目标瓦片的键值,并根据该键值计算得到预加载瓦片的键值。
进一步,如图4所示的服务器响应请求目标瓦片的流程图,根据请求目标瓦片的键值,在查找该键值,若存在,访问频率加1,若达到最大访问频率,则将链表中所有瓦片对象的访问频率减1,并修改访问时间属性,重新计算对象的OWGA值。
进一步,若内存瓦片对象链表中不存在该瓦片键值,根据请求参数构建组合该瓦片的本地存储路径,并判断文件路径下瓦片是否存在;若存在:判断服务器程序可用内存是否低于阈值;若不低于阈值,则构建该瓦片的内存对象;否则删除部分内存数据,然后将本地瓦片文件读入到内存,构建该瓦片的内存对象(内存对象的属性有:瓦片键值、瓦片的访问频率、最近一次的访问时间、瓦片名字、瓦片存放的byte数组、瓦片的OWGA值);若不存在,则返回404错误代码给客户端。
进一步,如图5所示的服务器响应预加载瓦片的流程图,判断预加载瓦片的键是否存在于内存瓦片对象链表中,如存在,则不做任何操作;若不存在,执行上一步操作。
进一步,将内存中的请求目标瓦片数据以流形式返回给客户端。
进一步,对内存链表中对象根据瓦片对象的OWGA值和键值的优先级进行排序。
进一步,为了尽可能的减少长久未被访问的瓦片数据占用内存,造成内存污染的问题,设定了监视线程,监视线程定时扫描内存瓦片数据管理对象即Map链表对象,判断该Map链表中瓦片数据是否已过期,即瓦片数据的最近一次访问时间(reqTime+TIME_OUT)是否大于系统的当前时间,若大于,则表示该瓦片数据已过期,将该瓦片的键值添加到删除列表中,扫描结束后,删除过期的瓦片数据;若不过期,则不做任何操作。
内存瓦片对象的数据结构如下:
响应HTTP请求伪代码如下:
其中key为瓦片对象的键值,result为瓦片对象的路径,bos为输出流对象,protocol为解析的HTTP请求的协议版本号,cacheMap为内存中管理瓦片对象的map链表。
Claims (2)
1.一种基于OWGA内存缓存的海量遥感瓦片数据快速发布方法,其特征在于:该方法同时兼顾了瓦片数据的访问时间、访问频率和瓦片键值三个属性,根据请求目标瓦片的访问时间和访问频率来构建其OWGA算子,键值作为瓦片的唯一标识,由瓦片的层级、行号、列号组合而成, 在内存中采用Map<瓦片键值,瓦片对象>链表对瓦片对象进行管理,优先按照瓦片对象的OWGA值进行降序排序,当OWGA相同时,根据瓦片对象键值进行升序排列,这样实现了将客户端最近频繁请求的且高分辨率的瓦片数据一直保存在内存中,减少耗时的文件I/O操作,提高发布服务器的响应速度;同时提出了内存缓存的瓦片预加载策略,增加了内存缓存命中率,进一步提高发布服务器的响应速度;
所述OWGA算子的计算公式为OWGA=x1 u1*x2 u2,且u1+u1=1,其中x1,x2分别表示对象的访问时间属性、访问频率属性,u1,u2分别表示对应属性的权重,经过处理将瓦片数据对象的访问时间和访问频率降到同一量级,保证x1,x2∈[0,1],在u1,u2为定值时,随着x1,x2的增大,OWGA的值也是增大的,这样就保证了最近访问的、被频繁访问的对象的OWGA值是最大的;
关于将对象的时间属性和频率属性降到同一量级的计算方法,按照公式x1=(double)(tlastVisit-t30)/tsys-t30、x2=(double)fcurrent/fmax,这样计算得到的x1、x2的值在同一量级,并且在[0,1]之间均匀分布。
2.如权利要求1所述的基于OWGA内存缓存的海量遥感瓦片数据快速发布方法,其特征在于:所述内存缓存的瓦片预加载策略发布服务器将请求目标瓦片临近的几张瓦片预先加载到内存缓存中,达到预判客户端请求的目的,增加了内存缓存命中率,达到提高发布服务器的响应速度。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610527094.7A CN107590083B (zh) | 2016-07-07 | 2016-07-07 | 一种基于owga内存缓存的海量遥感瓦片数据快速发布方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610527094.7A CN107590083B (zh) | 2016-07-07 | 2016-07-07 | 一种基于owga内存缓存的海量遥感瓦片数据快速发布方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107590083A CN107590083A (zh) | 2018-01-16 |
CN107590083B true CN107590083B (zh) | 2021-08-31 |
Family
ID=61045871
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610527094.7A Active CN107590083B (zh) | 2016-07-07 | 2016-07-07 | 一种基于owga内存缓存的海量遥感瓦片数据快速发布方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107590083B (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109241219A (zh) * | 2018-08-17 | 2019-01-18 | 广州城市信息研究所有限公司 | 一种地图动态切片及序列化缓存方法、装置及存储介质 |
CN110704986B (zh) * | 2019-10-18 | 2021-05-25 | 重庆大学 | 面向元动作的机械系统可靠性分配模糊方法 |
CN111565220B (zh) * | 2020-04-24 | 2021-05-18 | 中国科学院空天信息创新研究院 | 一种遥感影像数据快速访问方法及系统 |
CN112817545B (zh) * | 2021-03-11 | 2021-09-28 | 福州大学 | 在线即分析影像与格网立方体数据存储管理方法及系统 |
CN113079385A (zh) * | 2021-03-18 | 2021-07-06 | 中国电子科技集团公司第五十四研究所 | 一种基于用户感知的混合式瓦片缓存方法 |
CN115599711B (zh) * | 2022-11-30 | 2023-03-10 | 苏州浪潮智能科技有限公司 | 缓存数据处理方法、系统、装置、设备及计算机存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090182779A1 (en) * | 2008-01-15 | 2009-07-16 | At&T Services, Inc. | Complex dependencies for efficient data warehouse updates |
CN102346923B (zh) * | 2010-07-30 | 2013-10-23 | 中国科学院遥感应用研究所 | 一种基于经纬网格的数据分级组织方法 |
CN102509022B (zh) * | 2011-11-18 | 2015-02-18 | 武汉大学 | 一种面向虚拟地球的栅格数据快速建库方法 |
-
2016
- 2016-07-07 CN CN201610527094.7A patent/CN107590083B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090182779A1 (en) * | 2008-01-15 | 2009-07-16 | At&T Services, Inc. | Complex dependencies for efficient data warehouse updates |
CN102346923B (zh) * | 2010-07-30 | 2013-10-23 | 中国科学院遥感应用研究所 | 一种基于经纬网格的数据分级组织方法 |
CN102509022B (zh) * | 2011-11-18 | 2015-02-18 | 武汉大学 | 一种面向虚拟地球的栅格数据快速建库方法 |
Non-Patent Citations (1)
Title |
---|
基于离差最大化和OWGA算子的多属性群决策方法;周荣喜等;《统计与决策》;20070131;第132-133页 * |
Also Published As
Publication number | Publication date |
---|---|
CN107590083A (zh) | 2018-01-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107590083B (zh) | 一种基于owga内存缓存的海量遥感瓦片数据快速发布方法 | |
US20240031568A1 (en) | Transferring system for huge and high quality images on network and method thereof | |
US10866983B2 (en) | Method and system for providing a federated wide area motion imagery collection service | |
CN108055302B (zh) | 一种图片缓存处理方法、系统和服务器 | |
US20170124115A1 (en) | High performance and efficient multi-scale trajectory retrieval | |
KR101641179B1 (ko) | 대용량 공간데이터 분산 처리 방법 및 이를 위한 분산 처리 서버 | |
CN105045930B (zh) | 一种栅格数据切片生成的方法及系统 | |
US20130227112A1 (en) | Smart cache learning mechanism in enterprise portal navigation | |
US20080222268A1 (en) | Web server, method of controlling operation thereof, and control program | |
EP3182299B1 (en) | Methods and systems for estimating the number of points in two-dimensional data | |
US8935285B2 (en) | Searchable and size-constrained local log repositories for tracking visitors' access to web content | |
CN117221336B (zh) | 一种遥感影像发布方法及系统 | |
CN1860767A (zh) | 用于为便携式信息系统自动检索信息的系统和方法 | |
CN114968495B (zh) | 一种基于kubernetes平台实现地学数据共享的方法和系统 | |
CN116361494A (zh) | 一种卫星遥感影像瓦片实时生成方法 | |
JP6376124B2 (ja) | 情報処理装置、情報処理方法およびプログラム | |
CN111966853B (zh) | 一种遥感影像的管理方法 | |
CN111552893A (zh) | AutoCAD中实现多源地理信息数据在线加载的方法、插件及系统 | |
US20110238686A1 (en) | Caching data obtained via data service interfaces | |
CN115208949B (zh) | 一种遥感影像数据管理分发方法、装置、系统和设备 | |
CN115878920B (zh) | 基于WebGL的动态高性能批量图片显示方法、系统及程序产品 | |
US11977487B2 (en) | Data control device, storage system, and data control method | |
CN102752631A (zh) | 互联网视频点播方法及系统 | |
CN117033533A (zh) | 一种多源地图动态切片及缓存方法和装置 | |
WO2015012720A1 (ru) | Способ проверки веб-страниц на наличие в них мультимедийных потоков реального времени и компьютерно-реализуемая система для осуществления способа |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |