Exif/Xmp tags for radiometric correction

This article documents lists which information in the Exif/Xmp metadata are required or optionally used during the radiometric correction.

The required level of correction can be selected with the correction type, see the radiometric corrections KB article. Depending on the selected level of correction, only a subset of the available information may be used. For example, if camera only correction is selected, sun sensor tags are not considered.

 

Camera

To be able to perform basic camera radiometric corrections, at a minimum the following tags are required:

  • Exif.Photo.ExposureTime
  • Exif.Photo.FNumber
  • Exif.Photo.ISOSpeedRatings

 Further tags are required for a more elaborate correction, as detailed below.

By default, a camera-level radiometric correction is done if at least the three basic tags mentioned above plus either the radiometric sensitivity or the color correction matrix are found.

Dark current

Xmp.Camera.BlackCurrent indicates the dark or black current, i.e. the value without any light. The tag should contain one scalar value per channel, the dark current is assumed uniform for all pixels on this band.

It is also possible to use the standard tags Exif.Image.BlackLevel and Exif.Image.BlackLevelRepeatDim. 

Radiometric sensitivity

Xmp.Camera.BandSensitivity contains the radiometric sensitivity of each channel.

Vignetting

The information for the vignetting correction can be provided either as a 2D polynomial or as a radial polynomial.

Radial polynomial

The polynomial is of the form:

equation.svg

with (Cx, Cy) read from Xmp.Camera.VignettingCenter and the coefficients ci read from Xmp.Camera.VignettingPolynomial.

2D polynomial

The polynomial is of the form:

equation__1_.svg

The tag Xmp.Camera.VignettingPolynomial2DName contains the i and j values of c{i,j} and the value of c{i,j} is stored in Xmp.Camera.VignettingPolynomial2D.

For example, Xmp.Camera.VignettingPolynomial2DName={"0,0,1,0, ..., 2,2,3,1"} and Xmp.Camera.VignettingPolynomial2D={0.633287676149, 1.47936368033, ..., -1.58329242609, 0.130259802058} means c_{0,0}=0.633287676149, c_{1,0}=1.47936368033, etc...

Color transform

If the different bands have overlapping spectral sensitivity, a color correction matrix can be applied to unmix the bands. This is a quadratic n x n matrix, where n is the number of channels, and it is applied to each pixel. It is tagged in Xmp.Camera.ColorTransform. 

Invalid pixels

Xmp.Camera.InvalidPixel contains a list of invalid (e.g. hot or dead) pixels, as a list of (x, y) coordinates.

 

Sun sensor

Some cameras come with a downwelling light sensor (DLS), also called sun sensor, sky sensor, or sunshine sensor, which captures the incoming radiation from the sun.

By default, a sun sensor-level radiometric correction is done if sun sensor value tags are found. Angle correction is done by default if, in addition to the sun sensor value tags, the sun sensor orientation tags are provided, i.e. either the relative angle w.r.t. the camera or an IMU pose.

Sun sensor value

Xmp.Camera.SunSensor contains the raw value (in digital counts), one scalar for each channel of the image. It can also contain an irradiance in physical units if Xmp.Camera.SunSensorExposureTime and Xmp.Camera.SunSensorSensitivity are not tagged.

Xmp.Camera.SunSensorExposureTime contains the exposure time of the sky sensor, in seconds.

Xmp.Camera.SunSensorSensitivity contains the sensitivity of the sky sensor.

Sun sensor orientation

  • If the sky sensor is rigidly connected with the camera and synchronised, the two form a rig. In that case, the relative orientation should be tagged in Xmp.Camera.SunSensorRelativeRotation as Euler angles in the omega, phi, kappa system (same as rig relatives).
  • If there is an IMU embedded in the sun sensor, the orientation should be tagged in Xmp.Camera.SunSensorYaw, Xmp.Camera.SunSensorPitch, and Xmp.Camera.SunSensorRoll (in degree).

Further reading

Was this article helpful?
5 out of 8 found this helpful

Article feedback (for troubleshooting, post here)

2 comments

Please sign in to leave a comment.