首页> 中国专利> 海量遥感影像发布和动态切片方法和装置及设备

海量遥感影像发布和动态切片方法和装置及设备

摘要

本申请涉及一种海量遥感影像发布和动态切片方法,包括:将接收到的多条瓦片请求中同类型的瓦片请求合并为瓦片请求包;其中,同类型的瓦片请求为:请求的影像图层、投影和层级相同的瓦片请求;统计瓦片请求包所对应的地理范围,根据地理范围确定对应的影像数据;对确定的影像数据进行切片得到影像瓦片,并进行影像瓦片的发布。其实现了使用多线程技术支持高并发的瓦片请求的功能,并且不需要对影像数据进行预切片,从而有效提高了遥感影像瓦片发布的效率。

著录项

  • 公开/公告号CN112346868A

    专利类型发明专利

  • 公开/公告日2021-02-09

    原文格式PDF

  • 申请/专利权人 北京航天泰坦科技股份有限公司;

    申请/专利号CN202011233259.2

  • 申请日2020-11-06

  • 分类号G06F9/50(20060101);G06F9/54(20060101);G06F16/51(20190101);H04L29/08(20060101);

  • 代理机构11751 北京市鼎立东审知识产权代理有限公司;

  • 代理人朱慧娟;刘瑛

  • 地址 100075 北京市海淀区北四环中路229号海泰大厦1107室

  • 入库时间 2023-06-19 09:52:39

说明书

技术领域

本申请涉及遥感影像处理技术领域,尤其涉及一种海量遥感影像发布和动态切片方法和装置及设备。

背景技术

基于OGC的WMTS(Web Map Tile Service)协议标砖一般实现方法都是先对影像进行切片,然后提供发布,例如:ArcGIS、GeoServer等软件。但是,对影像切片是一个相当花费时间的处理过程,在一些需要进行应急快速发布的场景,预先切片很难满足要求。在相关技术中,通常基于单机环境进行地图切片,但是,在面对海量影像数据时,单机切片很容易达到机器的运行极限。而采用分布式切片的方式,在集群进行切片计算时负载均衡设计、影像地图数据与并行计算的协调以切片任务单节点失效等方面还存在很多的不足,这就使得影像切片运行时间较长。

发明内容

有鉴于此,本申请提出了一种海量遥感影像发布和动态切片方法,可以有效提高影像切片的效率,节省切片时间。

根据本申请的一方面,提供了一种海量遥感影像发布和动态切片方法,包括:

将接收到的多条瓦片请求中同类型的瓦片请求合并为瓦片请求包;

其中,同类型的瓦片请求为:请求的影像图层、投影和层级相同的瓦片请求;

统计所述瓦片请求包所对应的地理范围,根据所述地理范围获取对应的影像数据;

对确定的所述影像数据进行切片得到影像瓦片,并进行所述影像瓦片的发布。

在一种可能的实现方式中,将接收到的多条瓦片请求中同类型的瓦片请求合并为瓦片请求包,包括:

接收多条瓦片请求,并将接收到的多条瓦片请求按照顺序排成请求队列;

由所述请求队列中选取第一瓦片请求,获取所述第一瓦片请求中请求的影像图层、投影和层级;

由所述请求队列提取出与所述第一瓦片请求中所请求的影像图层、投影和层级相同的其他瓦片请求,并将提取出的瓦片请求与所述第一瓦片请求合并为瓦片请求包后加入数据读取线程池中。

在一种可能的实现方式中,将接收到的多条瓦片请求组中同类型的瓦片请求合并为瓦片请求包时,通过将多条瓦片请求中的一条瓦片请求与其他瓦片请求依次进行相交运算来进行。

在一种可能的实现方式中,将接收到的多条瓦片请求中同类型的瓦片请求合并为瓦片请求包之前,还包括:

根据当前接收到的瓦片请求中的投影、层级和坐标索引,确定当前接收到的瓦片请求所对应的地理范围;

