使用 metpy 和 siphon 获取数据时找不到 NetCDF 属性
NetCDF Attribute not found when using metpy and siphon to get data
我正在尝试绘制一些通过 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: Attribute not found"
在尝试解决此问题时,我发现 似乎有同样的问题,但那里建议的解决方案 -- 将我的 metpy 更新到最新版本 -- 对我。我使用 Conda 更新了 metpy,但遇到了与更新前相同的问题。关于如何解决这个问题的任何其他想法?
现在Siphon中的以下代码
data = ncss.get_data(query)
将 return 来自 netcdf4-python
的 Dataset
对象。您需要一个额外的步骤将其交给 xarray,这将使 MetPy 的 parse_cf
可用:
from xarray.backends import NetCDF4DataStore
ds = xr.open_dataset(NetCDF4DataStore(data))
data = ds.metpy.parse_cf()
我正在尝试绘制一些通过 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: Attribute not found"
在尝试解决此问题时,我发现
现在Siphon中的以下代码
data = ncss.get_data(query)
将 return 来自 netcdf4-python
的 Dataset
对象。您需要一个额外的步骤将其交给 xarray,这将使 MetPy 的 parse_cf
可用:
from xarray.backends import NetCDF4DataStore
ds = xr.open_dataset(NetCDF4DataStore(data))
data = ds.metpy.parse_cf()