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.')

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.