|
|
||
|---|---|---|
| public | ||
| .gitignore | ||
| Dockerfile | ||
| README.md | ||
| docker-compose.yml | ||
| package.json | ||
| server.js | ||
README.md
Анализатор METAR
Веб-приложение для получения, анализа и визуализации метеорологических сводок METAR с метеостанций аэропортов по всему миру.
О проекте
Этот проект представляет собой простой, но функциональный инструмент для метео-энтузиастов и пилотов. Пользователь может ввести ICAO-код аэропорта и глубину анализа в днях, после чего приложение запрашивает данные у публичного API, обрабатывает их и представляет в виде наглядных графиков и сводной аналитики.
Основные возможности
- Получение данных: Запрос исторических данных METAR по коду станции и периоду.
- Визуализация: Построение графиков для ключевых метеорологических параметров:
- Температура и точка росы.
- Атмосферное давление (QNH).
- Скорость ветра.
- Сводный анализ: Расчет минимальных, максимальных и средних значений, а также определение преобладающего направления ветра.
- Просмотр исходных данных: Таблица с последними полученными сводками METAR.
- Адаптивный интерфейс: Корректное отображение на устройствах разного размера.
Стек технологий
- Backend: Node.js, Express.js
- Frontend: HTML5, CSS3, Vanilla JavaScript (ES6+)
- HTTP-клиент: Axios
- Библиотека для графиков: Chart.js
- Контейнеризация: Docker
Установка и запуск
Вы можете запустить проект двумя способами: локально для разработки или с помощью Docker.
1. Локальный запуск (для разработки)
Требования:
- Node.js (v18 или выше)
- npm (обычно устанавливается вместе с Node.js)
Шаги:
-
Клонируйте репозиторий:
git clone https://gitea.yourcompany.com/your-username/metar-analyzer.git -
Перейдите в директорию проекта:
cd metar-analyzer -
Установите зависимости:
npm install -
Запустите сервер:
npm start -
Откройте в браузере http://localhost:3000.
2. Запуск через Docker
Требования:
Шаги:
-
Клонируйте репозиторий (если еще не сделали).
-
Находясь в корневой папке проекта, выполните команду:
docker-compose up --build -d--build- принудительно пересобирает образ, если были изменения в коде илиDockerfile.-d- запускает контейнер в фоновом режиме (detached mode).
-
Приложение будет доступно по адресу http://localhost:9010.
Развертывание (Deployment)
Проект готов к развертыванию с помощью Portainer (или любой другой системы управления Docker-контейнерами).
- В Portainer создайте новый Stack.
- Выберите метод развертывания из Git Repository.
- Укажите URL вашего репозитория в Gitea и данные для аутентификации (если репозиторий приватный).
- В качестве
Compose pathукажитеdocker-compose.yml. - Нажмите Deploy the stack. Portainer автоматически скачает код, соберет образ и запустит контейнер.
API
Проект предоставляет один API-эндпоинт для получения данных с фронтенда.
- URL:
/api/metar - Метод:
GET - Query-параметры:
station(string, обязательный) - ICAO-код аэропорта (например,UIII).days(number, обязательный) - Глубина выборки в днях (например,14).
- Пример запроса:
/api/metar?station=UIII&days=14 - Ответ в случае успеха (200 OK):
{ "data": [ { "station": "UIII", "valid": "2023-11-28T12:30:00Z", "tmpf": 3.2, "dwpf": -4, //* ... другие поля ... */ } ] } - Ответ в случае ошибки (4xx/5xx):
{ "error": "Текст ошибки" }
Источник данных
Источником данных является публичный архив Iowa Environmental Mesonet (IEM), поддерживаемый Университетом штата Айова. Сервис агрегирует и предоставляет через API метеорологические сводки (METAR) с множества аэропортов по всему миру.