Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Code Block
languagepython
titleSimple Python program
linenumberstrue
from Magics.macro import *

#Definition of the output formats
formats = output(output_formats=['png','ps'],
	output_name='using_python02'})

#Setting the coordinates of the geographical area
europe = mmap(
	subpage_upper_right_longitude= 65.,
	subpage_map_projection= "polar_stereographic",
	subpage_map_vertical_longitude= 0.,
	subpage_lower_left_longitude= -37.27,
	subpage_lower_left_latitude= 18.51,
	subpage_upper_right_latitude= 51.28)

coastlines = mcoast(map_coastline_land_shade= 'on',
	map_coastline_land_shade_colour= 'grey',
	map_coastline_sea_shade= 'on',
	map_coastline_sea_shade_colour= 'white')

#Import the z500 data
z500 = mgrib(grib_input_file_name= "data/z500.grb")

#Define the simple contouring for z500
z500_contour = mcont(
	contour_level_selection_type= "interval",
	contour_line_colour= "black",
	contour_hilo_height= 0.25,
	contour_line_thickness= 1,
	contour_highlight_colour= "red",
	contour_highlight_thickness= 2,
	contour_interval= 5.)
 
#Do the plot
plot(formats, europe, coastlines, z500, z500_contour)

 

 

Procedural Python interface

From version 2.7 onwards Magics provides a procedural Python programming interface. This interface is identical to the Fortran and C interfaces in terms of functionality, with action routine names similar to the Fortran interface.

Converting From FORTRAN to Python

If you wish to copy an existing Fortran Magics program and change it to Python, then here are the things that you will need to change within the body of the program:

  • The Magics interface needs to be imported at the start of your script using import Magics and all Magics commands need to be prefix with the namespace Magics. This is not strictly necessary but keeps a clear separation of Magics and other code.
  • In order to derive the Python form of an action routine, take the FORTRAN routine name, change it to lower case and replace the initial P with the namespace Magics. There are few exception such as, POPEN becomes Magics.init() and PCLOSE becomes Magics.finalize().
  • Strings in Python use double quotes, not single quotes (" not ').
  • In Python, function names are case-sensitive, but the Magics parameter names are not.
  • In FORTRAN, if a 2-dimensional array is declared as DIMENSION FIELD (NLON,NLAT), the equivalent in Python and follows the same convention as C. Please be aware that for arrays Magics uses NumPy.

Python Interface Example

The following example shows how to use Magics in a Python program.

 

...

 

...

languagepython
titleSimple Python example
linenumberstrue

...