我试图绘制风倒钩,这些倒钩相距100公里,相距100公里。我的数据是北半球(0.25度)。我试图在下面的代码中重现该问题:
import numpy as np
from mpl_toolkits.basemap import Basemap
lons,lats = np.meshgrid(np.linspace(-180,180,1440),np.linspace(0,90,360))
m = Basemap(projection='merc',resolution='l',llcrnrlat=33,llcrnrlon=-50,urcrnrlat=68,urcrnrlon=40)
m.drawcoastlines(linewidth=0.6)
X, Y = m(lons,lats)
UWind = np.ones((360,1440))
VWind = np.zeros((360,1440))
xx = np.arange(0, X.shape[1], 8)
yy = np.sin(np.deg2rad(np.linspace(0,90,45)))
yy = yy*360
yy[-1] = 359
yy = yy.astype(int)
points = np.meshgrid(yy, xx)
m.barbs(X[points], Y[points], UWind[points], VWind[points],length=4,linewidth=0.6,pivot='middle')
plt.show()
选择xx以每2度绘制一个倒钩(8个分辨率为0.25度的方框)。当然,在该投影中,纬度间距将随纬度增加而增加。所以,为了避免这种情况,我创造了yy随着罪而变化(以抵消这种情况)。它似乎没有做任何事情。非常欢迎任何帮助。这产生的当前情节不等于间距(从距离,而不是度,视角)。
答案 0 :(得分:0)
替换m.barbs并在其上方添加一条换行符的新行:
uproj,vproj,xx,yy = m.transform_vector(UWind,VWind,np.linspace(-180,180,1440),np.linspace(0,90,360),31,31,returnxy=True,masked=True)
m.barbs(xx,yy,uproj,vproj,length=4,linewidth=0.6,pivot='middle')
参考:https://matplotlib.org/basemap/users/examples.html
此处提供更多信息:https://matplotlib.org/basemap/api/basemap_api.html#module-mpl_toolkits.basemap