Metviews has the Average Data data icon (in Python can be invoked via mv.mxs_average()) that can compute a zonal (or meridional) average cross section for GRIB data. However, if our input data contains multiple dates/steps a separate cross section is generated for each date/step. Now, if we want to generate the average cross section for the temporal average of the input data we have to do the temporal averaging by ourselves before passing the data to mv.mxs_average(). This is how it can be done:
import metview as mv # read GRIB data containing pressure levels and several dates/steps f = mv.read("my.grib") # define the set of levels levels = [1000, 925, 850, 700, 500] # compute the mean on each level and add it to the resulting fieldset (=res) res = mv.Fieldset() for lev in levels: g = mv.read(data=f, levelist=lev, levtype="pl") res.append(mv.mean(g)) # res now contains the temporal average on each level. We compute the # zonal average vertical cross section with mxs_average(). av = mv.mxs_average( direction="ew", data=res ) # plot the resulting average cross section mv.plot(av)