EXIF and XMP tag information read by Pix4D Desktop

Pix4D Desktop reads information from the image EXIF data. It reads both standard EXIF tags and Pix4D defined camera XMP tags.

Some tags are required in order to be compatible with Pix4D Desktop:

  • All projects
    • Exif.Image.Make
    • Exif.Image.Model
    • Exif.Photo.FocalLength
    • Exif.Photo.DateTimeOriginal

  • Projects which require radiometric calculations (e.g. agriculture applications): Refer to the camera XMP section as well as this page which gives the specifications for the different corrections to be applied: 115001846106.

 

(EXIF) Standard tags

Key Value example Type Meaning
Exif.Image.Make Canon String The camera manufacturer name
Exif.Image.Model Canon EOS REBEL SL1 String The model name of the camera
Exif.Image.BlackLevelRepeatDim 2 2 Short Dimension of dark current matrix
Exif.Image.BlackLevel 320 198 275 201 Short Dark current, matrix of dimension given in Exif.Image.BlackLevelRepeatDim in row major
Exif.Photo.BodySerialNumber 092172012311 String The serial number of the camera
Exif.Photo.FocalLength 20/1 Rational Focal length [mm]

Note: If Exif.Photo.FocalLength is not found, Exif.Photo.FocalLengthIn35mmFilm is used to calculate the focal length
Exif.Photo.DateTimeOriginal 2011:02:10 14:11:27 String Date and time of image acquisition in the format yyyy:mm:dd HH:MM:SS
Exif.Photo.SubSecTimeOriginal 27 Short Time of image acquisition: sub-second part
Exif.Photo.FocalPlaneXResolution 5184000/894 Rational Pixels per unit, used for sensor and pixel size
Exif.Photo.FocalPlaneYResolution 3456000/597 Rational Pixels per unit, used for sensor and pixel size

Note: if FocalPlaneXResolution / FocalPlaneYResolution are not found, FocalLength and FocalLengthIn35mmFilm are used to calculate the sensor/pixel size
Exif.Photo.FocalPlaneResolutionUnit 4 Short Unit for Exif.Photo.FocalPlane[XY]Resolution:

2 = inch
3 = cm
4 = mm
Exif.Photo.ExposureTime 1/1000 Rational Exposure time [seconds]


Exif.Photo.FNumber 28/10 Rational Aperture F number
Exif.CanonSi.ApertureValue   binary For Canon cameras, this non-standard tag takes precedence over Exif.Photo.FNumber since it contains some effective value for the f-number. Note that the number has a special binary format.
Exif.Photo.ISOSpeedRatings 400 Short ISO film speed of the camera

Note: If Exif.Photo.ISOSpeedRatings is not found, Exif.Photo.ISOSpeed is used
Exif.Photo.LensModel EF40mm f/2.8 STM String Describes the lens (can be empty)
Exif.Photo.LensSerialNumber 1055005868 String The serial number of the lens
Exif.GPSInfo.GPSLatitude 46/1 22059917/1000000 List of Rational GPS degree and/or minute and/or second. In some formats, the list of rationals is shorter and the seconds and/or minutes part are ignored.
Exif.GPSInfo.GPSLatitudeRef N or S String GPS reference north or south
Exif.GPSInfo.GPSLongitude 46/1 25642511/1000000 List of Rational GPS degree and/or minute and/or second. In some formats, the list of rationals is shorter and the seconds and/or minutes part are ignored.
Exif.GPSInfo.GPSLongitudeRef E or W String GPS reference east or west
Exif.GPSInfo.GPSAltitude 1205/100 Rational Mean Sea Level altitude (GPS altitude)
Exif.GPSInfo.GPSAltitudeRef 0 Short GPS altitude reference: 0 > sea level
Exif.GPSInfo.GPSMapDatum WGS-84 String GPS coordinate system
Exif.GPSInfo.GPSDateStamp 2016:03:01 Ascii GPS date (UTC)
Exif.GPSInfo.GPSTimeStamp 12/1 8/1 54785/1000 List of Rational
GPS time as hour, minute, second (UTC), with sub-second accuracy
Exif.Image.SubjectDistance 12.87 Double Distance from camera to subject [meters] (e.g. ultrasound-based measure)

(XMP) Camera

