gpt4 book ai didi

python - 如何将矢量旋转到 basemap map 投影上?

转载 作者:行者123 更新时间:2023-11-28 23:03:08 28 4
gpt4 key购买 nike

我正在使用 python 中的 matplotlib 倒钩函数和 basemap 制作风矢量倒钩图。我有一个任意纬度和经度的矢量(风观测)列表,即不在规则网格上。

我需要在绘图之前将矢量旋转到 map 投影上,否则倒钩指向错误的方向。执行此操作的最佳方法是什么?

例如

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 对列表,是否有将矢量旋转到 map 投影上的例程?

如有任何帮助,我们将不胜感激!

最佳答案

对于偶然发现这个问题的网格数据的人

宁可使用内置函数 rotate_vector,您可以在这里找到它:

http://matplotlib.org/basemap/api/basemap_api.html

关于python - 如何将矢量旋转到 basemap map 投影上?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8878564/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com