Added function which converts decimal position value to WGS-84 notation.
This commit is contained in:
parent
f07eb0c691
commit
cafda4cf35
44
functions.py
44
functions.py
|
@ -7,6 +7,7 @@ from datetime import datetime
|
||||||
import os
|
import os
|
||||||
import shutil
|
import shutil
|
||||||
import pyexiv2
|
import pyexiv2
|
||||||
|
import fractions
|
||||||
|
|
||||||
class Radiation:
|
class Radiation:
|
||||||
''' Handles CSV processing. '''
|
''' Handles CSV processing. '''
|
||||||
|
@ -65,13 +66,39 @@ class Photo:
|
||||||
return pic_aware_time
|
return pic_aware_time
|
||||||
|
|
||||||
class Exif:
|
class Exif:
|
||||||
''' Compiles and writes Exif-Tags from given values. '''
|
''' Converts, compiles and writes Exif-Tags from given values. '''
|
||||||
def write_exif(photo, radiation, latitude, longitude, dry_run):
|
def __init__(self, photo, radiation, latitude, longitude, elevation, dry_run):
|
||||||
|
# self.get_degree = self._to_degree(value, loc)
|
||||||
|
self.write_exif = self._write_exif(photo, radiation, latitude, longitude, elevation, dry_run)
|
||||||
|
|
||||||
''' UNTESTED ! '''
|
# def __repr__(self):
|
||||||
|
# return 'Photo: %s Creation Date: %s' % (str(self.get_target_photo), str(self.get_date))
|
||||||
|
|
||||||
|
def _to_degree(self, value, loc):
|
||||||
|
if value < 0:
|
||||||
|
loc_value = loc[0]
|
||||||
|
elif value > 0:
|
||||||
|
loc_value = loc[1]
|
||||||
|
else:
|
||||||
|
loc_value = ""
|
||||||
|
abs_value = abs(value)
|
||||||
|
deg = int(abs_value)
|
||||||
|
t1 = (abs_value - deg) * 60
|
||||||
|
minute = int(t1)
|
||||||
|
second = round((t1 - minute) * 60, 5)
|
||||||
|
return (deg, minute, second, loc_value)
|
||||||
|
|
||||||
|
def _write_exif(self, photo, radiation, latitude, longitude, elevation, dry_run):
|
||||||
|
|
||||||
metadata = pyexiv2.ImageMetadata(photo)
|
metadata = pyexiv2.ImageMetadata(photo)
|
||||||
metadata.read()
|
metadata.read()
|
||||||
|
|
||||||
|
lat_deg = self._to_degree(latitude, ["S", "N"])
|
||||||
|
lng_deg = self._to_degree(longitude, ["W", "E"])
|
||||||
|
|
||||||
|
print(lat_deg)
|
||||||
|
print(lng_deg)
|
||||||
|
|
||||||
# Set new UserComment
|
# Set new UserComment
|
||||||
new_comment = 'Radiation ☢ ' + str(radiation) + ' µS/h'
|
new_comment = 'Radiation ☢ ' + str(radiation) + ' µS/h'
|
||||||
# Exif tags to write
|
# Exif tags to write
|
||||||
|
@ -80,12 +107,13 @@ class Exif:
|
||||||
values = [new_comment, latitude, longitude]
|
values = [new_comment, latitude, longitude]
|
||||||
|
|
||||||
# Create metadata object with all data to write
|
# Create metadata object with all data to write
|
||||||
for key, value in zip(keys, values):
|
#for key, value in zip(keys, values):
|
||||||
# Only create object if there is anything to fill with
|
# Only create object if there is anything to fill with
|
||||||
if value is not None:
|
# if value is not None:
|
||||||
metadata[key] = pyexiv2.ExifTag(key, value)
|
# metadata[key] = pyexiv2.ExifTag(key, value)
|
||||||
|
|
||||||
# Write Exif tags to file, if not in dry-run mode
|
# Write Exif tags to file, if not in dry-run mode
|
||||||
if dry_run is not True:
|
#if dry_run is not True:
|
||||||
metadata.write()
|
# metadata.write()
|
||||||
|
|
||||||
return new_comment
|
return new_comment
|
||||||
|
|
12
rad_tag.py
12
rad_tag.py
|
@ -11,7 +11,7 @@ import csv
|
||||||
import argparse
|
import argparse
|
||||||
import pytz
|
import pytz
|
||||||
import gpxpy
|
import gpxpy
|
||||||
from functions import Radiation, Photo
|
from functions import Radiation, Photo, Exif
|
||||||
|
|
||||||
# SIFACTOR for GQ Geiger counters
|
# SIFACTOR for GQ Geiger counters
|
||||||
|
|
||||||
|
@ -93,12 +93,14 @@ for src_photo in args.photos:
|
||||||
print(photo.get_target_photo, photo.get_date)
|
print(photo.get_target_photo, photo.get_date)
|
||||||
|
|
||||||
# Here the matching magic has to happen
|
# Here the matching magic has to happen
|
||||||
latitude = '51.0234024'
|
latitude = 51.0234024
|
||||||
longitude = '7.248347'
|
longitude = 7.248347
|
||||||
radiation = '9001'
|
radiation = '9001'
|
||||||
|
elevation = '55'
|
||||||
|
|
||||||
# Write exif data
|
# Write exif data
|
||||||
#exif_tags = Photo.write_exif(photo.get_target_photo, radiation, latitude, longitude, args.dry)
|
exif_tags = Exif(photo.get_target_photo, radiation, latitude, longitude, elevation, args.dry)
|
||||||
#print(exif_tags)
|
print(exif_tags)
|
||||||
|
|
||||||
# Print table header
|
# Print table header
|
||||||
print('{:<15} {:<25} {:<22}'.format('filename', 'date / time', 'Exif UserComment'))
|
print('{:<15} {:<25} {:<22}'.format('filename', 'date / time', 'Exif UserComment'))
|
Loading…
Reference in New Issue