Initial commit
This commit is contained in:
commit
73ea6a9413
26 changed files with 58556 additions and 0 deletions
31
scripts/add-geolocation-to-images.py
Executable file
31
scripts/add-geolocation-to-images.py
Executable file
|
|
@ -0,0 +1,31 @@
|
|||
#!/usr/bin/env nix-shell
|
||||
#!nix-shell --quiet -p nix-eval-jobs -p nix -p python3 -p python3Packages.pillow -i python
|
||||
|
||||
import json
|
||||
import os
|
||||
from PIL import Image
|
||||
from PIL.ExifTags import TAGS
|
||||
|
||||
# https://stackoverflow.com/a/78462781
|
||||
GPSINFO_TAG = next(
|
||||
tag for tag, name in TAGS.items() if name == "GPSInfo"
|
||||
)
|
||||
def decimal_coords(coords, ref):
|
||||
decimal_degrees = float(coords[0]) + float(coords[1]) / 60 + float(coords[2]) / 3600
|
||||
if ref == "S" or ref =='W' :
|
||||
decimal_degrees = -1 * decimal_degrees
|
||||
return decimal_degrees
|
||||
|
||||
with open('data/data.json') as f:
|
||||
data = json.loads(f.read())
|
||||
|
||||
for i, stand in enumerate(data['stands']):
|
||||
lats = []
|
||||
lons = []
|
||||
for view_image in stand['view']:
|
||||
im = Image.open(os.path.join('images', view_image))
|
||||
gpsinfo = im.getexif().get_ifd(GPSINFO_TAG)
|
||||
lats.append(decimal_coords(gpsinfo[2], gpsinfo[1]))
|
||||
lons.append(decimal_coords(gpsinfo[4], gpsinfo[3]))
|
||||
data['stands'][i]['location'] = [sum(lats)/len(lats), sum(lons)/len(lons)] # TODO: round
|
||||
print(json.dumps(data, indent=4))
|
||||
Loading…
Add table
Add a link
Reference in a new issue