import netCDF4
import numpy as np
nc_data = netCDF4.Dataset(out_nc, 'w', format='NETCDF4')
nc_data.description = 'Test'
# dimensions
nc_data.createDimension('lat', 720)
nc_data.createDimension('lon', 1440)
fl_res = 0.25
latitudes = np.arange(90.0 - fl_res/2.0, -90.0, -fl_res)
longitudes = np.arange(-180.0 + fl_res/2.0, 180.0, fl_res)
我正在创建一个 0.25 度分辨率的 netCDF 文件。在我创建的纬度和经度中,它们代表每个网格单元的角还是中心?我有什么办法可以选择它们代表的内容吗?
最佳答案
坐标(应该)代表每个网格单元的中心。
在一些特殊情况下,变量(通常是风速)在网格单元的边缘求解。在这种情况下,变量会附加到一组纬度/经度对,这些纬度/经度对在 x 或 y 维度上都有一个额外的对。尽管在后处理中,这些基于边缘的变量通常会插值到每个网格单元的中心,以遵循中心坐标集,就像您上面定义的那样。
编辑:来源
CF conventions - cell boundaries本质上是说纬度/经度位于网格单元的中心,以网格单元的顶点为界。对于大多数产品,仅提供一组纬度/经度坐标,并且可以假设该坐标为网格单元的中心(CH.4:“如果未提供边界,应用程序可能会合理地假设网格点位于细胞的中心,但我们在本标准中不要求这样做。”)
NOAA ioSSTv2 - NOAA 产品示例,声明“netCDF 坐标变量中的纬度/经度值是网格单元的中心。”
关于python - python netCDF4 中的纬度和经度表示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32126949/