Lightroom Geotag Timelapser - a Processing script to show geotags on a map over time
Processing Java
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
timelapser
.gitattributes
.gitignore
example.gif
readme.md

readme.md

Lightroom Geotag Timelapser

Description

I wrote this tool to create timelapse frames from the geotags in my Lightroom library. It's nice to reminisce and see an overview of the places I've been to. The script automatically loads geotags from a Lightroom library and then shows a heatmap-style animation of the places popping up on a map. You can save the frames to assemble into a GIF in e.g. Photoshop, or you can just watch the animation loop.

Requirements

This script was tested on Processing 3 on Windows only, though Mac ought to work. Technically it's possible to use this script with tags from a non-Lightroom program, you'd need a CSV with each geotag in the format latitude,longitude,year,month,day. The data needs to be sorted by date, ascending.

Usage

Configuration

At the top of the file, set lightroomDb with the location of your Lightroom database. The script only reads and does not write to the database, but nevertheless you should back it up.

zoomLevel can be increased for higher resolution output. This is the OpenStreetMap zoom level. If your geotags are entirely within, say, the United States, a level of 4 or 5 would be good. If you're a world traveler, you'd want 1-3. If you set this too high, the output will probably be stupidly large and take a long time to download the tiles. The tiles are downloaded from Stamen's OSM tile servers, with a 500ms delay after each download.

margin adjusts the map margin for the outermost points. The script downloads the tiles the geotags are contained within, and the immediate ring of tiles outside of that. So unless your tags are on the edge of the world map, you have a 256px (OSM tiles are this large) maximum margin.

If you want the amount of time each frame covers to be smaller, you can set intervalPeriod to Calendar.DATE (which is one day) and intervalLength accordingly, like 15.

Finally, if you want to change the location where the tiles get cached, the output frames get generated, or the CSV points file that gets loaded or used as a cache for what's read from Lightroom, you can change cacheFolder, framesFolder, and pointsFile.

Running

When you run the script, if the input points file is missing, the script will read your Lightroom geotags and cache to the points file. Then it will retrieve any tiles necessary and run the animation. You can press R to reload tags from Lightroom.

Pressing S saves all the animation frames to the output folder, while pressing L only saves the final frame. M enters mouse mode, where the date follows the left/right movement of the mouse across the map.

Changelog

2017-02-15

  • added mouse mode
  • added ability to export last frame only
  • restructured the program so that date/point sets aren't regenerated

2016-09-30

  • adjusted the point glow blending so that points over water don't look excessively bright
  • fixed crash when cache folder didn't exist

2016-09-25

  • cleaned up the code some, first public version

2016-09-11

  • initial version

Licenses

Similar Tools

  • Seth Golub's heatmap.py - More general-purpose and has a lot more features. Creates proper heatmaps, but inputs with thousands of tags take longer to process.