-
Notifications
You must be signed in to change notification settings - Fork 10
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Implement "wrapping" local coordinates? #49
Comments
I believe that we need to distinguish between periodic and aperiodic dimensions as we do in Meshes.jl. If we are talking about Notice that |
I believe I may have chosen my words poorly. By "wrapping coordinates", I mean coordinates that wrap around the surface of the earth like a paper wraps around a stone, not "wrapping" as in periodic boundaries. So what I'm asking for is not to change the behaviour of any existing coordinate type, but to add a new type such that |
How does it differ from #48 then? You mean that we should be able to consider this periodic behavior when adding the ENU shifts? That will be automatic given the constructor of |
ENU coordinates are usually assumed to be cartesian, while what I'm proposing here is not. For illustration, assuming the earth is a sphere with radius 1: Cartesian(1, 0, 0) + CartesianEastNorth(1, 0) -> Cartesian(1, 1, 0)
Cartesian(1, 0, 0) + WrappingEastNorth(1, 0) -> Cartesian(cos(1), sin(1), 0) |
So it is a matter of terminology then. We thought that ENU was the wrapping case where LatLon + ENU would still produce LatLon on the sphere. Why do we need a |
Imagine I have a GPS, a compass, a plumb line and a ranging device. Then I can compute the location of any other visible object using something like
(Not sure what the syntax for the |
Not clear yet the meaning of CartesianENU, can you provide a MWE with actual numbers to see if we are talking about the same ideas? |
Cartesian: julia> using Geodesy
x = LLA{Float64}(0,0,0)
d = ENU{Float64}(10e3,0,0);
julia> LLAfromENU(x, wgs84)(d)
LLA(lat=0.0°, lon=0.08983145480493704°, alt=7.839274896367615) # Almost 8m off the ground
julia> ECEFfromENU(x, wgs84)(d)
ECEF(6.378137e6, 10000.0, 0.0) # y component is exactly 10km Wrapping: julia> using MapMaths
x = LatLon(0,0)
d = EastNorth(10e3,0);
julia> x + d
LatLon{Float64}(-1.43e-322, 0.08983152841195213) # Still exactly at sea level
julia> ECEF(x + d)
ECEF{Float64}(6.378129160721892e6, 9999.99590304674, -3.130123e-317) # y component is slightly less than 10km |
I believe that this issue is a dup of #48 in the sense that we will only need a |
There are a few occasions where it would be handy to have local coordinates that "wrap" around the surface of the earth. For example:
I must admit that I am not aware of any reference for such a coordinate system, so this proposal is quite speculative. Curious to hear what other people might think.
The text was updated successfully, but these errors were encountered: