爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 8385|回复: 1

时间尺度更换后导致的bug问题

[复制链接]

新浪微博达人勋

发表于 2021-8-27 18:02:58 | 显示全部楼层 |阅读模式
40金钱
使用软件是Python,文件格式是nc,使用Xarray库读取数据,SST的时间保存以月为单位画图目的是读取一段时间的SST数据,并对这段时间内的所有SST数据求平均并绘图

以下是数据读取部分:
nc_file=xr.open_dataset(r'D:\Download\HadISST_sst.nc\HadISST_sst.nc') #读取nc文件
lat=nc_file.variables['latitude']#读取纬度
lon=nc_file.variables['longitude']#读取经度
sst=nc_file.sst #读取海温
SST = sst.loc['1870-01-16T11:59:59.505615234':'1870-03-16T11:59:59.340820312'] #选择需要的时间段
中间设置略过,以下是绘图部分:
clevs_SST = np.arange(15, 30)
cs2 = ax.contourf(lon, lat, SST, clevs_SST, cmap='RdBu_r',transform=ccrs.PlateCarree(),extend = 'both')
cb = plt.colorbar(cs2, orientation='horizontal', pad=0.05, aspect=30)


在运行程序后出现bug:TypeError: Input z must be 2D, not 3D


有两个问题想要解决:
1.如何解决该bug?
2.如何对这段时间内的SST数据求平均?



密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2021-8-27 23:17:52 | 显示全部楼层
本帖最后由 edwardli 于 2021-8-27 23:23 编辑

1-错误提示很清晰,传递的是个三维数组,但是绘制需要二维数组。为什么是三维的?就是你的第二个问题
2-只采用loc切片得到了1月~3月的数据,经度、纬度、时间,肯定是3维的。求平均很简单,mean()就能解决,传递好沿哪个维度dim进行平均即可。
Dataset.mean(dim=None, skipna=None, **kwargs)
密码修改失败请联系微信:mofangbao
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

本版积分规则

Copyright ©2011-2014 bbs.06climate.com All Rights Reserved.  Powered by Discuz! (京ICP-10201084)

本站信息均由会员发表,不代表气象家园立场,禁止在本站发表与国家法律相抵触言论

快速回复 返回顶部 返回列表