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 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 heavily use these functions in the examples below.

Inspecting the FLEXPART GRIB file

Before seeing the macro code to generate the plot we inspect the file itself we wanted to plot. Double-click on the 'conc_s001.grib'  GRIB icon' in folder 'result_fw_conc' to start up the Grib Examiner. We can see that this file 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:

...

Generating the plot

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

...

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

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

Image Added



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)

...

mvl_flexpart_total_column(inFile,ac)
  
# Function to compute the column-integrated density for concentration
# params:
#   inFile: input file
#   ac: ageclass (-1 means all)

 Image Removed




Forward simultaions

...