以中国日降雨量月均数据(nc文件包含12月)为例,提取某经纬度下的多月份像元值。
(【数据分享】1960-2020年中国1公里分辨率月降水数据集)
一、确定经纬度所在行列号
以92.18E,30.475N为例,首先在Matlab中输入以下代码:
ncdisp('CN_Prec_MonthlyMean_1km_2019.nc'); %读取nc文件信息
lat = ncread('CN_Prec_MonthlyMean_1km_2019.nc','latitude');
lon = ncread('CN_Prec_MonthlyMean_1km_2019.nc','longitude');
pre = ncread('CN_Prec_MonthlyMean_1km_2019.nc','pre') ;
工作区获取到lat、lon和pre的信息,打开lat和lon文件
92.18E定位至92.1754~92.1838,确定的单元格为92.1754所在的2248(选择数值小的单元格);
30.475N定位至30.4718~30.4634,确定的单元格为30.4718所在的2771(选择数值小的单元格);
二、提取多月单像元数值
将得到的行列号输入至以下代码,得到多月单像元数值——2019.xls:
ncdisp('CN_Prec_MonthlyMean_1km_2019.nc'); %读取nc文件信息
lat = ncread('CN_Prec_MonthlyMean_1km_2019.nc','latitude');
lon = ncread('CN_Prec_MonthlyMean_1km_2019.nc','longitude');
pre = ncread('CN_Prec_MonthlyMean_1km_2019.nc','pre') ;
pre1= [];
for i = [1:12]
pre1 = [pre1;pre(2771,2248,i)];
end
xlswrite('2019',pre1)
完毕。
疑问待解决:
1、如何不通过经纬度范围,使用find函数批量提取多经纬度对应的行列号?
2、如何批量提取大范围的数值?
参考链接:
NetCDF(.nc)文件数据的读取_哔哩哔哩_bilibili