lat/lon 图的纵横比

Aspect ratio for lat/lon plots

如何设置 lat/lon 中绘制的数据的纵横比以补偿纬度的影响?目标是获得图中数据点的间距与它们之间的真实距离成正比的图。

import matplotlib.pyplot as plt
import numpy

latitudes = [30.0, 30.24, 30.44]
longitudes = [18.0, 18.5, 19.0]

mean_lat = numpy.mean(latitudes)
f = 1.0/numpy.cos(mean_lat*numpy.pi/180)

plt.scatter(longitudes, latitudes)
plt.gca().set_aspect(f?  or 1/f?)

我只需要在距离相对较近的点上使用这个,在一两度以内。我想保持我的坐标轴以度为单位,所以我不想使用来自 pyproj.

的真实地图投影

与答案 f1/f 一样,我对如何确定答案是否正确的过程很感兴趣。

set_aspect(f)

如何证明:

longitudes = [0.0, 0.0, 1.0, 1.0, 0.0]
latitudes = [60.0, 61.0, 61.0, 60.0, 60.0]

f = 1.0/numpy.cos(60*numpy.pi/180)

plt.plot(longitudes, latitudes, 'bo-')
plt.gca().set_aspect(f)

生成一个盒子,在屏幕上,它的高度大于宽度。在大约 60N 的情况下,1 度经度比地面距离短 1 度纬度。所以这检查出来了。