掌桥专利:专业的专利平台
掌桥专利
首页

一种与地图服务结合的实时分析处理方法、装置及介质

文献发布时间:2023-06-19 12:13:22


一种与地图服务结合的实时分析处理方法、装置及介质

技术领域

本发明属于云计算领域,具体涉及一种与地图服务结合的实时计算方法。

背景技术

随着遥感影像数据的快速增长,对于栅格数据高效的信息处理和价值挖掘提出了更大的挑战,传统地图服务聚焦于内容的共享与可视化,缺少对影像实时分析处理功能。目前遥感影像数据的生产能力远远超过了对于这些数据的处理能力,无论是“人工”解译图像还是对图像进行数字分析,存在流程复杂、产品滞后等问题。然而,现实生活中存在许多要求高时效性的应用场景,例如应急响应、救援救灾和基于位置的服务等,都需要即时访问各种遥感影像数据或者处理得到影像数据的衍生信息产品,以快速做出决策和采取行动,这些应用需求对综合型地图服务提出了更加高效、实时和动态的要求。此外,遥感数据由于数据量大,传统的本地存储方案难以适应基于分布式的GIS系统架构。云存储作为当前海量数据主流存储方案之一,不仅可为遥感影像数据提供安全和持久化的支撑,而且还可以轻松管理数以亿计的文件。

发明内容

本发明的目的是克服现有的不足,并提供了一种与地图服务结合的实时分析处理方法、装置及介质。

为实现上述发明目的,本发明具体提供的技术方案如下:

第一方面,本发明提供了一种与地图服务结合的实时分析处理方法,用于以地图服务的形式对存储在云端的遥感影像数据进行分析和可视化转换,其步骤如下:

S1:获取客户端提交的地图服务请求,对地图服务请求的计算表达式进行解析,按照表达式中运算的优先级将其建模为一个由栅格瓦片元数据结点和计算结点组成的工作流;所述栅格瓦片元数据结点是一个记录栅格瓦片信息的映射表;所述计算结点中封装有运算符对应的函数名称和函数参数,用于执行自身结点内的计算任务同时参与工作流任务链路的承接驱动,其中函数参数类型为栅格瓦片元数据结点和计算结点中的至少一种;

S2:从工作流中最后一个计算结点开始触发,调用计算结点内封装的函数名称和函数参数,递归执行工作流,完成对影像瓦片的处理;工作流执行过程中,对于任意一个当前计算结点而言,若当前计算结点所需的函数参数类型全部为栅格瓦片元数据结点,则根据栅格瓦片元数据结点中记录的栅格瓦片信息从云端获取栅格瓦片数据并通过函数运算得到运算结果,若当前计算结点所需的函数参数类型含有内部计算结点,则先执行该内部计算结点并利用运算结果替换内部计算结点后继续执行当前计算结点的函数运算;

S3:对工作流中最后一个计算结点的运算结果以瓦片格式进行可视化渲染,并返回给客户端。

基于上述技术方案,各步骤优选采用如下具体方式实现。其中各步骤的优选实现方式在没有冲突的情况下均可进行相应组合,不构成限制。

优选的,所述步骤S1中,针对每个地图服务请求,按照S11~S12进行工作流的建模:

S11:从地图服务请求中获取代表影像数据计算需求的计算表达式,计算表达式由运算符和参与运算的影像数据信息组成;

S12:服务端对接收到的计算表达式进行实时解析,通过遍历计算表达式的字符串并结合两个预先构建的栈数据结构进行工作流建模,其中栈A用于存放运算符,栈B用于存放工作流中的结点;遍历过程中,若字符代表参与运算的影像数据信息,则将其作为一个栅格瓦片元数据结点放入栈B中,若字符代表运算符,则将其按照运算符的优先级放入栈A中;每当栈B中的元素满足栈A中优先级最高的运算符所需的参数时,将运算符以及所需参数对应的栅格瓦片元数据结点合并封装为一个新的计算结点存放到栈B中;整个计算表达式遍历完毕后,最终得到一个由栅格瓦片元数据结点和计算结点组成的工作流,且工作流的最后一个结点为计算结点;所述栅格瓦片元数据结点是一个记录栅格瓦片信息的映射表,包含获取该栅格瓦片的数据存储路径、空间三元组坐标以及所需波段信息。

优选的,所述步骤S2的具体方法如下:

S21:获取工作流的最后一个计算结点作为当前计算结点;

S22:调用当前计算结点内封装的函数名称和函数参数,遍历每个函数参数,若函数运算所需的函数参数均为栅格瓦片数据,则直接通过函数运算得到运算结果;若存在至少一个函数参数不是栅格瓦片数据,则需要先执行参数替换操作,并将执行结果对应的栅格瓦片数据替换至对应的函数参数位置,待函数运算所需的所有函数参数均被替换为栅格瓦片数据后再通过函数运算得到运算结果;

所述参数替换操作需根据函数参数的类型进行选择A)或者B):

A)若函数参数为栅格瓦片元数据结点,则根据栅格瓦片元数据结点中记录的栅格瓦片信息从云端获取栅格瓦片数据并替代该栅格瓦片元数据结点;

B)若函数参数为计算结点,则将函数参数对应的计算结点临时作为新的当前计算结点,重新执行S22并返回运算结果对计算结点进行参数替换。

优选的,所述S2中,根据栅格瓦片元数据结点中记录的栅格瓦片信息从云端获取栅格瓦片数据的具体方法如下:

A1:读取云端影像的元数据信息,将云端影像的空间有效范围和地图服务请求中所需栅格瓦片的空间范围均转化至统一坐标系下,然后通过空间相交关系判断请求的栅格瓦片是否位于云端影像的区域内部,若判断结果为是则执行A2,否则终止执行工作流并向客户端返回错误信息;

A2:将地图服务请求中所需栅格瓦片的空间范围映射到云端影像中,得到对应的像素区域范围,然后根据云端影像的组织格式,读取该像素区域范围在云端影像中有效数据段范围,从云端获取地图服务请求对应的栅格数据,并规格化为256 * 256大小的栅格瓦片数据。

优选的,所述步骤S3的具体方法如下:

S31:将工作流中最后一个计算结点的运算结果对应的栅格瓦片进行数值线性拉伸,将值区间映射到0~255之间,得到拉伸后的栅格瓦片;

S32:将拉伸后的栅格瓦片按照指定的色图样式进行渲染着色,并将渲染结果以图片形式返回到客户端中。

优选的,所述云端影像为COG数据格式。

优选的,所述统一坐标系为WGS坐标系。

优选的,所述S32中,先根据指定的色图样式为其生成包含RGB三元组且大小为256的着色数组,利用着色数组对拉伸后的栅格瓦片进行渲染,生成png格式的静态图片返回到客户端中。

第二方面,本发明提供了一种与地图服务结合的实时分析处理装置,其特征在于,包括存储器和处理器;

所述存储器,用于存储计算机程序;

所述处理器,用于当执行所述计算机程序时,实现如上述第一方面任一方案所述的与地图服务结合的实时分析处理方法。

第三方面,本发明提供了一种计算机可读存储介质,其特征在于,所述存储介质上存储有计算机程序,当所述计算机程序被处理器执行时,能实现如上述第一方面任一方案所述的与地图服务结合的实时分析处理方法。

本发明与现有技术相比具有的有益效果:

本发明针对地图服务缺少实时计算分析的问题,充分考虑了数据瓦片可实时获取、可计算的特点,结合遥感应用模型,对存储在云端的海量遥感数据进行快速分析,实现原始数据到数据产品的直接可视化转换,加快了遥感信息的提取共享及快速应用。本发明具有以下四方面的优点:1)本发明计算单元是地图瓦片,具备分布式扩展能力;2)计算过程是实时进行的,计算结果通过地图服务的形式呈现给用户,达到所算即所得的效果;3)计算分析的需求可通过表达式灵活组合,完成影像多元化的分析;4)计算过程是按需交互式进行的,随着地图界面的平移缩放而触发当前区域的计算。

