绘制具有周期性边界且无线段的尼斯曲线

使用库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 圈):

http://img1.mukewang.com/61627e3d0001b2fe10950836.jpg

如何防止绘制的线段?问候

iss.sublatiss.sublong分别是 iss 位置的当前纬度和经度(从一个currentDate固定的)。


尚方宝剑之说
浏览 239回答 1
1回答

牛魔王的故事

您可以将符号从正变为负的数据数组拆分,然后绘制单个子数组:orbits = np.argwhere(&nbsp; &nbsp; (data[:-1, 0] * data[1:, 0] < 0)&nbsp; &nbsp; & (data[1:, 0] < 0)).ravel() + 1for orbit in np.split(data, orbits, axis=0):&nbsp; &nbsp; plt.plot(orbit[:, 0], orbit[:, 1])
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python