Assuming the markers have reference locations, then individual error for each marker is calculated as:
for marker in chunk.markers:
source = marker.reference.location
estim = chunk.crs.project(chunk.transform.matrix.mulp(marker.position))
error = estim - source
total = error.norm()
print(marker.label, error.x, error.y, error.z, total)
and total error again is calculated as RMS of each marker error...Example:
Marker Error.X(m) Error.Y(m) Error.Z(m) Error(m) Error(pix)
PA03 0.077 0.047 0.017 0.092 0.120
PA08 0.041 -0.068 -0.020 0.082 0.302
PA12 -0.052 0.031 -0.005 0.061 0.254
PA18 -0.053 0.019 -0.005 0.056 0.086
PA01 -0.016 -0.041 -0.004 0.044 0.228
PA19 0.006 -0.022 0.017 0.029 0.094
PA16 -0.017 -0.006 -0.005 0.019 0.135
PA11 0.007 0.014 0.010 0.019 0.117
RMS 0.056 0.184