in mapillary_tools/exif_read.py [0:0]
def extract_gps_time(self) -> Optional[datetime.datetime]:
"""
Extract timestamp from GPS field.
"""
gps_date_field = "GPS GPSDate"
gps_time_field = "GPS GPSTimeStamp"
if gps_date_field in self.tags and gps_time_field in self.tags:
date = str(self.tags[gps_date_field].values).split(":")
if int(date[0]) == 0 or int(date[1]) == 0 or int(date[2]) == 0:
return None
t = self.tags[gps_time_field]
gps_time = datetime.datetime(
year=int(date[0]),
month=int(date[1]),
day=int(date[2]),
hour=int(eval_frac(t.values[0])),
minute=int(eval_frac(t.values[1])),
second=int(eval_frac(t.values[2])),
)
microseconds = datetime.timedelta(
microseconds=int((eval_frac(t.values[2]) % 1) * 1e6)
)
gps_time += microseconds
return gps_time
else:
return None