卫星SAR数据读取与保存方法研究与软件实现
2012-01-18刘元廷赵朝方王志雄马佑军
刘元廷,赵朝方,王志雄,马佑军
(中国海洋大学 海洋遥感研究所,山东 青岛 266100)
合成孔径雷达(Synthetic Aperture Radar,SAR)作为主动微波传感器可以全天时、全天候的工作,具有良好的空间分辨率,因此在环境监测、军事、气象、海洋、水文、地质、冰川等很多方面有着广阔的应用[1],并被认为是最有效、最有潜力的卫星传感器之一。随着多种卫星SAR传感器的成功发射,SAR应用领域会更加广阔。
但是,不同SAR传感器产品的数据格式不同,造成了对SAR数据的应用非常不便。GDAL(Geospatial Data Abstraction Library)[2]是一个在X/MIT许可协议下的开源栅格空间数据转换库,几乎能够读取目前所有格式的遥感数据,很多著名的GIS类产品都使用了GDAL库,包括ESRI的ArcGIS 9.2、Google Earth和跨平台的GRASSGIS系统。因此在数据读取方面GDAL是比较理想的选择,但是它对属性读取的支持有限,所以单纯用GDAL并不能满足实际要求,还需要其他辅助库。
1 数据的读取和显示
1.1 数据读取
SAR数据读取主要采用开源GDAL库实现。默认编译的GDAL 能 够 读 取 ENVISAT、ERS、Radarsat、TerraSAR-X 的 数据格式产品,但是并不支持以HDF5格式保存的CosmoSkyMed产品,如果要支持HDF5数据格式,必须将HDF5库编译到GDAL中[3]。
在读取SAR数据前,必须打开数据并获取数据的数据集。不同的文件类型,数据集的获取方法稍有差别。
对于非HDF5格式数据集的获取方法:
GDALAllRegister(); //注册驱动
CPLSetConfigOption (“GDAL_FILENAME_IS_UTF8”,“NO”); //支持中文路径
GDALDataset*poDataset= (GDALDataset*)GDALOpen(lpszPathName, GA_ReadOnly); //获取数据集
poDataset即为获取的数据集。
HDF5格式比较复杂,一个HDF5文件中可能包含一个或多个数据集。因此HDF5格式的数据集的获取方法也相对比较复杂,下面是获取所有数据集的方法[2]:
GDALRegister_HDF5();//注册驱动
CPLSetConfigOption(“GDAL_FILENAME_IS_UTF8”,“NO”); //支持中文路径
GDALDataset*tempDataset;
vector
