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;

Wildcamp pics

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)