Python底图立体图
我想在立体地图上显示一些值(在本例中为南极( spstere ))。 如果我在圆柱形地图( cyl )上显示它们,一切都很好:
m = Basemap(projection='cyl',llcrnrlon=-180,llcrnrlat=-90,urcrnrlon=180,urcrnrlat=90,resolution='i')
CS = m.scatter(lon2,lat2,c=BT2,edgecolors='none',s=sz,cmap='gray')
现在我想要在南极立体地图上得到相同的值,但是我不能让它起作用:
m = Basemap(projection='spstere',boundinglat=-10,lon_0=180,resolution='c')
CS = m.scatter(lon2,lat2,c=BT2,edgecolors='none',s=sz,cmap='gray')
我做了什么,我只能得到各大洲,但没有数据。
所以我觉得我自己找到了答案。 您需要做的是将经纬度坐标从柱面投影转换为属于立体投影的x / y坐标。 在定义底图之后,这很简单:
m = Basemap(projection='spstere',boundinglat=-10,lon_0=180,resolution='c')
只要做这样的转换:
x,y = m(lon2,lat2)
最后用x / y坐标绘制地图,例如:
CS = m.scatter(x,y,c=BT2,edgecolors='none',s=sz,cmap='gray')
这对我有用:)
您似乎已经想通了,您需要将您的x和y坐标转换为“地图”坐标(相关文档可以在http://matplotlib.github.com/basemap/users/mapcoords.html找到):
spstereo = Basemap(projection='spstere',boundinglat=-10,lon_0=180,resolution='c')
x, y = spstereo(lons, lats)
spstereo.scatter(x, y)
只需添加latlon关键字
m = Basemap(projection='spstere',boundinglat=-10,lon_0=180,resolution='c')
CS = m.scatter(lon2,lat2,c=BT2,s=sz,cmap='gray', latlon=True)
从文档:
如果latlon关键字设置为True,则x,y将被解释为度数的经度和纬度。 数据和经度会自动移动,以匹配圆柱和圆柱投影的地图投影区域,并将x,y转换为地图投影坐标。 如果latlon为False(默认),则假定x和y为地图投影坐标。
链接地址: http://www.djcxy.com/p/55751.html上一篇: Python basemap stereographic map
下一篇: Maven + GAE step