Key Value example Type Meaning
Xmp.Camera.ModelType "fisheye" Ascii Camera model type: one of "perspective" or "fisheye".
Xmp.Camera.PrincipalPoint 2.42299,1.850154 Ascii cx, cy in millimetres separated by comma.
Xmp.Camera.PerspectiveFocalLength 4.569165 double For perspective camera: focal length in millimetres.
Xmp.Camera.PerspectiveDistortion

0.201690322,-0.358534038,

0.256185599,

0.004208643,0.000268361

Ascii For perspective camera: R1, R2, R3, T1, T2 separated by comma: 202559089.
Xmp.Camera.FisheyeAffineMatrix

1583.319083002,0,0,

1583.319083002

Ascii For fisheye camera: Affine matrix C, D, E, F separated by comma: 202559089.
Xmp.Camera.FisheyeAffineSymmetric 1 Boolean For fisheye camera: If symmetric affine matrix should be used (default false).
Xmp.Camera.FisheyePolynomial

0,1,-0.025178575,

0.167834214

Ascii For fisheye camera: Polynomial separated by comma: 202559089.
Xmp.Camera.RigName Airinov multiSPEC4C 1.1 XmpText Name of the rig model this image belongs to.
Xmp.Camera.RigCameraIndex 0 Short Corresponding camera index within the rig model.
Xmp.Camera.RigRelatives 0.3836, -1.27665, -0.1156 XmpText Rotation angles with respect to the reference camera. For angle convention in Pix4D: 202558969.

(XMP) Radiometric correction

Key Value example Type Meaning
Xmp.Camera.BandName {"Red", "NIR"} XmpSeq

Name of each band (sequence).

Single page image: one name for each band of the image.
Multipage image: one band name per image page. (Note: this allows only one band per page since the sequence of the sequence is not possible).

The band name must not start with the following characters: 0-9, ',', '(' or ')' .

Xmp.Camera.CentralWavelength {660, 800} XmpSeq Central wavelength of each band in nm. Similar to band names. If band names are not defined, default band names are generated.
Xmp.Camera.WavelengthFWHM {10, 10} XmpSeq Full-width half maximum of the wavelength distribution in nm.
Xmp.Camera.BlackCurrent

{10, 7}

XmpSeq Dark current for each band/page: 115001846106.
Xmp.Camera.BandSensitivity {0.78, 0.043} XmpSeq The sensitivity of each band (pixel intensity value per irradiance).
Xmp.Camera.SunSensor {12.87, 9.72} XmpSeq Sun irradiance sensor (upwards looking sensor) raw value for each band.
Xmp.Camera.SunSensorExposureTime {0.1, 0.1} XmpSeq Sun irradiance sensor exposure time in seconds
Xmp.Camera.SunSensorSensitivity {16.45, 14.08} XmpSeq Sun irradiance sensor sensitivity
Xmp.Camera.InvalidPixel {"40,593,981,291"} XmpSeq List of bad pixels as comma-separated x,y coordinate list, one sequence for each band.
Xmp.Camera.VignettingPolynomial {"0.00325, 1.983e-6, 5.0983e-9"} XmpSeq Vignetting correction by radial polynomial: 1D polynomial coefficients (one string of comma-separated values per page, 1 string for RGB images): 115001846106.
Xmp.Camera.VignettingCenter {"542,912"} XmpSeq Vignetting correction by radial polynomial: Center point cx, cy in pixel (one string of comma-separated values per page): 115001846106.
Xmp.Camera.VignettingPolynomial2DName {"0,0,1,0, ..., 2,2,3,1"} XmpSeq Vignetting correction by 2D polynomial: name of coefficients: n,m for c_{n,m} separated by commas (one string of comma-separated values per page): 115001846106.
Xmp.Camera.VignettingPolynomial2D {"0.633287676149, 1.47936368033, ..., -1.58329242609, 0.130259802058"} XmpSeq Vignetting correction by 2D polynomial: coefficients c_{n,m} for names given by Xmp.Camera.VignettingPolynomial2DName separated by commas (one string of comma-separated values per page): 115001846106.
Xmp.Camera.ColorTransform

{1, -0.114886,-0.0456918,

-0.176716, 1, 0,

-0.0715561, 0, 1}

XmpSeq Sequence of double, color conversion matrix (for RGB: R2R, G2R, B2R, R2G, G2G, B2G, R2B, G2B, B2B). Considering the information as a 3x3 matrix M, (R,G,B)<sub>new</sub>= M * (R,G,B).
Xmp.Camera.IsNormalized 1 Bool Defines whether the radiometric correction is required (value 0) or the data has already been corrected (value 1) and therefore should not be corrected.

