国家青藏高原科学数据中心
中国区域1km无缝地表温度数据集(2002-2020)
此代码仅用于该数据集处理
版本:arcgis10.2 matlab2020
参考:MATLAB hdf(h5)文件转成tif图片格式(+批量处理)
此代码仅用于该数据集处理
版本:arcgis10.2 matlab2020
一、遇到问题
hdf格式,说明文档里面有写空间位置。但是打开后没有设置投影信息,在arcgis里打开显示的范围特别大,影像是旋转过的还镜像的。定义投影后还是没有同矢量数据重叠,不知道要怎么处理
二、打开matlab2020
注意文件名不能和变量名相同,否则会报错
clc % 清除命令窗口内容
clear % 清除工作空间变量
close all % 关闭所有图形窗口
% 输入文件夹和输出文件夹路径
input_folder = 'C:\Users\53446\Desktop\1\hdf'; % 输入文件夹路径
output_folder = 'C:\Users\53446\Desktop\1\tif'; % 输出文件夹路径
% 获取输入文件夹下所有文件的信息
files = dir(fullfile(input_folder, '*.hdf')); % 获取输入文件夹下所有.hdf文件的信息
% 遍历每个文件并执行操作
for i = 1:length(files)
% 读取数据
filename = fullfile(input_folder, files(i).name); % 构建完整的输入文件路径
data = hdfread(filename, '/Lst'); % 从.hdf文件中读取/Lst数据集
data = permute(data,[2,1]); % 转置数据
data = flipud(data); % 上下翻转数据
% 创建空间参考对象
R = georasterref('RasterSize', size(data), 'Latlim', [double(18.33) double(53.49)], 'Lonlim', [double(73.55) double(134.99)]); % 创建一个空间参考对象,指定了栅格大小和经纬度范围
% 写入输出文件
output_filename = fullfile(output_folder, [files(i).name, '.tif']); % 构建完整的输出文件路径
geotiffwrite(output_filename, data, R); % 将数据和空间参考对象写入输出文件
end
三、arcgis打开 成功!