1
General / Calibrate Reflectance
« on: September 09, 2025, 03:04:47 PM »
Hello, everyone.
I'm facing a challenge related to reflectance calibration in Metashape and would like to ask the community for help.
🔹 Context
Equipment: DJI Matrice 300 RTK with DJI P1 camera (RGB).
Images: Standard RGB (JPEG), collected during a mapping flight.
Scenario: A large area that couldn't be mapped in a single day, requiring multiple flights on different days.
This resulted in significant variations in brightness and lighting conditions between flights.
Goal: Equalize reflectance across images, compensating for exposure variations (ISO, shutter speed, aperture).
Available tools in Metashape: Calibrate Colors and Calibrate Reflectance.
🔹 The Problem
Since I don't have calibration panels or a sun sensor, the Calibrate Reflectance tool can't automatically adjust the images (result: Calibrated 0 of XXXX images).
The Calibrate Colors tool works, but it's not sufficient for effective equalization, as there are relevant irradiance differences between flight days.
🔹 What I've Tried
External IrradianceFactor Calculation
Using the EXIF data (shutter speed, EV, ISO), I calculated an irradiance factor.
Saved it in a CSV file in the format {ImageName: IrradianceFactor}.
Python Script (Metashape API)
Tried applying it directly to the cameras:
camera.sensor.calibration.sensitivity → doesn't exist in the current version (2.2.2 Pro).
camera.sensor.calibration.ReflectanceScale → also doesn't work, returns None and doesn't persist.
camera.meta["ReflectanceScale"] = factor → persists, but CalibrateReflectance doesn't use this value.
Execution of chunk.calibrateReflectance()
Tested with use_reflectance_panels = off and use_sun_sensor = off.
Result: Calibrated 0 of XXXX images, even after manually assigning factors.
ExifTool Alternative
Considered writing values directly into EXIF metadata (tags like XMP:SolarIrradiance or ReflectanceScale), but couldn't find clear documentation on which fields Metashape actually interprets for irradiance/reflectance in images without a native sun sensor.
🔹 My Question
Is there any official or alternative way to manually apply irradiance/reflectance factors to images without calibration panels or a sun sensor?
Does Metashape have any field/documentation on which EXIF/XMP tags are accepted for irradiance?
Is there a correct way to use ReflectanceScale via the API (maybe at another level, like sensor.meta instead of camera.meta)?
Or is post-processing the only option in this case (exporting the orthomosaic and equalizing reflectance outside Metashape)?
🔹 Conclusion
My goal is to equalize image reflectance to improve the consistency of the final mosaic, compensating for exposure differences caused by the large area and the need to fly on different days.
I've tried both the API and internal calibration tools, but so far I haven't been able to get Metashape to recognize the calculated factors.
Any guidance on how to proceed would be greatly appreciated.
I'm facing a challenge related to reflectance calibration in Metashape and would like to ask the community for help.
🔹 Context
Equipment: DJI Matrice 300 RTK with DJI P1 camera (RGB).
Images: Standard RGB (JPEG), collected during a mapping flight.
Scenario: A large area that couldn't be mapped in a single day, requiring multiple flights on different days.
This resulted in significant variations in brightness and lighting conditions between flights.
Goal: Equalize reflectance across images, compensating for exposure variations (ISO, shutter speed, aperture).
Available tools in Metashape: Calibrate Colors and Calibrate Reflectance.
🔹 The Problem
Since I don't have calibration panels or a sun sensor, the Calibrate Reflectance tool can't automatically adjust the images (result: Calibrated 0 of XXXX images).
The Calibrate Colors tool works, but it's not sufficient for effective equalization, as there are relevant irradiance differences between flight days.
🔹 What I've Tried
External IrradianceFactor Calculation
Using the EXIF data (shutter speed, EV, ISO), I calculated an irradiance factor.
Saved it in a CSV file in the format {ImageName: IrradianceFactor}.
Python Script (Metashape API)
Tried applying it directly to the cameras:
camera.sensor.calibration.sensitivity → doesn't exist in the current version (2.2.2 Pro).
camera.sensor.calibration.ReflectanceScale → also doesn't work, returns None and doesn't persist.
camera.meta["ReflectanceScale"] = factor → persists, but CalibrateReflectance doesn't use this value.
Execution of chunk.calibrateReflectance()
Tested with use_reflectance_panels = off and use_sun_sensor = off.
Result: Calibrated 0 of XXXX images, even after manually assigning factors.
ExifTool Alternative
Considered writing values directly into EXIF metadata (tags like XMP:SolarIrradiance or ReflectanceScale), but couldn't find clear documentation on which fields Metashape actually interprets for irradiance/reflectance in images without a native sun sensor.
🔹 My Question
Is there any official or alternative way to manually apply irradiance/reflectance factors to images without calibration panels or a sun sensor?
Does Metashape have any field/documentation on which EXIF/XMP tags are accepted for irradiance?
Is there a correct way to use ReflectanceScale via the API (maybe at another level, like sensor.meta instead of camera.meta)?
Or is post-processing the only option in this case (exporting the orthomosaic and equalizing reflectance outside Metashape)?
🔹 Conclusion
My goal is to equalize image reflectance to improve the consistency of the final mosaic, compensating for exposure differences caused by the large area and the need to fly on different days.
I've tried both the API and internal calibration tools, but so far I haven't been able to get Metashape to recognize the calculated factors.
Any guidance on how to proceed would be greatly appreciated.