Problem calculating haversine. Obtained distance is too big

2 visualizzazioni (ultimi 30 giorni)
Hello everyone. I am working in airplane conflic detection. I have two aircraft optimized routes and I need to know the distance between them. The trajectories are given in degrees. I have tried to use the haversine to calculate the distance between each trajectory points as
RT=6378*1000;
haversine_angle=(sin((meanPhi2-meanPhi1)/2)).^2+cos(meanPhi1).*cos(meanPhi2).*(sin((meanLam2-meanLam1)/2)).^2;
haversine_sqrt=(haversine_angle).^0.5;
haversine_mean_distance_alternative =RT.*asin(haversine_sqrt);
figure
plot(meanTim2, haversine_mean_distance_alternative, 'b')
When I execute the code, I obtain the results displayed in figure 1.
However, if I calculate the distance between the starting points, it is way smaller that the one displayed in the figure 1.
I don't know what I am doing wrong in my calculation. As far as I see, I have implemented everything well. Also, note that if I use radians in the angles as
meanLam1=deg2rad(meanLam1);
meanLam2=deg2rad(meanLam2);
meanPhi1=deg2rad(meanPhi1);
meanPhi2=deg2rad(meanPhi2);
The distance is
Which still doesn't look like the one in the map.
Can someone help me?
Regards.
Jaime.
I am also attaching the files which contain the trajectories of both airplanes and the time (which is the same for both airplanes)

Risposte (1)

Jaime De La Mota Sanchis
Jaime De La Mota Sanchis il 14 Mar 2021
Never mind. i just found out I forgot a factor of 2 in the calculation of the haversine.

Categorie

Scopri di più su Statistics and Machine Learning Toolbox in Help Center e File Exchange

Prodotti


Release

R2021a

Community Treasure Hunt

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

Start Hunting!

Translated by