import cf
import numpy
f = cf.example_field(2) # Use cf.read to read your own data
print('Source field:')
print(f)
# Define the output grid
lat = cf.DimensionCoordinate(
data=cf.Data(numpy.arange(-90, 90.01, 0.083), 'degreesN'))
lon = cf.DimensionCoordinate(
data=cf.Data(numpy.arange(0, 360, 0.083), 'degreesE'))
# Regrid the field
g = f.regrids({'latitude': lat, 'longitude': lon}, method='linear')
print('\nRegridded field:')
print(g)
使用CDO作为后端的Python选项是我的包nctoolkit:https://nctoolkit.readthedocs.io/en/latest/,可通过pip(https://pypi.org/project/nctoolkit/)安装
它有一个名为_latlon的内置方法,该方法将重新生成指定的latlon网格
在您的情况下,您需要执行以下操作:
最简单的方法是使用CDO、NCO和NCL等操作符
前
目标gid可以是描述符文件,也可以使用具有所需网格分辨率的NetCDF文件。注意其他可能适合您需要的重新投标方法。上面的示例使用双线性插值
另一个选项是trycf-python,它(通常)可以在球面极坐标和笛卡尔坐标中重新生成大于内存的数据集。它使用ESMF重新填充引擎来完成此操作,因此可以使用线性、一阶和二阶保守、最近邻等重新填充方法
下面是一个您需要的重新投标类型的示例:
产生:
有很多选项可以从其他字段获取目标网格,也可以显式定义目标网格。更多详细信息请参见in the documentation
cf-python将从附加到数据集的cf元数据推断出哪些轴是X和Y,等等,但是如果缺少这些轴,那么总是有办法手动设置或解决这些轴
相关问题 更多 >
编程相关推荐