附图说明

图1是一种与地图服务结合的实时分析处理方法的步骤流程图。

图2是计算表达式解析建模工作流的流程图。

图3是栅格瓦片计算工作流执行流程图。

具体实施方式

下面结合附图和具体实施例对本发明做进一步阐述和说明。

本发明中提供了一种与地图服务结合的实时分析处理方法,用于以地图服务的形式对存储在云端的遥感影像数据进行分析和可视化转换。为了便于海量地图数据的分布式存储,一般会事先将遥感影像数据转化为云优化的Cloud Optimized Geo TIFF(COG),并存储到云端(可采用S3或HDFS等分布式存储方式)。而本发明的方法可基于标准的栅格瓦片地图服务实现,在客户端输入的地图服务请求中可额外增加一个计算表达式参数来传递用户对栅格瓦片的计算需求,使得地图服务对存储在云端的遥感影像数据具备实时计算的能力。

本发明中在客户端输入的计算表达式由运算符和参与运算的遥感影像数据信息组成,其中运算符表示对数据处理的流程(例如“×”、“÷”、“+”、“-”等),而每一个运算符均需要有参与运算的参数,在本实施例中的参数即为遥感影像数据。遥感影像数据存在不同的波段,因此本实施例中可设定波段数据表示的方式由字母 B 和数字组成,例如:B1 代表该影像数据的第一个波段数据,B2代表该影像数据的第二个波段数据,其它波段数据以此方法类推。

由于计算表达式无法被直接执行,因此本发明需要借助工作流来实现用户对栅格瓦片的计算需求。工作流在应用程序中是一系列的数据操作和计算步骤,可以清晰反映步骤之间的流程。为此本发明需要根据计算表达式中包含的运算符优先级将其建模成为一个工作流,该工作流中包含两种类型的结点,分别为栅格瓦片元数据结点和计算结点,栅格瓦片元数据结点负责从云端获取相应的栅格瓦片数据,而计算结点负责执行当前结点的工作流程,其工作任务包含两类,一类是自身结点内的函数计算任务,另一类是需要参与工作流任务链路的承接驱动,例如参数替换、数据传递和递归等操作,使得工作流能够按序执行,完成计算表达式所对应的运算流程。

参见图1所示,在本发明的一个较佳实施例中,与地图服务结合的实时分析处理方法具体步骤如下:

S1:服务端获取客户端提交的地图服务请求,地图服务请求中应当包含计算表达式以及参与计算的栅格瓦片的空间范围。当获取到该地图服务请求后,服务端先对地图服务请求的计算表达式进行解析,按照表达式中运算的优先级将其建模为一个工作流。

如前所述,该工作流由栅格瓦片元数据结点和计算结点组成,栅格瓦片元数据结点是一个记录栅格瓦片信息的映射表,其中所记录的栅格瓦片信息应当包含该栅格瓦片的数据存储路径、该栅格瓦片的空间三元组坐标以及所需波段信息。瓦片地图是按照瓦片金字塔形式存储的,每张栅格瓦片都可通过层级、行列号唯一标记,因此本发明中所谓空间三元组坐标是指栅格瓦片的层级Z以及行列号(X,Y)。

而计算结点则是一种负责执行当前结点工作流程的特殊结点,其中封装有运算符对应的函数名称和函数参数,能够在执行自身结点内的计算任务同时参与工作流任务链路的承接驱动,如参数替换、数据传递和递归等。由于算法实现过程中运算符通常需要通过相应的函数来实现,因此对于计算表达式中的运算符需要实现在函数库中找到与该运算符实现相同功能的函数,并将其函数名称封装在计算结点中。而每个函数实现运算所需的必要参数则以函数参数形式封装在计算结点中,由于计算表达式存在运算优先级,因此对于一个函数而言,实现运算所需的参数可能是某个栅格瓦片数据,也可能是另外优先级较高的运算符的运算结果。因此,本发明中,一个计算结点中封装的函数参数的类型可能为栅格瓦片元数据结点,也可能是其他的计算结点,也可能是两者的组合。