判断是否存在所确定的地理范围对应的影像数据;

在判断出不存在所确定的地理范围对应的影像数据时,返回空数据包。

在一种可能的实现方式中,在判断出存在所确定的地理范围对应的影像数据时,查询缓存数据中是否存在对应的瓦片数据;

在由所述缓存数据中查询到对应的瓦片数据时,直接返回查询到的瓦片数据;

在由所述缓存数据中未查询到对应的瓦片数据时,将当前接收到的瓦片请求加入至请求队列中;

其中,所述请求队列包含两条以上的瓦片请求,且两条以上的瓦片请求按照顺序依次排列。

在一种可能的实现方式中,统计所述瓦片请求包所对应的地理范围,根据所述地理范围获取对应的影像数据,包括:

统计所述瓦片请求包所对应的地理范围,将确定的地理范围与所述瓦片请求包所对应的影像图层的地理范围进行相交运算,得到影像图层需要读取的数据范围;

根据所述数据范围计算读取数据的起止行列号,并根据确定的起止行列号读取所述瓦片请求包对应的影像数据。

在一种可能的实现方式中,对确定的所述影像数据进行切片得到影像瓦片之前,还包括:

确定所述瓦片请求包中所请求的投影与所读取的所述影像数据的投影是否一致;

在所述瓦片请求包中所请求的投影与所述影像数据的投影相一致时,直接对确定的所述影像数据进行切片,得到影像瓦片。

在一种可能的实现方式中,在所述瓦片请求包中请求的投影与所述影像数据的投影不一致时,对所述影像数据进行重投影处理;

其中,对所述影像数据进行重投影处理时,采用二次多项式校正算法进行。

根据本申请的另一方面,还提供了一种海量遥感影像发布和动态切片装置,包括:请求合并模块、影像数据读取模块和影像数据切片模块;

其中,所述请求合并模块,被配置为将接收到的多条瓦片请求中同类型的瓦片请求合并为瓦片请求包;

其中,同类型的瓦片请求为:请求的影像图层、投影和层级相同的瓦片请求;

所述影像数据读取模块,被配置为统计所述瓦片请求包所对应的地理范围,根据所述地理范围获取对应的影像数据;

所述影像数据切片模块,被配置为对确定的所述影像数据进行切片得到影像瓦片,并进行所述影像瓦片的发布。

根据本申请的一方面,还提供了一种海量遥感影像发布和动态切片设备,包括:

处理器;

用于存储处理器可执行指令的存储器;

其中,所述处理器被配置为执行所述可执行指令时实现前面任一所述的方法。

本申请实施例的海量遥感影像发布和动态切片方法,通过将接收到的多条瓦片请求中同类型的瓦片请求合并至同一瓦片请求包,进而再根据瓦片请求包确定相应的地理范围以获取所请求的影像数据,随后再对获取到的影像数据进行切片进行影像瓦片的发布,这就实现了使用多线程技术支持高并发的瓦片请求的功能,并且不需要对影像数据进行预切片,从而有效提高了遥感影像瓦片发布的效率。

根据下面参考附图对示例性实施例的详细说明,本申请的其它特征及方面将变得清楚。

附图说明

包含在说明书中并且构成说明书的一部分的附图与说明书一起示出了本申请的示例性实施例、特征和方面,并且用于解释本申请的原理。

图1示出本申请一实施例的海量遥感影像发布和动态切片方法的流程图;

图2示出本申请一实施例的海量遥感影像发布和动态切片方法中瓦片请求参数和空瓦片网络请求数据的示意图;

图3示出本申请一实施例的海量遥感影像发布和动态切片方法中瓦片请求参数、请求返回数据和瓦片缓存的示意图;

图4示出本申请一实施例的海量遥感影像发布和动态切片方法的另一流程图;

图5示出本申请一实施例的海量遥感影像发布和动态切片方法中请求队列并发处理、合并请求和获取数据的示意图;

图6示出本申请一实施例的海量遥感影像发布和动态切片方法中请求队列并发处理、合并请求和获取数据的另一示意图;

