79 lines
2.0 KiB
Markdown
79 lines
2.0 KiB
Markdown
# Spacecraft Planning Service
|
|
|
|
Сервис планирования наблюдений космических аппаратов.
|
|
|
|
Сервис получает данные о доступных пунктах наблюдения и окнах наблюдения,
|
|
строит непрерывную цепочку планов для каждого космического аппарата
|
|
и отправляет уведомления перед началом каждого плана.
|
|
|
|
---
|
|
|
|
# Основные возможности
|
|
|
|
Сервис выполняет следующие функции:
|
|
|
|
- хранит планы космических аппаратов
|
|
- строит непрерывную цепочку планов
|
|
- принимает обновления пунктов наблюдения
|
|
- пересчитывает планы при обновлении данных
|
|
- отправляет Kafka уведомления перед началом плана
|
|
- предоставляет REST API для чтения планов
|
|
|
|
---
|
|
|
|
# Основные сущности
|
|
|
|
## Plan
|
|
|
|
План космического аппарата.
|
|
|
|
Содержит:
|
|
|
|
- spacecraftId
|
|
- startTime
|
|
- endTime
|
|
- insertionPointId
|
|
|
|
---
|
|
|
|
## SpacecraftPoints
|
|
|
|
Набор входных данных по одному космическому аппарату.
|
|
|
|
Содержит:
|
|
|
|
- spacecraftId
|
|
- список пунктов наблюдения
|
|
|
|
---
|
|
|
|
## InsertionPoint
|
|
|
|
Пункт закладки.
|
|
|
|
Содержит:
|
|
|
|
- pointId
|
|
- список окон наблюдения
|
|
|
|
---
|
|
|
|
## ObservationWindow
|
|
|
|
Окно наблюдения космического аппарата.
|
|
|
|
Содержит:
|
|
|
|
- startTime
|
|
- endTime
|
|
- elevationAngle
|
|
|
|
---
|
|
|
|
# Алгоритм построения планов
|
|
|
|
Алгоритм MVP:
|
|
|
|
1. Все `observationWindow.startTime` считаются кандидатами на старт плана.
|
|
2. Для текущего старта ищется следующий старт:
|