为了实现上述工作流建模的自动化,工作流的建模过程可借助栈数据结构实现。栈(stack)作为一种数据结构,是一种只能在一端进行插入和删除操作的特殊线性表,允许进行插入和删除操作的一端称为栈顶,另一端为栈底。

在本实施例中,针对每个地图服务请求而言,工作流的建模过程可按照S11~S12借助栈数据结构进行实现:

S11:服务端从地图服务请求中获取代表影像数据计算需求的计算表达式,计算表达式由运算符和参与运算的影像数据信息组成,具体形式如前所述。

S12:服务端对接收到的计算表达式进行实时解析,该解析过程可通过从左到右遍历计算表达式的字符串并结合两个预先构建的栈数据结构进行,解析过程中通过构建结点即可完成工作流建模。两个预先构建的栈数据结构在本发明中记为栈A和栈B,其中栈A用于存放运算符,栈B用于存放工作流中的结点。在计算表达式的遍历过程中,若字符代表参与运算的影像数据信息,则将其作为一个栅格瓦片元数据结点放入栈B中,若字符代表运算符,则将其按照运算符的优先级放入栈A中,优先级高的运算符位于栈顶,优先级低的位于栈底。遍历过程中,每当栈B中的元素满足栈A中优先级最高的运算符所需的所有参数时,将运算符以及所需参数对应的栅格瓦片元数据结点合并封装为一个新的计算结点存放到栈B中。整个计算表达式遍历完毕后,最终就可以得到一个由栅格瓦片元数据结点和计算结点组成的工作流,且工作流的最后一个结点为计算结点。如前所述,栅格瓦片元数据结点是一个记录栅格瓦片信息的映射表,包含获取该栅格瓦片的数据存储路径、空间三元组坐标以及所需波段信息,记为(URL, X, Y ,Z, Band)。后续可通过栅格瓦片的数据存储路径查找到栅格瓦片在云端的存储位置,然后通过空间三元组坐标(X, Y ,Z)确定栅格瓦片的层级以及行列号,从而从该栅格瓦片中提取所需的波段。

当完成上述工作流的建模过程后,即可按照下列S2步骤执行工作流,对云端的遥感影像数据进行实时计算分析。

S2:从工作流中最后一个计算结点开始触发,调用计算结点内封装的函数名称和函数参数,递归执行工作流,完成对影像瓦片的处理。

在上述工作流递归执行过程中,为了便于描述,本发明将正在被执行的计算结点称为当前计算结点。对于任意一个当前计算结点而言,需先判断当前计算结点所需的函数参数类型才能视情况进行相应的运算,具体如下:

若当前计算结点所需的函数参数类型全部为栅格瓦片元数据结点,则根据栅格瓦片元数据结点中记录的栅格瓦片信息从云端获取栅格瓦片数据,这些从云端获取栅格瓦片数据可以替换掉相应的栅格瓦片元数据结点,由此函数运算所需的函数参数都变成了栅格瓦片数据,通过执行函数运算即可得到运算结果;

若当前计算结点所需的函数参数类型含有内部计算结点,则先执行该内部计算结点并利用运算结果替换内部计算结点后,才能继续执行当前计算结点的函数运算。

由此可见,如果一个计算结点在执行过程中发现所需的函数参数类型含有内部计算结点,那么需要先执行该内部计算结点的运算,此时该内部计算结点需要先作为当前计算结点。同样的,如果一个内部计算结点中所需的函数参数类型也含有进一步的内部计算结点,也需要先执行这个内部计算结点中进一步的内部计算结点。因此,这种计算过程实际上是一种递归的多次重复计算。

在本实施例中,步骤S2的具体递归执行方法可以按照如下方式执行:

S21:获取工作流的最后一个计算结点作为当前计算结点;

