You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

MetPy升级至1.1后从THREDDS服务器生成卫星影像报错

解决方案

问题根因

该报错由MetPy 1.1版本的两个已知兼容问题导致:

  1. GOES系列卫星的原生x/y坐标单位为微弧度,属于静止轨道投影的扫描角度量纲,MetPy 1.1解析CF投影时错误尝试直接将角度单位转换为长度单位米,触发量纲不匹配错误
  2. 异常捕获逻辑与低版本xarray的API不兼容,导致二次触发变量类型错误

可行修复方案

方案1:升级依赖(优先选择)

直接将MetPy升级到1.3.1及以上版本,该版本已官方修复GOES卫星坐标解析的问题,同时适配xarray 0.19+版本,原有代码无需修改即可正常运行

pip install --upgrade metpy xarray

方案2:代码适配(需保留MetPy 1.1版本时使用)

手动修正坐标的单位标注后再调用parse_cf,修改后的代码如下:

#!/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)

# 手动修正x/y坐标的单位标注
for coord_name in ['x', 'y']:
    nc_e[coord_name].attrs.pop('units', None)
    nc_e[coord_name].attrs['units'] = 'microradian'

data_e = nc_e.metpy.parse_cf('Sectorized_CMI')

验证标准

运行修复后的代码,输出print(data_e.metpy.x.units),返回值为meter即表示功能恢复正常。

内容的提问来源于stack exchange,提问作者djb

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.01 05:18:01