利用MATLAB读取.nc文件单像元数值并转为Excel格式(以中国日降雨量月均数据为例)

该文介绍如何在MATLAB中处理NetCDF文件,通过经纬度定位特定像元,并批量提取多个月份的降雨量数据。首先确定经纬度对应的行列号,然后利用for循环提取指定位置的每月数据,并将其保存为Excel文件。文中提出两个问题:一是如何不依赖经纬度范围,而是直接用find函数批量提取多经纬度的行列号;二是如何处理大范围数据的批量提取。
摘要由CSDN通过智能技术生成

 以中国日降雨量月均数据(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

5分钟!利用MATLAB读取.nc(netCDF)文件并转Excel格式_哔哩哔哩_bilibili

请教:matlab提取数据文件中某个经纬度的数据?谢谢! – MATLAB中文论坛

评论 14
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

lemonade723

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值