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 latPos=[58,48,38,28,18,8] lonPos=[-20,-8,4,16,28,40] # build the plot the finition of the circles pltLst=nil 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 setoutput(to_pdf_file) end if # plot the circles on the map plot(view, pltLst) |