图7示出本申请一实施例的海量遥感影像发布和动态切片方法中重投影关键点位选取和计算示意图;

图8示出本申请一实施例的海量遥感影像发布和动态切片方法中重投影关键点位选取和计算的另一示意图;

图9示出本申请一实施例的海量遥感影像发布和动态切片装置的结构框图;

图10示出本申请一实施例的海量遥感影像发布和动态切片设备的结构框图。

具体实施方式

以下将参考附图详细说明本申请的各种示例性实施例、特征和方面。附图中相同的附图标记表示功能相同或相似的元件。尽管在附图中示出了实施例的各种方面,但是除非特别指出,不必按比例绘制附图。

在这里专用的词“示例性”意为“用作例子、实施例或说明性”。这里作为“示例性”所说明的任何实施例不必解释为优于或好于其它实施例。

另外,为了更好的说明本申请,在下文的具体实施方式中给出了众多的具体细节。本领域技术人员应当理解,没有某些具体细节,本申请同样可以实施。在一些实例中,对于本领域技术人员熟知的方法、手段、元件和电路未作详细描述,以便于凸显本申请的主旨。

图1示出根据本申请一实施例的海量遥感影像发布和动态切片方法的流程图。如图1所示,该方法包括:步骤S100,将接收到的多条瓦片请求中同类型的瓦片请求合并为瓦片请求包。此处,需要指出的是,同类型的瓦片请求指的是:所请求的影像图层、投影和层级这三项信息均相同的瓦片请求。也就是说,在本申请实施例的方法中,在接收到多条瓦片请求时,将影像图层信息、投影信息和层级信息相同的瓦片请求合并到一起组成瓦片请求包。

进而,再通过步骤S200,统计瓦片请求包所对应的地理范围,根据地理范围获取对应的影像数据。此处,需要说明的是,由于在上述步骤S100中,将多条瓦片请求中同类型的瓦片请求合并为一个请求包,因此每一个请求包中均包含至少一条瓦片请求。其中,本领域技术人员可以理解的是,每一条瓦片请求中均包含有所请求的影像图层、投影和层级(level)等信息,同时还包含有地理坐标信息。具体的,地理坐标信息可以采用x方向和y方向的索引号来表征。在同一瓦片请求包中,每一条瓦片请求中的影像图层、投影和层级均相同,地理坐标信息可以不同。因此,在进行瓦片请求包的地理范围的统计时,需要根据瓦片请求包中每一条瓦片请求的地理坐标进行地理范围的确定。

在通过上述步骤确定并获取瓦片请求包所对应的影像数据后,即可通过步骤S300,对确定的影像数据进行切片得到影像瓦片,从而进行影像瓦片的发布。

本申请实施例的海量遥感影像发布和动态切片方法,通过将接收到的多条瓦片请求中同类型的瓦片请求合并至同一瓦片请求包,进而再根据瓦片请求包确定相应的地理范围以获取所请求的影像数据,随后再对获取到的影像数据进行切片进行影像瓦片的发布,这就实现了使用多线程技术支持高并发的瓦片请求的功能,并且不需要对影像数据进行预切片,从而有效提高了遥感影像瓦片发布的效率。

其中,在本申请实施例的海量遥感影像发布和动态切片方法中,在将接收到的多条瓦片请求中同类型的瓦片请求合并为瓦片请求包之前,还包括以下步骤:

根据当前接收到的瓦片请求中的投影、层级和坐标索引,确定当前接收到的瓦片请求所对应的地理范围。然后,根据确定的当前接收到的瓦片请求的地理范围,判断是否存在该地理范围所对应的影像数据。

即,在每次接收到瓦片请求后,先对瓦片请求进行验证,根据瓦片请求中的投影、层级和坐标索引,确定瓦片请求中影像图层所对应的地理坐标。然后再根据确定的地理坐标判断瓦片请求所对应的影像数据是否存在。参阅图2,在判断出不存在该瓦片请求所对应的影像数据时,表明当前接收到的瓦片请求为空瓦片,因此可直接返回空数据包。由此,可以避免对空瓦片的数据查找操作,从而节省了不必要的操作。

