Metview's documentation is now on readthedocs!


Metview Macro Library function. Used to plot a circle with a given radius in km onto a non-cylindrical map projection. Internally, the circle is split into a number of segments and the returned result is an Input Visualiser object which can be passed to the plot() command along with an optional Graph Plotting object.


definition mvl_geocircle(lat : number, lon : number,radius : number, resolution : number)

The first three parameters specify the centre and the radius (in km) of the circle. Parameter resolution defines the number of line segments to use to make up the circle.


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

# ---------------------------------------------------------------
# Tags: mvl,coast
# Title: Geocircle on Map
# Description: Demonstrates how to plot a circle on any map
# projection using the Macro Library function
# mvl_geocircle.
# ---------------------------------------------------------------

# set up the shaded coastlines
land_sea_shade = mcoast
    map_coastline_land_shade        : "on",
    map_coastline_land_shade_colour : "RGB(0.98,0.95,0.82)",
    map_coastline_sea_shade         : "on",
    map_coastline_sea_shade_colour  : "RGB(0.85,0.93,1)"

# define the geographic view
view = geoview
    map_projection      : "polar_stereographic",
    map_area_definition : "corners",
    area                : [-5,-30,10,84],  # S,W,N,E
    coastlines          : land_sea_shade

# define the radius of the circles (in km) 
circle_radius = 200

# the circle will be made up of this many segments
circle_resolution = 80

# define the centres of the circles 

# build the plot the finition of the circles
for i=1 to count(latPos) do

    # define the cirle around the specifed coordinates
    iv_circle = mvl_geocircle(latPos[i],lonPos[i],circle_radius,circle_resolution)

    # define the plotting attributes for the circle 
    graph_circle = mgraph
        graph_line_colour    : "red",
        graph_line_thickness : "4",
        graph_line_style     : 'solid'

    # collect the plot definitions into a list
    pltLst=pltLst & [iv_circle,graph_circle]

end for

# define the output media
to_pdf_file = pdf_output
    output_name : "plot" # extension is added automatically

# check the runmode and decide which media to put the plot to
mode = runmode()
if  mode = "execute" or mode = "batch" then
end if

# plot the circles on the map
plot(view, pltLst)