Creating a video is a cool way to visualise a time series of remote sensing data / outputs. Rather than creating a full video you can also use a GIF. One advantage of GIFs is you can embed them in Powerpoint presentations and they should will play in presentation mode (I’ve found them more reliable than videos in other formats).
You can use the ImageMagick convert command to create a GIF:
convert -delay 20 -loop 0 in_files/*.png out_animation.gif
However, depending on how your files are named it might not sort the numbers as expected leading to jumps in the video. This problem was addressed in the following post on the ‘remotelysensible’ blog:
This can be used to sort the files in Python then call the convert command using subprocess:
#!/usr/bin/env python import argparse import re import subprocess re_natural = re.compile('[0-9]+|[^0-9]+') def natural_key(s): """ Natural sorting function from http://stackoverflow.com/questions/12184015/in-python-how-can-i-naturally-sort-a-list-of-alphanumeric-strings-such-that-alp """ return [(1, int(c)) if c.isdigit() else (0, c.lower()) for c in re_natural.findall(s)] + [s] if __name__ == '__main__': parser = argparse.ArgumentParser(description='Create an animated gif from a series of images') parser.add_argument("images", nargs='+',type=str, help="Input images") parser.add_argument('-o', '--outgif', metavar ='Output gif', help ='Output name for gif', required=True) args=parser.parse_args() sorted_png_files = sorted(args.images, key=natural_key) convert_cmd = ['convert','-delay','20','-loop','0'] convert_cmd.extend(sorted_png_files) convert_cmd.extend([args.outgif]) subprocess.call(convert_cmd)
The script is run using:
python create_gif.py -o out_animation.gif in_files/*.png
As well as creating GIFS of a time series you can use SPD 3D Points Viewer to export images of a point cloud as it rotates and create a gif from these similar to this video of airborne LiDAR data over Lake Vyrnwy on YouTube: https://www.youtube.com/watch?v=P_9998KJib4
The script can be downloaded from GitHub. Note the delay is hardcoded at 20/100th of a second but this can be changed if needed.