Hello jkova96,
You may need to create the list of cameras, sorted by the shooting date and then use it for the keyframes creation.
Something like the following, for example:
import Metashape
import datetime, time
chunk = Metashape.app.document.chunk
dict_cams = dict()
cameras = list()
for camera in chunk.cameras:
if (camera.type == Metashape.Camera.Type.Regular) and camera.transform:
date_time = camera.photo.meta['Exif/DateTimeOriginal']
globaltime = time.mktime(time.strptime(date_time, "%Y:%m:%d %H:%M:%S"))
if globaltime in dict_cams.keys():
dict_cams[globaltime].append(camera)
else:
dict_cams[globaltime] = [camera]
keys = list(dict_cams.keys())
keys.sort()
for globaltime in keys:
if len(dict_cams[globaltime]) == 1:
cameras.append(dict_cams[globaltime][0])
else:
for c in dict_cams[globaltime]:
cameras.append(c)
chunk.addCameraTrack()
track = list()
for camera in cameras:
keyframe = chunk.addCamera()
keyframe.type = Metashape.Camera.Type.Keyframe
keyframe.transform = camera.transform #* Metashape.Matrix().Diag([1, -1, -1, 1])
track.append(keyframe)
chunk.camera_tracks[-1].keyframes = track
chunk.camera_track = chunk.camera_tracks[-1]