DJI Mavic, Air and Mini Drones
Friendly, Helpful & Knowledgeable Community
Join Us Now

OpenAthena™ for iOS v2.5 release: Instant geolocation from any drone image

Hi!

I've run into various iOS photo APIs that do strip meta data. Also, iMessage and texting seem to do so as well.

Bobby
Interesting, Bobby. I’m using an iPad with my controller and Mavic 2 Zooms. It is a ninth generation using iOS 17.1.3.

Does the stripping of metadata you’ve observed happen consistently or randomly? My experience has been having some pictures with and some without. I haven’t been able to figure out the difference.

Glenn
 
Interesting, Bobby. I’m using an iPad with my controller and Mavic 2 Zooms. It is a ninth generation iPad using iOS 17.3.1.

Does the stripping you’ve observed occur all the time or just haphazardly? I have pictures that have retained the metadata and pictures that haven’t. It does seem to be in blocks, but I haven’t been able to figure out the reason.

Glenn
Hey!

I too use an ipad with my controller for my dji mini drones. While flying, I can download an image (JPG) to my ipad and analyze it. The images all have the meta data. In the various iOS APIs, I've found that the Swift PHPickerViewController API strips metadata but the UIImagePickerController API does *not* strip metadata. Not exactly sure which user apps use which APIs but iMessage seems to strip metadata as does some image imports. Yes, definitely weird.

Bobby
 
Sure. How can I get them to you? Size is about 25-50 MB each (Mavic 3).
Hey!

Perhaps upload them to Google Drive (or equivalent) and then email me a link to the files or a shared folder? My email should be viewable in my profile. (Not sure if email addresses are stripped from postings.)

Thank you!

Bobby
 
Hey!

I too use an ipad with my controller for my dji mini drones. While flying, I can download an image (JPG) to my ipad and analyze it. The images all have the meta data. In the various iOS APIs, I've found that the Swift PHPickerViewController API strips metadata but the UIImagePickerController API does *not* strip metadata. Not exactly sure which user apps use which APIs but iMessage seems to strip metadata as does some image imports. Yes, definitely weird.

Bobby
Where, or how, can I find which “iOS API” I’m using, the Swift PHPickerContrller or the UIImagePickerController?

Is it on the iPad or the drone camera? In either case, how would I install the correct one and disable or uninstall the errant one?

I might not be asking the question properly, Bobby.

I’m an English major. Would like a metaphor with your hamburger?

Glenn
 
Where, or how, can I find which “iOS API” I’m using, the Swift PHPickerContrller or the UIImagePickerController?

Is it on the iPad or the drone camera? In either case, how would I install the correct one and disable or uninstall the errant one?

I might not be asking the question properly, Bobby.

I’m an English major. Would like a metaphor with your hamburger?

Glenn
Ha!

Would love a metaphor. Basically, without the source code, we really can't tell which photo API the underlying app is using. But iMessage and texting seem to remove photo meta data. OpenAthena uses the one that does not strip metadata.

I now primarily fly my DJI Mini3Pro and Mini4Pro. I've configured the dji app/drone to save images as JPGs. During flight, in the DJI app, I tell the app to download an image to the controller (really my ipad connected to the controller) and it saves to the DJI album. I can then split my screen and run the DJI app in one half and OA in the other. OA can access the DJI album and load images and access the meta data.

Once the drone lands, I grab the SD card out of the drone and access it via my desktop computer. Moving images from my desktop to my ipad, for example, is done through webdav (owncloud, dropbox, google drive) which preserves meta data. I've even uploaded photos from my desktop to icloud album and then downloaded them to my ipad via icloud and the metadata was preserved.

I need to test access the sd card directly by attaching it via dongle to the ipad. On my todo list.

Thank you for any and all feedback.

Bobby
 
Hi!

Re DNG images and iOS. I've been testing and debugging over the last couple of days. Thank you for sending DNG images to test.

