【技巧】matlab批量读取nc文件并转为tif
*matlab在批量处理nc文件上相比于arcgis既方便又快捷,这里介绍如何利用matlab读取nc文件并导出为tif*
·
matlab在批量处理nc文件上相比于arcgis既方便又快捷,这里介绍如何利用matlab读取nc文件并导出为tif
基本代码:
clc;
clear;
%读取nc文件基本信息
inpath = 'A0_1961-2020_tm_pre_nc\'; %nc文件所在文件夹
info1 = ncinfo('A0_1961-2020_tm_pre_nc\CN05.1_Pre_1961_2018_month_025x025.nc'); %nc文件基本信息
%先在arcgis中读取nc文件中的一个时间点数据,并导出为tif,以便后面为nc文件批量导出提供坐标系
maskname = 'A1_1961-2020_tm_pre_tif\mask0.25x0.25.tif';
[A,R] = geotiffread(maskname); %主要目的是获取R,也就是坐标系
info = geotiffinfo(maskname);
%获取nc文件基本信息
infile = strcat(inpath,'CN05.1_Pre_1961_2018_month_025x025.nc');
lon = ncread(infile,'lon');
lat = ncread(infile,'lat');
D = ncread(infile,'pre'); %读取变量D的内容
%按时间分别读取
for year = 2015:2018 %年循环
for month = 1:12 %月循环
data = D(:,:,month); %逐月读取
data = rot90(data); %rot90逆时针旋转90°/flipud上下翻转/fliplr左右翻转
%有时候数据行列数反了,需要旋转数据来调整
export2tif = ['A1_1961-2020_tm_pre_tif\CN05.1_Pre_',int2str(year),'_M',int2str(month),'_0.25x0.25.tif']; %导出路径和名字
geotiffwrite(export2tif,data,R,'GeoKeyDirectoryTag',info.GeoTIFFTags.GeoKeyDirectoryTag); %批量导出为tif
end
disp(year);
end

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐
所有评论(0)