Tabs Page |
---|
|
Code Block |
---|
language | py |
---|
title | Storm Wind Quadrants Example |
---|
|
#Metview Macro
# **************************** LICENSE START ***********************************
#
# Copyright 2019 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 ************************************
#
# read CSV file with the track positions and quadrant sizes in (km)
tbl = read_table(
table_delimiter : " ",
table_combine_delimiters : "on",
table_header_row : 0,
table_filename : "dorian_track.csv"
)
# read track and quadrant details into a set of vectors
lon = values(tbl,2)
lat = values(tbl,1)
quad1 = values(tbl,3)
quad2 = values(tbl,4)
quad3 = values(tbl,5)
quad4 = values(tbl,6)
# build input visualiser objects to represent storm quadrants
quad_vis = nil
for i=1 to count(lon) do
radiusLst = [quad1[i], quad2[i], quad3[i], quad4[i]]
quad_vis = quad_vis & [mvl_geocircle(lat[i], lon[i], radiusLst, 40)]
end for
# create visual definition for storm quadrants
quad_graph = mgraph(
graph_type: 'area',
graph_shade_colour: 'RGB(0.6532,0.8642,0.9546)',
graph_line_colour : "blue",
graph_line_thickness : "3",
graph_line_style : 'solid'
)
# create visualiser for the track
track_vis = input_visualiser(
input_plot_type : "geo_points",
input_longitude_values : tolist(lon),
input_latitude_values : tolist(lat)
)
# create visual definition for the track
track_graph = mgraph(
graph_line_colour : "red",
graph_line_thickness : 4,
graph_symbol : "on",
graph_symbol_colour : "white",
graph_symbol_height : 0.5,
graph_symbol_marker_index : 15,
graph_symbol_outline : "on",
graph_symbol_outline_colour : "red"
)
# define coastlines
coast = mcoast(
map_coastline_colour : "RGB(0.2449,0.2414,0.2414)",
map_coastline_thickness : 3,
map_coastline_resolution : "low",
map_coastline_land_shade : "on",
map_coastline_land_shade_colour : "RGB(0.5333,0.5333,0.5333)",
map_coastline_sea_shade : "on",
map_coastline_sea_shade_colour : "RGB(0.8358,0.8469,0.8662)",
map_boundaries : "on",
map_boundaries_colour : "mustard",
map_boundaries_thickness : 2,
map_grid_colour : "RGB(0.2627,0.2627,0.2627)"
)
# define geographical view
view = geoview(
map_projection : "polar_stereographic",
map_area_definition : "corners",
area : [17.78,-99.6,41.38,-35.65],
map_vertical_longitude : -85,
coastlines : coast
)
# define tile
title = mtext(
text_lines : ['Storm track and quadrant-based extent of storm Dorian'],
text_font_size : 0.4
)
# define the output plot file
setoutput(pdf_output(output_name : 'storm_quadrants'))
plot(view, quad_vis, quad_graph, track_vis, track_graph, title)
|
|
Tabs Page |
---|
|
Code Block |
---|
language | py |
---|
title | Storm Wind Quadrants Example |
---|
|
# **************************** LICENSE START ***********************************
#
# Copyright 2019 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 ************************************
#
import metview as mv
# read CSV file with the track positions and quadrant sizes in (km)
tbl = mv.read_table(
table_delimiter = " ",
table_combine_delimiters = "on",
table_header_row = 0,
table_filename ="dorian_track.csv"
)
# read track and quadrant details into a set of vectors
lon = mv.values(tbl,1)
lat = mv.values(tbl,0)
quad1 = mv.values(tbl,2)
quad2 = mv.values(tbl,3)
quad3 = mv.values(tbl,4)
quad4 = mv.values(tbl,5)
# build input visualiser objects to represent storm quadrants
quad_vis = []
for i in range(len(lon)):
radiusLst = [quad1[i], quad2[i], quad3[i], quad4[i]]
quad_vis.append(mv.mvl_geocircle(lat[i], lon[i], radiusLst, 40))
# create visual definition for storm quadrants
quad_graph = mv.mgraph(
graph_type = 'area',
graph_shade_colour = 'RGB(0.6532,0.8642,0.9546)',
graph_line_colour = "blue",
graph_line_thickness= "3",
graph_line_style = 'solid'
)
# create visualiser for the track
track_vis = mv.input_visualiser(
input_plot_type = "geo_points",
input_longitude_values = list(lon),
input_latitude_values = list(lat)
)
# create visual definition for the track
track_graph = mv.mgraph(
graph_line_colour = "red",
graph_line_thickness = 4,
graph_symbol = "on",
graph_symbol_colour = "white",
graph_symbol_height = 0.5,
graph_symbol_marker_index = 15,
graph_symbol_outline = "on",
graph_symbol_outline_colour = "red"
)
# define coastlines
coast = mv.mcoast(
map_coastline_colour = "RGB(0.2449,0.2414,0.2414)",
map_coastline_thickness = 3,
map_coastline_resolution = "low",
map_coastline_land_shade = "on",
map_coastline_land_shade_colour= "RGB(0.5333,0.5333,0.5333)",
map_coastline_sea_shade = "on",
map_coastline_sea_shade_colour = "RGB(0.8358,0.8469,0.8662)",
map_boundaries = "on",
map_boundaries_colour = "mustard",
map_boundaries_thickness = 2,
map_grid_colour = "RGB(0.2627,0.2627,0.2627)"
)
# define geographical view
view = mv.geoview(
map_projection = "polar_stereographic",
map_area_definition = "corners",
area = [17.78,-99.6,41.38,-35.65],
map_vertical_longitude= -85,
coastlines = coast
)
# define tile
title = mv.mtext(
text_lines = ['Storm track and quadrant-based extent of storm Dorian'],
text_font_size = 0.4
)
# define the output plot file
mv.setoutput(mv.pdf_output(output_name= 'storm_quadrants'))
mv.plot(view, quad_vis, quad_graph, track_vis, track_graph, title)
|
|
|