为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

尚方宝剑之说 2021-10-10 13:46:18
使用库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])

//img1.sycdn.imooc.com//61627e4e0001d4ce06140432.jpg

查看完整回答
反对 回复 2021-10-10
  • 1 回答
  • 0 关注
  • 238 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信