Python 用cdo计算选定区域的平均值

Python 用cdo计算选定区域的平均值,python,spi,cdo-climate,Python,Spi,Cdo Climate,我试图计算一个特定lon/lat的选定区域的平均SPI值。我在下面的区域中计算平均值 ds_mlw1 = ds.sel(lat=slice(-16.74833, -16.75613), lon=slice(35.27023, 35.27915)) 我发现使用cdo包最有效。我收到一个错误,无法识别我的cdo。有人知道如何解决这个问题吗 这是我的剧本 from cdo import * import matplotlib.pyplot as plt file = 'spi3_6_12_1deg_

我试图计算一个特定lon/lat的选定区域的平均SPI值。我在下面的区域中计算平均值

ds_mlw1 = ds.sel(lat=slice(-16.74833, -16.75613), lon=slice(35.27023, 35.27915))
我发现使用cdo包最有效。我收到一个错误,无法识别我的cdo。有人知道如何解决这个问题吗

这是我的剧本

from cdo import *
import matplotlib.pyplot as plt
file = 'spi3_6_12_1deg_cru_ts_3_21_1949_2012.nc'
cdo = Cdo()
cdo.debug=True


meanspi  = cdo.fldmean(input=file,returnCdf=True).variables['spi3'][:] 
我得到以下错误

---------------------------------------------------------------------------
FileNotFoundError                         Traceback (most recent call last)
<ipython-input-77-7eeb6d09369c> in <module>()
      9 import matplotlib.pyplot as plt
      10 file = 'spi3_6_12_1deg_cru_ts_3_21_1949_2012.nc'
  ---> 11 cdo = Cdo()
     12 cdo.debug=True
     13 
---------------------------------------------------------------------------
FileNotFoundError回溯(最近一次调用上次)
在()
9将matplotlib.pyplot作为plt导入
10文件='spi3_6_12_1deg_cru ts_3_21_1949_2012.nc'
--->11 cdo=cdo()
12 cdo.debug=True
13
FileNotFoundError:[WinError 2]系统是否可以选择Best和niet vinden


意思是(systme找不到给定的文件)

我不熟悉cdo,但我使用ipython(交互式python)调试了这段代码:

from cdo import *
cdo=Cdo() 
并且能够获得您的错误:

FileNotFoundError: [Errno 2] No such file or directory: 'cdo': 'cdo'
我还可以在异常跟踪中看到它正在寻找可执行文件“cdo”。python模块
cdo
似乎是程序二进制
cdo
的包装器

如果您安装该程序
cdo
,它可能会解决您的问题。 信息出现在这里


这与气候变化有关吗?那太酷了

我最终没有使用cdo包,而是在xarray中使用了slice函数

ds_mlw = ds.sel(lon=slice(33,37), lat=slice(-18,-13), time=slice("2002-01-01", "2017- 
11-01"))
spi_avg = ds_mlw.mean(dim=('lon', 'lat'))
plt.figure(figsize=(10,5))
spi_avg['spi3'].plot()

感谢链接,它还没有成功,但我认为这确实是安装中的一个错误。我的研究确实是关于气候变化的,具体与干旱预测有关。