我有空气温度的栅格数据,其空间分辨率为1.25 x 1.25度(lon-lat)。数据涵盖北半球,第一纬度为90度。
我需要计算每个网格单元的面积,而我的方法是从纬度带进行计算。
一种替代方法是直接从netCDF文件中读取每个网格单元的区域。在MATLAB中有可能吗?
这是我尝试过的代码;我不确定这是否正确。
i=1:72;
j=2:73;
R=6371; % Earth's radius in km^2
deltalon=1.25;
area=(pi/180)*R^2*((sind(latitude(i)) - sind(latitude(j)))*deltalon); % Area of each grid cell in km^2
答案 0 :(得分:3)
如果您不介意使用非Matlab解决方案,最简单的方法可能是在命令行中简单地使用cdo:
cdo gridarea yourdata.nc gridarea.nc
然后,netcdf文件gridarea.nc将包含m ** 2中每个单元格的网格面积。然后,您可以将其读入您的matlab程序中。
在ubuntu中,可以使用
安装cdo。sudo apt-get install cdo