【发布时间】:2020-06-05 14:49:28
【问题描述】:
我必须在海洋中创建一个水下船只的情节。我有 GPS 数据和航向数据。数据集位于 pandas 数据框中。我想将车辆的航向绘制为离开 GPS 主线的箭头。
这张图片是我的 GPS 航向。我想在底图中执行此操作,但我似乎什至无法弄清楚如何执行此操作是 matplotlib。我已经蜜蜂搜索了好几天,但无法弄清楚。下面我有一个我的代码示例。
import pandas as pd
import matplotlib
import matplotlib.pyplot as plt
from matplotlib import style
import numpy as np
import math
from mpl_toolkits.basemap import Basemap
data = pd.read_csv('dataset')
style.use('seaborn')
data['pd_datetime'] = pd.to_datetime(data['time (UTC)'])
# convert current date format into pandas date time format
gpsdata = data.loc[:, ['m_gps_lon (DDMM.MMMM)', 'm_gps_lat (DDMM.MMMM)']] #from my data set
gpsdata = gpsdata.dropna()
plt.plot(gpsdata['m_gps_lon (DDMM.MMMM)'], gpsdata['m_gps_lat (DDMM.MMMM)'], '-.')
plt.title('GPS')
plt.xlabel('lon')
plt.ylabel('lat')
plt.show()
place = 'some area'
c = {'llclon': -55, 'llclat': 55, 'urclon': 55, 'urclat': 55}
map = Basemap(
llcrnrlon= c['llclon'], llcrnrlat= c['llclat'],
urcrnrlon= c['urclon'], urcrnrlat= c['urclat'],
resolution='l')
#projections: cyl=cylindrical equidistant projection, ortho=orthographic
map.drawcoastlines()
plt.plot(gpsdata['m_gps_lon (DDMM.MMMM)'], gpsdata['m_gps_lat (DDMM.MMMM)'], '-.')
plt.plot(data['pd_datetime'], np.rad2deg(data['m_heading (rad)']), '.', color='red') #i thought this would at least plot a point. but it doesnt do anything. all headings are in compass headings. not nessisarily pointing in the direction of the track
plt.show()
plt.show()
任何帮助将不胜感激
【问题讨论】:
-
你想要一个“箭袋情节”
-
我尝试了 quiver plot,但如果我错了,请纠正我,我认为 quiver(x,y,u,v) u 和 v 是结合的。它适用于 x 和 y 方向的水流。
-
没错,但是如果你有方位,你可以很容易地计算出 u & v
标签: python matplotlib gps matplotlib-basemap