Python 如何追踪国际空间站(ISS)

Python 如何追踪国际空间站(ISS)

探索国际空间站(ISS)的下落并目睹其实时运动可以是一种令人激动的体验。以下文章旨在展示如何利用Python追踪ISS,并利用Open Notify提供的ISS API在交互式世界地图上可视化其位置,借助folium库的帮助。

安装所需的库

在我们开始ISS追踪之旅之前,有必要安装一些库:requests,用于实现API调用,以及folium,用于创建引人入胜的交互式地图。

pip install requests folium

获取国际空间站位置数据

为了获取国际空间站的当前位置,我们将使用Open Notify提供的ISS API。该API提供了代表国际空间站位置的纬度和经度坐标。

import requests

def acquire_iss_location():
    response = requests.get("http://api.open-notify.org/iss-now.json")
    data = response.json()
    latitude = float(data["iss_position"]["latitude"])
    longitude = float(data["iss_position"]["longitude"])
    return latitude, longitude

iss_latitude, iss_longitude = acquire_iss_location()
print(f"ISS's present location: Latitude: {iss_latitude}, Longitude: {iss_longitude}")

输出

ISS's present location: Latitude: 47.3335, Longitude: 49.9148

在此代码片段中,定义了一个名为acquire_iss_location()的函数。该函数发送一个GET请求到Open Notify的ISS API,并随后解析收到的JSON响应,提取ISS的纬度和经度坐标。最后,我们打印出ISS的当前位置。

在交互式地图上可视化ISS位置

要在交互式地图上可视化ISS的位置,我们将使用folium库。该库使我们能够创建引人入胜的世界地图,并在其中绘制ISS的当前位置。

import folium

def generate_iss_map(latitude, longitude):
    iss_map = folium.Map(location=[latitude, longitude], zoom_start=2)
    folium.Marker([latitude, longitude], tooltip="ISS Location", popup="International Space Station", icon=folium.Icon(color="red", icon="info-sign")).add_to(iss_map)
    return iss_map

iss_map = generate_iss_map(iss_latitude, iss_longitude)
iss_map.save("iss_location.html")

在这段代码片段中,我们对generate_iss_map()进行了描述。此工作接受ISS的经度和纬度排列作为输入,并继续形成一个以ISS位置为中心的交互式世界地图。我们在地图上添加了一个标记,并附带了一个工具提示和弹出窗口,提供有关ISS的信息。最后,我们将地图保存为名为iss_location.html的HTML文件。

要在地图上观察ISS的位置,只需在您喜欢的网页浏览器中打开iss_location.html文件。

奖励:自动化ISS追踪

对于实时的ISS跟踪,我们可以设计一个简单的循环,定期获取ISS位置数据,然后相应地更新地图。

import time

while True:
    iss_latitude, iss_longitude = acquire_iss_location()
    print(f"ISS's present location: Latitude: {iss_latitude}, Longitude: {iss_longitude}")
    iss_map = generate_iss_map(iss_latitude, iss_longitude)
    iss_map.save("iss_location.html")
    time.sleep(60)

在这个特定的示例中,我们使用一个while循环每60秒不断地获取国际空间站的位置信息,确保描述保持最新。然而,当无限期地运行这个循环时,需要谨慎,因为它可能会消耗大量的系统资源。建议实施一个停止条件或用户中断机制。

在终端显示的 输出 将展示国际空间站当前的纬度和经度格式的位置:

ISS's present location: Latitude: -51.4142, Longitude: -179.8206

Python 如何追踪国际空间站(ISS)

请注意,实际的纬度和经度值将取决于ISS在脚本执行时刻的实时位置。

结论

综上所述,本文全面演示了如何利用Python跟踪国际空间站。通过利用Open Notify的ISS API和多功能的folium库,我们能够以纬度和经度坐标的形式获取ISS的位置数据,并在互动世界地图上有效地可视化其位置。参与这样的项目不仅可以增进我们对ISS及其运动的理解,还是锻炼我们使用API和互动地图的Python编程技能的机会。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程