进一步的,在判断出存在该瓦片请求所对应的影像数据时,表明当前接收到的瓦片请求不是空瓦片。此时,为了进一步减少数据运算量,在本申请实施例的方法中,当判断出所确定的地理范围存在所请求的影像数据时,可以先查询缓存数据中是否存在该瓦片请求对应的瓦片数据。如果存在,则表明已经针对该瓦片请求进行了相应的影像数据的切片处理,因此可直接由缓存数据中读取对应的瓦片数据,并返回所读取到的瓦片数据(如图3所示)。如果从缓存数据中未查询到该瓦片请求所对应的影像数据,则表明当前接收到的瓦片请求既不是空瓦片请求,也不是已缓存的瓦片请求。因此,可直接将当前接收到的瓦片请求加入到请求队列中进行相应的影像数据的获取和切片处理。

其中,需要说明的是,在判断当前接收到的瓦片请求中所请求的地理范围是否存在对应的影像数据时,可以采用相交运算的方式来实现。即,参见图4,通过步骤S110,接收到瓦片请求后,再执行步骤S120,通过对瓦片请求中的地理范围与影像图层进行求交运算,如果计算结果为不相交,则表明不存在对应的影像数据,可直接返回空数据。如果计算结果为相交,表明存在对应的影像数据,因此可直接进行同类型的瓦片请求的合并(即,步骤S130),或者是进行是否为已缓存瓦片的检测。

更进一步的,在接收到多条瓦片请求,并在检测出所接收到的瓦片请求不是空瓦片请求和已缓存瓦片请求后,即可将瓦片请求作为待处理的瓦片请求加入至请求队列中。其中,需要解释说明的是,在本申请中,请求队列中一般包含两条以上的瓦片请求,并且两条以上的瓦片请求按照顺序依次排列。在一种可能的实现方式中,请求队列中的瓦片请求可以按照接收时间进行排列。

同时,在将接收到的多条瓦片请求中同类型的瓦片请求合并为瓦片请求包时,可以通过以下方式来实现。

具体的,接收多条瓦片请求,并将接收到的多条瓦片请求按照顺序依次排列成请求队列。然后,由请求队列中选取第一瓦片请求,获取第一瓦片请求中请求的影像图层、投影和层级等信息。进而,再由请求队列中提取出与第一瓦片请求所请求的影像图层、投影和层级相同的其他瓦片请求,并将提取出的瓦片请求与第一瓦片请求合并为瓦片请求包加入到数据读取线程池中。

其中,参阅图4,由于所接收到的瓦片请求为多条,并且不同的瓦片请求中的请求参数信息有的相同,有的不同,因此最终组合得到的瓦片请求包的个数可以为一个,也可以为多个。相应的,进行瓦片请求包的处理时可以直接采用多线程的方式进行,以提高影像数据处理的效率。

并且,本领域技术人员可以理解的是,瓦片请求包中所包含的瓦片请求的个数,也可以为一个,也可以为两个以上。

此外,参阅图5和图6,在进行第一瓦片请求的选取时,可以直接由请求队列的队列头选取出第一个瓦片请求(即,瓦片请求1)作为第一瓦片请求。然后,在队列中查找并读取出于该瓦片请求具有相同影像图层、投影和层级的其他瓦片请求(如:瓦片请求2、瓦片请求3、瓦片请求4),将读取出的这些瓦片请求进行合并后加入至数据读取线程池中。由于合并到瓦片请求包中的各瓦片请求都是读取同一个影像图层,并且获取到的瓦片数据具有相同的投影和比例尺层级,因此可以一并处理,这样就可以有效减少IO次数,从而避免每一个瓦片数据均单独进行一次数据读取的操作。

