gpt4 book ai didi

matplotlib-basemap - 为什么 cartopy 和 basemap 的反函数计算距离的结果不同?

转载 作者:行者123 更新时间:2023-12-04 15:44:46 25 4
gpt4 key购买 nike

我想计算地球表面两点之间的距离(以米为单位)

我尝试过同时使用 basemap 和 cartopy,但两者的结果不同。

basemap :

import mpl_toolkits.basemap.pyproj as pyproj

k = pyproj.Geod(ellps="WGS84")
distance = k.inv(c0[1], c0[0], c1[1], c1[0])[-1]/1000.

卡托皮:

import cartopy.geodesic as gd

k = gd.Geodesic() // defaults to WGS84
distance = k.inverse(c0, c1).base[0,0]/1000

其中 coord0 和 coord1 都是大小为 2 的 numpy 数组,具有坐标的经纬度。

c0 = numpy.array([77.343750, 22.593726])
c1 = numpy.array([86.945801, 23.684774])

Cartopy 输出:990.6094719605074

basemap 输出:1072.3456344712​​142

最佳答案

对于 basemap ,您必须使用正确的(long, lat)顺序:

distance = k.inv(c0[0], c0[1], c1[0], c1[1])[-1]/1000.

并且结果将与Cartopy的一致,这是正确的结果:

990.6094719605074

关于matplotlib-basemap - 为什么 cartopy 和 basemap 的反函数计算距离的结果不同?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56380014/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com