Skip to content

Commit

Permalink
Fix: Fallback to exif datetime if GPS says 1970-01-01 (#669)
Browse files Browse the repository at this point in the history
  • Loading branch information
malconsei authored Feb 19, 2024
1 parent 5b39288 commit e2db566
Show file tree
Hide file tree
Showing 2 changed files with 5 additions and 5 deletions.
6 changes: 3 additions & 3 deletions mapillary_tools/exif_read.py
Original file line number Diff line number Diff line change
Expand Up @@ -399,7 +399,7 @@ def extract_gps_datetime(self) -> T.Optional[datetime.datetime]:

def extract_capture_time(self) -> T.Optional[datetime.datetime]:
dt = self.extract_gps_datetime()
if dt is not None:
if dt is not None and dt.date() != datetime.date(1970, 1, 1):
return dt

dt = self.extract_exif_datetime()
Expand Down Expand Up @@ -554,7 +554,7 @@ def extract_gps_datetime(self) -> T.Optional[datetime.datetime]:
return None

dt = strptime_alternative_formats(gpsdate, ["%Y:%m:%d", "%Y-%m-%d"])
if dt is None:
if dt is None or dt == datetime.date(1970, 1, 1):
return None

gpstimestamp = self.tags.get("GPS GPSTimeStamp")
Expand Down Expand Up @@ -632,7 +632,7 @@ def extract_capture_time(self) -> T.Optional[datetime.datetime]:
gps_dt = self.extract_gps_datetime()
except (ValueError, TypeError, ZeroDivisionError):
gps_dt = None
if gps_dt is not None:
if gps_dt is not None and gps_dt.date() != datetime.date(1970, 1, 1):
return gps_dt

dt = self.extract_exif_datetime()
Expand Down
4 changes: 2 additions & 2 deletions mapillary_tools/exiftool_read.py
Original file line number Diff line number Diff line change
Expand Up @@ -266,14 +266,14 @@ def extract_capture_time(self) -> T.Optional[datetime.datetime]:
dt = self.extract_gps_datetime()
except (ValueError, TypeError, ZeroDivisionError):
dt = None
if dt is not None:
if dt is not None and dt.date() != datetime.date(1970, 1, 1):
return dt

try:
dt = self.extract_gps_datetime_from_xmp()
except (ValueError, TypeError, ZeroDivisionError):
dt = None
if dt is not None:
if dt is not None and dt.date() != datetime.date(1970, 1, 1):
return dt

dt = self.extract_exif_datetime()
Expand Down

0 comments on commit e2db566

Please sign in to comment.