(XMP) Radiometric calibration target

Key Value example Type Meaning
Xmp.Camera.Albedo {0.22, 0.19 , 0.37} XmpSeq For radiometric calibration target images: Albedo of the disk for each band/page.
Xmp.Camera.ReflectArea {"X1,Y1,X2,Y2,X3,Y3,X4,Y4", "X1,Y1,...", ...} XmpSeq For radiometric calibration target images: polygon defining the target area for each page.
Xmp.Camera.CalibrationPicture 2 Short

Specifies if this image is a radiometric calibration target: 0 = no, 1 = yes but invalid, 2 = yes and valid.

For Sequoia cameras: 0 = no, 1 and 2 = yes.

(XMP) Position and orientation

Key Value example Type Meaning
Xmp.Camera.Yaw 72.7942 Rational or Double Orientation data in degrees. For more information on the definition of yaw, pitch, roll: 205675256.
Xmp.Camera.Pitch 1.7943 Rational or Double Orientation data in degrees. For more information on the definition of yaw, pitch, roll: 205675256.
Xmp.Camera.Roll 2.8909 Rational or Double Orientation data in degrees. For more information on the definition of yaw, pitch, roll: 205675256.
Xmp.Camera.GPSXYAccuracy 5 Rational Horizontal GPS Accuracy in meters.
Xmp.Camera.GPSZAccuracy 10 Rational Vertical GPS Accuracy in meters.
Xmp.Camera.GyroRate 0.0487 Rational Gyro rate during image acquisition, lower = better quality.
Xmp.Camera.IMUPitchAccuracy 0.113 Rational The value in degrees of 1-sigma of the Gaussian noise of the IMU Pitch measurement.
Xmp.Camera.IMURollAccuracy 0.087  Rational The value in degrees of 1-sigma of the Gaussian noise of the IMU Roll measurement.
Xmp.Camera.IMUYawAccuracy 1.250  Rational The value in degrees of 1-sigma of the Gaussian noise of the IMU Yaw measurement.
Xmp.Camera.NominalCameraDistance 25.87 Rational Nominal GPS distance between calibrated cameras in meters in order to have a decent overlap. Use to dynamically remove the cameras with worst quality as determined by the GyroRate such the target distance is as specified.
Xmp.Camera.AboveGroundAltitude 25.3 Rational or Double Altitude above ground/take-off location in meters (from the altimeter of the drone).

(XMP) Sun irradiance position and orientation

Key Value example Type Meaning
Xmp.Camera.SunSensorYaw 72.7942 Rational or Double Sun irradiance sensor orientation data in degrees. For more information on the definition of yaw, pitch, roll: 205675256.

Xmp.Camera.SunSensorPitch

1.7943 Rational or Double Sun irradiance sensor orientation data in degrees. For more information on the definition of yaw, pitch, roll: 205675256.
Xmp.Camera.SunSensorRoll 2.8909 Rational or Double Sun irradiance sensor orientation data in degrees. For more information on the definition of yaw, pitch, roll: 205675256.
Xmp.Camera.SunSensorRelativeRotation 175, 0, 0 XmpSeq relative angle between camera and sunshine sensor in the omega, phi, kappa system (same as rig relatives)

(XMP) Bit-depth reduction

Key Value example Type Meaning
Xmp.Camera.TransformAlpha {55684.1, 58672.8, 58889.1} XmpSeq

Sequence of double, alpha parameter for each band.

This and the following two tags are used to undo a gamma transform which has been applied to fit data in 8bit space without losing the dynamic range:
pixel_final = alpha * pixel_normalized^gamma + beta;

where pixel_normalized is the pixel value stored in the JPG image scaled to the [0,1] interval.

Xmp.Camera.TransformBeta {9850.9, 6862.2, 6645.91} XmpSeq Sequence of double, beta parameter for each band.
Xmp.Camera.TransformGamma {2.12109, 2.6243, 2.33549} XmpSeq Sequence of double, gamma parameter for each band.

(XMP) Miscellaneous

Key Value example Type Meaning
Xmp.Camera.SensorBitDepth 14 Short Bit depth of the original sensor.
Xmp.Camera.SensorTemperature 43.4 Double Temperature of the sensor [degree Celsius].
Was this article helpful?
1 out of 1 found this helpful

Article feedback (for troubleshooting, post here)

0 comments

Please sign in to leave a comment.