更进一步的,在本申请实施例的海量遥感影像发布和动态切片方法中,将接收到的多条瓦片请求中同类型的瓦片请求合并为瓦片请求包时,可以采用将多条瓦片请求中的一条瓦片请求与其他瓦片请求依次进行相交运算来实现。

也就是说,在接收到多条瓦片请求,并进行瓦片请求中同类型的瓦片请求的合并时,可以通过对瓦片请求进行两两相交运算来实现。如果计算得出两个瓦片请求相交,则表明这两条瓦片请求中的影像图层、投影和层级相同,属于同一类型的瓦片请求。如果计算得出两个瓦片请求不相交,则表明这两条瓦片请求中的影像图层、投影和层级存在不同,不属于同类型的瓦片请求。

在通过上述任一方式进行同类型的瓦片请求的合并,得到相应的瓦片请求包后,即可基于所得到的各瓦片请求包进行对应的影像数据的获取以及切片处理。

其中,在基于所得到的各瓦片请求包进行对应的影像数据的获取时,可以通过步骤S200,统计瓦片请求包所对应的地理范围,根据确定的地理范围获取相应的影像数据。

具体的,在统计瓦片请求包所对应的地理范围时,由于瓦片请求包中包含的瓦片请求可以为一条,也可以为两条以上。在瓦片请求包中只包含一条瓦片请求时,瓦片请求包所对应的地理范围为该瓦片请求的地理坐标所表征的范围。在瓦片请求包中包含有两条以上的瓦片请求时,瓦片请求包所对应的地理范围则为每条瓦片请求中的地理坐标所围设成的区域范围。

在统计出瓦片请求包所对应的地理范围后,再利用该地理范围与影像图层的地理范围进行相交运算,得到影像图层需要读取的数据范围。然后,根据所得到的数据范围计算读取数据的起止行列号,进而再根据确定的起止行列号读取相应的影像数据至内存。

在获取到各瓦片请求包对应的影像数据后,即可对所获取的影像数据进行切片。其中,在对获取的影像数据进行切片时,由于瓦片请求包中可能包含有两条以上的瓦片请求,因此可以根据每一条瓦片请求中的地理坐标、宽度和高度等参数对影像数据进行切片,得到每一条瓦片请求所对应的影像瓦片。同时,参阅图4,在得到相应的影像瓦片后,再通过步骤S400,在内存中生成符合瓦片请求的图片格式(如:png、jpg等)并返回给请求端。

此外,在生成符合瓦片请求要求格式的影像瓦片后,还可以将生成的影像瓦片按照一定的格式写入缓存中,实现数据的缓存,以便于后续再进行相同瓦片请求的处理时,可以直接由缓存数据中获取相应的影像瓦片,不需要再进行影像数据的获取和切片等操作。

并且,不同瓦片请求对应的影像瓦片存储至缓存时,可以按照一定的顺序或设置相应的索引值进行标记,以便于在生成上层瓦片数据时能够快速定位到所需要的瓦片数据。

此外,在本申请实施例的海量遥感影像发布和动态切片方法中,当通过步骤S200,统计瓦片请求包的地理范围,并根据地理范围确定该瓦片请求包对应的影像数据后,在进行该影像数据的切片处理之前,还可以包括对获取到的影像数据进行校准验证的步骤,以保证最终得到的影像瓦片的数据的准确性。

具体的,在对获取到的影像数据进行校准验证时,可以通过检测瓦片请求包所对应的投影与所获取到的影像数据的投影是否相一致来实现。在检测出瓦片请求包对应的投影与获取到的影像数据的投影相一致时,此时不需要对影像数据做任何处理,直接进行切片即可。在检测出瓦片请求包的投影与影像数据的投影不一致时,则需要执行步骤S003,对影像数据进行重投影。

其中,在一种可能的实现方式中,对影像数据进行重投影可以采用二次多项式校正算法进行。