S22:调用当前计算结点内封装的函数名称和函数参数,遍历每个函数参数,若函数运算所需的函数参数均为栅格瓦片数据,则直接通过函数运算得到运算结果;若存在至少一个函数参数不是栅格瓦片数据,则需要先执行参数替换操作,并将执行结果对应的栅格瓦片数据替换至对应的函数参数位置,待函数运算所需的所有函数参数均被替换为栅格瓦片数据后再通过函数运算得到运算结果;

由于函数参数可能是栅格瓦片元数据结点或者计算结点,因此上述所说的参数替换操作实际上需根据函数参数的类型进行选择A)或者B):

A)若函数参数为栅格瓦片元数据结点,则根据栅格瓦片元数据结点中记录的栅格瓦片信息从云端获取栅格瓦片数据并替代该栅格瓦片元数据结点;

B)若函数参数为计算结点,则将函数参数对应的计算结点临时作为新的当前计算结点,重新执行S22并返回运算结果对计算结点进行参数替换。

而且需要注意的是,在该递归执行过程中,当前计算结点实在不断变化的,每一个新的当前计算结点获得运算结果并完成对计算结点的参数替换后,该新的当前计算结点消失,重新回到上一个旧的当前计算结点,并执行上一个旧的当前计算结点的函数运算。

另外,根据栅格瓦片元数据结点中记录的栅格瓦片信息从云端获取栅格瓦片数据实际上是一种从云端调用数据的过程,其实现形式可参照任意现有技术。本实施例中实现该过程所采用的具体方法如下:

A1:读取云端影像的元数据信息,从这些元数据信息中可以提取代表云端影像最大空间范围的空间有效范围。由于云端影像存储采用的空间坐标系与地图服务请求中输入的请求范围采用的空间坐标系可能存在不一致,因此需要将云端影像的空间有效范围和地图服务请求中所需栅格瓦片的空间范围均转化至统一坐标系(例如WGS坐标系等)下,然后通过空间相交关系判断请求的栅格瓦片是否位于云端影像的区域内部,若判断结果为是则执行A2,否则终止执行工作流并向客户端返回错误信息以提醒用户其请求的数据范围超出了有效范围。

A2:将地图服务请求中所需栅格瓦片的空间范围映射到云端影像中,得到对应的像素区域范围,然后根据云端影像的组织格式,读取该像素区域范围在云端影像中有效数据段范围,从云端获取地图服务请求对应的栅格数据,并规格化为256 * 256大小的栅格瓦片数据。

通过上述递归方式执行完整个工作流后,即可完成对影像瓦片的处理,此时工作流中最后一个计算结点的运算结果即为最终的运算结果。该运算结果需要按照S3进行渲染处理后才能发送给客户端。

S3:对工作流中最后一个计算结点的运算结果以瓦片格式进行可视化渲染,并返回给客户端。

在本实施例中,对运算结果进行可视化渲染的具体方法可采用如下步骤:

S31:将工作流中最后一个计算结点的运算结果对应的栅格瓦片进行数值线性拉伸,将值区间映射到0~255之间,得到拉伸后的栅格瓦片;

S32:将拉伸后的栅格瓦片按照色图样式进行渲染着色,并将渲染结果以图片形式返回到客户端中。渲染采用的色图样式可以由用户在客户端提交服务请求时进行指定,或者也可以采用默认指定的样式,同样的返回的图片格式也可以根据实际调整。在本发明中,可以先根据指定的色图样式为其生成包含RGB三元组且大小为256的着色数组,利用着色数组对拉伸后的栅格瓦片进行渲染,生成png格式的静态图片返回到客户端中。

另外,在其他实施例中,还可以提供一种与地图服务结合的实时分析处理装置,其包括存储器和处理器;

所述存储器,用于存储计算机程序;

所述处理器,用于当执行所述计算机程序时,实现如上述S1~S3所述的与地图服务结合的实时分析处理方法。

另外,在其他实施例中,还可以提供一种计算机可读存储介质,所述存储介质上存储有计算机程序,当所述计算机程序被处理器执行时,能实现如上述S1~S3所述的与地图服务结合的实时分析处理方法。

