Hi everyone,
The datasets described in the post are available online.
- ms2 refers to the original data
- po refers to the data after calibration using external scripts
- po2 are the same as the po-data the metadata was just added in 'n different way
The WebODM “All Assets” zip files are also provided for the runs performed with either the ms2-data or po-data.
I wanted to compare the use of radiometric calibration in WebODM (using the original ms2-data) with using images (po-data) where I first calibrated the ms2-data with external scripts(received from someone else). The images were taken with a Parrot Sequoia.
My WebODM (WebODM 1.9.2 on a Windows10 system, with docker) settings were…
With WebODM calibration (ms2-data):
build-overviews: true, depthmap-resolution: 1000, ignore-gsd: true, min-num-features: 12000, optimize-disk-space: true, radiometric-calibration: camera+sun, texturing-data-term: area, texturing-skip-global-seam-leveling: true, verbose: true
With external script calibration (po-data):
build-overviews: true, depthmap-resolution: 1000, ignore-gsd: true, min-num-features: 12000, optimize-disk-space: true, texturing-data-term: area, texturing-skip-global-seam-leveling: true, verbose: true
which resulted in the following maps…
With WebODM calibration, no errors (ms2-data, success):
With external script calibration, no errors (po-data, failed):
WebODM also could not generate a plant health map for po-data.
No errors occurred during the WeODM run, or I overlooked it.
Looking at the ortho mosaics in QGIS I could see that the failed run only had one band (in addition to an alpha band). It looks like WebODM is seeing the data as 40 view instead of ten views with 4 images per view. I guessed that the problem must be somewhere in the meta data.
Before the runs I did add the meta data from the original files to the files generated with the python scripts using exiftools:
exiftool -tagsFromFile folder_with_originals/%f.tif -all:all folder_with_calibrated_files
exiftool -tagsFromFile folder_with_originals/%f.tif –xmp folder_with_calibrated_files
…to generate the po-data
I also tried
exiftool.exe -tagsFromFile multispec2/%f.TIF -xmp:all po2
…to generate the po2-data
Below is the metadata of the same equivalent example image:
original | after_python_cal | after_python_cal | |
---|---|---|---|
ms2 | po | po2 | |
XMP:Manufacturer | Parrot | Parrot | Parrot |
EXIF:ShutterSpeedValue | 0.000184615 | 0.000184604 | 0.000184604 |
XMP:Model | Bluegrass | missing | Bluegrass |
EXIF:GPSDateStamp | 84.1731713 | 84.1731713 | 84.1731713 |
EXIF:ImageDescription | 550 nm | 550 nm | 550 nm |
XMP:RigCameraIndex | 0 | missing | missing |
XMP:Pitch | -17.037077 | missing | missing |
XMP:IrradianceRelativeRotation | -165,0,0 | missing | missing |
EXIF:StripByteCounts | 2457600 | (Binary data 1599 bytes, use -b option to extract) | (Binary data 1599 bytes, use -b option to extract) |
XMP:IrradiancePitch | 4.110293 | missing | missing |
Composite:GPSDateTime | 2020:09:22 11:20:54Z | 2020:09:22 11:20:54Z | 2020:09:22 11:20:54Z |
EXIF:ExposureTime | 0.000184615 | 0.000184604 | 0.000184604 |
XMP:IrradianceRoll | 2.082358 | missing | missing |
Composite:ShutterSpeed | 0.000184615 | 0.000184604 | 0.000184604 |
File:FileSize | 2464908 | 2464948 | 2464948 |
EXIF:FocalLength | 3.979999908 | 4 | 4 |
Composite:CircleOfConfusion | 0.003986137 | 0.004006168 | 0.004006168 |
XMP:FlightUUID | 7B12007444B03EA4E6CE5F422E65900C | missing | missing |
XMP:FisheyePolynomial | 0,1,0.012748386,-0.148865228 | missing | missing |
XMP:CentralWavelength | 550 | missing | missing |
EXIF:BitsPerSample | 16 | 16 | 16 |
File:FileName | IMG_200922_112054_0000_GRE.TIF | IMG_200922_112054_0000_GRE.TIF | IMG_200922_112054_0000_GRE.TIF |
EXIF:MinSampleValue | 0 | 0 | 0 |
XMP:WavelengthFWHM | 40 | missing | missing |
EXIF:DateTimeOriginal | 2020:09:22 11:20:54 | 2020:09:22 11:20:54 | 2020:09:22 11:20:54 |
XMP:BandName | Green | missing | missing |
Composite:FOV | 61.92756537 | 61.92756537 | 61.92756537 |
EXIF:BlackLevel | 5201 5195 5192 5192 | missing | missing |
XMP:VignettingPolynomial2DName | 0,0,1,0,2,0,3,0,4,0,0,1,0,2,0,3,0,4,1,1,1,2,1,3,2,1,2,2,3,1 | missing | missing |
EXIF:Model | Sequoia | Sequoia | Sequoia |
XMP:CaptureUUID | ED0758FF42E75D9C8769152BCBFAF8F1 | missing | missing |
EXIF:PhotometricInterpretation | 1 | 1 | 1 |
EXIF:SubSecTimeOriginal | 694177 | 694177 | 694177 |
EXIF:GPSLatitudeRef | S | S | S |
Composite:HyperfocalDistance | 1.806305442 | 1.81538246 | 1.81538246 |
EXIF:GPSVersionID | 2 2 0 0 | 2 2 0 0 | 2 2 0 0 |
Composite:ImageSize | 1280x960 | 1280x960 | 1280x960 |
EXIF:SamplesPerPixel | 1 | 1 | 1 |
EXIF:CameraSerialNumber | PI040378AE7I006704 | PI040378AE7I006704 | PI040378AE7I006704 |
XMP:LineReadoutTime | 23076 | missing | missing |
SourceFile | …/…/22Sept/flight_on_external_one_drive/multispec2/IMG_200922_112054_0000_GRE.TIF | …/…/22Sept/flight_on_external_one_drive/multispec2_irrGDAL_SSensor_VIG_v2/IMG_200922_112054_0000_GRE.TIF | …/…/22Sept/flight_on_external_one_drive/multispec2_irrGDAL_SSensor_VIG_v2/IMG_200922_112054_0000_GRE.TIF |
EXIF:MakerNoteUnknownText | 0.2 | 0.2 | 0.2 |
EXIF:GPSLongitude | 18.8914022 | 18.8914022 | 18.8914022 |
EXIF:FocalLengthIn35mmFormat | 30 | 30 | 30 |
File:FileAccessDate | 2021:06:25 11:18:44+02:00 | 2021:06:25 12:47:38+02:00 | 2021:06:25 12:47:38+02:00 |
EXIF:StripOffsets | 7308 | (Binary data 2415 bytes, use -b option to extract) | (Binary data 2415 bytes, use -b option to extract) |
EXIF:GPSStatus | A | A | A |
EXIF:Software | v1.7.1 | v1.7.1 | v1.7.1 |
XMP:FisheyeAffineSymmetric | 1 | missing | missing |
File:ExifByteOrder | II | II | II |
XMP:IrradianceCalibrationMeasurementGolden | 0,600,14,1 | missing | missing |
,1,600,345,41 | 0 | missing | missing |
,2,600,5775,671 | 0 | missing | missing |
,3,600,65535,16922 | 0 | missing | missing |
#N/A | missing | missing | |
XMP:RigName | Sequoia | missing | missing |
File:FileType | TIFF | TIFF | TIFF |
XMP:IrradianceCalibrationMeasurement | 0,600,14,1,1,600,376,40,2,600,6456,719,3,600,65535,17774 | missing | missing |
EXIF:Make | Parrot | Parrot | Parrot |
EXIF:ImageNumber | 0 | 0 | 0 |
XMP:FisheyeAffineMatrix | 1656.667685361,0,0,1656.667685361 | missing | missing |
ExifTool:ExifToolVersion | 10.79 | 10.79 | 10.79 |
EXIF:GPSMapDatum | WGS-84 | WGS-84 | WGS-84 |
EXIF:ExifImageWidth | 1280 | 1280 | 1280 |
EXIF:PlanarConfiguration | 1 | 1 | 1 |
EXIF:FNumber | 2.200000078 | 2.2 | 2.2 |
EXIF:ExifImageHeight | 960 | 960 | 960 |
EXIF:Orientation | 3 | 3 | 3 |
XMP:BlackCurrent | 71 | missing | missing |
File:FilePermissions | 666 | 666 | 666 |
XMP:ModelType | fisheye | missing | missing |
EXIF:GPSSpeedRef | K | K | K |
EXIF:FocalPlaneXResolution | 266.6666559 | 266.6666559 | 266.6666559 |
EXIF:FocalPlaneYResolution | 266.6666559 | 266.6666559 | 266.6666559 |
File:MIMEType | image/tiff | image/tiff | image/tiff |
Composite:GPSPosition | -33.9426689996306 18.8914021998861 | -33.9426689995667 18.8914021998861 | -33.9426689995667 18.8914021998861 |
EXIF:ImageWidth | 1280 | 1280 | 1280 |
XMP:Serial | PI040438AA7K000131 | missing | missing |
XMP:GPSZAccuracy | 2.3 | missing | missing |
Composite:Megapixels | 1.2288 | 1.2288 | 1.2288 |
XMP:IrradianceUnitScale | 1.78737134 | missing | missing |
File:FileCreateDate | 2021:06:25 11:12:48+02:00 | 2021:06:25 11:34:14+02:00 | 2021:06:25 11:34:14+02:00 |
XMP:SensorModel | 322399.25719001074,2787.3203842349394,4893.212338771279 | missing | missing |
#N/A | missing | missing | |
Composite:GPSLatitude | -33.942669 | -33.942669 | -33.942669 |
File:Directory | …/…/22Sept/flight_on_external_one_drive/multispec2 | …/…/22Sept/flight_on_external_one_drive/multispec2_irrGDAL_SSensor_VIG_v2 | …/…/22Sept/flight_on_external_one_drive/multispec2_irrGDAL_SSensor_VIG_v2 |
EXIF:GPSSpeed | 0.193397418 | 0.19339742 | 0.19339742 |
XMP:Roll | 4.299296 | missing | missing |
EXIF:ISO | 100 | 100 | 100 |
Composite:SubSecDateTimeOriginal | 2020:09:22 11:20:54.694177 | 2020:09:22 11:20:54.694177 | 2020:09:22 11:20:54.694177 |
XMP:IrradianceSensitivitiesGolden | 282.38768,54.2517112 | missing | missing |
EXIF:Compression | 1 | 1 | 1 |
Composite:GPSLongitude | 18.8914022 | 18.8914022 | 18.8914022 |
EXIF:GPSAltitudeRef | 0 | 0 | 0 |
EXIF:GPSTimeStamp | 0.472847222 | 0.472847222 | 0.472847222 |
EXIF:ModifyDate | 2020:09:22 11:20:54 | 2020:09:22 11:20:54 | 2020:09:22 11:20:54 |
Composite:Aperture | 2.200000078 | 2.2 | 2.2 |
EXIF:ExposureMode | 0 | 0 | 0 |
Composite:FocalLength35efl | 30 | 30 | 30 |
XMP:SensorTemperature | 45.714294 | missing | missing |
Composite:LightValue | 14.67819864 | 14.67828542 | 14.67828542 |
EXIF:SubSecTimeDigitized | 584198 | 584198 | 584198 |
EXIF:ApertureValue | 2.200000139 | 2.199999997 | 2.199999997 |
XMP:IrradianceList | 0 | missing | missing |
n+fCCgAAAABrCtgAAQBkAB2HBEP303hBh3ErwV30xQoAAAAAFwrRAAEAZAA5QAZD5HujQTnkwsCgAckKAAAAAJkK3AABAGQAc0cIQ3B/uEFRObrAXg/MCgAAAADICt8AAQBkACA4CEO6ebdB9DnEwDEazwoAAAAAcwrYAAEAZAC/5gtDcXdgQc+NcEDaKtIKAAAAAEMK1AABAGQA2rgNQzi9nEB0/BtBKDXVCgAAAAANCtAAAQBkANPADUM7w2LBbS9hQd9E2AoAAAAAdgrZAAEAZAA0rgtDFqV0wTBnnUFDTdsKAAAAAI4K2wABAGQAX9UMQ++XmsA69WxB8F7eCgAAAAD7CuMAAQBkAMQDDUN6rsXALxtoQKxs4QoAAAAAlwvwAAEAZAC/Dw5DaWd9QDCspMB3eeQKAAAAAIIL7gABAGQAHzYOQy+R1MDsCvO/OYXnCgAAAACCC+4AAQBkAB1lDkNnPJrA7+Kiv4+T6goAAAAAPQz+AAEAZACXjA9D+Ph6QD3zkMC/o+0KAAAAAGsMAQEBAGQAVwIQQ5Y3kUFK4orAzrXwCgAAAADlDAsBAQBkAMT0D0OobpZA/VHuwJrB8woAAAAAeA0XAQEAZACC6hBDc85twEtLMMFM0PYKAAAAAHkNFwEBAGQAzyURQ64Ff0DbZwDBX+H5CgAAAABzDRcBAQBkAIuyEUOjhRVBDLcEwcHv/AoAAAAAmw0aAQEAZADVORFDV2OwQTqmYcGK/P8KAAAAAIUNGQEBAGQAyBQSQ26+qEHQ/FzBHggDCwAAAACIDRkBAQBkAMKmEkPmyd1Bu2hkwWQUBgsAAAAAJA0RAQEAZADLKhRDbz/ZQUW+NcGsIwkLAAAAAF0NFQEBAGQAT5QTQ9GX+EE5ukXBdzEMCwAAAAA9DRMBAQBkANO5EkOxu+NBtdtnwRk/DwsAAAAAQQ0TAQEAZADb+xNDt4dYQR95I8FaShILAAAAABwNEAEBAGQAoaUUQ/lZDEGXVE3BnVgVCwAAAABUDRQBAQBkAFKZFUNl/4RBktH8wORjGAsAAAAAWg0VAQEAZACRkBVDrFaJQSMaIcEwcxsLAAAAAG8NFwEBAGQAV2MYQ5KZ3UDL4dG/2oAeCwAAAACVDRoBAQBkAFWAGEM0HfxA27tmvxuOIQsAAAAArg0cAQEAZABknRhDAocvQX7r2MBjmSQLAAAAAOsNIQEBAGQAgp0YQyDMTkHsh/3AraQnCwAAAACnDRsBAQBkAEPGFkOzpZhBKkBYwXi0KgsAAAAACA4jAQEAZADGHxhDWG5GQbqxSMEfxC0LAAAAALwNHQEBAGQAqgYYQ+wVfkERMzbBDs4wCwAAAADKDR4BAQBkAA4HGkOxpBlBTV3WwLDdMwsAAAAA0g0fAQEAZABAYhpD0SYGP81N+sB36DYLAAAAAKENGwEBAGQA6HAaQ5t84UAaZhnB8vg5CwAAAACzDRwBAQBkAE52GkN6kYdBbFVuwQADPQsAAAAAtg0cAQEAZAC8KRlDrSqWQUjjmcEOBUALAAAAAFwNFQEBAGQA+VUZQ5oND0CsAl7BqhJDCwAAAADcDAsBAQBkAGORG0PeahpBIfywv2ghRgsAAAAA9QwNAQEAZADSyhpD2FuGQcg/28C4LEkLAAAAAB4NEAEBAGQAJ5MbQzKutkHIqZ7A8zpMCwAAAACrDAcBAQBkAAdUG0MAGZ5BpuW5wDFHTwsAAAAAtwwIAQEAZAC88BtDd85SQL7u/8DuVVILAAAAANEMCgEBAGQA6tobQ6JVfL+KDBbBrmFVCwAAAACpDAcBAQBkACvBG0MhVRvBiTmawNJ1WAsAAAAAagwBAQEAZADW7RxDEXAmwUbMBcEkflsLAAAAALgMCAEBAGQAr/IdQ2odD8HpYRTB | #VALUE! | #VALUE! | #VALUE! |
#N/A | missing | missing | |
XMP:CalibrationPicture | 0 | missing | missing |
Composite:ScaleFactor35efl | 7.537688616 | 7.5 | 7.5 |
EXIF:GPSAltitude | 172.8990072 | 172.8 | 172.8 |
EXIF:SubSecTime | 694177 | 694177 | 694177 |
XMP:PrincipalPoint | 2.29307,1.794016 | missing | missing |
EXIF:ImageHeight | 960 | 960 | 960 |
XMP:BandGain | 1 | missing | missing |
EXIF:CreateDate | 1970:01:01 00:03:10 | 1970:01:01 00:03:10 | 1970:01:01 00:03:10 |
File:FileModifyDate | 2021:06:25 11:18:44+02:00 | 2021:06:25 12:47:38+02:00 | 2021:06:25 12:47:38+02:00 |
Composite:SubSecCreateDate | 1970:01:01 00:03:10.584198 | 1970:01:01 00:03:10.584198 | 1970:01:01 00:03:10.584198 |
XMP:SunshineSerialNumber | PI040379BB7I006071 | missing | missing |
XMP:Yaw | 107.605507 | missing | missing |
EXIF:FocalPlaneResolutionUnit | 4 | 4 | 4 |
EXIF:GPSLongitudeRef | E | E | E |
XMP:InvalidPixel | 92,387,752,38,92,387 | missing | missing |
EXIF:SpectralSensitivity | 550 nm | 550 nm | 550 nm |
EXIF:SerialNumber | PI040378AE7I006704 | PI040378AE7I006704 | PI040378AE7I006704 |
File:FileTypeExtension | TIF | TIF | TIF |
EXIF:GPSLatitude | 33.942669 | 33.942669 | 33.942669 |
EXIF:BlackLevelRepeatDim | 2 2 | missing | missing |
XMP:GPSXYAccuracy | 1.345 | missing | missing |
XMP:VignettingPolynomial2D | 0.7292670791231748,0.9975321270859827,-1.8205912848289270,1.7146489942751610,-0.9065338892767812,0.4218980232048716,-0.5211784588262209,0.1670581335878976,-0.0810519371827259,-0.7773830655991261,0.7320892403987543,-0.0058065938286076,0.9104158337138633,-0.8356143597182047,-0.0278734366878383 | missing | missing |
EXIF:ImageUniqueID | 29F83C7A9CEF3F14847A74A15C60F60A | 29F83C7A9CEF3F14847A74A15C60F60A | 29F83C7A9CEF3F14847A74A15C60F60A |
EXIF:MaxApertureValue | 2.200000139 | 2.199999997 | 2.199999997 |
Composite:GPSAltitude | 172.8990072 | 172.8 | 172.8 |
EXIF:OriginalRawFileName | IMG_200922_112054_0000_GRE.TIF | missing | missing |
Composite:SubSecModifyDate | 2020:09:22 11:20:54.694177 | 2020:09:22 11:20:54.694177 | 2020:09:22 11:20:54.694177 |
XMP:CalibrationMeasurement | 1,0.00584795321637427,571 | missing | missing |
XMP:SwVersion | 4.6.4 | missing | missing |
XMP:IrradianceYaw | 18.867319 | missing | missing |
Is any of the missing metadata in the po and po2 files necessary for WebODM, for the recognition and/or treatment of multispectral data? If so, how do I add the additional metadata to my new files? I don’t know if this is where the problem is, but for example XMP:BandName is missing from my po and po2 data, but BandName does not seem to be seen by exiftools as a “standard” xmp tag.
Thanks.