我想使用为海洋学和气象学开发的python Iris模块绘制沿经度的横截面,我使用他们的例子: http://scitools.org.uk/iris/docs/v1.4/examples/graphics/cross_section.html 我试图将他们的代码更改为我的示例,但我的代码输出为空。
数据:http://data.nodc.noaa.gov/thredds/fileServer/woa/WOA09/NetCDFdata/temperature_annual_1deg.nc
import iris
import iris.plot as iplt
import iris.quickplot as qplt
# Enable a future option, to ensure that the netcdf load works the same way
# as in future Iris versions.
iris.FUTURE.netcdf_promote = True
# Load some test data.
fname = 'temperature_annual_1deg.nc'
theta = iris.load_cube(fname, 'sea_water_temperature')
# Extract a single depth vs longitude cross-section. N.B. This could
# easily be changed to extract a specific slice, or even to loop over *all*
# cross section slices.
cross_section = next(theta.slices(['longitude',
'depth']))
qplt.contourf(cross_section, coords=['longitude', 'depth'],
cmap='RdBu_r')
iplt.show()
答案 0 :(得分:0)
您需要了解的是,您当前的cross_section
被定义为theta.slices
迭代器的第一个成员,这意味着它从坐标的一端开始(在当前情况下为空)。因此,您需要迭代到迭代器的下一个成员,直到获得一些数据。如果您将这些行添加到代码中,可能有助于了解正在发生的事情:
import numpy as np
cs = theta.slices(['longitude', 'depth'])
for i in cs:
print(np.nanmax(i))
哪个应该打印如下:
--
--
--
-0.8788
-0.9052