Theta-Limited / OpenAthenaAndroid

OpenAthena allows common drones to spot precise geodetic locations
GNU Affero General Public License v3.0
59 stars 6 forks source link

Naval use: use Mean Sea Level instead of any DEM #63

Closed mkrupczak3 closed 3 days ago

mkrupczak3 commented 1 year ago

For naval use out on the ocean, no digital elevation model should be necessary. It's okay to just use the Mean Sea Level for the local area, like so:

https://github.com/googlemaps/android-maps-utils/issues/704

This will require updating app/src/main/java/com/openathena/AthenaActivity.java with a boolean selector for terrain or sea mode (and an associated radio button in the associated layout.xml file), and new logic in app/src/main/java/com/openathena/MainActivity.java and app/src/main/java/com/openathena/TargetGetter.java to use correctly use Mean Sea Level instead of terrain elevation if the sea mode is selected

mkrupczak3 commented 7 months ago

Maybe an enum, with terrain, sea level, or hybrid (use both) as options.

SRTM DEM's don't typically cover oceanic areas. All three settings could have certain use cases

mkrupczak3 commented 1 month ago

~Would most likely need to integrate a new tidal model (in addition to the existing EGM96 one) to provide accurate tide level:~

https://vdatum.noaa.gov/docs/datums.html

mkrupczak3 commented 1 week ago

So, did some testing today out over Daytona beach and was able to verify OpenAthena Android works well in the littoral zone and a decent ways out to sea.

Screenshot_20240921-220954 Screenshot_20240921-221000

Screenshot_20240921-205411 Screenshot_20240921-205426

Screenshot_20240921-200746 Screenshot_20240921-200730

While it works well near or on the shore, at a certain distance out to sea it exceeds the coverage of the SRTM elevation dataset:

If you were to try to load a drone image taken out at sea into OpenAthena or download elevation coverage of such an area, an error would occur which looks like this: Screenshot_20240921-212844

So, takeways from these results:

It should be pretty simple for me to modify the software to use mean sea level height instead of DEM. The tricky part is making sure it only does this appropriately and not when operating over land.

If you load an image taken far out at sea while an internet connection is present, the DEM downloading API we use provides an error code which we could use to automatically switch calculation mode from land to maritime.

An issue though is that without an internet connection present, the software has no way of knowing if you're out at sea or just missing a DEM file. I could add a toggle switch somewhere for land/maritime mode, however any operator misconfiguration while operating over land could result in significant calculation errors.