MATLAB hdf(h5)文件转成tif图片格式(+批量处理)
程序员文章站
2024-03-24 22:27:10
...
帮网友处理了个土壤水的hdf(h5)数据,记录一下心得:
注:以下只是对单个hdf文件的处理,关于批处理我在另一个博客中写得很清楚,思路大同小异,请看:
MATLAB 批量读取NC文件并转为TIF文件
代码:
clc
clear
%第一步 展示h5文件的结构(名字 几个group 几个dataset 以及其他属性)
h5info('C:\Users\DELL\Desktop\数据处理\SMAP_L3_SM_P_20150331_R16510_001.h5')
%第二步 展示所有group的信息,查到我们需要的数据集的名字以及所在group
h5disp('C:\Users\DELL\Desktop\数据处理\SMAP_L3_SM_P_20150331_R16510_001.h5','/')
%第三步 查到我们需要的信息后,提取变量格式为 data = h5read(filename,datasetname) 层级关系用/表示
SM_am = h5read('C:\Users\DELL\Desktop\数据处理\SMAP_L3_SM_P_20150401_R16510_001.h5'...
,'/Soil_Moisture_Retrieval_Data_AM/soil_moisture');
%第四步 矩阵的行列与经纬度可能不对应,因此对矩阵进行翻转、转置等,这一步看自己需要
SM_am = permute(SM_am,[2,1]);
%第五步 制作成地理栅格数据±85.0445和±180是经纬度范围
R = georasterref('RasterSize', size(SM_am),'Latlim', [double(-85.0445)...
double(85.0445)], 'Lonlim', [double(-180) double(180)]);
%第六步 绘图
geotiffwrite(['F:\example','.tif'],SM_am,R);
需要注意的几点:
1、经纬度范围实际上在第二步的结果中能找到,如:
2、要注意看是升轨还是降轨,本次用的是升轨数据(am)
3、要仔细看第二步得出的结果,给出了很多信息,如:
Finish!
上一篇: css3关键帧动画animation