Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

To plot a particular parameter and level we need to filter the desired dataset from the resulting FLEXPART output file. Unfortunately, Metview's Grib Filter icon cannot handle these files (partly due to he the local GRIB definition the 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 heavily use these functions in the examples below.

First we inspect the 'conc_s001.grib' GRIB file containing the fields we want to plot. Double-click on the GRIB icon to start up the Grib Examiner and see that it only contains "mdc" (=Mass density concentration) fields. We can find out further details about this parameter by setting the Dump mode to Namespace and Namespace to Parameter:

Image Added

The macro to visualise the concentration fields on a given level is 'plot_level.mv'.

First, we define the level (8000 m) and the parameter ("mdc") we want to plot. Then we call mvl_flexpart_read_hl() to filter the data into a fieldset.

Code Block
dIn="result_fwd_conc/"
inFile=dIn  & "conc_s001.grib"
lev=8000
par="mdc"

#Read fields on the given height level
g=mvl_flexpart_read_hl(inFile,par,lev,-1,-1)

Next, we define the contouring definition. The units we used here are ng m**-3 because for parameter "mdc" the native units (kg m**-3) are automatically scaled by the plotting library (see details about the this scaling for various FLEXPART GRIB fields here.

Code Block
languagepy
#The contour levels
cont_list=[1,10,50,100,150,200,250,500,750,1000,2000,6000]

#Define contour shading
conc_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 mvl_flexpart_title(). Please note that we need to explicitly specify the plotting units!

Code Block
languagepy
title=mvl_flexpart_title(g,0.3,"ng m**-3") 

Finally we define the view with the map:

Code Block
languagepy
collapsetrue
#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:

Code Block
languagepy
plot(view,g,conc_shade,title)



Code Block
#Metview Macro

#  **************************** LICENSE START ***********************************
# 
#  Copyright 2017 ECMWF. This software is distributed under the terms
#  of the Apache License version 2.0. In applying this license, ECMWF does not
#  waive the privileges and immunities granted to it by virtue of its status as
#  an Intergovernmental Organization or submit itself to any jurisdiction.
# 
#  ***************************** LICENSE END ************************************

dIn="result_fwd_conc/"
inFile=dIn  & "conc_s001.grib"
lev=8000
par="mdc"

#Read fields on the given height level
g=mvl_flexpart_read_hl(inFile,par,lev,-1,-1)

#The countour levels
cont_list=[1,10,50,100,150,200,250,500,750,1000,2000,6000]

#Define contour shading
conc_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"
	)

#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
	)

#Title
title=mvl_flexpart_title(g,0.3,"ng m**-3") 

plot(view,g,conc_shade,title)

...