Tools · Geo
Find your photos by where they were taken.
Choose a folder of photos. Geo reads the GPS position your phone or camera recorded in each one via the EXIF data, then finds the photos taken near a point, inside an area or between two dates. Ordinary code does the work. It never guesses where a photo was taken, and it never changes your files.
The page from the app, on prepared samples. Its answers were recorded on a Mac and are replayed, so only the prepared examples work. It cannot open a file of yours, and it needs JavaScript.
Why this exists
A phone records where each photo was taken, and that position stays inside the file. Photo apps and photo services use it to show a map, usually for one library, and often after the photos have been uploaded. Geo does it for any folder on my own computer. The photos and the places they record stay there.
What goes in and what comes out
- Goes in
- A folder of photos: JPEG, PNG, TIFF, WebP, iPhone HEIC files and raw files from common cameras.
- First
- Geo makes an index. It reads the recorded position and the date taken from each photo, and keeps them in a hidden folder inside your folder. Your photos are not changed. When photos are added or changed, you update the index, and only those are read again.
- You search
- Within a distance of a point, inside a box you give by its four edges, or every photo with a position. Each can be narrowed to a range of dates.
- Comes out
- A list of the photos found, each with its file, its recorded position, when it was taken and how far it is from your point. You can preview a photo, show it in Finder and see the results on a map.
- You can save
- The results as a GeoJSON file, which mapping software can open.
- It also shows
- How many photos have no recorded position, and how many could not be read, with the reason for each.
The map contacts no map service. On its own it shows the positions on a plain background. To see streets and places behind them, you choose a map pack, which is one file of map pictures kept on your computer. I have made one of London from Ordnance Survey open data, about 22 MB.
Nothing is kept except the index. The folders you choose, your searches and the results are not saved or logged.
When photos move between folders, Geo’s index of them is out of date until I update it. Moving a pile of photos into my folders is the playbook A pile of photos.
Models used
None. Geo is ordinary code. Every position and date it shows was recorded in the photo by the device that took it. ExifTool reads them from each file, and the distances are plain arithmetic. The map is drawn by Leaflet 1.9.4, kept inside the tool.
When it uses the network
Normal use downloads nothing and sends nothing. There is one exception, and you choose it. “Use my current location” asks your browser where you are, and your browser or computer may contact a location service to work that out. Typing the position yourself avoids that.
What has been checked
Automated tests run on invented photo details and invented map packs. A separate check ran the real ExifTool over four tiny invented files: two with a position, one without and one damaged. Each was reported correctly, and the files were byte for byte the same afterwards.
No real collection of photos had been through it when those checks were written. How well it serves a real search has not been counted.
Known limits
- It only finds photos that carry a recorded position. Screenshots, scans and photos taken with location switched off are counted as having none.
- It does not know place names. You give a position as latitude and longitude, or use your current location. You cannot type “Paris”.
- A recorded position is only as good as the device that recorded it.
- How long a large collection takes to index has not been measured.
- It has only been run on an Apple silicon Mac, and outside the Kettle app it needs ExifTool installed separately.
- The London map pack shows the area at the scale of a regional map, without every street name.
- The index holds positions, dates and file names. It stays inside your folder, so treat it as you treat the photos.
Availability
Not available to download yet. Geo runs in the development Kettle app on my Mac, as its own page and from the command line. There is no public installer or source download at present.