Ajout de la date dans les fichiers, mais pas mieux dans la séquence
import requests
from PIL import Image
import piexif
from io import BytesIO
from datetime import datetime
def to_deg(value, loc):
if value < 0:
loc_value = loc[0]
else:
loc_value = loc[1]
abs_value = abs(value)
deg = int(abs_value)
t1 = (abs_value - deg) * 60
min = int(t1)
sec = round((t1 - min) * 60, 5)
return (deg, min, sec, loc_value)
url = "https://graph.mapillary.com/images?access_token=MLY|XXXXXXXXXXXXXXXXXXXXXXXXXXXXX&fields=id,altitude,atomic_scale,camera_parameters,camera_type,captured_at,compass_angle,computed_altitude,computed_compass_angle,computed_geometry,computed_rotation,exif_orientation,height,width,merge_cc,sfm_cluster,sequence,geometry,mesh,detections,thumb_256_url,thumb_1024_url,thumb_2048_url,thumb_original_url&sequence_ids=Pvdg_DcsRrqwdVk8ZrcLeg"
response = requests.get(url)
data = response.json()
for image_data in data['data']:
img_url = image_data['thumb_original_url']
coordinates = image_data['computed_geometry']['coordinates']
captured_at = datetime.fromtimestamp(image_data['captured_at'] / 1000.0).strftime('%Y:%m:%d %H:%M:%S')
img_response = requests.get(img_url)
img = Image.open(BytesIO(img_response.content))
exif_dict = {
"0th": {
piexif.ImageIFD.Make: "Google",
piexif.ImageIFD.Model: "Pixel",
},
"Exif": {
piexif.ExifIFD.DateTimeOriginal: captured_at,
piexif.ExifIFD.LensMake: "Google",
piexif.ExifIFD.LensModel: "Pixel Lens",
},
"GPS": {}
}
lat_deg = to_deg(coordinates[1], ["S", "N"])
lng_deg = to_deg(coordinates[0], ["W", "E"])
exif_dict["GPS"][piexif.GPSIFD.GPSLatitudeRef] = lat_deg[3]
exif_dict["GPS"][piexif.GPSIFD.GPSLatitude] = (int(lat_deg[0]), 1), (int(lat_deg[1]), 1), (int(lat_deg[2]*100000), 100000)
exif_dict["GPS"][piexif.GPSIFD.GPSLongitudeRef] = lng_deg[3]
exif_dict["GPS"][piexif.GPSIFD.GPSLongitude] = (int(lng_deg[0]), 1), (int(lng_deg[1]), 1), (int(lng_deg[2]*100000), 100000)
exif_bytes = piexif.dump(exif_dict)
file_name = f"{image_data['id']}_{captured_at.replace(':', '-').replace(' ', '_')}.jpg"
img.save(file_name, exif=exif_bytes)
print("Téléchargement et modification des images terminés.")
EDIT
Pourtant ça ressemble à une séquence : (Anim QGIS) sur le timestamp
Data :
Jeu de données JPG : Télécharger les fichiers
Restera à :
- trouver comment lister toutes les séquences d’une zone
- Voir pourquoi les séquence mal importées/comprises/bug ?