Page History
Section | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|
|
Setting of the
...
cartesian projection
We want to show our Cross section in the following cartesian system:
- The vertical coordinate system is a logarithmic axis from 1000 hPa to 200 hPa.
- The horizontal coordinate system is a geoline axis from [50oN, 90oW] to [30oN, 60oW]
Have a look at the subpage documentation to learn how to setup a cartesian projection .
We just have to add 2 axis (1 vertical, 1 horizontal ) to materialise it on the plot. For backward compatibility, we have only one maxis object, the orientation is defined using the parameter axis_orientation.
Section | |||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| |||||||||||||||||||||||||||||||||||||||||||
Section | |||||||||||||||||||||||||||||||||||||||||||
|
Setting the coastlines
Until now you have used the mcoast to add coastlines to your plot. The mcoast object comes with a lot of parameters to allow you to style your coastlines layer.
The full list of parameters can be found in the Coastlines documentation.
In this first exercise, we will like to see:
- The land coloured in cream.
- The coastlines in grey.
- The grid as a grey dash line.
...
width | 50% |
---|
...
title | Parameters to check |
---|
Useful Coastlines parameters |
---|
map_coastline_land_shade |
map_coastline_land_shade_colour |
map_coastline_colour |
map_grid_colour |
map_grid_line_style |
|
Adjusting the axis
By specialising the axis, you can improve your axis visualisation.
Have a look at the Axis Documentation to browse the possibilities.
Now, try to improve the readability of the line by specialising the horizontal axis.
Section | ||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
Loading the netCDF data
In this exercise, we want to visualise a matrix stored in a netCDF file. netCDF is a very generic format, and can contain a lot of data. We will need to set up some information in order to explain to Magics which variable to plot, and how to interpret it.
The mnetcdf data action comes with a parameter list that can be found in the netCDF Input Page.
But first, let's see what is inside our netCDF Data
Code Block | ||
---|---|---|
| ||
netCDF section {
dimensions:
levels = 85 ;
longitude = 144 ;
latitude = 144 ;
p15220121030000000000001_1 = 2 ;
p15220121030000000000001_2 = 144 ;
orography_x_values = 144 ;
orography_y1_values = 144 ;
orography_y2_values = 144 ;
variables:
double levels(levels) ;
double longitude(longitude) ;
double latitude(latitude) ;
double p13820121030000000000001(levels, longitude) ; |
We want to display the variable p13820121030000000000001, and inform Magics that the dimensions of the matrix are described in the 2 variables levels and longitude.
The range of the vorticity values is quite small, then we would like to apply a scaling factor of 100000.
We will then just apply a basic contouring.
Section | |||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
Creating a nice shading
Now, we just create a nice polygon shading.
The list of levels we want to use is : [-200., -100., -75., -50., -30., -20., -15., -13., -11., -9., -7., -5., -3., -1., 1., 3., 5., 7., 9., 11., 13., 15., 20., 30., 50., 75., 100., 200].
and the list of colours is : ["rgb(0,0,0.3)", "rgb(0,0,0.5)", "rgb(0,0,0.7)", "rgb(0,0,0.9)", "rgb(0,0.15,1)", "rgb(0,0.3,1)", "rgb(0,0.45,1)", "rgb(0,0.6,1)", "rgb(0,0.75,1)", "rgb(0,0.85,1)", "rgb(0.2,0.95,1)", "rgb(0.45,1,1)", "rgb(0.75,1,1)", "none", "rgb(1,1,0)","rgb(1,0.9,0)", "rgb(1,0.8,0)", "rgb(1,0.7,0)", "rgb(1,0.6,0)", "rgb(1,0.5,0)", "rgb(1,0.4,0)", "rgb(1,0.3,0)", "rgb(1,0.15,0)", "rgb(0.9,0,0)", "rgb(0.7,0,0)", "rgb(0.5,0,0)", "rgb(0.3,0,0)"],
Do not forget to turn the legend on ...
You could quickly check Contour Documentation
Section | |||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
Code Block | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
from Magics.macro import *
#setting the output
output = output(
output_formats = ['png'],
output_name = "map_step2",
output_name_first_page_number = "off"
)
#settings of the geographical area
area = mmap(subpage_map_projection="cylindrical",
subpage_lower_left_longitude=-110.,
subpage_lower_left_latitude=20.,
subpage_upper_right_longitude=-30.,
subpage_upper_right_latitude=70.,
)
#settings of the caostlines
coast = mcoast(map_coastline_land_shade = "on",
map_coastline_land_shade_colour = "cream",
map_grid_line_style = "dash",
map_grid_colour = "grey",
map_label = "on",
map_coastline_colour = "grey")
plot(output, area, coast) |
Column | ||
---|---|---|
| ||
|
Visualising the Mean Sea Level Pressure field
The visualisation of any data in Magics is done by combining 2 kind of objects. One, the Data Action, is used to define the data and explain to Magics how to interpret it, the other one is called Visual Action and will define the type of visualisation and its attributes.
In this example our data are in a grib file msl.grib. The Data Action to be used is mgrib in is documented in Grib Input Documentation.
The Visualisation we want to apply is a basic contouring, using black for the lines and an interval of 5 hPa, between isolines. We also want to add a automatic legend, with our own text "Mean Sea Level Pressure". Follow the link to access the Contouring Documentation.
Section | |||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
Visualising the precipitation field
The goal of this exercise is to discover a bit more the diverse styles of visualisation offered by the mcont object.
We are pre-processed grib field containing the precipitation accumulated in the last 6 hours of the valid time. We want to disable the automatic scaling appled by Magics and use our own scaling factor, in this case 1000.
Here we will work with shading, and we will use a different technique to setup the levels we want to contour.
We want to use the following list of levels for contouring [0.5, 2., 4., 10., 25., 50., 100., 250.]
and the following list of colours ["cyan", "greenish_blue", "blue", "bluish_purple", "magenta", "orange", "red", "charcoal"]
...
width | 50% |
---|
...
title | Parameters to check |
---|
mgrib action to load the data |
---|
grib_input_file_name |
grib_automatic_scaling |
grib_scaling_factor |
mcont action to define a contouring |
---|
contour_level_selection_type |
contour_level_list |
contour_shade |
contour_shade_method |
contour_shade_colour_method |
contour_level_selection_type |
contour_shade_colour_list |
legend |
|
Position the legend
By default, the legend is is positioned at the top of the plot. In this exercise we want to put see our legend on a column mode on the right of the plot.
The Information about the positional mode can be found in the Legend Documentation
Section | |||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
Code Block | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
#setting the output
output = output(
output_formats = ['png'],
output_name = "map_step4",
output_name_first_page_number = "off"
)
#settings of the geographical area
area = mmap(subpage_map_projection="cylindrical",
subpage_lower_left_longitude=-110.,
subpage_lower_left_latitude=20.,
subpage_upper_right_longitude=-30.,
subpage_upper_right_latitude=70.,
)
#settings of the caostlines
coast = mcoast(map_coastline_land_shade = "on",
map_coastline_land_shade_colour = "cream",
map_grid_line_style = "dash",
map_grid_colour = "grey",
map_label = "on",
map_coastline_colour = "grey")
#definition of the input data
precip = mgrib(grib_input_file_name="precip.grib",
grib_automatic_scaling='off',
grib_scaling_factor=1000.)
shading = mcont( contour_highlight= "off",
contour_hilo= "off",
contour_label="off",
contour_level_list=[0.5, 2., 4., 10., 25., 50., 100., 250.],
contour_level_selection_type= "level_list",
contour_shade= "on",
contour_shade_method= "area_fill",
contour_shade_colour_method= "list",
contour_shade_colour_list= ["cyan", "greenish_blue", "blue", "bluish_purple", "magenta", "orange", "red", "charcoal"],
legend="on")
plot(output, area, coast, precip, shading) |
Column | ||
---|---|---|
| ||
|
Overlaying the 2 layers and playing with legend
Here, we want to demonstrate the plot command.
The actions added to the plot command will be executed sequentially, and their result will be displayed from the background to the foreground .
Then, try to put the shaded layer (precipitation) behind the contoured layer (msl)
and try to improve the legend to make it look continuous, by checking the Legend Documentation.
Section | ||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
Adding the position of New York City
To demonstrate the use of symbols plotting, we are going to add a big red dot where New York City is.We will the add the text NYC in black on top of the dot.
The position of New York is [41oN, 74oE], we can give this position to Magics using the minput object, documented in Input Data Page.
The symbol is performed using the msymb object. You can find the full options in the Symbol Documentation.
|
add a Title
Last thing to do here .. We add a title to the top..
Here we will use a combination of User text and automatic text ( read from the netCDF global attribute title)
To get the automatic title, you have to use the following tag <magics_title/>
Check the Text Plotting Page for more information
Section | ||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Section | ||||||||||||||||||||||||||||||||||||||||||||||
|
Adding a line to show our next Cross-section
In the next exercise, we will display a Cross-section of the Vorticity across the Storm.
We want to show this line of our plot as a black thick line.
The stating point is [50oN, 90oE], the end point is [30oN, 60oE] : it can be passed to Magics using the minput object, documented in Input Data Page.
To draw the line we will use the mgraph object. All the parameters are available in the Graph Plotting Documentation.
Section | |||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
Adding a title
We have now a very nice plot... let's add a title at the top.
Text box can be embedded everywhere on a plot, but the default position will be a title at the top of the plot, above an potential legend.
The text facility is documented in the Text Plotting Page.
|
...