Af en toe maak ik foto’s en dan wil ik de GPS coordinaten van de foto en de foto zelf opslaan. Zo kan ik het later weer op zoeken. Zo creëer ik een verzameling plekken die ik wil onthouden, om te wandelen en wildkamperen enzo. Ik bewaarde de foto’s in een iPhone album tot ik een keer tijd had. Met wat scripting kan ik de boel alvast automatiseren.
Het doel;
- Checken of er in een folder foto’s staan.
- Als er een foto staat de naam opslaan en de GPS coordinaten er uit halen.
- De foto, coordinaten en naam opslaan in Day One.
Tools;
- Python3
- ExifTool by Phil Harvey
- MacOSX Terminal
- Day One App
Via de scheduler (cronjob) roep ik het eerste script op; processWildcampPics.sh en vanuit daar roep ik importWildcampPicsDayOne.py.
processWildcampPics.sh
#!/bin/bash picLocation="/Users/floris/stack/archief/wildkamperen/" exiftool -gpslatitude -gpslongitude -n "$picLocation" > $picLocation"gpsdata.txt" python3 ./importWildcampPicsDayOne.py $picLocation rm $picLocation"gpsdata.txt"
importWildcampPicsDayOne.py
#!/usr/bin/python import sys import subprocess import time import shutil file = sys.argv[1]+'gpsdata.txt' template = '/Users/floris/.scripts/template/dayOneWildkamperen.txt' with open(template, 'r', encoding="utf-8") as data: template = data.read() with open(file, 'r', encoding="utf-8") as data: body = data.read().splitlines() for line in body: if '========' in line: pic = line.replace('======== ', '') src = pic dest = src.replace('wildkamperen','wildkamperen/inDayOne') if 'Latitude' in line: lat = line.replace('GPS Latitude : ', '') if 'Longitude' in line: lon = line.replace('GPS Longitude : ', '') template_insert = template template_insert = template_insert.replace('[LAT]', lat) template_insert = template_insert.replace('[LON]', lon) template_insert = template_insert.replace('[TITLE]', pic) command = "dayone2 -p '" + pic + "' --coordinate '" + lat + "' " + lon + " --tags Wildkampeer process --journal '(wild)kamperen' new '" + template_insert + "'" subprocess.Popen(command, shell=True) time.sleep(5) shutil.move(src,dest)