Metview's documentation is now on readthedocs!

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 15 Next »

For preparations and running the FLEXPART simulation needed for this tutorial click here ...

To start this tutorial please enter folder 'forward'.

To plot a particular parameter and level we need to filter the desired fields from the resulting FLEXPART output GRIB file. Unfortunately, Metview's Grib Filter icon cannot handle these files (partly due to the local GRIB definition they use) so we need to use other means to cope with this task. For this reason and also to make FLEXPART output handling easier a set of Metview Macro Library Functions were developed. We will use these functions in the example below.

Inspecting the FLEXPART GRIB file

Before seeing the macro code to generate the plot we inspect the file itself we want to plot. Double-click on the 'flux_s001.grib'  GRIB icon' in folder 'result_fwd' to start up the Grib Examiner. We can see that our GRIB file contains various flux fields. We can find out further details about the parameters by setting the Dump mode to Namespace and Namespace to Parameter in the examiner:

Generating the plot

The macro to visualise the flux fields on a given level is 'plot_flux.mv'.

In the macro first we define the level (8000 m) and the parameter ("feflux" = eastward flux) we want to plot. Then we call flexpart_filter() to extract the data.

dIn="result_fwd/"
inFile=dIn  & "conc_s001.grib"
lev=8000
par="feflux"
 
#Read fields on the given height level
g=flexpart_filter(source: inFile,
                  param: par,
                  levType: "hl", 
                  level: lev)

Next, we define the contouring. The units we use here are ng m**-2 s**-1 because the native flux units (kg m**-2 s**-1) are automatically scaled by the plotting library (see details about the this scaling for various FLEXPART GRIB fields here.

Define contouring
#The contour levels
cont_list=[1,10,50,100,150,200,250,500,750,1000,2000,4000]
 
#Define contour shading
flux_shade = mcont(
    legend  						:   "on",
    contour 						:   "off",  
    contour_level_selection_type	:   "level_list",
    contour_level_list  			: 	cont_list,
    contour_label   				:   "off",
    contour_shade   				:   "on",
    contour_shade_method    		:   "area_fill",
    contour_shade_max_level_colour  :   "red",
    contour_shade_min_level_colour  :   "RGB(0.14,0.37,0.86)",
    contour_shade_colour_direction  :   "clockwise",    
    contour_method					: 	"linear"
    )

Next, we build the title with flexpart_build_title(). Please note that we need to explicitly specify the plotting units!

title=flexpart_build_title(data: g,
    fontsize: 0.3, 
    units: "ng m**-2 s**-1")  

Finally we define the map view:

Defining the map view
#Define coastlines
coast_grey = mcoast(
	map_coastline_thickness			:	2,
	map_coastline_land_shade		:	"on",
	map_coastline_land_shade_colour	:	"grey",
	map_coastline_sea_shade			:	"on",
	map_coastline_sea_shade_colour	:	"RGB(0.89,0.89,0.89)",
	map_boundaries					:	"on",
	map_boundaries_colour			:	"black",
	map_grid_latitude_increment		:	5,
	map_grid_longitude_increment	:	5
	)

#Define geo view
view = geoview(
	map_area_definition	:	"corners",
	area				:	[40,-25,66,9],
	coastlines			: coast_grey
	)

and generate the plot:

plot(view,g,flux_shade,title)

Having run the macro we will get a plot like this (after navigating to step 39h):

  • No labels