需要注意的是,上述的存储器可以包括随机存取存储器(Random Access Memory,RAM),也可以包括非易失性存储器(Non-Volatile Memory,NVM),例如至少一个磁盘存储器。上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,CPU)、网络处理器(Network Processor,NP)等;还可以是数字信号处理器(Digital SignalProcessing,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。当然,该装置中还应当具有实现程序运行的必要组件,例如电源、通信总线等等。

下面基于上述实施例中S1~S3所述的与地图服务结合的实时分析处理方法,将其应用至具体的实例中对其效果进行展示。具体的过程如前所述,不再完全赘述,下面主要展示其具体示例和实现效果。

实施例

下面以地图服务的形式将杭州市的Landsat 8影像进行实时计算NDVI为例,对本发明进行具体描述,其具体步骤如下:

步骤1)将多个Landsat 8单波段影像合并到单个Geo TIFF中并转化为COG,存储到HDFS中。

本实施例需计算的计算表达式为下列NDVI公式:

式中

因此,通过客户端在地图服务中请求中添加计算表达式:Expression = (B4 –B3) / (B4 + B3)。

其中波段数据表示的方式由字母 B 和数字组成,Bn 代表Landsat 8单波段影像数据的第

步骤2)服务端对上述计算表达式进行实时的解析建模,根据数据集、波段信息和地图瓦片参数,构建栅格瓦片元数据结点,根据运算符构建计算结点,最终生成一个工作流。

在本实施例中,针对地图服务请求中添加的计算表达式,图2是对表达式“(B1 -B2) / (B3 + B4)”解析建模的流程,具体按照下列过程进行工作流的建模:

服务端接收到请求后,对表达式进行实时解析,根据表达式中运算的优先级将其建模为一个工作流。解析过程可以借助两个辅助数据结构栈A和栈B,栈A用于存储表达式中的运算符或运算函数,栈B用于存储构建好的栅格瓦片元数据结点或计算结点,其中栈B中还有一个临界指针,用于指示栈中有效结点标志位。如图2中(a)所示,栈A和栈B初始均为空,在建模过程中,需要遍历表达式字符串参数,当遇到波段数字符时,构建栅格瓦片元数据结点并放入到栈B中。当栈B中元素个数满足栈A顶层运算符所需的参数个数时,需要进行结点合并,即构建一个新的计算结点,如图2中(b)和(c)所示,遍历过程中首先创建了新的计算结点Node1,将栅格瓦片元数据结点B1和B2赋予了计算结点Node1,并且将栈A顶层的运算符“-”从自定义的函数库中找到匹配的函数名称“sub”赋予结点Node1的计算函数属性,同时将运算符“-”从栈A中移除,而将新创建的计算结点Node1放入栈B即可。之后继续遍历表达式字符串,运算符“/”和“+”依次放入栈A中,栅格瓦片元数据结点B3和B4依次放入栈B中,此时栈A顶层的运算符 “+”所需的函数参数已满足,因此将栅格瓦片元数据结点B3和B4赋予了计算结点Node2,并且将栈A顶层的运算符“+”从自定义的函数库中找到匹配的函数名称“add”赋予结点Node2的计算函数属性,同时将运算符“+”从栈A中移除,新创建的Node2被放入栈B中如图2中(d)和(e)所示。最后,整个字符串已遍历完,运算符“/” 所需的函数参数也已满足,因此需要将栈A和栈B的剩余的结点进行最后的合并,即将计算结点Node1和计算结点Node2赋予计算结点Node3,并且将栈A顶层的运算符“/”从自定义的函数库中找到匹配的函数名称“div”赋予结点Node3的计算函数属性如图2中(f)所示,栈B中最终只剩下一个计算结点Node3,即表示完成了对工作流任务信息流程的构建。

