首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在MetPy 0.12->1.1升级后从THREDDS服务器创建卫星镜像时出错

在MetPy 0.12->1.1升级后从THREDDS服务器创建卫星镜像时出错
EN

Stack Overflow用户
提问于 2021-10-05 18:10:05
回答 1查看 26关注 0票数 0

将MetPy升级到1.1,我从THREDDS服务器生成卫星图像的能力不再有效。我隔离了引起我问题的部分。

示例:

代码语言:javascript
复制
#!/usr/bin/python3
import metpy
from siphon.catalog import TDSCatalog
cat_e = TDSCatalog('https://thredds.ucar.edu/thredds/catalog/satellite/goes/east/products/CloudAndMoistureImagery/FullDisk/Channel09/current/catalog.xml')
nc_e = cat_e.datasets[0].remote_access(use_xarray=True)
data_e = nc_e.metpy.parse_cf('Sectorized_CMI')

产生以下输出/错误

代码语言:javascript
复制
Traceback (most recent call last):
  File "/usr/local/lib/python3.6/dist-packages/metpy/xarray.py", line 785, in _rebuild_coords
    var = var.metpy.convert_coordinate_units(coord_name, 'meters')
  File "/usr/local/lib/python3.6/dist-packages/metpy/xarray.py", line 190, in convert_coordinate_units
    data=self._data_array[coord].metpy.unit_array.m_as(units)
  File "/usr/local/lib/python3.6/dist-packages/pint/quantity.py", line 386, in m_as
    return self.to(units).magnitude
  File "/usr/local/lib/python3.6/dist-packages/pint/quantity.py", line 591, in to
    magnitude = self._convert_magnitude_not_inplace(other, *contexts, **ctx_kwargs)
  File "/usr/local/lib/python3.6/dist-packages/pint/quantity.py", line 540, in _convert_magnitude_not_inplace
    return self._REGISTRY.convert(self._magnitude, self._units, other)
  File "/usr/local/lib/python3.6/dist-packages/pint/registry.py", line 925, in convert
    return self._convert(value, src, dst, inplace)
  File "/usr/local/lib/python3.6/dist-packages/pint/registry.py", line 1762, in _convert
    return super()._convert(value, src, dst, inplace)
  File "/usr/local/lib/python3.6/dist-packages/pint/registry.py", line 1376, in _convert
    return super()._convert(value, src, dst, inplace)
  File "/usr/local/lib/python3.6/dist-packages/pint/registry.py", line 958, in _convert
    raise DimensionalityError(src, dst, src_dim, dst_dim)
pint.errors.DimensionalityError: Cannot convert from 'microradian' (dimensionless) to 'meter' ([length])

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/data/home/met_scheduler/scripts/satellite/satellite_metpy11.py", line 8, in <module>
    data_e = nc_e.metpy.parse_cf('Sectorized_CMI')
  File "/usr/local/lib/python3.6/dist-packages/metpy/xarray.py", line 774, in parse_cf
    var = self._rebuild_coords(var, crs)
  File "/usr/local/lib/python3.6/dist-packages/metpy/xarray.py", line 797, in _rebuild_coords
    var = var.assign_coords(coords={coord_name: new_coord_var})
  File "/data/home/met_scheduler/.local/lib/python3.6/site-packages/xarray/core/common.py", line 349, in assign_coords
    data.coords.update(results)
  File "/data/home/met_scheduler/.local/lib/python3.6/site-packages/xarray/core/coordinates.py", line 90, in update
    priority_arg=1, indexes=self.indexes)
  File "/data/home/met_scheduler/.local/lib/python3.6/site-packages/xarray/core/merge.py", line 362, in merge_coords
    expanded = expand_variable_dicts(aligned)
  File "/data/home/met_scheduler/.local/lib/python3.6/site-packages/xarray/core/merge.py", line 222, in expand_variable_dicts
    var = as_variable(var, name=name)
  File "/data/home/met_scheduler/.local/lib/python3.6/site-packages/xarray/core/variable.py", line 96, in as_variable
    "variable %r has invalid type %r" % (name, type(obj)))
TypeError: variable 'coords' has invalid type <class 'dict'>

我很感谢任何关于如何解决这个问题的想法。

EN

回答 1

Stack Overflow用户

发布于 2021-10-07 18:33:29

你能仔细检查一下你的Python和MetPy的安装是正确的吗?在我本地安装的MetPy 1.1.0和Python3.9上,我可以很好地运行您的代码。此外,您的回溯显示正在使用Python3.6;MetPy 1.1.0仅支持Python >=3.7。您不应该能够在该版本的MetPy中安装Python1.1.0。

您可以通过在脚本中添加以下内容来确认正在使用的MetPy版本:

代码语言:javascript
复制
print(metpy.__version__)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69455345

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档