import xarray as xr import matplotlib.pyplot as plt if name=='main': ds=xr.open_dataset(r'D:\pythonsx\zl\sst.mnmean.nc') sst=ds['sst'] sstsel=sst.loc[:,5:-5,190:240] #5°S-5°N,170°W-120°W enso=sstsel.mean(dim=['lat', 'lon'])#区域平均 ensom=enso.mean('time') #print(ensom) ensoa=enso-ensom #print(ensoa)修改这段代码,筛选出大于0.5的值
时间: 2023-06-14 12:05:05 浏览: 45
import xarray as xr
import matplotlib.pyplot as plt
if __name__ == '__main__':
ds = xr.open_dataset(r'D:\pythonsx\zl\sst.mnmean.nc')
sst = ds['sst']
sstsel = sst.loc[:, 5:-5, 190:240] # 5°S-5°N,170°W-120°W
enso = sstsel.mean(dim=['lat', 'lon']) # 区域平均
ensom = enso.mean('time')
ensoa = enso - ensom
# 选取大于0.5的值
ensoa_selected = ensoa.where(ensoa > 0.5, drop=True)
print(ensoa_selected)
相关问题
import xarray as xr import matplotlib.pyplot as plt if __name__=='__main__': ds=xr.open_dataset(r'D:\pythonsx\zl\sst.mnmean.nc') sst=ds['sst'] sstsel=sst.loc[:,5:-5,190:240] #5°S-5°N,170°W-120°W enso=sstsel.groupby('time.year').mean(dim=['lat', 'lon'])修改这段代码,求每年平均
修改后的代码如下:
```python
import xarray as xr
import matplotlib.pyplot as plt
if __name__=='__main__':
ds = xr.open_dataset(r'D:\pythonsx\zl\sst.mnmean.nc')
sst = ds['sst']
sstsel = sst.sel(lat=slice(5,-5), lon=slice(360-170, 360-120)) # 5°S-5°N,170°W-120°W
enso = sstsel.groupby('time.year').mean(dim=['lat', 'lon'])
print(enso)
enso.plot()
plt.show()
```
主要修改的是:
- `sstsel` 的选取方式,使用 `sel` 函数选择经纬度范围;
- `groupby` 函数中的 `dim` 参数,由原来的 `['lat', 'lon']` 改为 `['time']`,求每年平均的时候只需要在时间维度上进行平均。
import xarray as xr import matplotlib.pyplot as plt from netCDF4 import Dataset import cartopy.crs as ccrs#投影方式 import cartopy.feature as cfeature import cartopy.io.shapereader as shpreader import numpy as np import pandas as pd from matplotlib.font_manager import fontManager da=pd.read_csv(r'E:\python11\STATION_58237.txt',sep='\s+') print(da) tem=da['TEM'] #print(tem.shape) rhu=da['RHU'] tem_ave=[] for i in range(0,24): tem_data=tem[i:147:24] print(tem_data) tem_ave[i]=np.mean(tem_data) print(tem_ave) plt.plot(tem_ave)帮我改一下
import xarray as xr
import matplotlib.pyplot as plt
from netCDF4 import Dataset
import cartopy.crs as ccrs
import cartopy.feature as cfeature
import cartopy.io.shapereader as shpreader
import numpy as np
import pandas as pd
from matplotlib.font_manager import fontManager
da = pd.read_csv(r'E:\python11\STATION_58237.txt', sep='\s+')
print(da)
tem = da['TEM']
rhu = da['RHU']
tem_ave = []
for i in range(0, 24):
tem_data = tem[i:147:24]
print(tem_data)
tem_ave.append(np.mean(tem_data)) # 将结果添加到列表中
print(tem_ave)
plt.plot(tem_ave)
plt.show() # 显示图形