Get location from an image using Python
Here is the Python program to get location metadata from an image using the exifread library in Python
import exifread
def get_location(image_path):
with open(image_path, 'rb') as f:
tags = exifread.process_file(f)
lat_ref = tags.get('GPS GPSLatitudeRef')
lat = tags.get('GPS GPSLatitude')
lon_ref = tags.get('GPS GPSLongitudeRef')
lon = tags.get('GPS GPSLongitude')
if lat and lat_ref and lon and lon_ref:
lat_val = convert_to_degrees(lat)
if lat_ref.values[0] == 'S':
lat_val = -lat_val
lon_val = convert_to_degrees(lon)
if lon_ref.values[0] == 'W':
lon_val = -lon_val
return (lat_val, lon_val)
else:
return None
def convert_to_degrees(value):
d = float(value.values[0].num) / float(value.values[0].den)
m = float(value.values[1].num) / float(value.values[1].den)
s = float(value.values[2].num) / float(value.values[2].den)
return d + (m / 60.0) + (s / 3600.0)
# Example usage:
location = get_location('image.jpg')
if location:
print('Latitude:', location[0])
print('Longitude:', location[1])
else:
print('No location data found in image metadata.')