This project is part of the "IT-Planet 2025" International Olympiad, in the "Space Cup: MISSION MOON" track.
The goal of the first stage is to develop a concept and web-based prototype for planning and navigating a lunar base at the Moon's South Pole. This system should assist future colonists in organizing infrastructure, analyzing terrain, and managing resources efficiently.
Key functions:
- Researching lunar terrain for optimal infrastructure placement
- Planning safe, logical, and functional layouts of habitats and facilities
- Managing resources and supporting sustainable base development
- UI prototype for map-based interaction and route planning
- Automatic validation of placement criteria
- Support for importing terrain data and spectral analysis
Этот проект создан в рамках Международной олимпиады "IT-Планета 2025", в треке «Космический кубок: МИССИЯ ЛУНА».
Цель первого этапа – разработать концепцию и прототип Web-решения для планирования строительства лунной базы на Южном полюсе Луны и навигации по ней.
Основные задачи:
- Исследование лунной поверхности для выбора подходящих площадок
- Оптимальное размещение объектов инфраструктуры
- Управление ресурсами и устойчивое развитие базы
- Прототип интерфейса для отображения карты и прокладки маршрутов
- Проверка соответствия объектов заданным критериям
- Поддержка анализа высот по спектральным данным
<тип>(область): краткое описание
Пример:
feat(auth): add login form
feat— новая фичаfix— багфиксdocs— документацияstyle— стили, форматирование (не влияет на логику)refactor— переработка кода (без новых фич и фиксов)test— тестыchore— тех. задачи: зависимости, конфигиperf— улучшения производительностиbuild— сборочная системаci— CI/CD процессыrevert— откат коммита
- Склонируй репозиторий:
git clone https://github.com/your-username/your-repo.git
cd your-repo- Установи зависимости:
pnpm installЕсли pnpm не установлен:
npm install -g pnpm- Запусти проект:
pnpm dev- Открой в браузере:
http://localhost:3000
---
## ✅ Настройка окружения для корректной работы с GDAL и геоданными
### 🔹 **Шаг 1: Создание окружения**
Открываем **Anaconda Prompt** и создаём новое окружение:
```bash
conda create -n gis python=3.11
conda activate gis
Устанавливаем нужные библиотеки из файла scripts/requirements.txt, но только через conda, так как pip может не корректно установить GDAL:
conda install -c conda-forge gdal pyproj matplotlib numpy rasterioЕсли при запуске в консоли вы видите ошибку вроде:
Python stderr: File "...\image_processor.py", line 2, in <module>
from osgeo import gdal, osr
ModuleNotFoundError: No module named 'osgeo'
Python process exited with code 1
Это значит, что модуль osgeo не установлен. Устанавливать его также нужно через conda (если ещё не установлен):
conda install -c conda-forge gdalВажно: не использовать pip install gdal — это приведёт к некорректной установке.
Всё ещё в Anaconda Prompt, выполняем:
where pythonНужна строка, указывающая путь к python.exe внутри окружения gis, например:
C:\Users\Ruslan\anaconda3\envs\gis\python.exe
В корневой папке проекта создаём файл .env.local и прописываем туда следующее:
PYTHON_PATH=C:\Users\Ruslan\anaconda3\envs\gis\python.exe
Замените путь на тот, который вы получили на предыдущем шаге.
Если всё настроено правильно, после загрузки файла в консоли сервера должна появиться строка:
POST /api/process-image 200 in 9426ms
Это означает, что сервер успешно обработал изображение с помощью нужных библиотек.
/
├── app/ # Frontend (Next.js)
│ ├── api/ # API-маршруты
│ │ ├── process-image/ # Обработка загруженных изображений
│ │ └── list-processed-images/ # Получение списка обработанных изображений
│ ├── components/ # React-компоненты
│ ├── moon-map/ # Страница конструктора лунной базы
│ └── spectral-analysis/ # Страница с информацией о спектральном анализе
├── scripts/ # Python-скрипты для обработки изображений
│ ├── image_processor.py # Основной скрипт обработки
│ ├── input/ # Входные изображения
│ ├── output/ # Выходные данные
│ │ ├── images/ # Сгенерированные визуализации
│ │ └── json/ # JSON-файлы с данными анализа
│ └── requirements.txt # Зависимости Python
└── public/ # Статические файлы
- Откройте главную страницу приложения
- Перейдите в раздел "Спектральный анализ"
- Загрузите изображение поверхности Луны для обработки
- После обработки просмотрите результаты анализа
- Перейдите в "Конструктор" для планирования лунной базы, используя полученные данные
Если приложение не может найти Python:
- Убедитесь, что Python установлен и доступен в PATH
- Задайте путь к Python через переменную окружения PYTHON_PATH
- Проверьте наличие всех зависимостей в Python-окружении (см.
scripts/requirements.txt)
- Проверьте, что формат загружаемого изображения поддерживается (рекомендуется GeoTIFF)
- Убедитесь, что в вашем Python-окружении установлены все необходимые библиотеки
- Проверьте логи сервера для получения дополнительной информации
- Fork репозитория
- Создайте ветку для вашей функциональности (
git checkout -b feature/amazing-feature) - Зафиксируйте изменения (
git commit -m 'Add some amazing feature') - Push в вашу ветку (
git push origin feature/amazing-feature) - Откройте Pull Request