Python空间数据处理3: HDF格式转GDAL支持格式
来源:互联网 发布:詹姆斯季后赛数据排名 编辑:程序博客网 时间:2024/05/18 18:04
HDF格式
一种能有条不紊 、完备地保存遥感影像的属性和空间信息数据 , 同时使查询和提取相关数据也很方便容易的数据格式格式。HDF格式是一种较为常见的遥感数据格式(例如MODIS、3B43降水数据),但GDAL暂时未能给HDF格式提供支持,需要PYHDF与GDAL交互,从而将HDF格式转换为GDAL支持的格式。
PyHDF
python处理HDF数据的开源包,笔者安装的pyhdf4(电脑配置WIN64+python2.7),在我的另一篇文章《Python开源包安装:PYHDF安装》中,有详细介绍PyHDF的安装方法。
下面笔者就以 MODIS 1B 数据为例,根据PyHDF和GDAL,介绍转HDF格式影像为包含红、红外两个波段的GDAL所支持的栅格格式影像。
1、pyhdf 获取待处理影像栅格矩阵
导入需要用到的模块:
import osfrom pyhdf.SD import SDimport numpy as np
将工作空间转到待处理影像所在文件夹:
os.chdir(r'D:\modis_ndvi_classificate\fix_proj\pre_ndvi')
SD打开待处理影像
FILE_NAME = 'MOD09Q1.A2015169.h26v04.006.2015301111712.hdf'hdf = SD(FILE_NAME, SDC.READ)
查看影像内所包含的数据:
print hdf.datasets()
输入“print hdf.datasets()”后,显示:
其中,sur_refl_b02, sur_refl_b01 分别代表MODIS的红外、红两个波段。
获取红、红外两个波段的影像栅格,data1与data2:
data1 = hdf.select('sur_refl_b01')data1 = data1[:]data2 = hdf.select('sur_refl_b02')data2 = data2[:]
将data1与data2叠加:
data = np.concatenate ([data1[np.newaxis,:], data2[np.newaxis,:]], axis=0)
2、获取仿射矩阵
查看影像头文件信息:
attr = hdf.attributes(full=1)attNames = attr.keys()attNames.sort()print attNames
输入”print attNames” 后会显示该影像所包含头文件的目录有[‘ArchiveMetadata.0’, ‘CoreMetadata.0’,’HDFEOSVersion’,’StructMetadata.0’,’identifier_product_doi’,’identifier_product_doi_authority’],我们打开’ArchiveMetadata.0’,中间包含了影像的起始点坐标和分辨率信息,:
t = attr['ArchiveMetadata.0']print t[0]
输入‘print t[0]’后,我们获得该影像起始点坐标:经度104.43258313171,纬度49.9999999955098;红,红外波段分辨率为231.656358263889,则该影像仿射矩阵为:
geot = (104.43258313171,231.656358263889,0,49.9999999955098,0,-231.656358263889)
3、给影像添加用户所指定的投影:
(以WGS84为例)
from osgeo import osrproj= osr.SpatialReference()proj.ImportFromEPSG(4326)proj.ExportToWkt()
4、重写影像
有了影像的栅格矩阵、仿射矩阵,投影信息后,我们就可以按照《Python空间数据处理1: GDAL读写遥感图像》部分的内容,重新将影像写成GDAL所支持的栅格格式文件了。
- Python空间数据处理3: HDF格式转GDAL支持格式
- HDF&HDF-EOS格式说明
- GDAL/ORG 支持的格式
- 扩展GDAL,支持CNSDTF格式(一)
- GDAL-python库读写Esri Shape格式
- IDL环境下,HDF文件转TIFF格式
- Python空间数据处理1: GDAL读写遥感图像
- Python空间数据处理2: GDAL栅格图像格式转换
- Gdal关于CAD转SHP格式
- GDAL读取HDF数据
- 利用GDAL-python库为SHP格式添加Z值
- 利用python GDAL库读写geotiff格式的遥感影像
- GDAL创建JPG格式图像
- json格式的数据处理
- [转]使用GDAL创建Erdas格式的金字塔
- Python PIL支持的图像文件格式
- 安装和配置gdal以及让其支持hdf4和hdf5格式数据的步骤
- Python实际应用-数据处理(二) 数据特定格式变化
- HAUTOJ 1265 Hmz 的女装
- gcd
- 牛客剑指offer刷题记录(四)
- http协议
- 二叉搜索树的后续遍历
- Python空间数据处理3: HDF格式转GDAL支持格式
- Python3.x执行POST请求是出现POST data should be bytes or an iterable of bytes. It cannot be of type str.错误
- Android系列之自定义Button控件
- Hibernate绑定session
- Java两种实现多线程方式的比较( implements Runnable 与 extends Thread )
- 后缀平衡树
- Construct String from Binary Tree(tag:String)
- 2.前端常见面试编程题整理
- Hibernate的api使用