即,当瓦片请求的投影与获取到的影像数据的投影不一致时,需要对读取到的影像数据进行重投影处理。由于本申请的应用场景为影像在线发布浏览的网络服务场景,因此为了提高时效性,采用二次多项式校正算法进行。

参阅图7和图8,分别示出了4326投影下选取的关键点和3857投影下选取的关键点。具体的,在读取的影像数据的原始数据地理范围上均匀选取16个点位(满足二次多项式计算要求即可),获取16个点位对应的原始影像投影下的地理坐标

利用最小二乘法请求多项式系数(a

在通过上述方式对获取到的影像数据进行重投影之后,通过步骤S004,将重投影后的影像数据进行缓存。其中,可以将重投影后的影像数据缓存至硬盘、数据库或以云存储的方式进行缓存。同时,执行步骤S300,对重投影后的影像数据进行切片处理,以生成相应的影像瓦片。此处,需要指出的是,在对重投影后的影像数据进行切片处理时,与前面所述的直接对未做处理的影像数据进行切片处理的操作相同或相似,此处不再进行赘述。

需要说明的是,尽管以图1至图8作为示例介绍了如上所示的遥感影像发布方法,但本领域技术人员能够理解,本申请应不限于此。事实上,用户完全可根据个人喜好和/或实际应用场景灵活设定各步骤的具体实施方式,只要能够达到相应的功能即可。

由此,本申请实施例的遥感影像发布方法,实现了OGC标准的WMTS协议接口,不需要花费大量时间对影像数据进行预切片处理,网络在线浏览时根据地理范围实时动态的对影像进行切片处理,对不同投影的遥感影像可以根据实际请求的投影进行重投影处理,从而使得最终生成并发布的影像瓦片数据更加符合瓦片的投影请求。同时,还通过提供多种缓存接口加快了瓦片请求的应答速度。

相应的,基于前面任一所述的海量遥感影像发布和动态切片方法,本申请还提供了一种海量遥感影像发布和动态切片装置。由于本申请提供的海量遥感影像发布和动态切片装置的工作原理与本申请的海量遥感影像发布和动态切片方法的原理相同或相似,因此重复之处不再赘述。

参阅图9,本申请提供的海量遥感影像发布和动态切片装置100,包括请求合并模块110、影像数据读取模块120和影像数据切片模块130。其中,请求合并模块110,被配置为将接收到的多条瓦片请求中同类型的瓦片请求合并为瓦片请求包。其中,同类型的瓦片请求为:请求的影像图层、投影和层级相同的瓦片请求。影像数据读取模块120,被配置为统计瓦片请求包所对应的地理范围,根据地理范围获取对应的影像数据。影像数据切片模块130,被配置为对确定的影像数据进行切片得到影像瓦片,并进行影像瓦片的发布。

更进一步地,根据本申请的另一方面,还提供了一种海量遥感影像发布和动态切片设备200。参阅图10,本申请实施例的海量遥感影像发布和动态切片设备200包括处理器210以及用于存储处理器210可执行指令的存储器220。其中,处理器210被配置为执行可执行指令时实现前面任一所述的海量遥感影像发布和动态切片方法。

此处,应当指出的是,处理器210的个数可以为一个或多个。同时,在本申请实施例的海量遥感影像发布和动态切片设备200中,还可以包括输入装置230和输出装置240。其中,处理器210、存储器220、输入装置230和输出装置240之间可以通过总线连接,也可以通过其他方式连接,此处不进行具体限定。

存储器220作为一种计算机可读存储介质,可用于存储软件程序、计算机可执行程序和各种模块,如:本申请实施例的海量遥感影像发布和动态切片方法所对应的程序或模块。处理器210通过运行存储在存储器220中的软件程序或模块,从而执行海量遥感影像发布和动态切片设备200的各种功能应用及数据处理。

输入装置230可用于接收输入的数字或信号。其中,信号可以为产生与设备/终端/服务器的用户设置以及功能控制有关的键信号。输出装置240可以包括显示屏等显示设备。

以上已经描述了本申请的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术的技术改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号