drewnoakes / metadata-extractor

Extracts Exif, IPTC, XMP, ICC and other metadata from image, video and audio files
Apache License 2.0
2.54k stars 474 forks source link

Support for Multi-Band DJI Drone Cameras #555

Closed kemjos closed 2 years ago

kemjos commented 2 years ago

I work on a DJI Phantom 4 Pro Multispectral Drone and the camera possesses 6 cameras that each have an independent captured band, these are:

- RGB - Red - Blue - Green - Infrared - Near-infrared (nir)

The BandName XMP attribute is located in the XMP Metadata, not in the Exif or Maker, directories and is not found.

Here are the different attributes as per an analyzer called ExifToolGUI:

Screenshot 2021-09-09 at 12 57 51 am Screenshot 2021-09-09 at 12 57 27 am Screenshot 2021-09-09 at 12 56 20 am

I cannot attach a .TIF picture in this post and so if you require sample pictures that do have these particular metadata tags you can find them here, where I have included one picture in the Green band and another in the Red band.

Edit: Code output sample from using Metadata Extractor:

Exif IFD0 - New Subfile Type = Full-resolution image Exif IFD0 - Image Width = 1600 pixels Exif IFD0 - Image Height = 1300 pixels Exif IFD0 - Bits Per Sample = 16 bits/component/pixel Exif IFD0 - Compression = Uncompressed Exif IFD0 - Photometric Interpretation = BlackIsZero Exif IFD0 - Image Description = DCIM\106FPLAN\DJI_0012.TIF Exif IFD0 - Make = DJI Exif IFD0 - Model = FC6360 Exif IFD0 - Strip Offsets = 8 Exif IFD0 - Orientation = Top, left side (Horizontal / normal) Exif IFD0 - Samples Per Pixel = 1 samples/pixel Exif IFD0 - Rows Per Strip = 1300 rows/strip Exif IFD0 - Strip Byte Counts = 4160000 bytes Exif IFD0 - Software = v01.17.2023 Exif IFD0 - Date/Time = 2021:07:22 10:18:46 Exif IFD0 - Unknown tag (0xc619) = 1 1 Exif IFD0 - Unknown tag (0xc61a) = 4096 XMP - XMP Value Count = 87 Exif SubIFD - Exposure Time = 12/15625 sec Exif SubIFD - F-Number = f/2.2 Exif SubIFD - Exposure Program = Program normal Exif SubIFD - Unknown tag (0x8833) = 200 Exif SubIFD - Exif Version = 2.30 Exif SubIFD - Date/Time Original = 2021:07:22 10:18:45 Exif SubIFD - Date/Time Digitized = 2021:07:22 10:18:45 Exif SubIFD - Shutter Speed Value = 1 sec Exif SubIFD - Aperture Value = f/2.2 Exif SubIFD - Exposure Bias Value = 0 EV Exif SubIFD - Max Aperture Value = f/2.2 Exif SubIFD - Metering Mode = Center weighted average Exif SubIFD - Focal Length = 5.7 mm Exif SubIFD - Exif Image Width = 1600 pixels Exif SubIFD - Exif Image Height = 1300 pixels Exif SubIFD - Custom Rendered = Normal process Exif SubIFD - Exposure Mode = Auto exposure Exif SubIFD - Focal Length 35 = 40 mm Exif SubIFD - Body Serial Number = cdd7347e50f5ebf9e7cd9a1f96a7dfbf DJI Makernote - Make = DJI DJI Makernote - Unknown tag (0x0002) = 1 3 0 0 DJI Makernote - Aircraft X Speed = 0 DJI Makernote - Aircraft Y Speed = 0.1 DJI Makernote - Aircraft Z Speed = 0 DJI Makernote - Aircraft Pitch = 5.1 DJI Makernote - Aircraft Yaw = -48.2 DJI Makernote - Aircraft Roll = 4.2 DJI Makernote - Camera Pitch = -89.9 DJI Makernote - Camera Yaw = -48.6 DJI Makernote - Camera Roll = 0 DJI Makernote - Unknown tag (0x0011) = 0 DJI Makernote - Unknown tag (0x0012) = 0 DJI Makernote - Unknown tag (0x0013) = 0 0 0 0 0 DJI Makernote - Unknown tag (0x0014) = 10321 7306 4096 DJI Makernote - Unknown tag (0x0017) = 0 DJI Makernote - Unknown tag (0x0024) = [48 values] DJI Makernote - Unknown tag (0x0026) = 200 0 2.19 1 DJI Makernote - Unknown tag (0x0027) = 200 200 4096 5296 GPS - GPS Version ID = 2.300 GPS - GPS Latitude Ref = S GPS - GPS Latitude = -20° 26' 26.1" GPS - GPS Longitude Ref = E GPS - GPS Longitude = 57° 19' 7.87" GPS - GPS Altitude Ref = Sea level GPS - GPS Altitude = 117.1 metres File Type - Detected File Type Name = TIFF File Type - Detected File Type Long Name = Tagged Image File Format File Type - Detected MIME Type = image/tiff File Type - Expected File Name Extension = tiff File - File Name = file_sample_G.TIF File - File Size = 4177249 bytes File - File Modified Date = Wed Sep 08 12:05:20 +04:00 2021

Thanking you in anticipation!

drewnoakes commented 2 years ago

The band data will be in the XMP directory. You'll need to access it via XmpDirectory.getXMPMeta().

Does that help?

kemjos commented 2 years ago

My apologies for reverting after such a long time. I had the chance to give it a go yesterday and it worked flawlessly. Thank you for taking the time to help me out. 🙂