【问题标题】:Drawing boxes on basemap with real Lat-Lon在底图上用真实的经纬度绘制框
【发布时间】:2018-05-05 02:37:12
【问题描述】:

我在尝试在底图图形上绘制研究区域的方框时遇到问题。我尝试了两种不同的选择: 1. 使用多边形。 2. 使用drawgreatcircle。

这是我的多边形代码:

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

m = Basemap(width=6000000,height=5000000,rsphere=(6378137.00,6356752.3142),\
                resolution='l',projection='lcc',\
                lat_1=0.,lat_2=30,lat_0=15,lon_0=-75.)

lw = 1
dashes = [5,7]
graticules_color = 'black'

fig1 = plt.figure(figsize=(16,20))
fig1.patch.set_facecolor('#e6e8ec')
ax = fig1.add_axes([0.1,0.1,0.8,0.8])

m.etopo()

m.drawparallels(np.arange(-90.,90.,10.),labels=[1,0,0,0],fontsize=20,linewidth=lw, dashes=dashes, color=graticules_color)
m.drawmeridians(np.arange(-180.,180.,10.),labels=[0,0,0,1],fontsize=20,linewidth=lw, dashes=dashes, color=graticules_color)
m.drawmapboundary(fill_color='white')
m.drawcountries()

x1,y1 = m(-100,0)
x2,y2 = m(-100,30)
x3,y3 = m(-50,30)
x4,y4 = m(-50,0)

poly = Polygon([(x1,y1),(x2,y2),(x3,y3),(x4,y4)],facecolor='none',edgecolor='k',linewidth=1.5)
plt.gca().add_patch(poly)

这是结果: Box using Polygon toolbox 基本上,该框不在我在绘图上使用的投影坐标中(或者至少线条没有像网格那样遵循平行线和经线)。

查看第二个选项(使用 drawgreatcircle 函数),它可以根据我的需要用于右、左和下线,但不适用于上线。附加代码是:

lo1 = -100
lo2 = -50
la1 = 0
la2 = 30
#l1
m.drawgreatcircle(lo1, la1, lo1, la2,linewidth=2,color='r')
#l2
m.drawgreatcircle(lo1, la2, lo2, la2,linewidth=2,color='r')
#l3
m.drawgreatcircle(lo2, la2, lo2, la1,linewidth=2,color='r')
#l4
m.drawgreatcircle(lo2, la1, lo1, la1,linewidth=2,color='r') 

还有图:Box with drawgreatcircle 谁能帮我解决这个问题?

非常感谢!

安吉拉。

【问题讨论】:

    标签: projection matplotlib-basemap coordinate


    【解决方案1】:

    将此 sn-p 代码添加到您的代码中。它会绘制你想要的线。

    lons = np.linspace(-100, -50, 15)
    lats = np.ones(len(lons))*30
    m.plot(lons, lats, color="r", linewidth=1.5, latlon=True)
    

    【讨论】:

    • 完美!,我用的是最难的方法^^
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-10-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多