|
| 1 | +#------------------------------------------------------------------------------ |
| 2 | +# File: exiftool.cfg |
| 3 | +# |
| 4 | +# Description: This config file contains tag definitions needed to be able |
| 5 | +# to write Pix4D and Sentera XMP-Camera tags |
| 6 | +# |
| 7 | +# Usage: exiftool -config exiftool.cfg -XMP-camera:TAG=VAL ... |
| 8 | +# |
| 9 | +# Requires: ExifTool version 7.00 or later |
| 10 | +# |
| 11 | +# References: 1) https://support.pix4d.com/hc/en-us/articles/360016450032-Specifications-of-xmpcamera-tags |
| 12 | +#------------------------------------------------------------------------------ |
| 13 | + |
| 14 | +%Image::ExifTool::UserDefined = ( |
| 15 | + 'Image::ExifTool::XMP::Main' => { |
| 16 | + Camera => { |
| 17 | + SubDirectory => { |
| 18 | + TagTable => 'Image::ExifTool::UserDefined::Camera', |
| 19 | + }, |
| 20 | + }, |
| 21 | + 'drone-dji' => { |
| 22 | + SubDirectory => { |
| 23 | + TagTable => 'Image::ExifTool::UserDefined::DJI', |
| 24 | + }, |
| 25 | + }, |
| 26 | + }, |
| 27 | +); |
| 28 | + |
| 29 | +%Image::ExifTool::UserDefined::Camera = ( |
| 30 | + GROUPS => { 0 => 'XMP', 1 => 'XMP-Camera', 2 => 'Camera' }, |
| 31 | + NAMESPACE => { 'Camera' => 'http://pix4d.com/camera/1.0/' }, |
| 32 | + WRITABLE => 'string', |
| 33 | + Yaw => { Writable => 'real' }, |
| 34 | + Pitch => { Writable => 'real' }, |
| 35 | + Roll => { Writable => 'real' }, |
| 36 | + IMUSampleSize => { Writable => 'integer' }, |
| 37 | + IMUTimeOffset => { Writable => 'integer' }, |
| 38 | + LineReadoutTime => { Writable => 'integer' }, |
| 39 | + IMUFrequency => { Writable => 'real' }, |
| 40 | + PrincipalPoint => { }, |
| 41 | + ModelType => { }, |
| 42 | + PerspectiveFocalLength => { Writable => 'real' }, |
| 43 | + PerspectiveDistortion => { }, |
| 44 | + IMULinearVelocity => { }, |
| 45 | + GPSXYAccuracy => { Writable => 'real' }, |
| 46 | + GPSZAccuracy => { Writable => 'real' }, |
| 47 | + RigName => { }, |
| 48 | + RigCameraIndex => { Writable => 'integer' }, |
| 49 | + IMUAngularVelocity => { |
| 50 | + Binary => 1, |
| 51 | + ValueConv => 'Image::ExifTool::XMP::DecodeBase64($val)', |
| 52 | + ValueConvInv => 'Image::ExifTool::XMP::EncodeBase64($val)', |
| 53 | + }, |
| 54 | + # added 2020/04/02 (ref 1) |
| 55 | + FisheyeAffineMatrix => { }, |
| 56 | + FisheyeAffineSymmetric => { }, |
| 57 | + FisheyePolynomial => { }, |
| 58 | + RigRelatives => { }, |
| 59 | + PerspectiveFocalLengthUnits => { }, |
| 60 | + CentralWavelength => { List => 'Seq' }, |
| 61 | + WavelengthFWHM => { List => 'Seq' }, |
| 62 | + BlackCurrent => { List => 'Seq' }, |
| 63 | + BandSensitivity => { List => 'Seq' }, |
| 64 | + SunSensor => { List => 'Seq' }, |
| 65 | + SunSensorExposureTime => { Writable => 'real' }, |
| 66 | + SunSensorSensitivity => { List => 'Seq' }, |
| 67 | + InvalidPixel => { List => 'Seq' }, |
| 68 | + VignettingPolynomial => { List => 'Seq' }, |
| 69 | + VignettingCenter => { List => 'Seq' }, |
| 70 | + VignettingPolynomial2DName => { List => 'Seq' }, |
| 71 | + VignettingPolynomial2D => { List => 'Seq' }, |
| 72 | + ColorTransform => { List => 'Seq' }, |
| 73 | + IsNormalized => { Writable => 'real' }, |
| 74 | + Albedo => { List => 'Seq' }, |
| 75 | + ReflectArea => { List => 'Seq' }, |
| 76 | + CalibrationPicture => { Writable => 'integer' }, |
| 77 | + GyroRate => { Writable => 'real' }, |
| 78 | + IMUPitchAccuracy => { Writable => 'real' }, |
| 79 | + IMURollAccuracy => { Writable => 'real' }, |
| 80 | + IMUYawAccuracy => { Writable => 'real' }, |
| 81 | + NominalCameraDistance => { Writable => 'real' }, |
| 82 | + SunSensorYaw => { Writable => 'real' }, |
| 83 | + SunSensorPitch => { Writable => 'real' }, |
| 84 | + SunSensorRoll => { Writable => 'real' }, |
| 85 | + SunSensorRelativeRotation => { Writable => 'real', List => 'Seq' }, |
| 86 | + TransformAlpha => { List => 'Seq' }, |
| 87 | + TransformBeta => { List => 'Seq' }, |
| 88 | + TransformGamma => { List => 'Seq' }, |
| 89 | + SensorBitDepth => { Writable => 'integer' }, |
| 90 | + SensorTemperature => { Writable => 'real' }, |
| 91 | + # (ref https://community.pix4d.com/t/camera-sun-irradiance-and-sun-angle-in-red-text/3290) |
| 92 | + IrradianceRelativeRotation => { }, |
| 93 | + Irradiance => { List => 'Seq' }, |
| 94 | + IrradianceExposureTime => { Writable => 'real' }, |
| 95 | + IrradianceGain => { Writable => 'real' }, |
| 96 | + BandName => { List => 'Seq' }, |
| 97 | + # Not official pix4d fields |
| 98 | +); |
| 99 | + |
| 100 | +%Image::ExifTool::UserDefined::DJI = ( |
| 101 | + GROUPS => { 0 => 'XMP', 1 => 'XMP-drone-dji', 2 => 'drone-dji' }, |
| 102 | + NAMESPACE => { 'drone-dji' => 'http://www.dji.com/drone-dji/1.0/' }, |
| 103 | + WRITABLE => 'string', |
| 104 | + # Original GPS/flight tags from built-in DJI::XMP |
| 105 | + AbsoluteAltitude => { Writable => 'real' }, |
| 106 | + RelativeAltitude => { Writable => 'real' }, |
| 107 | + GimbalRollDegree => { Writable => 'real' }, |
| 108 | + GimbalYawDegree => { Writable => 'real' }, |
| 109 | + GimbalPitchDegree => { Writable => 'real' }, |
| 110 | + FlightRollDegree => { Writable => 'real' }, |
| 111 | + FlightYawDegree => { Writable => 'real' }, |
| 112 | + FlightPitchDegree => { Writable => 'real' }, |
| 113 | + GpsLatitude => { Writable => 'real' }, |
| 114 | + GpsLongtitude => { Writable => 'real' }, |
| 115 | + GpsLongitude => { Writable => 'real' }, |
| 116 | + FlightXSpeed => { Writable => 'real' }, |
| 117 | + FlightYSpeed => { Writable => 'real' }, |
| 118 | + FlightZSpeed => { Writable => 'real' }, |
| 119 | + CamReverse => { }, |
| 120 | + GimbalReverse => { }, |
| 121 | + SelfData => { }, |
| 122 | + CalibratedFocalLength => { Writable => 'real' }, |
| 123 | + CalibratedOpticalCenterX => { Writable => 'real' }, |
| 124 | + CalibratedOpticalCenterY => { Writable => 'real' }, |
| 125 | + RtkFlag => { }, |
| 126 | + RtkStdLon => { Writable => 'real' }, |
| 127 | + RtkStdLat => { Writable => 'real' }, |
| 128 | + RtkStdHgt => { Writable => 'real' }, |
| 129 | + DewarpData => { }, |
| 130 | + DewarpFlag => { }, |
| 131 | + Latitude => { Writable => 'real' }, |
| 132 | + Longitude => { Writable => 'real' }, |
| 133 | + # Multispectral / M3M tags |
| 134 | + ImageSource => { }, |
| 135 | + GpsStatus => { }, |
| 136 | + AltitudeType => { }, |
| 137 | + RtkDiffAge => { Writable => 'real' }, |
| 138 | + NTRIPMountPoint => { }, |
| 139 | + NTRIPPort => { Writable => 'integer' }, |
| 140 | + NTRIPHost => { }, |
| 141 | + SurveryingMode => { Writable => 'integer' }, |
| 142 | + UTCAtExposure => { }, |
| 143 | + ShutterType => { }, |
| 144 | + CameraSerialNumber => { }, |
| 145 | + DroneModel => { }, |
| 146 | + DroneSerialNumber => { }, |
| 147 | + CaptureUUID => { }, |
| 148 | + RelativeOpticalCenterX => { Writable => 'real' }, |
| 149 | + RelativeOpticalCenterY => { Writable => 'real' }, |
| 150 | + DewarpHMatrix => { List => 'Seq' }, |
| 151 | + CalibratedHMatrix => { List => 'Seq' }, |
| 152 | + VignettingFlag => { }, |
| 153 | + VignettingData => { List => 'Seq' }, |
| 154 | + LSType => { }, |
| 155 | + LSstatus => { }, |
| 156 | + Packageidx => { }, |
| 157 | + Cfgcnt => { }, |
| 158 | + RawData => { }, |
| 159 | + BandFreq => { List => 'Seq' }, |
| 160 | + Irradiance => { List => 'Seq' }, |
| 161 | + SensorGain => { }, |
| 162 | + SensorGainAdjustment => { }, |
| 163 | + SensorIndex => { }, |
| 164 | + BlackLevel => { }, |
| 165 | + DroneID => { }, |
| 166 | +); |
| 167 | + |
| 168 | +1; #end |
0 commit comments