经过上述步骤2)完成对计算工作流的建模工作后,还需要定义工作流结点间的执行流程。递归作为一种算法在程序设计语言中广泛应用,递归的特点在于用有限的逻辑来定义对象的无限集合。在工作流的执行过程中采用递归的形式,在任务结点间按照 “从后往前”再“从前到后”的执行顺序进行处理。需要依赖于步骤S3进行插值重构。本发明抽象建模的工作流包括栅格元数据结点和计算结点,栅格元数据结点内包含获取当前瓦片的所需的信息,负责从云存储中获取地图服务请求中的栅格瓦片数据,计算结点具有函数名和计算参数属性,除了负责当前结点内的任务执行,也会参与工作流任务链路的承接驱动,包括数据传递和递归等操作。下面对上述工作流的递归执行过程进行详述。

步骤3)从工作流中最后一个计算结点开始触发,调用计算结点内封装的函数名称和函数参数,以递归的形式执行工作流,工作流执行完毕可得到计算的瓦片结果。

图3是上述计算表达式转换为三个计算结点的工作流执行的示意图,该工作流能够按照预设的函数自动传递参数、数据或执行任务,体现了计算结点间的执行步骤和依赖关系,并在计算结点间构成了有向无环图。

结合图3说明计算工作流的具体执行过程,其中的①~⑥代表了执行过程中的前六个操作,具体操作步骤如下:

S31:获取最后一个计算结点Node3执行计算,循环迭代计算参数Node1与Node2,判断计算参数类型为结点(Node)类型,需要进行参数替换操作,执行步骤S32。

S32:执行Node1的计算,循环迭代计算参数MetaData1和MetaData2,判断计算参数类型为元数据(MetaData)类型,则根据栅格瓦片元数据结点B1和B2中记录的栅格瓦片信息从云端数据源中获取地图瓦片内的影像数据,返回结果赋予当前结点的函数参数,完成Node1函数的参数替换操作,执行步骤S33。

S33:此时Node1的函数参数(params)为栅格瓦片数据,根据函数(func)名称调用sub函数进行运算,将计算结果进行返回,以完成Node3的函数参数替换操作,此时Node3中计算参数Node1已替换为Node1的执行结果,执行步骤S34。

S34:同样地,参照步骤S32和步骤S33类似做法完成Node3中计算参数Node2的参数 替换操作,当所有计算参数替换完毕后,执行Node3中的div函数,最终得到工作流的运算结 果,记为栅格瓦片

针对栅格瓦片元数据结点B1、B2、B3、B4,根据结点中记录的栅格瓦片信息从云端数据源中获取地图瓦片内的影像数据主要通过下面具体方法实现:

31)读取云端影像的元数据信息,将影像的空间有效范围

32)将地图服务请求的瓦片三元组坐标(X,Y,Z)对应的空间范围

33)用以下公式计算

式中,

34)根据COG的组织格式,读取像素区域范围Region在COG中有效数据段范围,从云端获取当前兴趣区范围内的栅格数据。

35)使用最邻近内插法将从云端获取的栅格数据规格化为256 * 256的瓦片数据,返回用于替换栅格瓦片元数据结点。

步骤4)对工作流的运算结果进行数值拉伸,并应用合适的样式进行渲染,得到静态的图片。

本实施例中栅格瓦片可视化渲染的具体方法如下:

S41:将计算得到的栅格瓦片

式中,

S42:由于拉伸后的栅格瓦片

S43:根据

通过对Landsat 8影像计算的植被归一化指数NDVI与原始图像对比,表明本发明对表达式转换建模为计算工作流,在地图服务的请求中实现对栅格瓦片的实时处理,对存储在云端的海量遥感数据进行快速分析,实现原始数据到数据产品的直接可视化转换,对于遥感信息的提取共享及快速应用具有十分重要的实际应用价值。

以上所述的实施例只是本发明的一种较佳的方案,然其并非用以限制本发明。有关技术领域的普通技术人员,在不脱离本发明的精神和范围的情况下,还可以做出各种变化和变型。因此凡采取等同替换或等效变换的方式所获得的技术方案,均落在本发明的保护范围内。

相关技术
  • 一种与地图服务结合的实时分析处理方法、装置及介质
  • 一种结合气浮法去除悬浮物的介质阻挡放电水处理装置和水处理方法
技术分类

06120113212561