- DNG images have all the meta data OpenAthena needs including exif and XMP
- When I go to load the image using ios/swift APIs, most of the XMP data appears to be stripped and subtly modified
- Doesnt matter how I get the data into/onto the iOS system; once the DNG image is loaded, its stripped/modified
- When I use command-line utility convert to convert from DNG to JPG, it looks like Exif.Photo.FocalLength params are not converted over to JPG though

So, for right now, it have the drone take images and save/store in JPG, not DNG.

Converting DNGs to JPGs may work but apparently not with unix/linux convert utility.

I will keep picking at this to see if I can find any workarounds.

Bobby
 
Hi!

Re DNG images and iOS. I've been testing and debugging over the last couple of days. Thank you for sending DNG images to test.

- DNG images have all the meta data OpenAthena needs including exif and XMP
- When I go to load the image using ios/swift APIs, most of the XMP data appears to be stripped and subtly modified
- Doesnt matter how I get the data into/onto the iOS system; once the DNG image is loaded, its stripped/modified
- When I use command-line utility convert to convert from DNG to JPG, it looks like Exif.Photo.FocalLength params are not converted over to JPG though

So, for right now, it have the drone take images and save/store in JPG, not DNG.

Converting DNGs to JPGs may work but apparently not with unix/linux convert utility.

I will keep picking at this to see if I can find any workarounds.

Bobby
I'm also a developer.

Are you saying when DNG files are moved to iOS they are modified to remove certain key data that you need? Or just that when you access those DNG files that the API you are using doesn't give you all the metadata?

If the latter is the case, perhaps there is some ability to access those DNG files using an alternative API?
 
I'm also a developer.

Are you saying when DNG files are moved to iOS they are modified to remove certain key data that you need? Or just that when you access those DNG files that the API you are using doesn't give you all the metadata?

If the latter is the case, perhaps there is some ability to access those DNG files using an alternative API?
I can't be sure where the modification is occuring.
When I move/copy a DNG file to my macos device (the one I code on), the image does not appear to be modified. All the exif and xmp metadata appears intact.

I then copy the image into my simulator and when I run OAiOS, and load the image, debugging statements tell me much of the metadata is stripped.

When I copy the image to my ipad, and then run OAiOS, and load the image, debugging statements tell me much of the metadata is stripped.

I'm thinking that under the hood, the iOS libraries are stripping much of the metadata. What I think it is happening, is that the libraries are first converting DNG to JPG and then loading. That conversion code is probably only transferring/copying a subset of the metadata not on purpose but because its only coded to xfer some subset.

This theory sorta jives with the ImageMagick convert utility. On linux, when I use convert to convert DNG to JPG, the exif.focallength* params seem to get dropped or not carried over to the JPG.

Fun with iOS.

Bobby
 
I can't be sure where the modification is occuring.
When I move/copy a DNG file to my macos device (the one I code on), the image does not appear to be modified. All the exif and xmp metadata appears intact.

I then copy the image into my simulator and when I run OAiOS, and load the image, debugging statements tell me much of the metadata is stripped.

When I copy the image to my ipad, and then run OAiOS, and load the image, debugging statements tell me much of the metadata is stripped.

I'm thinking that under the hood, the iOS libraries are stripping much of the metadata. What I think it is happening, is that the libraries are first converting DNG to JPG and then loading. That conversion code is probably only transferring/copying a subset of the metadata not on purpose but because its only coded to xfer some subset.

This theory sorta jives with the ImageMagick convert utility. On linux, when I use convert to convert DNG to JPG, the exif.focallength* params seem to get dropped or not carried over to the JPG.

Fun with iOS.

Bobby
So, looking for alternative APIs; iOS/swift is pretty locked down and permissions are big challenge for accessing image files.
 
Lycus Tech Mavic Air 3 Case

DJI Drone Deals

New Threads

Forum statistics

Threads
131,149
Messages
1,560,380
Members
160,121
Latest member
UR7CR