使用python Iris模块的横截面图

时间:2017-05-14 05:21:02

标签: python contour netcdf netcdf4

我想使用为海洋学和气象学开发的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()

1 个答案:

答案 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