在底图中沿恒定纬度绘制一条线,Python 使用圆锥投影时

Plot a line along a constant latitude in Basemap, Python when using a conic projection

我想在 basemap 实例上画一条连接 等纬度 两点的线,使用 圆锥形 地图投影(即纬度是 而不是 直线)。

无论我使用 m.drawgreatcircle 还是 m.plot,生成的线都是 直线 (-我认为...?)两个点,而不是沿着 恒定纬度 的线。有人知道如何解决这个问题吗?下面是一些示例代码和生成的图像。我非常喜欢沿着 55N 线到 运行 的黄色虚线。

import matplotlib.pyplot as plt
from mpl_toolkits.basemap import Basemap

#set up the map
m = Basemap(resolution='l',area_thresh=1000.,projection='lcc',\
        lat_1=50.,lat_2=60,lat_0=57.5,lon_0=-92.5,\
        width=6000000,height=4500000)


#add some basic map features
m.drawmeridians(np.arange(-155,-5,10),\
       labels=[0,0,0,1],fontsize=8,linewidth=0.5)
m.drawparallels(np.arange(30,85,5),\
       labels=[1,0,0,0],fontsize=8,linewidth=0.5)
m.drawcoastlines(linewidth=0.5)
m.drawcountries(linewidth=1)
m.drawstates(linewidth=0.3)

#plot some topography data
m.etopo()

#draw a line between two points of the same latitude
m.drawgreatcircle(-120,55,-65,55,linewidth=1.5,\
       color='yellow',linestyle='--')

抱歉,如果我遗漏了一些非常简单的东西...!

drawgreatcicle 显然无法在 lcc 投影图上正常工作。

您总是可以自己创建一条线,而不是依赖这个辅助函数。为此,沿线创建坐标,投影它们并调用 plot.

lon = np.linspace(-120,-65)
lat = np.linspace(55,55)
x,y = m(lon,lat)
m.plot(x,y, linewidth=1.5, color='yellow',linestyle='--')