我正在使用matplotlib barb函數和python中的底圖製作風矢量倒鉤圖。 我有任意緯度和經度向量列表(風觀測值),即不在常規網格上。如何將矢量旋轉到底圖貼圖投影上?
我需要在繪圖之前將矢量旋轉到地圖投影上,或者倒鉤指向錯誤的方向。做這個的最好方式是什麼?
例如
import numpy
from mpl_toolkits.basemap import Basemap
import matplotlib.pyplot as plt
# Define locations of my vectors
lat = numpy.array([50.1,46.2,51.6,52.2,54.4])
lon = numpy.array([-3.3,-1.0,-5.2,-1.2,0.2])
# Define some east-west vectors to illustrate the problem
u = numpy.array([5,5,5,5,5])
v = numpy.array([0,0,0,0,0])
# Set up map projection
m = Basemap(llcrnrlon=-15.,llcrnrlat=46.,urcrnrlon=15.,urcrnrlat=59.,
projection='lcc',lat_1=40.,lat_2=50.,lon_0=-50.,
resolution ='l')
# Calculate positions of vectors on map projection
x,y = m(lon,lat)
# Draw barbs
m.barbs(x,y,u,v, length=7, color='red')
# Draw some grid lines for reference
parallels = numpy.arange(-80.,90,20.)
meridians = numpy.arange(0.,360.,20.)
m.drawparallels(parallels)
m.drawmeridians(meridians)
m.drawcoastlines(linewidth=0.5)
plt.show()
請注意,在圖中,向量不指向東西。
我曾嘗試使用rotate_vector和transform_vector例程,但這些僅適用於網格矢量數據。
是否有例行程序將矢量旋轉到地圖投影上,用於任意的lat,lon u,v對列表?
任何幫助將不勝感激!
太好了 - 我認爲這樣做很好。謝謝! – 2012-01-16 14:16:05