Versions Compared

Key

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

Although Metview cannot currently output animated GIF images directly, it is possible to convert its PostScript output using the ImageMagick convert command. Below are some examples of doing this, along with an example showing how to incorporate this into a Metview macro.

Converting a multi-page PostScript to an animated GIF

convert input.ps -delay 200 -rotate "90<" output.gif

Tip: Alter the speed of animation

To set change the animation speed use

convert input.gif -delay 200 output.gif

Tip: Continuous looping

Some viewers, especially some version versions of MS PowerpointPowerPoint, only play a single animation cycle. To make it continuous you can use the option -loop with convert:

convert input.gif -loop 999 output.gif

NOTE: Sometimes Powerpoint PowerPoint requires extra settings for continuous looping of GIFs. Go to the "video tools" menu, which contains "format" and "playback". Under the playback menu, there is a button "Loop until stopped". Click on it, to allow continuous loops! (Thanks to Jean-Noël for this)

Tip: Transparent background

You can also use convert to replace any white in the image with a transparent background:

convert input.gif -fuzz 10% -transparent white output.gif

 

...

The following macro retrieves several time steps of data from MARS, plots it them to a PostScript file and uses the convert command to generate an animated gif. The result is shown aboveon this page.

Code Block
languagepy
# Metview Macro

#  **************************** LICENSE START ***********************************
# 
#  Copyright 2014 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 ************************************

# retrieve some data from MARS

t2m_fc = retrieve(
        type    : "fc",
        levtype : "sfc",
        param   : "2t",
        time    : 00,
        step    : [00,"to",72,"by",6],
        grid    : [1.5,1.5]
        )


# define our plotting attributes

t_shade = mcont(
        legend                    : "on",
        contour_automatic_setting : "ecchart"
        )

view = geoview(
        map_area_definition : "corners",
        area                : [30.62,-25.4,70.12,40.36]
        )


# plot the data

outdir      = getenv('SCRATCH')
outbasename = "t2m_fc"
ps = ps_output(output_name : outdir & "/" & outbasename)
setoutput(ps)
plot(view, t2m_fc, t_shade)

# force Macro to wait for the plot to be generated, then convert
# to animated gif

setoutput(ps) # setoutput() forces the plot to finish
shell('convert ' & outdir & '/' & outbasename & '.ps' & ' -delay 100 -rotate "90<" ' & outdir & '/' & outbasename & '.gif')