使用库pyephem,我想找到一种方法来绘制表示卫星地面轨迹的漂亮绘图(经度、纬度)曲线。我已经计算了 (longitude,latitude) 但是当经度超过 +180° 时,计算的下一个值是例如 -178°,这样就绘制了一个线段:这就是糟糕的数字。在我目前拥有的代码和获得的数字下方。currentDate = date.datetime(2018,12,1,0,0,0);for i in range(nPoints): iss.compute(currentDate) # compute latitude posLat[i] = iss.sublat*(180/math.pi) # compute longitude posLong[i] = iss.sublong*(180/math.pi) currentDate = currentDate + date.timedelta(seconds = (time3orbits/nPoints*3600)) print currentDate, posLong[i], posLat[i]plt.plot(posLong,posLat)plt.show()这是我得到的图(绕地球 3 圈):如何防止绘制的线段?问候iss.sublat和iss.sublong分别是 iss 位置的当前纬度和经度(从一个currentDate固定的)。
1 回答
牛魔王的故事
TA贡献1830条经验 获得超3个赞
您可以将符号从正变为负的数据数组拆分,然后绘制单个子数组:
orbits = np.argwhere(
(data[:-1, 0] * data[1:, 0] < 0)
& (data[1:, 0] < 0)
).ravel() + 1
for orbit in np.split(data, orbits, axis=0):
plt.plot(orbit[:, 0], orbit[:, 1])
添加回答
举报
0/150
提交
取消