我正在比较 Vincenty 公式和 hasrsine 公式在不同分离距离上的有效性。我想知道它们之间的错误率。有什么很酷的方法来绘制这些?
问问题
601 次
1 回答
0
我假设您真的想将大圆距离与测地距离进行比较。Haversine 和 Vincenty 恰好是计算这种距离的算法。但是,两者都会在某些限制中导致过多的错误。请参阅我对Haversine 公式或Vincenty 公式是否更适合计算距离的回答?.
我在 Matlab 包geolib中提供了一个更好的测地线距离算法。如果椭圆体的展平设置为 0,这也提供了准确的大圆距离。下面是一个简单的说明,它用于绘制一组随机点的相对误差和绝对误差。这要求我的包在您的 Matlab 路径上。
num = 100000;
lat1 = asind(2*rand(num,1)-1);
lat2 = asind(2*rand(num,1)-1);
lon1 = 180*(2*rand(num,1)-1);
lon2 = 180*(2*rand(num,1)-1);
wgs84 = defaultellipsoid;
a = wgs84(1);
b = a * (1 - ecc2flat(wgs84(2)));
sphere = [(2*a + b)/3, 0];
[s12s, azi1s, azi2s] = geoddistance(lat1,lon1,lat2,lon2, sphere);
[s12e, azi1e, azi2e] = geoddistance(lat1,lon1,lat2,lon2, wgs84);
erra = (s12s - s12e);
errr = 100 * erra ./ s12e;
figure(1); plot(s12e, abs(errr), 'x');
figure(2); plot(s12e, abs(erra), 'x');
您可能还想看看我对将地球近似为球体有多准确的回答?.
于 2016-12-03T18:27:56.627 回答