in opensfm/io.py [0:0]
def pymap_metadata_to_json(metadata: pymap.ShotMeasurements) -> Dict[str, Any]:
obj = {}
if metadata.orientation.has_value:
obj["orientation"] = metadata.orientation.value
if metadata.capture_time.has_value:
obj["capture_time"] = metadata.capture_time.value
if metadata.gps_accuracy.has_value:
obj["gps_dop"] = metadata.gps_accuracy.value
if metadata.gps_position.has_value:
obj["gps_position"] = list(metadata.gps_position.value)
if metadata.accelerometer.has_value:
obj["accelerometer"] = list(metadata.accelerometer.value)
if metadata.compass_angle.has_value and metadata.compass_accuracy.has_value:
obj["compass"] = {
"angle": metadata.compass_angle.value,
"accuracy": metadata.compass_accuracy.value,
}
else:
if metadata.compass_angle.has_value:
obj["compass"] = {"angle": metadata.compass_angle.value}
elif metadata.compass_accuracy.has_value:
obj["compass"] = {"accuracy": metadata.compass_accuracy.value}
if metadata.sequence_key.has_value:
obj["skey"] = metadata.sequence_key.value
return obj