Skip to content

Repository files navigation

Orbiteer - Анализатор Финансовых Рисков в Космосе

Orbiteer — это веб-приложение, предназначенное для анализа и визуализации финансовых рисков, связанных с космическими миссиями. Оно предоставляет интерактивный 3D-интерфейс для оценки рисков столкновения на орбите и помогает пользователям понять потенциальные финансовые потери.

Особенности

  • Интерактивная 3D-визуализация: Отображение Земли и орбиты спутника с помощью three.js.
  • Оценка рисков в реальном времени: Расчет рисков столкновения на основе актуальных данных о космических объектах.
  • Финансовый анализ: Оценка ожидаемых финансовых потерь и страховых премий.
  • API на основе Sanic: Быстрый и асинхронный бэкенд для выполнения сложных расчетов.

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

.
├── api/                  # Модуль API (Sanic)
│   ├── routes/           # Обработчики маршрутов
│   │   ├── health.py     # Эндпоинт для проверки работоспособности
│   │   └── risk.py       # Эндпоинты для расчета рисков
│   └── __init__.py     # Фабрика приложения Sanic
├── satellite_tracker/    # Модуль для отслеживания спутников и расчетов
│   ├── ...               # Скрипты для работы с TLE, расчетов орбит и т.д.
├── utils/                # Вспомогательные утилиты
│   ├── distance_calculation.py # Расчет расстояний
│   └── risk_calculator.py      # Формулы для расчета рисков
├── index.html            # Фронтенд-приложение
├── requirements.txt      # Зависимости Python
├── run_api.py            # Точка входа для запуска API
└── README.md             # Эта документация

Установка

  1. Клонируйте репозиторий:

    git clone <URL-репозитория>
    cd <имя-директории>
  2. Создайте и активируйте виртуальное окружение (рекомендуется):

    python -m venv venv
    source venv/bin/activate  # Для Windows: venv\Scripts\activate
  3. Установите зависимости:

    pip install -r requirements.txt

Запуск приложения

Для запуска сервера API выполните следующую команду:

python run_api.py

Приложение будет доступно по адресу http://0.0.0.0:8098. Откройте этот URL в вашем веб-браузере, чтобы увидеть интерфейс Orbiteer.

API Эндпоинты

API предоставляет следующие конечные точки:

1. Расчет риска на орбите

  • URL: /orbit_risk
  • Метод: GET
  • Описание: Рассчитывает финансовый риск столкновения для спутника на орбите.
  • Параметры запроса:
    • height (float): Высота орбиты (км).
    • A_effective (float): Эффективная площадь поперечного сечения (м²).
    • T_years (float): Срок службы миссии (годы).
    • C_full (float): Полная стоимость миссии.
    • D_lost (float): Упущенный доход в случае потери спутника.
  • Пример запроса:
    http://127.0.0.1:8098/orbit_risk?height=550&A_effective=1.5&T_years=5&C_full=50000000&D_lost=100000000
    
  • Пример ответа:
    {
      "financial_risk": 12345.67,
      "collision_risk": 0.00012345,
      "insurance_premium": 18518.51,
      "risk_class": "B (Low)"
    }

2. Расчет риска при запуске

  • URL: /api/takeoff_risk
  • Метод: GET
  • Описание: Рассчитывает финансовый риск столкновения во время фазы запуска.
  • Параметры запроса:
    • lat (float): Широта места запуска.
    • lon (float): Долгота места запуска.
    • date (string): Дата и время запуска (UTC) в формате YYYY-MM-DDTHH:MM:SS.
    • H_ascent (float): Высота активного участка полета (км).
    • A_rocket (float): Эффективная площадь поперечного сечения ракеты (м²).
    • T_seconds (float): Продолжительность активного участка полета (секунды).
    • C_total_loss (float): Суммарные потери при неудачном запуске.
  • Пример запроса:
    http://127.0.0.1:8098/api/takeoff_risk?lat=45.96&lon=63.30&date=2025-10-04T12:00:00&H_ascent=200&A_rocket=15.8&T_seconds=540&C_total_loss=50000000
    
  • Пример ответа:
    {
        "financial_risk": 54321.98,
        "collision_risk": 0.00098765,
        "insurance_premium": 81482.97,
        "risk_class": "C (Moderate)",
        "objects_in_corridor": 5,
        "launch_corridor_radius_km": 50
    }

3. Проверка работоспособности

  • URL: /health
  • Метод: GET
  • Описание: Проверяет, что сервис запущен и работает.
  • Пример ответа:
    {
      "status": "OK"
    }

3. Swagger/OpenAPI Документация

  • URL: /swagger
  • Описание: Интерактивная документация API.

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages