基于GDAL的遥感影像数据压缩技术研究及实现

2020-07-18 11:28陈瑶
科学大众 2020年5期

摘 要:随着我国“高分专项”系统的进一步推进,高分辨率对地观测系统得到广泛应用,影像分辨率逐步提高,而影像大小随之增大,数据压缩技术亟需改进。文章基于开源影像处理库GDAL中自带函数进行开发实现,为对比分析其不同影像压缩方法提高效率。

关键词:GDAL;影像压缩;开源GIS

随着航空航天遥感技术快速发展,卫星传感器空间分辨率逐步提高,遥感应用研究逐渐普及,获取的影像数据量也呈几何级数地增大[1]。目前高清遥感影像被广泛应用于基础地理信息数据生产、第三次国土调查等测绘地理信息项目[2-3],因此,发展高效的遥感影像图像压缩技术,成为遥感图像处理亟待解决的重要课题,并将对我国高分辨率卫星遥感观测技术的发展起到决定性的作用。

本文采用开源遥感影像处理库GDAL对测绘地理信息生产使用的遥感数据进行压缩处理,并从多方面比较不同压缩方法的压缩效率,分析并总结最为高效的影像压缩处理方法,为测绘地理信息生产提供最优的影像压缩方案。

1    GDAL影像压缩相关技术介绍

1.1  GDAL开源库介绍

Geospatial Data Abstraction Library(GDAL)是使用C/C++语言编写的用于读写空间数据的一套跨平台开源库,它支持几乎所有常见的通用图像文件格式和遥感与地理信息系统(Geographic Information System,GIS)专用图像文件格式,也支持几乎所有常见的投影方式[4]。现有的大部分GIS或者遥感平台,不论是商业软件ArcGIS,ENVI,还是开源软件GRASS,QGIS,都使用了GDAL作为底层构建库。目前最新的GDAL版本为3.0.4,其支持超过200种栅格数据格式,是为当前最流行的遥感影像处理库,被广泛用于GIS与遥感影像处理中。

1.2  GDAL数据集

在GDAL模型里面,有3个重要的概念:数据集、栅格波段与颜色表。数据集(Dataset,由GDAL:Dataset类表示)是相关的栅格波段和一些相关信息的集合,表示一个栅格数据(使用抽象类GDALDataset表示),一个dataset包含了对于栅格数据的波段、空间参考以及元数据等信息。数据集本身也包括元数据,也就是以字符串形式表示的一个名字与值的清单。

1.3  GDALDriver类

GDAL为每种格式提供了一个文件格式驱动类GDALDriver,它对每种对应的格式进行管理(读取、创建、删除、重命名、复制、从已有数据创建数据集等)。

2    软件实现与分析

2.1  代码实现

GDAL支持的创建数据集有两种方式,其中一种为Create()方法,另一种用CreateCopy()方法。所有支持创建新文件的驱动都支持CreateCopy方法,但只有少数支持Create方法。本文主要利用GDALDriver::CreateCopye()这个函数,通过创建复制新遥感影像过程实现对影像的压缩处理,核心代码如下:

(1)指明需要压缩的遥感影像文件以及压缩后影像的保存路径。

gdal.AllRegister() //要读取某种类型的数据,必须要先载入数据驱动,也就是初始化一个对象,让它“知道”某种数据结构。

const char* pszSrcFileName = "C:\\...\\processGFimage.img";

const char* pszDstFileName = "C:\\....\\resultGFimage.img";

GDALDataset *poSrcDS = (GDALDataset *) GDALOpen( pszSrcFileName, GA_ReadOnly );

(2)当需要传入更多的参数(建立金字塔和压缩方法等)可以进行设置,如下:

char **papszOptions = NULL;

papszOptions = CSLSetNameValue( papszOptions, "TILED", "YES" ); //建立金字塔

papszOptions = CSLSetNameValue( papszOptions, "COMPRESS" ,"PACKBITS" );  //设置遥感影像压缩方法

poDstDS = poDriver->CreateCopy( pszDstFileName, poSrcDS, FALSE, papszOptions, GDALTermProgress, NULL);

2.2  壓缩效率分析

为对比分析GDAL影像处理库中不同影像压缩方法的效率,本文选取某一区县不同大小的高清遥感影像、RGB栅格TIFF格式影像,像素大小为10 m,投影坐标系为:CSGS200。本文仅对GDAL自带的压缩方(LZW/JPEG/DEFLATE/ZSTD/ WEBP/ LERC/LERC_DEFLATE/LERC_ZSTD)进行测试,主要在硬件相同情况下从压缩率和压缩耗时等方面进行评定(见表1)。

根据测试结果可以看出,GDAL自带的8种压缩方法对TIFF格式效果各有优势,影像较小时,LZW压缩耗时最短,但压缩比最小;ZSTD压缩比最大,但耗时较长;而DEFLATE两项参数均在中等水平。但当影像较大时,LZW压缩耗时比其他两种压缩方法优势明显,且压缩比也较好;而ZSTD压缩方法的压缩比和耗时都有所衰减,且优势不再明显。

3    结语

GDAL是当前最为流行的开源遥感影像处理库,其自带的影像压缩方法均为主流的、常用的压缩方法,在保证影像纹理、色彩等质量前提下,能很好地降低遥感影像的存储大小,从而实现减少影像存储空间占用、提高影像传输和使用效率等目标。在实际生产中,可以根据自身条件和使用目的选择合适的压缩手段。结合GDAL自带的影像压缩方法各自特点以及影像压缩的效率和质量等因素,给出以下两点使用建议:

(1)压缩1 GB以下影像时,GDAL自带的LZW和ZSTD表现较为突出,分别在耗时和压缩比方面存在优势;

(2)压缩较大影像时,LZW压缩方法在压缩效率上表现较好,特别是耗时方面优势明显,而其他压缩方法均不突出。

[参考文献]

[1]吴洪涛,张秀.ECW、MrSID、eYaImage三种压缩技术对比与分析[J].城市勘测,2013(3):127-132.

[2]孙禧勇,苗菁,王锦,等.高分遥感影像在第三次全国国土调查中的应用潜力评价—以重庆市为例[J].河南科学,2018(11):98-108.

[3]王忠武,刘顺喜,尤淑撑.影像压缩技术在土地遥感中的应用潜力分析[J].河北师范大学学报(自然科学版),2012(36):639-642.

[4]GDAL官方网站.GDAL[EB/OL].(2020-04-15)[2020-05-20].https://gdal.org/api/index.html.

作者简介:陈瑶(1987— ),女,浙江永康人,助理工程师,学士;研究方向:摄影测量与遥感,地理信息系统工程,互联网地图服务,测绘信息化。