使用metpy和siphon获取数据时找不到NetCDF属性

我正在尝试绘制一些通过Unidata虹吸包访问的NetCDF格式的气象数据。

我已经导入了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

并且我已经按照Siphon文档构建了一个数据查询

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似乎也存在同样的问题,但是那里提出的解决方案-将我的metpy更新到最新版本-不适用于我。我使用Conda更新了metpy,但遇到了与更新之前相同的问题。关于如何解决这个问题还有其他想法吗?

sunxun99 回答:使用metpy和siphon获取数据时找不到NetCDF属性

现在在虹吸管中使用以下代码

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://www.f2er.com/2595341.html

大家都在问