Latitude Longtitude Altitude convert to X Y Z with starting reference

69 次查看(过去 30 天)
Hi,
I have a gpx data logged by mobile smartphone. So I have latitude longitude and gps altitude (meters)
I am not a geo expert. I am trying to obtain a simple 3D digitized road from this data.
The data should be in x y z format.
I tried a code like this
p = lla2ecef(data1,'WGS84');
but the Z answer is actually really different from the altitude data. Same for x and y data.
plot3D result of this code is representing the profile but the values are really huge. It seems I should substract from a reference ??? That I do not know.
So is there any method or way that to convert is to real x y and z that helps to create 3D road with (x,y,z,) coordinate
Or to convert it to a data format that the starting point is 0 0 0 and.. or 0 0 6.5 it will change with road...(6.5 is starting height)
(ın other words ı am mentioning changing the lat long alttiude data to 3D line that starting reference can be changed by me)
GPS data is attached in mat format to the question.
  2 个评论
Michael Madelaire
Michael Madelaire 2018-12-30
编辑:Michael Madelaire 2018-12-30
So let me understand what you are saying.
The data you have given is [latitude, longitude, altitude]. I presume that the altitude is from sea-level? since the values are so small.
Next I do not understand why you suddenly say that the data is in x, y, z? wasn't it just in geodetic...
lla2ecef
Doesn't take x, y, z as input or give them as output. Simply changes reference frame.
But what you simply want is to illustrate the path in a plot, yes?
Orkun OZENER
Orkun OZENER 2018-12-31
编辑:Orkun OZENER 2018-12-31
Dear Michael Thanks for your answer,
Actually when I check the meaning of ECEF than I actually undestand it gives me the exact coordinates regarding to earth center at three axis.
On the other hand for digitising the road , let assume I need the coordinates of the centerline of the road. Assume that the starting point of this centerline is 0 0 0 in space and I know its lat long alt from gps. In other words the starting point should not be earth center. ( like creating a 3D line with starting point is 0 0 0)
center line lat long alt (known from gps)
0 0 0 ..., ..., ...
? ? ? ..., ..., ...
? ? ? ..., ...., ...
En example x y z
-0.000 0.000 -0.000
-1.000 0.000 -0.016
-2.000 0.000 -0.032
-3.000 0.000 -0.047
-4.000 0.000 -0.063
-5.000 0.000 -0.079
-6.000 0.000 -0.094
-7.000 0.000 -0.108
-8.000 0.000 -0.123
-9.000 0.000 -0.137
-10.000 0.000 -0.152
-11.000 0.000 -0.167
-12.000 0.000 -0.181
-13.000 0.000 -0.196
-14.000 0.000 -0.211
-15.000 0.000 -0.225
-16.000 0.000 -0.239
......
I am really mixed . But I assume I need new calculations.
Thanks

请先登录,再进行评论。

回答(1 个)

Michael Madelaire
Hi, there are still an unanswered question about the altitude that you have applied. Is it altitude above sea level? or is it some other reference point?
1) Convert your GPS coordinates from long, lat and altitude to long, lat, radius (from Earths center).
2) Use a function like XCFRAME to convert from long, lat, raidus to XYZ.
3) Substract the first position (t=0) from all others, thus making it the new reference point.
  1 个评论
Orkun OZENER
Orkun OZENER 2019-1-3
Thanks for your answer. Yes, the altitude is above sea level. I will look to the function will be be back to you. Thanks

请先登录,再进行评论。

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by