Versions Compared

Key

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

Although Metview cannot currently output It is planned to allow Metview to directly create animated GIF images directly. In the meantime, it is easily 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 change the animation speed use

convert input.gif -delay 200100 output.gif

Tip: Continuous looping

Some viewers, especially some versions of MS PowerPoint, 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: In Microsoft PowerPoint in most cases it should work to import the GIF as an 'Image'. If the GIF is imported as a 'Video file', 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

 

...

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()wait forcesfor the plot file to finishbe generated
shell('convert ' & outdir & '/' & outbasename & '.ps' & ' -delay 100 -rotate "90<" ' & outdir & '/' & outbasename & '.gif')