Should depth and altitude be coordinates?
In the GeoJSON.Point implementation I'm assuming that depth is optional coordinate 3 (difference from sea level) and altitude is optional coordinate 4.
In reporting platform_status.position this probably makes sense. The platform reports it's current position and where available includes both depth and altitude. So if we were getting a USBL status like in SoAR we might get underwater positions as well as surface positions.
In mission_plan.action we typically want to specify max_depth and min_altitude constraints. Then if we want to specify z in an action we're likely to want to specify one but not the other whilst still being bound by those min/max constraints.
So we might say
- descend to 100m (unless you hit
min_altitudefirst) - descent to 20m from the bottom (unless you hit
max_depthfirst)
With depth and altitude as optional coords 3 and 4 you could specify a target depth and then have a separate min_altitude constraint but you can't easily specify a target altitude with a max_depth constraint (you can't omit coordinate 3) - unless you specify the depth coordinate as well with some by-convention type value.
You could specify a depth deeper than max_depth or use an by-convention infinity value like -1. Both feel a bit ugly.