我正在使用NetCDF格式的一些大气模型输出。我想计算850百帕风的温度平流。我试着使用metpy函数 https://unidata.github.io/MetPy/latest/api/generated/metpy.calc.advection.html#metpy.calc.advection 同样的。我附加了我的代码的一部分。请帮助解决此错误。所有必需的库都将更新为其最新版本
import xarray as xr
import numpy as np
import matplotlib.pyplot as plt
from metpy.units import units
import cartopy.crs as ccrs
import cartopy.feature as cfeature
import metpy.calc as mpcalc
temp = xr.open_dataset('ts.nc')
u10 = xr.open_dataset('u10.nc')
v10 = xr.open_dataset('v10.nc')
lat = temp['lat']
lon = temp['lon']
lonn, latt = np.meshgrid(lon,lat)
dx, dy = mpcalc.lat_lon_grid_deltas(lon, lat, )
time = np.array(temp.time[0:9])
T1 = temp['ts'][0:9,:,:]
u10_1 = u10['u10'][0:9,:,:]
v10_1 = v10['v10'][0:9,:,:]
T11 = xr.DataArray(data = T1.values, dims = ['time', 'lat', 'lon'], coords=dict(lat=lat, lon = lon, time = time))
u10_11 = xr.DataArray(data = u10_1.values, dims = ['time', 'lat', 'lon'], coords=dict(lat=lat, lon = lon, time = time))
v10_11 = xr.DataArray(data = v10_1.values, dims = ['time', 'lat', 'lon'], coords=dict(lat=lat, lon = lon, time = time))
advec = mpcalc.advection(T1, [u10_1, v10_1], (dx, dy))
[守则][1]
错误:属性错误:crs属性不可用。
如果需要更多的参考资料,请告诉我
如果数据集中存在CF投影元数据,则MetPy可以通过调用
parse_cf()
方法自动识别正确的CR:提到的错误(AttributeError:crs属性不可用)本身说明了代码中的问题
此错误是因为数据坐标中没有“cartopy投影”属性。您需要在数据中手动添加投影
您可以从this列表中选择任何一个投影
相关问题 更多 >
编程相关推荐