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

问题描述 投票:1回答:2

我试图用特定的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:[WinError 2]系统找不到指定的文件

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

python spi cdo
2个回答
1
投票

我最后没有使用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()

0
投票

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

from cdo import *
cdo=Cdo() 

并且能够得到你的错误:

FileNotFoundError: [Errno 2] No such file or directory: 'cdo': 'cdo'

我还可以在异常跟踪中看到它正在寻找可执行文件'cdo'。似乎python模块cdo是程序二进制文件cdo的包装器。

如果您安装程序cdo它可能会解决您的问题。信息出现在这里? :https://code.mpimet.mpg.de/projects/cdo/wiki/Cdo#Documentation

这种气候变化是否相关?那太酷了!

© www.soinside.com 2019 - 2024. All rights reserved.