我试图绘制一个等高线图,显示1860-1900年间的年溶解铁浓度,并试图排除高于一定量(0.000012)的所有数值,因为这些数值与某个特定区域有关,而这个区域正将我的数据丢弃。在
下面是我正在使用的脚本,每个部分都可以工作(在此之前,我当然导入了所有相关模块)。在
dissolved_iron = iris.load_cube('/home/em379/data/dis2/regriddedfiles/HadGEM2-ES_dfe_piControl_r1i1p1_regridded.nc')
dissolved_iron_timeslice = dissolved_iron.extract(iris.Constraint(time = lambda v: 1860 <= v <= 1900))
masked_dissolved_iron_timeslice = ma.masked_greater(dissolved_iron_timeslice.data, 0.000012)
qplt.contourf(masked_dissolved_iron_timeslice,25)
plt.show(block = False)
当我进入步骤qplt.contourf(masked_dissolved_iron_timeslice,25)
时,Python返回错误:
这个错误给了我们一个线索,告诉我们发生了什么:
我的意思是:“你想用MaskedArray做立方体的事”。在
所以,看看你的代码,确实是这样:
^{pr2}$masked_dissolved_iron_timeslice
现在是一个numpy掩码数组,而不是iris立方体。如果您只想查看数据,解决方案是从使用iris的打印功能改为使用matplotlib:当然,如果您需要更多的上下文(并维护多维数据集),可以使用以下内容更新现有多维数据集的数据:
或者,如果不想修改现有多维数据集:
有了这些立方体,您可以继续使用qplt并获得Iris提供的自动标记/colorbar/colormap/title优点。在
高温
相关问题 更多 >
编程相关推荐