![](/img/trans.png)
[英]Python calculate surface area bounded by the parallels lat1 and lat2 and the meridians lon1 and lon2
[英]Calculate mean over an selected area lon lat with cdo
我試圖計算具有特定 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] Het 系統 kan het opgegeven bestand niet vinden
意思(系統找不到給定的文件)
我對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
這與氣候變化有關嗎? 這很酷!
最后我沒有使用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()
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.