如何计算每个网格单元格的面积?
How to calculate the area of each grid cell?
我有空间分辨率为 1.25 x 1.25 度(经纬度)的气温网格化数据。数据覆盖北半球,第一纬度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
如果您不介意非 matlab 解决方案,最简单的方法可能是简单地从命令行使用 cdo:
cdo gridarea yourdata.nc gridarea.nc
netcdf 文件 gridarea.nc 将包含 m**2 中每个单元格的网格区域。然后您可以将其读入您的 matlab 程序。
在ubuntu中可以用
安装cdo
sudo apt-get install cdo
我有空间分辨率为 1.25 x 1.25 度(经纬度)的气温网格化数据。数据覆盖北半球,第一纬度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
如果您不介意非 matlab 解决方案,最简单的方法可能是简单地从命令行使用 cdo:
cdo gridarea yourdata.nc gridarea.nc
netcdf 文件 gridarea.nc 将包含 m**2 中每个单元格的网格区域。然后您可以将其读入您的 matlab 程序。
在ubuntu中可以用
安装cdosudo apt-get install cdo