Hi Steve,
the reported accuracies of 70mm/100mm for single point positioning are surprising as they seem to correspond to something more akin to Float solution.
Presently, MS does not read the RTK Flag entry from XMP metadata only the RTK Standard Deviations entries.
You can use ExifTool and a batch file to extract required entries to a tab seperated Text as:
exiftool -filename -rtkflag -rtkstdlon -rtkstdlat -rtkstdhgt -T C:\Users\paul.pelletier\Downloads\Phantom4RTK\100_0004 > C:\Users\paul.pelletier\Downloads\Phantom4RTK\GNSS\rtkflagstd.txt
to get following result (filename rtkflag rtkstdlon rtkstdlat rtkstdhgt):
100_0004_0001.JPG 16 1.36853 1.49256 3.18013
100_0004_0002.JPG 16 1.35640 1.52763 3.15625
100_0004_0003.JPG 16 1.37848 1.53026 3.10956
100_0004_0004.JPG 16 1.37613 1.68821 3.29696
100_0004_0005.JPG 16 1.37409 1.66451 3.45665
100_0004_0006.JPG 16 1.37828 1.51083 3.28636
100_0004_0007.JPG 16 1.39987 1.50757 3.25633
100_0004_0008.JPG 16 1.37172 1.49396 3.11723
100_0004_0009.JPG 16 1.37592 1.47287 3.09879
100_0004_0010.JPG 16 1.40017 1.45244 3.17528
Update: I stand corrected, the RTK Flag is in fact read by MS and is stored in camera.photo.meta['DJI/RtkFlag']. So you could execute a script that reads this metadata and assigns positioning accuracy according to its value (or select cameras with a certain flag) as:
chunk = Metashape.app.document.chunk
for camera in chunk.cameras:
if not camera.photo.meta['DJI/RtkFlag']:
continue
flag = int(camera.photo.meta['DJI/RtkFlag'])
if flag == 16: # single point positioning accuracy
camera.reference.location_accuracy = Metashape.Vector((1,1,3)) # setting camera accuracy at 1m X, 1m Y and 3m Z
camera.selected = True # selecting cameras with RTK flag equal to 16
if flag == 34: # RTK Float positioning accuracy
camera.reference.location_accuracy = Metashape.Vector((0.1,0.1,0.3))
if flag == 50: # RTK Fix positioning accuracy
camera.reference.location_accuracy = Metashape.Vector((0.01,0.01,0.03))
Another way to do this, would be to set accuracies at 95% confidence from Standard deviations (68% confidence) read from RtkStdLon, RtkStdLat and RtkStdHgt as follows:
for camera in chunk.cameras:
if not camera.photo.meta['DJI/RtkFlag'] or int(camera.photo.meta['DJI/RtkFlag']) == 0:
continue
flag = int(camera.photo.meta['DJI/RtkFlag'])
sx = float(camera.photo.meta['DJI/RtkStdLon'])
sy = float(camera.photo.meta['DJI/RtkStdLat'])
sz = float(camera.photo.meta['DJI/RtkStdHgt'])
camera.reference.location_accuracy = Metashape.Vector((1.2238*(sx+sy),1.2238*(sx+sy),1.96*sz)) # setting accuracies at 95% confidence level CEP₉₅ = 1.2238 * (sx+sy) and Z₉₅ = 1.96 * sz