nctoolkit features built in methods for handling files with multiple vertical levels. They work for datasets with fixed vertical levels, for example ocean data with z-levels, as well as files with varying vertical levels such as terrain following coordinates.
The vertical methods available will be illustrated using depth-resolved ocean temperatures from NOAA’s World Ocean Atlas for January to a depth of 500 metres. The
vertical_interp method requires a
levels argument, which is sea-depth in this case.
import nctoolkit as nc nc.deep_clean() ds = nc.open_thredds("https://data.nodc.noaa.gov/thredds/dodsC/ncei/woa/temperature/A5B7/1.00/woa18_A5B7_t01_01.nc") ds.subset(variables="t_an") ds.run()
nctoolkit is using the latest version of Climate Data Operators version: 2.0.5
We can see right awy that there are 57 vertical levels, going as deep as 1500 metres.
len(ds.levels) min(ds.levels) max(ds.levels)
Calculating simple vertical statistics¶
If we want to calculate the mean temperature across all vertical levels, we can do the following. Note: that you must specify the fixed arg, which tells nctoolkit whether the vertical levels are consistent in this space. In this case they are. Note: this method will account for cell thickness when calculating the mean.
ds_mean = ds.copy() ds_mean.vertical_mean(fixed = True) ds_mean.plot()