分享好友 最新动态首页 最新动态分类 切换频道
云优化cogtiff
2024-12-29 11:32

云优化cog提出的背景是未来解决遥感影像上云面临的问题。
遥感影像的特点,主要是大。一般一张图片在5~10GB,单卫星每天增加TB级,全球每天增加PB级。随着卫星传感器精度增加,单个影像文件越来越大。

,带来的问题就是不容易保存,本地数据中心存不下,就得上云。但是大量的遥感数据上云后,面临不少挑战

大量的既有软件,无法远程读取云上的(特别是对象存储,如S3)影像文件。必须先Download到本地,然后才能打开分析。
即使为软件增加S3驱动。远程分析一个文件,也不得不全量读取文件内容(因为它是链表式的文件)。注意这个是通过网络进行的,所以很影响效率。
单独取影像文件中的部分区域(瓦片,或者缩略图,也不得不全量下载or访问整个文件。即使瓦片仅占全影像的1/N。
所以,能不能在访问云上的遥感影像数据的时候,只访问部分(尽可能小的)内容呢

这里分享一下 TIFF文件的格式

TIFF是一个灵活适应性强的文件格式,能够在一个文件中保存多幅图像。然后每幅影像带一个标签目录(多个标签,记录它的像素深度、每像素波段信息,RGB编码等详细信息。

注意:上图属性之间没有顺序要求,都通过offset查找。实际上是链表的形式

 因此,TIFF文件内部各Block块之间的顺序可以很灵活自由。
 

要达成这个目的,需要有以下能力

云存储协议上支持以 Range方式读取云上的文件。
GeoTIFF影像文件,支持先读取“所有标签数据”,然后以Offset偏移读取目标数据。
这2个条件里面的第1个,目前各大云厂商的对象存储(如S3)都已经支持。

关键是第2个条件。首先,能不能把GeoTIFF的“元数据”,全部放到文件头部,把实际Data数据放到文件尾部。

这样的话,访问一个超大的GeoTIFF遥感影像,只需先发送HTTP GET获取文件头部16K字节,然后文件中剩余内容位置就都知道了。接下来想要访问什么,再根据偏移,发送HTTP GET访问目标XX字节的影像数据,就够了。

然后,将图像切成小片,可以根据“瓦片”的方式访问目标区域。因为已经有了头部的标签信息,所以再访问具体区域,只需要根据Offset,直接读取云上文件的指定偏移就行。

在这种模式下,该遥感影像文件,还是一个标准的GeoTIFF格式,只是它更适应云化访问。也就是cog格式的tiff文件

为了让云优化的GeoTIFF格式更加的普及,专门成立了COG(Cloud optimized GeoTIFF)标准。

规范可以参考:https://www.cogeo.org/

介绍文章可以参考:https://medium.com/planet-stories/cloud-native-geospatial-part-2-the-cloud-optimized-geotiff-6b3f15c696ed

COG使用的两种主要的数据组织技术是瓦片和概览图,数据的压缩也使得数据在线传输变得更高效。

瓦片切片在影像中创建了内置了切片,当切片可以被在指定区域快速被获取到成为可能之后,只需要访问数据的特定部分就可以了。

概览图创建了同个影像的向下采样的多个版本。向下采样的意思是当从一个原始影像'缩小'时,有很多细节消失掉了(当前的1个像素在原始影像中可能存在100个甚至1000个像素,同时它的数据量也更小。通常一个GeoTIFF会有多个概览图来匹配不同缩放等级。这使得服务端的响应变得更快,因为渲染时只需要返回这个特定的像素值即可,无需再来找出用哪个像素值来表示这1000个像素,但是这也会使得整个文件的体积变大。

COG所需的GeoTIFF,主要技术是在文件内部构建瓦片和概览,辅以图像压缩。就是将完整的影像像拼图一样按照横竖的格网拆分成瓦片,只加载需要范围内的一个个瓦片而不是完整的巨大TIFF。
全分辨率的tiff文件格式见链接BigTIFF, TIFF breaking the 4 gigabyte boundary


GeoTIFF将瓦片和概览按规则进行组织,存放放在云端(比如用Nginx,以便HTTP范围请求可以只请求相关的文件部分。
当客户端想要渲染整个文件的概览图像时,它不必下载每个像素,它可以只请求更小的、已经创建的概览。HTTP范围请求支持服务器上的 GeoTIFF 文件的结构使客户端能够轻松找到所需的整个文件的一部分。
当整个文件的一小部分需要处理或可视化时,瓦片就会发挥作用。这可能是概览的一部分,也可能是全分辨率。但是瓦片将一个区域的所有相关字节组织在文件的同一部分,因此范围请求可以获取它需要的内容。
如果 GeoTIFF 没有通过概览和瓦片进行“云优化”,那么对数据进行远程操作仍然有效。只是当实际只需要很小一部分数据时,他们可能会下载整个文件或大部分文件。
 

假如在http响应头中存在 Accept-Ranges 为bytes ,那么表示该服务器支持范围请求。 Content-Length 提供了要检索的图片的完整大小。

假如服务器支持范围请求的话,你可以使用 Range 头来生成该类请求,下图示例的就是请求的该TIFF的0-65536字节。


可以使用GDAL生成COG。这里简单介绍下GDAL,它是一个基于C++的空间数据功能库,我这里有基于JAVA和Python的安装介绍,见Java安装GDAL依赖,python安装GDAL。


基于Java或Python开发可以将COG生成的功能比较方便地集成到现有工程里,除此之外也可以使用GDAL现成的脚本,这些脚本可以先按照Java安装GDAL依赖里下载的压缩包,解压后在release-1928-x64-dev elease-1928-x64bingdalapps下找到。

使用脚本将普通tif转成COG可以这样操作

CD到脚本目录
执行以下脚本,生成概览

 


执行以下脚本,生成COG

 


主要参数的含义

TILED=YES 生成瓦片
COMPRESS=DEFLATE 使用DEFLATE方法压缩
COPY_SRC_OVERVIEWS=YES 从原数据中拷贝概览


6.2使用Python程序生成的代码

 

 

 

 
 

生成的COG有多种方法检验和查看,比如使用validate_cloud_optimized_geotiff.py检验

 

qgis查看

右键图层窗口里的图层对象,查看Properties,可以查看该COG的属性信息,如范围,波段信息,空间参考等


Openlayers更新了WebGLTile图层和GeoTIFFSource数据源,用geotiffjs解析tif源数据,再用WebGL渲染,实现了前端渲染GeoTIFF图像并进行波段组合,拉伸等功能。
下面是用到的组件
 

 

获取元信息
COG文件里存储的波段信息和nodata值可以通过geotiffjs获取。
注意,这里获取是为了演示功能,如果仅为了显示不需要提前获取并使用自己指定的像素真实值范围,OL的GeoTIFFSource默认开启了normalize属性,将波段像素范围自动标准化为0-1之间的比例。
 

 

结果如下

编写渲染表达式

OL的WebGL图层使用表达式配置图层的渲染样式,具体的语法详见ExpressionValue

 

加载图层

 

显示效果

最新文章
如何让百度快速收录网站内容?
还是那句话,只要坚持,总会被青睐的。做搜索引擎推广,不可能做完马上见效的,seo是需要时间的,可能你前几天做的事情,过几天百度才会知道。1、网站内部做好。怎么做好?这个问题问的深奥啊,我怎么知道你的网站有没有做好,你的网站我又
虚拟偶像影视动画制作软件(虚拟偶像影视动画制作软件哪个好)
摘要:虚拟偶像影视动画制作软件,虚拟偶像影视动画制作软件现如今,随着科技的迅猛发展,人们对于数字化、虚拟化、智能化工具的需求日益增加。在影视动画行业,虚拟偶像已经成为了一种趋势,不少影视公司纷纷尝试推出自己的虚拟偶像,同时
漫蛙漫画官网入口最新版软件亮点
漫蛙漫画官网入口最新版下载是一款专为漫画爱好者打造的阅读软件。它汇集了丰富的漫画资源,包括各种题材和风格的作品,满足用户的多样化需求。软件界面简洁友好,操作便捷,支持离线下载,让用户随时随地畅享漫画世界。同时,漫蛙漫画还提
一款具有创新性和趣味性的 AI 换脸应用,可让用户体验到摸胸的感觉
AI 换脸技术是近年来计算机视觉和人工智能领域的热门话题,它可以将一个人的脸替换到另一个人的身上,从而实现换脸的效果。而今天我要向大家介绍的是一款具有创新性和趣味性的 AI 换脸应用,它不仅可以让用户体验到换脸的乐趣,还可以让用
【现身】传苹果将推10.8英寸OLED iPad Air;Vision Pro现身中国监管数据库;美格纳中国区总部开业,专注OLED显示驱动芯片等领域
1.美格纳中国区总部在合肥开业,专注OLED显示驱动芯片等领域2.南京高端软件及信息服务产业融合集群专项资金项目,芯视界、芯行纪等上榜3.苹果Vision Pro设备已现身中国监管数据库4.传苹果将推10.8英寸OLED iPad Air5.日本住友重工将推出SiC
全球十大搜索引擎排名,Google高居榜首
【全球十大搜索引擎排名】Google全球市场份额为68%,高居榜首。雅虎第二,市场份额为7%,百度第三,市场份额为6.5%,微软第四,市场份额为 3%,其它依次为eBay、NHN、Yandex、Facebook、Ask和阿里巴巴。另:中国是全球第二大搜索市场,所占
Python爬虫实战,完整的思路和步骤(附源码)
小的时候心中总有十万个为什么类似的问题,今天带大家爬取一个问答类的网站。 本堂课使用正则表达式对文本类的数据进行提取,正则表达式是数据提取的通用方法。 环境介绍: python 3.6 pycharm requests re json 爬虫的
搭建你的网站:Wordpress网站建设指南 – 外贸网站建设,Wordpress网站建设,外贸建站公司,外贸独立站,Wordpress成品网站
在这个数字化时代,拥有一个具有吸引力和易用性的网站对于个人和企业而言变得越来越重要。而WordPress作为一个流行的网站建设工具,无疑是许多人首选的选择。今天,我们将向您介绍如何搭建属于您自己的网站,让您在网上展示自己的独特风采
【8735(移动版)腾讯手机管家下载】酷派8735 移动版腾讯手机管家16.1.19免费下载
腾讯手机管家专注手机骚扰拦截,动态守护手机安全,深度清理微信、QQ缓存,让手机体积减半,拒绝卡慢。---认真服务---【骚扰拦截】智能拦截骚扰电话,过滤诈骗垃圾短信【清理加速】清理加速能力升级,释放空间告别卡慢【微信清理】个性清理
哪些因素会影响车价计算器的结果?
车价计算器的结果会受到多种因素影响。 贷款金额由车辆价格和首付款比例决定,首付款高贷款金额就低。 贷款利率很关键,不同金融机构和贷款方案利率有差异,利率高还款总额大。 贷款期限也重要,长的每月还款额低但总利息多,短的每月还款
相关文章
推荐文章
发表评论
0评