How can I obtain the distance between two tracks of 3d GPS coordinates?

16 vues (au cours des 30 derniers jours)
I have two matrices A and B with GPS track data points (longitude, latitude, altitude). However they do not have the same size (rows). I am looking for a way to obtain a matrix which contains the distance in 3d space between the two tracks as well as a way to obtain the distance component of each axis respectively (lon, lat, alt), namely the distance from each data point in A to it's closest data point in B.

Réponse acceptée

Adit Alware
Adit Alware le 25 Mai 2022
Hi Nicolas,
I understand that you have two matrices A and B with and 3 columns(lat, long, alt) and different number of rows.
To obtain the distance between coordinates with given latitude and longitude, you may use the "distance" function from Mapping Toolbox.
dist = distance(lat1,lon1,lat2,lon2)
The output distance will be in degrees. To convert it into km or miles you may use:
dist = deg2km(dist) % convert to kilo meters
dist = deg2nm(dist) % convert to nautical miles
To obtain the final distance accomodating altitude you may calculate the folllowing :
finaldist = sqrt(dist^2 + (alt1-alt2)^2)
Suppose that we have C number of rows in A and D number of rows in B.
Now you may run a nested for loop in a manner such that they compute a matrix R of size C X D where each entry (i,j) represents the distance between ith coordinate of A and jth coordinate of B.
Now for example, to calculate the distance component of a coordinate for latitude axis, you may find the distance between point (lat,long,alt) and (lat,0,0).
After that you may calculate the minimum distance of point in A from all the points in B using the "min" function as follows:
minDist = min(R')
The output will be a row vector where ith entry will represent minimum distance of ith coordinate in A from all the coordinates in B.
Thanks

Plus de réponses (0)

Produits


Version

R2019a

Community Treasure Hunt

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

Start Hunting!

Translated by