(Arcgis)matlab编程批量处理hdf4格式转换为tif格式

国家青藏高原科学数据中心
中国区域1km无缝地表温度数据集(2002-2020)

此代码仅用于该数据集处理
版本:arcgis10.2 matlab2020
参考:MATLAB hdf(h5)文件转成tif图片格式(+批量处理)

此代码仅用于该数据集处理

版本:arcgis10.2 matlab2020

一、遇到问题

hdf格式,说明文档里面有写空间位置。但是打开后没有设置投影信息,在arcgis里打开显示的范围特别大,影像是旋转过的还镜像的。定义投影后还是没有同矢量数据重叠,不知道要怎么处理
(Arcgis)matlab编程批量处理hdf4格式转换为tif格式_第1张图片(Arcgis)matlab编程批量处理hdf4格式转换为tif格式_第2张图片
(Arcgis)matlab编程批量处理hdf4格式转换为tif格式_第3张图片
(Arcgis)matlab编程批量处理hdf4格式转换为tif格式_第4张图片

二、打开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打开 成功!
(Arcgis)matlab编程批量处理hdf4格式转换为tif格式_第5张图片

你可能感兴趣的:(Arcgis,arcgis,matlab)