说明详见我的另一篇文章使用Matlab和ArcGIS的netCDF(NC)格式数据的读取与转换为Geotiff格式
clc;clear;
%转换字段为ncfile
path="G:\NASA Data001";%没有\%不能用双引号
tiffpath="G:\001Qtotal_tavg\";
filenames = ls(strcat(path,'\*.nc'));ncfile = 'Qtotal_tavg' ;%设置转换字段
path=strcat(path,'\');
%查找文件夹下所有NC文件
[length,wid]=size(filenames);
filenames=cellstr(filenames);%转换为原版数组,用以切片
for j=1:length
try
ncfiles = ncinfo(strcat(path,filenames{j}));
lat = ncread(ncfiles.Filename,'lat') ;%Filename是当前文件名字符型矩阵
lon = ncread(ncfiles.Filename,'lon') ;
%%Change lon and lat to double
lon = double(lon) ;
lat = double(lat) ;
A = ncread(ncfiles.Filename,ncfile) ;
% A=rot90(A);逆时针旋转90度
A=A';%由于生成的图像倒了,需要转置
% Write the .grd data into geotiff
R = georasterref('RasterSize',size(A),'LatitudeLimits',[min(lat),max(lat)],........
'LongitudeLimits',[min(lon),max(lon)]);
tiffile = strcat(tiffpath,filenames{j},ncfile,'.tif');
% imshow(tiffile);
geotiffwrite(tiffile,A,R);
disp(strcat(tiffile,'成功转换'))
disp(j)
% 转换很成功,速度很快,但是反了
catch
disp(['NC文件',filenames{j},'读取错误'])
end
end