Отслеживание спутников в реальном времени
pip install requests folium
# Импортируем нужные библиотеки
import requests
import folium
import time
import webbrowser
# ========== Настройка ==========
# URL API для получения позиции Международной Космической Станции (МКС)
API_URL = "http://api.open-notify.org/iss-now.json"
# Интервал обновления данных (в секундах)
REFRESH_INTERVAL = 10
# Имя HTML-файла для карты
MAP_FILE = "satellite_tracker.html"
# ========== Функция для получения координат МКС ==========
def get_iss_position():
"""
Получает текущую широту и долготу МКС через API
"""
response = requests.get(API_URL)
data = response.json()
position = data['iss_position']
latitude = float(position['latitude'])
longitude = float(position['longitude'])
return latitude, longitude
# ========== Функция для создания карты ==========
def create_map(lat, lon):
"""
Создает HTML-карту с точкой текущего положения спутника
"""
# Центрируем карту на текущем положении спутника
m = folium.Map(location=[lat, lon], zoom_start=2)
# Добавляем маркер спутника
folium.Marker(
[lat, lon],
tooltip="МКС",
icon=folium.Icon(color='blue', icon='info-sign')
).add_to(m)
# Сохраняем карту в файл
m.save(MAP_FILE)
# ========== Основной цикл ==========
if __name__ == "__main__":
# Открываем браузер один раз при старте
webbrowser.open(MAP_FILE)
print("Запуск отслеживания МКС в реальном времени...")
while True:
try:
# Получаем свежие координаты МКС
lat, lon = get_iss_position()
print(f"Текущее положение МКС: широта {lat:.2f}, долгота {lon:.2f}")
# Пересоздаем карту
create_map(lat, lon)
# Пауза между обновлениями
time.sleep(REFRESH_INTERVAL)
except KeyboardInterrupt:
print("\nОтслеживание остановлено пользователем.")
break
except Exception as e:
print(f"Ошибка при обновлении данных: {e}")
time.sleep(REFRESH_INTERVAL)