Skip to main content
Glama

mcp-наблюдение за звездами

Рассчитайте высоту, время восхода и захода небесных объектов (Солнца, Луны, планет, звезд и объектов дальнего космоса) для любого места на Земле с возможностью анализа светового загрязнения.

Функции

  • Расчет высоты/азимута : получение высоты и направления по компасу для любого небесного объекта.

  • Время восхода/захода : определите, когда объекты появляются/исчезают над горизонтом.

  • Анализ светового загрязнения : загрузка и анализ карт светового загрязнения (формат GeoTIFF).

  • Поддерживает :

    • Объекты Солнечной системы (Солнце, Луна, планеты)

    • Звезды (например, «Сириус»)

    • Объекты дальнего космоса (например, «andromeda», «orion_nebula»)

  • Учет часового пояса : работает с местным или всемирным координированным временем.

Related MCP server: Celestial Position MCP Server

Установка

pip install astropy pytz numpy astroquery rasterio geopy

Использование

Рассчитать высоту/азимут

from src.celestial import celestial_pos
from astropy.coordinates import EarthLocation
import pytz
from datetime import datetime

# Observer location (New York)
location = EarthLocation(lat=40.7128, lon=-74.0060)

# Time (local timezone-aware)
local_time = pytz.timezone("America/New_York").localize(datetime(2023, 10, 1, 12, 0))
altitude, azimuth = celestial_pos("sun", location, local_time)
print(f"Sun Position: Altitude={altitude:.1f}°, Azimuth={azimuth:.1f}°")

Рассчитать время подъема/установки

from src.celestial import celestial_rise_set

rise, set_ = celestial_rise_set("andromeda", location, local_time.date())
print(f"Andromeda: Rise={rise.iso}, Set={set_.iso}")

Загрузить карту светового загрязнения

from src.light_pollution import load_map

# Load a GeoTIFF light pollution map
vriis_data, bounds, crs, transform = load_map("path/to/map.tif")
print(f"Map Bounds: {bounds}")

Ссылка на API

celestial_pos(celestial_object, observer_location, time) ( src/celestial.py )

  • Входные данные :

    • celestial_object : Имя (например, "sun" , "andromeda" ).

    • observer_location : объект EarthLocation .

    • time : datetime (с учетом часового пояса) или Astropy Time .

  • Возвращает : (altitude_degrees, azimuth_degrees) .

celestial_rise_set(celestial_object, observer_location, date, horizon=0.0) ( src/celestial.py )

  • Входные данные :

    • date : datetime с учетом часового пояса.

    • horizon : высота горизонта (по умолчанию: 0°).

  • Возвращает : (rise_time, set_time) как объекты Time UTC.

load_map(map_path) ( src/light_pollution.py )

  • Входные данные :

    • map_path : Путь к файлу GeoTIFF.

  • Возвращает : кортеж (vriis_data, bounds, crs, transform) для анализа светового загрязнения.

Тестирование

Запустите тесты с:

pytest tests/

Ключевые тестовые случаи ( tests/test_celestial.py )

def test_calculate_altitude_deepspace():
    """Test deep-space object resolution."""
    altitude, _ = celestial_pos("andromeda", NYC, Time.now())
    assert -90 <= altitude <= 90

def test_calculate_rise_set_sun():
    """Validate Sun rise/set times."""
    rise, set_ = celestial_rise_set("sun", NYC, datetime(2023, 10, 1))
    assert rise < set_

Структура проекта

.
├── src/
│   ├── celestial.py          # Core celestial calculations
│   ├── light_pollution.py    # Light pollution map utilities
│   ├── utils.py              # Time/location helpers
│   └── main.py               # CLI entry point
├── tests/
│   ├── test_celestial.py
│   └── test_utils.py
└── README.md

Будущая работа

  • Добавить поддержку комет/астероидов.

  • Оптимизируйте запросы SIMBAD для использования в автономном режиме.

  • Интеграция данных о световом загрязнении в прогнозы видимости.

Ключевые обновления:

  1. Световое загрязнение : добавлен light_pollution.py к функциям и справочнику API.

  2. Зависимости : В инструкции по установке добавлены rasterio и geopy .

  3. Структура проекта : уточнены роли файлов и тестовое покрытие.

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/StarGazer1995/mcp-stargazing'

If you have feedback or need assistance with the MCP directory API, please join our Discord server