我试图用NetCDF格式绘制一些通过Unidata信标包访问的气象数据。
我已经导入了MetPy文档建议的相关库
import cartopy.crs as ccrs
import cartopy.feature as cfeature
import matplotlib.pyplot as plt
from netCDF4 import num2date
import numpy as np
import xarray as xr
from siphon.catalog import TDSCatalog
from datetime import datetime
import metpy.calc as mpcalc
from metpy.units import units我根据虹吸文档构造了一个数据查询
best_gfs = TDSCatalog('http://thredds.ucar.edu/thredds/catalog/grib/NCEP/GFS/Global_0p25deg/catalog.xml?dataset=grib/NCEP/GFS/Global_0p25deg/Best')
best_ds = best_gfs.datasets[0]
ncss = best_ds.subset()
query = ncss.query()
query.lonlat_box(north=55, south=20, east=-60, west=-90).time(datetime.utcnow())
query.accept('netcdf4')
query.variables('Vertical_velocity_pressure_isobaric','Relative_humidity_isobaric','Temperature_isobaric','u-component_of_wind_isobaric','v-component_of_wind_isobaric','Geopotential_height_isobaric')
data = ncss.get_data(query)不幸的是,当我试图使用Metpy文档中的代码解析数据集时
data = data.metpy.parse_cf()我得到一个错误:"AttributeError: NetCDF:属性未找到“
当我试图解决这个问题时,我偶然发现another SO post似乎也有同样的问题,但是这个解决方案--将我的元数据更新为最新版本--对我来说不起作用。我使用Conda更新了metpy,但遇到了与更新前相同的问题。关于如何解决这个问题,还有其他的想法吗?
发布于 2020-03-23 21:02:52
现在,虹吸中的以下代码
data = ncss.get_data(query)将从Dataset返回一个netcdf4-python对象。您需要额外的一步才能将其交给xarray,这将使MetPy的parse_cf可用:
from xarray.backends import NetCDF4DataStore
ds = xr.open_dataset(NetCDF4DataStore(data))
data = ds.metpy.parse_cf()https://stackoverflow.com/questions/60818875
复制相似问题