Closed mkrupczak3 closed 3 days 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
~Would most likely need to integrate a new tidal model (in addition to the existing EGM96 one) to provide accurate tide level:~
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.
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:
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.
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 inapp/src/main/java/com/openathena/MainActivity.java
andapp/src/main/java/com/openathena/TargetGetter.java
to use correctly use Mean Sea Level instead of terrain elevation if the sea mode is selected