AAYMA
RU
Войти

Windcast

Система прогноза выработки ВЭС на 24–48 ч: агент-контроллер берёт архивный прогноз NOAA GFS, запускает ансамбль из 5 MLP, сохраняет расчёты в…

Доведённый продукт
Команда «RentBox» 36💬 0 комментариевс 23 сентября 2026 г.

О проекте

Команда: RentBox
Кейс HackAlem.ai: Энергетика — Самрук-Казына
Стадия: Доведённый продукт

Задача кейса: AI-агент, прогнозирующий выработку ветровой электростанции по погодным данным

Суть

Система прогноза выработки ВЭС на 24–48 ч: агент-контроллер берёт архивный прогноз NOAA GFS, запускает ансамбль из 5 MLP, сохраняет расчёты в DuckDB; дашборд на Next.js с 3D-турбиной.

Как устроено

История турбин и 730 циклов NOAA GFS (GRIB, почасовая интерполяция из трёхчасовых опор) → признаки со строгой исторической доступностью (as_of, проверка S3 Last-Modified, SHA-256) → ансамбль 5 MLP, лучшая конфигурация выбрана поиском (400 конфигураций, эволюционный поиск 984 кандидатов на RTX 5090/Brev A6000) → агент по правилам (policy) валидирует вход, получает погоду, запускает модель, проверяет результат и пишет ревизии в DuckDB → FastAPI + Next.js дашборд, CSV, replay всего февраля (29 выпусков). Опциональный помощник Astra через OpenAI.

Ключевые решения

  • MLP ensemble
  • NOAA GFS NWP features
  • evolutionary model search
  • persistence baseline
  • replay backtesting
  • DuckDB revisions
  • ecCodes GRIB parsing

Метрики

Январь 2026, 1–48 ч: MAE 0.15947, RMSE 0.23190 (норм. мощность) против persistence MAE 0.34268 — MAE ниже на 53.5%; 1–24 ч MAE 0.15226; 25–48 ч MAE 0.16692

Особенности

Строгое соблюдение исторической доступности погоды: для каждого решения используется только выпуск GFS, опубликованный до as_of, с сохранением URL и хэшей, что исключает утечку будущего. Есть replay всего месяца, ревизии прогнозов в DuckDB и интерфейс на трёх языках (RU/EN/KK).

Стек

Python 3.12 · FastAPI · Pydantic · DuckDB · ecCodes · scikit-learn · PyTorch · Next.js 16 · React 19 · TypeScript · Tailwind · Three.js · Blender · Docker Compose · uv

Модели

OpenAI (опциональный помощник Astra)


Проект создан за 5 часов на финале хакатона HackAlem.ai (23 сентября 2026, Астана). Код — BAITC-Hacks/hack-575875e7-rentbox.

README

README.md

Windcast — прогноз выработки ВЭС

Русский · English · Қазақша

Почасовой прогноз нормализованной мощности двух ветротурбин на 24–48 часов. Агент получает архивный прогноз погоды, запускает обученную модель, анализирует результат и сохраняет расчёт в историю. Интерфейс показывает график, погоду, этапы работы агента и позволяет скачать CSV.

Проект команды RentBox для HackAlem AI, трек «Энергетика». Конкурсный период прогнозирования — 1–28 февраля 2026 года.

Запуск · Проверка · Результаты · Архитектура · Ограничения · Источники

Для чего нужен и в чём преимущества

Пользователь — диспетчер или аналитик ветроэлектростанции. Ему нужно заранее оценивать ожидаемую выработку, замечать резкие изменения мощности и сравнивать выпуски прогноза перед планированием работы станции.

  • Прогноз на двое суток: почасовой график по каждой турбине и выгрузка для дальнейших расчётов; агент отмечает резкие изменения ожидаемой мощности.
  • Проверяемые источники: у расчёта сохраняются версия модели, погодный выпуск, время доступности и хэши данных. Можно проследить, на чём основан результат.
  • Воспроизведение прошлого: система последовательно рассчитывает февраль, используя только погодные прогнозы, доступные на момент каждого решения.
  • Запуск без специального оборудования: готовая модель работает на CPU; основной сценарий не требует GPU, личных аккаунтов или API-ключей.

На январском периоде мониторинга MAE модели на 53,5% ниже, чем у прогноза «повторить последний известный час». Это результат исторического эксперимента; экономический эффект в эксплуатации ещё не измерялся.

Быстрый старт

Для сайта нужны: Git, Bash, curl, запущенный Docker с Compose 2.24+, Node.js 22.20+ и npm 11. Поддерживаются Linux, macOS и Windows через WSL2. Интернет нужен для первоначальной загрузки образов и зависимостей.

git clone https://github.com/BAITC-Hacks/hack-575875e7-rentbox.git hack-rentbox
cd hack-rentbox
./run.sh all

Скрипт создаёт .env, если его нет, запускает backend и дашборд. Обычно сайт доступен на http://localhost:3000, документация API — на http://localhost:8000/docs. Используйте адреса, напечатанные скриптом: при занятом порте он выбирает свободный. Продолжительность первого запуска зависит от загрузки зависимостей и сборки.

Проверить только расчёт, без Node.js и браузера:

./run.sh demo

Ожидаемый результат — artifacts/demo-forecast.csv: 96 строк данных (48 часов × 2 турбины) и заголовок. Момент решения — 31 января 2026, 18:00 UTC; прогноз покрывает 1–2 февраля по принятому в эксперименте UTC+5.

Временные настройки пока исследовательские: UTC+5, метка начала десятиминутного интервала, ежедневный выпуск в 23:00 местного времени. Они явно помечены как неподтверждённые. Существующий .env сохраняется.

Команды запуска и диагностики

КомандаЧто делает
./run.shИнтерактивное меню; без терминала — запуск backend
./run.sh startТолько backend
./run.sh webПерезапуск дашборда с адресом уже работающего backend
./run.sh checkПроверка окружения и наличия данных
./run.sh logsПоследние строки журнала backend
tail -50 .run/web.logЖурнал дашборда
./run.sh stopОстановка сервисов проекта
./run.sh setupНастройка времени, портов и обучения
./run.sh settingsПодключение OpenAI: аккаунт ChatGPT / API key

Для других портов: BACKEND_PORT=9000 WEB_PORT=3100 ./run.sh all. Если сайт пишет «Сервер недоступен» после смены порта API, выполните ./run.sh web; если backend остановлен — ./run.sh all.

Без Docker

Установите Python 3.12 и uv; для сайта также нужны Node.js и npm. Если рабочий Docker отсутствует, тот же скрипт выберет локальный запуск:

./run.sh all

Он подготовит окружение backend по backend/uv.lock при первом запуске и передаст дашборду фактический порт API. Для одного расчёта используйте ./run.sh demo.

Проверка основного сценария

Без собственных ключей: достаточно быстрого старта. Модель, исходные CSV и сохранённые погодные выпуски входят в репозиторий. Расчёт выполняется настоящей моделью; необязательные языковые помощники на него не влияют.

  1. Откройте сайт по адресу из терминала, раздел «Прогноз выработки».
  2. Выберите 1 февраля 2026, 48 часов и обе турбины; нажмите «Рассчитать прогноз».
  3. Дождитесь завершения в разделе «AI-агент»: доступны этапы и сообщения.
  4. Посмотрите график и таблицу, скачайте CSV. В нём должны быть 96 строк данных, мощность в шкале 0–1 и сведения о происхождении погоды.
  5. Откройте «История запусков», обновите страницу и выберите сохранённый выпуск. Готовые расчёты хранятся в DuckDB и сохраняются после перезапуска backend.

Единицы: исходные значения мощности лежат в диапазоне 0–1; интерфейс показывает их как 0–100% этой шкалы. Формула нормализации не предоставлена. Для перевода в МВт/МВт·ч нужны её параметры и характеристики турбин.

Режим «Симуляция» — отдельный учебный сценарий. Погода, состояния турбины и мощность в нём синтетические; МВт рассчитываются из заданного пользователем условного номинала. Симуляция не использует NOAA или обученную модель, не сохраняется в историю API и не является результатом конкурсного прогноза.

Воспроизвести весь февраль

После ./run.sh all можно использовать прокси сайта. Если сайт запущен на другом порту, замените 3000:

curl --fail-with-body -sS http://localhost:3000/api/agent/replays \
  -H 'Content-Type: application/json' \
  -d '{"first_as_of":"2026-01-31T18:00:00Z","last_as_of":"2026-02-28T18:00:00Z","step_hours":24,"horizon_hours":48,"turbine_ids":[1,2]}'

Ответ содержит replay_id. Прогресс — GET /api/agent/replays/{replay_id}; дочерние run_ids дают доступ к статусу, прогнозу и CSV каждого выпуска. Ожидается 29 завершённых выпусков, по 96 значений в каждом. Последние полные горизонты захватывают март.

Уже рассчитанные результаты: 2784 прогнозных строки (поле in_february выделяет целевой месяц), отчёт агента: 29/29 без ошибок. Форматы всех запросов — в контракте API.

Как устроено решение

flowchart LR
    H["История турбин"] --> T["Обучение"] --> M["Ансамбль 5 MLP"]
    U["Дашборд / API"] --> Q["Очередь"] --> A["Агент"]
    W["Архив NOAA GFS"] --> A
    M --> A
    A --> D["DuckDB: прогнозы, события, ревизии"]
    D --> R["График, история, JSON, CSV"]

Агент — контроллер инструментов с заданными правилами (policy). После запроса он проверяет входы, получает погоду по координатам, готовит признаки, запускает модель, проверяет результат и сохраняет историю. Численный прогноз рассчитывает ансамбль; Astra помогает пользователю ориентироваться на сайте.

Повторный запрос с refresh_weather=true запрашивает обновление погоды. При изменении входов создаётся новая ревизия, при совпадении используется сохранённый результат. Постоянный фоновый опрос погоды не включён: обновление запускается запросом API. Последовательность исторических дат выполняется через replay.

Соблюдение исторической доступности погоды

as_of — момент, на который воспроизводится решение. Для каждого выпуска в 18:00 UTC используется операционный цикл NOAA GFS 12:00 UTC того же дня.

  • Инициализация и горизонт проверяются внутри GRIB; публикация исходного объекта S3 (Last-Modified) должна быть не позже as_of.
  • Сохраняются URL, метаданные публикации и SHA-256 погодных данных. В репозитории — 730 циклов с 1 марта 2024 по 28 февраля 2026.
  • Почасовая погода интерполируется из 17 трёхчасовых опор прогноза.
  • Будущие фактические погода и мощность не входят в признаки; конец истории обучения модели проверяется относительно as_of.

Подробности: протокол прогнозирования, соответствие ТЗ, аудит данных.

Качество прогноза

Январь 2026 — период мониторинга экспериментов, не новый независимый тест. MAE — средняя абсолютная ошибка, RMSE сильнее учитывает крупные ошибки. Обе метрики выражены в долях нормализованной мощности; меньше — лучше.

Модель / горизонтMAERMSE
Ансамбль NOAA, 1–48 ч0.159470.23190
Тот же ансамбль, 1–24 ч0.152260.21898
Тот же ансамбль, 25–48 ч0.166920.24453
Повтор последнего известного полного часа, 1–48 ч0.342680.45155

Сравнение выполнено на одинаковых 2928 прогнозных строках; один целевой час может встречаться в нескольких выпусках. Снижение MAE относительно базового прогноза — 53,5%. Основной поиск включал 400 конфигураций на CPU, RTX 5090 и Brev A6000; отбор выполнен по ноябрю–декабрю 2025.

Точность за февраль неизвестна: фактическая мощность за этот месяц не дана. Метрики · Базовые прогнозы · Отчёт об обучении.

Технологии и настройки

ЧастьСтек и зафиксированные зависимости
Данные и модельPython 3.12, NumPy, pandas, scikit-learn; requirements.txt
Агент и APIFastAPI, Pydantic, DuckDB, ecCodes; pyproject.toml, uv.lock
ИнтерфейсNext.js 16, React 19, TypeScript, Tailwind, Three.js; package-lock.json
ОбучениеPyTorch с CUDA, локальная GPU и NVIDIA Brev; готовый прогноз работает без PyTorch

Backend читает .env, затем backend/.env; переменные процесса имеют приоритет. Полный пример — .env.example. Ключи остаются на сервере.

ПараметрыНазначение / значение
RENTBOX_SOURCE_TIMEZONE / RENTBOX_TIMESTAMP_MEANINGДля поставляемой модели: Etc/GMT-5 / interval_start
RENTBOX_ALLOW_RESEARCH_TIME_SETTINGS / RENTBOX_TIME_CONFIGURATION_CONFIRMEDБыстрый старт: true / false; подтверждение менять только после ответа организаторов
BACKEND_PORT / WEB_PORTПорты запуска; обычно 8000 / 3000, задаются перед командой run.sh
RENTBOX_DATABASE_PATHЛокально data/forecasts.duckdb; Docker использует сохраняемый том /app/state
RENTBOX_AGENT_FACTORYsrc.agent:create_agent
RENTBOX_MODEL_DIR / RENTBOX_GFS_CACHEМодель / изменяемый кэш; задаются окружением процесса, подробнее в инструкции агента
RENTBOX_CORS_ORIGINSJSON-массив разрешённых адресов интерфейса
OPENAI_HELPER_AUTH_MODE / OPENAI_API_KEYСпособ подключения Astra / серверный API-ключ
OPENAI_HELPER_ENABLEDВключение Astra; без доступного подключения работает обычная справка
NVIDIA_ENABLED / NVIDIA_API_KEYНеобязательные пояснения NVIDIA NIM; по умолчанию отключены

При CONFIGURATION_REQUIRED прочитайте сообщение API и проверьте временные настройки в существующем .env. При изменении подтверждённого часового пояса или координат потребуется пересобрать данные и переобучить модель.

Помощник сайта и NVIDIA

Astra: откройте «Помощник» на сайте. Модель gpt-6-astra получает справку и контекст выбранного выпуска; системный промпт ограничивает ответы известными сведениями, сервер проверяет источники и кнопки перехода.

Подключение — ./run.sh settings: API key для сервера или аккаунт ChatGPT через установленный Codex CLI для локальной проверки. В последнем режиме backend запускается на компьютере, история проверки хранится отдельно в .run/chatgpt/forecasts.duckdb; токены входа Codex в проект не копируются. Модель в обоих случаях работает в облаке OpenAI. Применение настроек — ./run.sh all. Без подключения и при ошибке доступна явно обозначенная справка платформы.

NVIDIA NIM: необязательные пояснения и рекомендации. Обучение модели ВЭС выполняется на CPU/CUDA/Brev отдельной командой ./scripts/train.sh; результаты сохраняются в artifacts/retraining/, отдельно от поставляемой модели. Настройки Astra · Системный промпт · NVIDIA и обучение.

Известные ограничения

  • Часовой пояс и смысл меток измерений требуют подтверждения; результаты исследовательские.
  • Нет февральского факта, параметров нормализации и подтверждённого номинала турбин. Вероятностные интервалы и денежная оценка эффекта не рассчитываются.
  • NOAA-сценарий рассчитан на ежедневный выпуск в 18:00 UTC; сетка 0.25° и интерполяция ограничивают детализацию погоды.
  • Нет фонового обновления погоды и автоматического дообучения по датчикам.
  • 3D-сцена иллюстративная: вращение не измеряет обороты, лёд не является диагнозом. В старых сохранённых выпусках могут отсутствовать погодные значения для отображения.
  • DuckDB используется с одним процессом-писателем; backend — с одним worker.
  • Проверка схемы ответа Astra не гарантирует фактическую безошибочность текста.
  • Развёрнутая публичная версия и видео: пока отсутствуют; проверка — локально.

Дальнейшее развитие: фоновые обновления, приём измерений с датчиков, проверяемое переобучение на новых данных, интервалы неопределённости и планирование окон обслуживания. Диагностика простоев требует эксплуатационных статусов; расхождение двух прогнозов само по себе не измеряет ошибку. Бэклог.

Проверки и структура репозитория

Проверен запрос через прокси дашборда к реальному backend: расчёт 48 часов для двух турбин завершился, CSV содержит 96 строк. Сохранён отчёт полного февральского replay. Это не заменяет проверку итогового коммита из чистого клона.

make test                 # тесты backend (нужен uv)
make lint                 # статический анализ backend
npm test                  # тесты frontend
npm run typecheck         # TypeScript
./scripts/check-clean-env.sh  # чистый клон: сборка Docker и health

Последний скрипт проверяет запуск контейнера; работу интерфейса и расчёт проверяют шаги раздела «Проверка основного сценария».

КаталогСодержимое
data/incoming/, data/gfs-runs/Исходные CSV и архив прогнозов погоды
artifacts/gfs-model/, artifacts/gfs-search/Модель, метрики, прогнозы и результаты отбора
src/, backend/app/Агент, расчёт, API и хранение
apps/web/, packages/ui/Интерфейс и компоненты
reports/, docs/Аудит, отчёты, ТЗ и инструкции

ТЗ и критерии · API · Подключение фронта · Журнал изменений.

Внешние материалы

Источники данных, библиотеки и лицензии
МатериалИсточникЛицензия / условия
CSV двух турбинОрганизаторы, ссылки в reports/data-audit.mdПредоставлены для кейса; отдельная открытая лицензия не указана
Операционные прогнозы NOAA GFSNOAA GFS в AWSОткрытые данные NOAA; использовать с указанием источника. Сохранены точки, метаданные и хэши GRIB-полей
Архивные прогнозы GFS / ICONOpen-Meteo, NOAA / DWDCC BY 4.0; исходные ответы сохранены, признаки преобразованы нами
ecCodes, чтение GRIBECMWF ecCodesApache-2.0
Pythonpython.orgPSF
FastAPIfastapi.tiangolo.comMIT
Pydantic / settingsdocs.pydantic.devMIT
NumPy, pandas, scikit-learnNumPy, pandas, scikit-learnBSD-3-Clause
Joblib, threadpoolctlJoblib, threadpoolctlBSD-3-Clause
HTTPX / Uvicornpython-httpx.org, uvicorn.orgBSD-3-Clause
DuckDBduckdb.orgMIT
PyArrowApache ArrowApache-2.0
PyTorch, только обучениеPyTorchBSD-3-Clause
OpenAI GPT-6 Astra, помощник сайтаМодель и APIОблачный сервис OpenAI; серверный API-ключ или локальный вход Codex через ChatGPT, обычная справка без подключения
NVIDIA Nemotron, необязательные пояснения NIMМодель и APINVIDIA Open Model License и Llama 3.3 Community License; hosted API — условия NVIDIA API
CatBoost, дополнительное обучение на BrevCatBoostApache-2.0; в обязательные зависимости инференса не входит
uvdocs.astral.shMIT / Apache-2.0
ESLint / PrettierESLint, PrettierMIT
pytest / Ruffpytest.org, docs.astral.sh/ruffMIT
Three.js, просмотр 3D-турбиныThree.jsMIT; версия и лицензия закреплены в package-lock.json
next (frontend)npmMIT
react (frontend)npmMIT
shadcn (frontend)npmMIT
@base-ui/react (frontend)npmMIT
tailwindcss (frontend)npmMIT
typescript (frontend)npmApache-2.0
turbo (frontend)npmMIT
lucide-react (frontend)npmISC
next-themes (frontend)npmMIT
tw-animate-css (frontend)npmMIT
class-variance-authority (frontend)npmApache-2.0
zod (frontend)npmMIT
cn (frontend)npmMIT

Погодные данные: Weather data by Open-Meteo.com. Транзитивные зависимости backend закреплены в uv.lock.

3D-турбина создана командой в Blender; исходная сцена и генератор включены в репозиторий. Blender и MCP использовались при создании сцены и не требуются для запуска. Источники и ограничения иллюстрации — в документации frontend.

Заранее подготовленные компоненты

До хакатона подготовлены организационные материалы, служебные скрипты и локальное Python/CUDA-окружение. Модель, погодный модуль, агент, API и интерфейс для этого кейса разрабатывались в репозитории 23.09.2026. Для интерфейса использованы Next.js и компоненты shadcn/ui (Vega, Base UI); внешние материалы указаны выше.

Команда и AI-инструменты

УчастникУчётная записьЗона ответственностиОсновные каталоги
Поляков Александр Викторович (капитан)flyperryДанные и аудит, погодный модуль NOAA, обучение и отбор моделей, агент, хранилище прогнозов, запуск и документацияsrc/, scripts/, artifacts/, data/, reports/
Устименко Роман ВикторовичRomarioHTTP API: маршруты, схемы, сервисы, очередь запусков, контракт и OpenAPIbackend/app/, docs/API.md
Ныгметов Нурсултан ЖолдыбаевичCarcadjuДашборд Windcast: интерфейс, библиотека компонентов, 3D-визуализация турбиныapps/web/, packages/ui/

Использовались OpenAI Codex (данные, модель, агент, API, интеграция, документация), Claude Code (DuckDB, аудит, обучение, запуск и интеграция) и Blender MCP (создание 3D-сцены). Результаты работы и вклад участников отражены в истории коммитов и CHANGELOG.md; авторов можно посмотреть через git shortlog -sn HEAD.

Звёзды
⭐ 0
Форки
0
Язык
Python
Последний push
в прошлом месяце
Коммиты
70
Авторы
3
Файлы
1847
Ветки
2

Авторы коммитов

flyperry 44Romario 18Carcadju 8

История коммитов

  • 2026-09-23 17:56Обновление дашборда: добавлены новые функции синтетической симуляции и улучшена документация. Теперь дашборд поддерживает отображение значений с погодными сценариями и обледенением, а также обновлены Romario
  • 2026-09-23 17:56README на английском и казахском рядом с основным; переключатель языковRomario
  • 2026-09-23 17:53Служебные файлы, создаваемые next devflyperry
  • 2026-09-23 17:44Подключена Astra и настройки OpenAIflyperry
  • 2026-09-23 17:44Упрощён README и обновлено описание проектаflyperry
  • 2026-09-23 17:44Исправлен фронт и проигрываниеflyperry
  • 2026-09-23 17:43Адрес API задаётся на этапе сборки фронтаflyperry
  • 2026-09-23 17:39Дашборд в Docker и раскрытие синтетической симуляцииflyperry
Все коммиты (70)
  • 2026-09-23 17:39Вкладки «Обзор» и «Прогноз выработки» разведены по содержаниюRomario
  • 2026-09-23 17:35FRONTEND.md: убрано описание отсутствующего автовоспроизведения периодаRomario
  • 2026-09-23 17:32Панель помощника: отменено центрирующее смещение диалогаRomario
  • 2026-09-23 17:30Помощник как боковая чат-панель; восстановлен дашборд, подключённый к APIRomario
  • 2026-09-23 17:26fix: animate live icing simulations and add hourly playbackCarcadju
  • 2026-09-23 17:26Docker: добавлена нативная библиотека ecCodesflyperry
  • 2026-09-23 17:25Плавающая кнопка помощника с подсказкой «Нужна помощь?»Romario
  • 2026-09-23 17:21Журнал изменений и документация интеграции: погода в ответе, ошибка 405Romario
  • 2026-09-23 17:16Помощник в новом интерфейсе Windcastflyperry
  • 2026-09-23 17:14Все команды в одном блоке README и рабочий make testflyperry
  • 2026-09-23 17:12Сайдбар: квадратная иконка станции и подписи без сжатияRomario
  • 2026-09-23 17:08README: раздел о нереализованных идеяхflyperry
  • 2026-09-23 17:06Исправлено повторное обучениеflyperry
  • 2026-09-23 17:05Merge remote-tracking branch 'origin/main'Romario
  • 2026-09-23 17:05Merge design/dashboard-v2: новый интерфейс поверх реального APIRomario
  • 2026-09-23 17:00README: порядок быстрого старта и пояснение терминовflyperry
  • 2026-09-23 16:59fix: animate live icing simulations and add hourly playbackCarcadju
  • 2026-09-23 16:47Подписи 3D-сцены: ветер и температура теперь приходят из прогнозаRomario
  • 2026-09-23 16:47feat: simulate wind generation over custom periods and weather scenariosCarcadju
  • 2026-09-23 16:46Тест health приведён к текущему ответу APIRomario
  • 2026-09-23 16:43Заполнены ФИО участников в READMEflyperry
  • 2026-09-23 16:41Мастер первоначальной настройки: ./run.sh setupflyperry
  • 2026-09-23 16:29Обучение одной командой с автоматическим выбором NVIDIAflyperry
  • 2026-09-23 16:27Исправлен запуск проектаflyperry
  • 2026-09-23 16:26Ветер и температура в точках прогноза: API, CSV и дашбордRomario
  • 2026-09-23 16:24docs: restore README before appearance updateCarcadju
  • 2026-09-23 16:23feat: add dark theme and accessible low-vision modeCarcadju
  • 2026-09-23 16:18README: пример читаемого вывода рядом с машинным CSVflyperry
  • 2026-09-23 16:18Читаемый вывод прогноза и быстрая диагностика занятого портаflyperry
  • 2026-09-23 16:13Понятная формулировка в меню запускаflyperry
  • 2026-09-23 16:12Уточнены цифры в документацииflyperry
  • 2026-09-23 16:11Меню запуска и проверка чистой сборки после перехода на NOAAflyperry
  • 2026-09-23 16:06Обновлён README и документация по API, добавлены маршруты для получения истории запусков агента. Подключён реальный backend к дашборду, улучшена обработка данных и интерфейс. Исправлены ошибки в отобрRomario
  • 2026-09-23 15:59feat: add dashboard v2 with synchronized insights and RU EN KK localesCarcadju
  • 2026-09-23 15:59README: ценность в цифрах, пример вывода и чеклист проверкиflyperry
  • 2026-09-23 15:32Упрощён READMEflyperry
  • 2026-09-23 15:22feat: connect Blender turbine scenes to dashboard interactionsCarcadju
  • 2026-09-23 15:18Подключена новая модельflyperry
  • 2026-09-23 15:18Обучена модель NOAAflyperry
  • 2026-09-23 15:08Стенд для интеграции фронта: run.sh all, гайд и живые примеры APIflyperry
  • 2026-09-23 15:00Журнал: запуск одной командой и починка целостности CSVflyperry
  • 2026-09-23 15:00Исходные CSV хранятся без нормализации переводов строкflyperry
  • 2026-09-23 14:59Запуск одной командой: run.sh и быстрый старт в READMEflyperry
  • 2026-09-23 14:58Merge remote-tracking branch 'origin/main'flyperry
  • 2026-09-23 14:58Сохранены результаты обучения моделейflyperry
  • 2026-09-23 14:56Подключён агент и архив NOAAflyperry
  • 2026-09-23 14:50Обновлены разделы AGENTS.md, CHANGELOG.md и README.md для отражения изменений в контракте v0.3. Включены уточнения по обработке данных, проверкам выполнения и формату API. Реальный агент всё ещё требуRomario
  • 2026-09-23 14:47Merge branch 'main' of github.com:BAITC-Hacks/hack-575875e7-rentboxflyperry
  • 2026-09-23 14:46Поиск моделей на RTX 5090: 984 кандидата, плато подтвержденоflyperry
  • 2026-09-23 14:46Обновление версии API до 0.3, добавление поддержки новых погодных источников и улучшение обработки данных. Обновлены схемы и документация, включая изменения в структуре ответов и форматах CSV. ИсправлRomario
  • 2026-09-23 14:35Трассировка требований кейса и эволюционный поиск моделейflyperry
  • 2026-09-23 14:32Объединены модель, сервер и интерфейсflyperry
  • 2026-09-23 14:30Улучшена модель прогнозаflyperry
  • 2026-09-23 14:20feat: add Windcast dashboard with mock forecasting dataCarcadju
  • 2026-09-23 14:16first commitRomario
  • 2026-09-23 14:05Обучена модель прогноза ВЭСflyperry
  • 2026-09-23 14:05Добавлены архивы погоды и подготовка данныхflyperry
  • 2026-09-23 14:02Бэклог отраслевых сценариев и находки по простоям турбинflyperry
  • 2026-09-23 13:31Добавлены план работы и описание APIflyperry
  • 2026-09-23 13:29Турбина определяется по имени файла, а не по порядку в каталогеflyperry
  • 2026-09-23 13:24Хранилище истории прогнозов на DuckDB и журнал измененийflyperry
  • 2026-09-23 13:18Добавлены данные ВЭС и отчёт проверкиflyperry
Структура репозитория (1847 файлов)
.dockerignore
.env.example
.eslintrc.js
.gitattributes
.gitignore
.npmrc
.prettierignore
.prettierrc
AGENTS.md
CHANGELOG.md
CLAUDE.md
Makefile
README.en.md
README.md
START-HERE.md
apps/web/.env.example
apps/web/AGENTS.md
apps/web/CLAUDE.md
apps/web/Dockerfile
apps/web/app/appearance.css
apps/web/app/assistant-launcher.css
apps/web/app/dashboard-v2.css
apps/web/app/dashboard.css
apps/web/app/favicon.ico
apps/web/app/icon.svg
apps/web/app/layout.tsx
apps/web/app/page.tsx
apps/web/app/platform-helper.css
apps/web/app/simulation.css
apps/web/components.json
apps/web/components/.gitkeep
apps/web/components/appearance-provider.tsx
apps/web/components/assistant-launcher.tsx
apps/web/components/forecast-focus.tsx
apps/web/components/locale-provider.tsx
apps/web/components/motion-preference.ts
apps/web/components/platform-helper.tsx
apps/web/components/simulation-controls.tsx
apps/web/components/theme-provider.tsx
apps/web/components/turbine-hero.tsx
apps/web/components/turbine-stage.tsx
apps/web/components/wind-dashboard.tsx
apps/web/eslint.config.js
apps/web/hooks/.gitkeep
apps/web/lib/.gitkeep
apps/web/lib/forecast-api.ts
apps/web/lib/forecast-data.ts
apps/web/lib/forecast-insights.ts
apps/web/lib/helper-api.ts
apps/web/lib/translations.ts
apps/web/lib/turbine-renderer.ts
apps/web/lib/turbine-scene.ts
apps/web/lib/use-forecast-dashboard.ts
apps/web/lib/wind-simulation.ts
apps/web/next.config.ts
apps/web/package.json
apps/web/postcss.config.mjs
apps/web/public/models/windcast-turbine.glb
apps/web/public/models/windcast-turbine.png
apps/web/tsconfig.json
artifacts/ensemble/february_replay.csv
artifacts/ensemble/january_predictions.csv
artifacts/ensemble/metrics.json
artifacts/ensemble/model.joblib
artifacts/ensemble/report.md
artifacts/ensemble/validation_model.joblib
artifacts/expanded/february_replay.csv
artifacts/expanded/january_predictions.csv
artifacts/expanded/metrics.json
artifacts/expanded/model.joblib
artifacts/expanded/report.md
artifacts/expanded/validation_model.joblib
artifacts/forecast/february_replay.csv
artifacts/forecast/january_predictions.csv
artifacts/forecast/metrics.json
artifacts/forecast/model.joblib
artifacts/forecast/report.md
artifacts/forecast/validation_model.joblib
artifacts/gfs-model/baselines.json
artifacts/gfs-model/february_replay.csv
artifacts/gfs-model/first-forecast.csv
artifacts/gfs-model/january_predictions.csv
artifacts/gfs-model/metrics.json
artifacts/gfs-model/model.joblib
artifacts/gfs-model/report.md
artifacts/gfs-model/validation_model.joblib
artifacts/gfs-search/protocol.json
artifacts/gfs-search/selection.json
artifacts/power_curve/january_diagnostic.csv
artifacts/power_curve/metrics.json
artifacts/power_curve/model.joblib
artifacts/rtx5090-local/best.joblib
artifacts/rtx5090-local/ensemble/metrics.json
artifacts/rtx5090-local/ensemble/model.joblib
artifacts/rtx5090-local/generations/champion.joblib
artifacts/rtx5090-local/generations/champion.json
artifacts/rtx5090-local/generations/history.json
artifacts/rtx5090-local/generations/leaderboard.csv
artifacts/rtx5090-local/leaderboard.csv
artifacts/rtx5090-local/run.json
artifacts/rtx5090-local/summary.json
artifacts/search/cloud-environment.json
artifacts/search/expanded-selection.json
artifacts/search/protocol.json
artifacts/search/selection.json
artifacts/search/winter-shortlist.json
artifacts/search/winter-validation.json
assets/blender/windcast-turbine.blend
backend/.dockerignore
backend/.python-version
backend/Dockerfile
backend/README.en.md
backend/README.kk.md
backend/README.md
backend/__init__.py
backend/app/__init__.py
backend/app/api/__init__.py
backend/app/api/deps.py
backend/app/api/router.py
backend/app/api/routes/__init__.py
backend/app/api/routes/data.py
backend/app/api/routes/forecasts.py
backend/app/api/routes/health.py
backend/app/api/routes/helper.py
backend/app/api/routes/nvidia.py
backend/app/api/routes/turbines.py
backend/app/core/__init__.py
backend/app/core/config.py
backend/app/core/errors.py
backend/app/integrations/__init__.py
backend/app/integrations/forecasting.py
backend/app/integrations/storage.py
backend/app/main.py
backend/app/prompts/helper-knowledge.json
backend/app/prompts/helper-system.md
backend/app/schemas/__init__.py
backend/app/schemas/common.py
backend/app/schemas/data.py
backend/app/schemas/forecast.py
backend/app/schemas/helper.py
backend/app/schemas/turbine.py
backend/app/schemas/weather.py
backend/app/services/__init__.py
backend/app/services/data.py
backend/app/services/forecasts.py
backend/app/services/helper.py
backend/app/services/helper_codex.py
backend/app/services/turbines.py
backend/config/turbines.json
backend/openapi.json
backend/pyproject.toml
backend/scripts/export_openapi.py
backend/tests/conftest.py
backend/tests/test_api.py
backend/tests/test_forecast_gateway.py
backend/tests/test_nvidia_api.py
backend/tests/test_training_workers.py
backend/uv.lock
compose.yml
data/gfs-runs/2024-03-01.csv
data/gfs-runs/2024-03-01.meta.json
data/gfs-runs/2024-03-02.csv
data/gfs-runs/2024-03-02.meta.json
data/gfs-runs/2024-03-03.csv
data/gfs-runs/2024-03-03.meta.json
data/gfs-runs/2024-03-04.csv
data/gfs-runs/2024-03-04.meta.json
data/gfs-runs/2024-03-05.csv
data/gfs-runs/2024-03-05.meta.json
data/gfs-runs/2024-03-06.csv
data/gfs-runs/2024-03-06.meta.json
data/gfs-runs/2024-03-07.csv
data/gfs-runs/2024-03-07.meta.json
data/gfs-runs/2024-03-08.csv
data/gfs-runs/2024-03-08.meta.json
data/gfs-runs/2024-03-09.csv
data/gfs-runs/2024-03-09.meta.json
data/gfs-runs/2024-03-10.csv
data/gfs-runs/2024-03-10.meta.json
data/gfs-runs/2024-03-11.csv
data/gfs-runs/2024-03-11.meta.json
data/gfs-runs/2024-03-12.csv
data/gfs-runs/2024-03-12.meta.json
data/gfs-runs/2024-03-13.csv
data/gfs-runs/2024-03-13.meta.json
data/gfs-runs/2024-03-14.csv
data/gfs-runs/2024-03-14.meta.json
data/gfs-runs/2024-03-15.csv
data/gfs-runs/2024-03-15.meta.json
data/gfs-runs/2024-03-16.csv
data/gfs-runs/2024-03-16.meta.json
data/gfs-runs/2024-03-17.csv
data/gfs-runs/2024-03-17.meta.json
data/gfs-runs/2024-03-18.csv
data/gfs-runs/2024-03-18.meta.json
data/gfs-runs/2024-03-19.csv
data/gfs-runs/2024-03-19.meta.json
data/gfs-runs/2024-03-20.csv
data/gfs-runs/2024-03-20.meta.json
data/gfs-runs/2024-03-21.csv
data/gfs-runs/2024-03-21.meta.json
data/gfs-runs/2024-03-22.csv
data/gfs-runs/2024-03-22.meta.json
data/gfs-runs/2024-03-23.csv
data/gfs-runs/2024-03-23.meta.json
data/gfs-runs/2024-03-24.csv
data/gfs-runs/2024-03-24.meta.json
data/gfs-runs/2024-03-25.csv
data/gfs-runs/2024-03-25.meta.json
data/gfs-runs/2024-03-26.csv
data/gfs-runs/2024-03-26.meta.json
data/gfs-runs/2024-03-27.csv
data/gfs-runs/2024-03-27.meta.json
data/gfs-runs/2024-03-28.csv
data/gfs-runs/2024-03-28.meta.json
data/gfs-runs/2024-03-29.csv
data/gfs-runs/2024-03-29.meta.json
data/gfs-runs/2024-03-30.csv
data/gfs-runs/2024-03-30.meta.json
data/gfs-runs/2024-03-31.csv
data/gfs-runs/2024-03-31.meta.json
data/gfs-runs/2024-04-01.csv
data/gfs-runs/2024-04-01.meta.json
data/gfs-runs/2024-04-02.csv
data/gfs-runs/2024-04-02.meta.json
data/gfs-runs/2024-04-03.csv
data/gfs-runs/2024-04-03.meta.json
data/gfs-runs/2024-04-04.csv
data/gfs-runs/2024-04-04.meta.json
data/gfs-runs/2024-04-05.csv
data/gfs-runs/2024-04-05.meta.json
data/gfs-runs/2024-04-06.csv
data/gfs-runs/2024-04-06.meta.json
data/gfs-runs/2024-04-07.csv
data/gfs-runs/2024-04-07.meta.json
data/gfs-runs/2024-04-08.csv
data/gfs-runs/2024-04-08.meta.json
data/gfs-runs/2024-04-09.csv
data/gfs-runs/2024-04-09.meta.json
data/gfs-runs/2024-04-10.csv
data/gfs-runs/2024-04-10.meta.json
data/gfs-runs/2024-04-11.csv
data/gfs-runs/2024-04-11.meta.json
data/gfs-runs/2024-04-12.csv
data/gfs-runs/2024-04-12.meta.json
data/gfs-runs/2024-04-13.csv
data/gfs-runs/2024-04-13.meta.json
data/gfs-runs/2024-04-14.csv
data/gfs-runs/2024-04-14.meta.json
data/gfs-runs/2024-04-15.csv
data/gfs-runs/2024-04-15.meta.json
data/gfs-runs/2024-04-16.csv
data/gfs-runs/2024-04-16.meta.json
data/gfs-runs/2024-04-17.csv
data/gfs-runs/2024-04-17.meta.json
data/gfs-runs/2024-04-18.csv
data/gfs-runs/2024-04-18.meta.json
data/gfs-runs/2024-04-19.csv
data/gfs-runs/2024-04-19.meta.json
data/gfs-runs/2024-04-20.csv
data/gfs-runs/2024-04-20.meta.json
data/gfs-runs/2024-04-21.csv
data/gfs-runs/2024-04-21.meta.json
data/gfs-runs/2024-04-22.csv
data/gfs-runs/2024-04-22.meta.json
data/gfs-runs/2024-04-23.csv
data/gfs-runs/2024-04-23.meta.json
data/gfs-runs/2024-04-24.csv
data/gfs-runs/2024-04-24.meta.json
data/gfs-runs/2024-04-25.csv
data/gfs-runs/2024-04-25.meta.json
data/gfs-runs/2024-04-26.csv
data/gfs-runs/2024-04-26.meta.json
data/gfs-runs/2024-04-27.csv
data/gfs-runs/2024-04-27.meta.json
data/gfs-runs/2024-04-28.csv
data/gfs-runs/2024-04-28.meta.json
data/gfs-runs/2024-04-29.csv
data/gfs-runs/2024-04-29.meta.json
data/gfs-runs/2024-04-30.csv
data/gfs-runs/2024-04-30.meta.json
data/gfs-runs/2024-05-01.csv
data/gfs-runs/2024-05-01.meta.json
data/gfs-runs/2024-05-02.csv
data/gfs-runs/2024-05-02.meta.json
data/gfs-runs/2024-05-03.csv
data/gfs-runs/2024-05-03.meta.json
data/gfs-runs/2024-05-04.csv
data/gfs-runs/2024-05-04.meta.json
data/gfs-runs/2024-05-05.csv
data/gfs-runs/2024-05-05.meta.json
data/gfs-runs/2024-05-06.csv
data/gfs-runs/2024-05-06.meta.json
data/gfs-runs/2024-05-07.csv
data/gfs-runs/2024-05-07.meta.json
data/gfs-runs/2024-05-08.csv
data/gfs-runs/2024-05-08.meta.json
data/gfs-runs/2024-05-09.csv
data/gfs-runs/2024-05-09.meta.json
data/gfs-runs/2024-05-10.csv
data/gfs-runs/2024-05-10.meta.json
data/gfs-runs/2024-05-11.csv
data/gfs-runs/2024-05-11.meta.json
data/gfs-runs/2024-05-12.csv
data/gfs-runs/2024-05-12.meta.json
data/gfs-runs/2024-05-13.csv
data/gfs-runs/2024-05-13.meta.json
data/gfs-runs/2024-05-14.csv
data/gfs-runs/2024-05-14.meta.json
data/gfs-runs/2024-05-15.csv
data/gfs-runs/2024-05-15.meta.json
data/gfs-runs/2024-05-16.csv
data/gfs-runs/2024-05-16.meta.json
data/gfs-runs/2024-05-17.csv
data/gfs-runs/2024-05-17.meta.json
data/gfs-runs/2024-05-18.csv
data/gfs-runs/2024-05-18.meta.json
data/gfs-runs/2024-05-19.csv
data/gfs-runs/2024-05-19.meta.json
data/gfs-runs/2024-05-20.csv
data/gfs-runs/2024-05-20.meta.json
data/gfs-runs/2024-05-21.csv
data/gfs-runs/2024-05-21.meta.json
data/gfs-runs/2024-05-22.csv
data/gfs-runs/2024-05-22.meta.json
data/gfs-runs/2024-05-23.csv
data/gfs-runs/2024-05-23.meta.json
data/gfs-runs/2024-05-24.csv
data/gfs-runs/2024-05-24.meta.json
data/gfs-runs/2024-05-25.csv
data/gfs-runs/2024-05-25.meta.json
data/gfs-runs/2024-05-26.csv
data/gfs-runs/2024-05-26.meta.json
data/gfs-runs/2024-05-27.csv
data/gfs-runs/2024-05-27.meta.json
data/gfs-runs/2024-05-28.csv
data/gfs-runs/2024-05-28.meta.json
data/gfs-runs/2024-05-29.csv
data/gfs-runs/2024-05-29.meta.json
data/gfs-runs/2024-05-30.csv
data/gfs-runs/2024-05-30.meta.json
data/gfs-runs/2024-05-31.csv
data/gfs-runs/2024-05-31.meta.json
data/gfs-runs/2024-06-01.csv
data/gfs-runs/2024-06-01.meta.json
data/gfs-runs/2024-06-02.csv
data/gfs-runs/2024-06-02.meta.json
data/gfs-runs/2024-06-03.csv
data/gfs-runs/2024-06-03.meta.json
data/gfs-runs/2024-06-04.csv
data/gfs-runs/2024-06-04.meta.json
data/gfs-runs/2024-06-05.csv
data/gfs-runs/2024-06-05.meta.json
data/gfs-runs/2024-06-06.csv
data/gfs-runs/2024-06-06.meta.json
data/gfs-runs/2024-06-07.csv
data/gfs-runs/2024-06-07.meta.json
data/gfs-runs/2024-06-08.csv
data/gfs-runs/2024-06-08.meta.json
data/gfs-runs/2024-06-09.csv
data/gfs-runs/2024-06-09.meta.json
data/gfs-runs/2024-06-10.csv
data/gfs-runs/2024-06-10.meta.json
data/gfs-runs/2024-06-11.csv
data/gfs-runs/2024-06-11.meta.json
data/gfs-runs/2024-06-12.csv
data/gfs-runs/2024-06-12.meta.json
data/gfs-runs/2024-06-13.csv
data/gfs-runs/2024-06-13.meta.json
data/gfs-runs/2024-06-14.csv
data/gfs-runs/2024-06-14.meta.json
data/gfs-runs/2024-06-15.csv
data/gfs-runs/2024-06-15.meta.json
data/gfs-runs/2024-06-16.csv
data/gfs-runs/2024-06-16.meta.json
data/gfs-runs/2024-06-17.csv
data/gfs-runs/2024-06-17.meta.json
data/gfs-runs/2024-06-18.csv
data/gfs-runs/2024-06-18.meta.json
data/gfs-runs/2024-06-19.csv
data/gfs-runs/2024-06-19.meta.json
data/gfs-runs/2024-06-20.csv
data/gfs-runs/2024-06-20.meta.json
data/gfs-runs/2024-06-21.csv
data/gfs-runs/2024-06-21.meta.json
data/gfs-runs/2024-06-22.csv
data/gfs-runs/2024-06-22.meta.json
data/gfs-runs/2024-06-23.csv
data/gfs-runs/2024-06-23.meta.json
data/gfs-runs/2024-06-24.csv
data/gfs-runs/2024-06-24.meta.json
data/gfs-runs/2024-06-25.csv
data/gfs-runs/2024-06-25.meta.json
data/gfs-runs/2024-06-26.csv
data/gfs-runs/2024-06-26.meta.json
data/gfs-runs/2024-06-27.csv
data/gfs-runs/2024-06-27.meta.json
data/gfs-runs/2024-06-28.csv
data/gfs-runs/2024-06-28.meta.json
data/gfs-runs/2024-06-29.csv
data/gfs-runs/2024-06-29.meta.json
data/gfs-runs/2024-06-30.csv
data/gfs-runs/2024-06-30.meta.json
data/gfs-runs/2024-07-01.csv
data/gfs-runs/2024-07-01.meta.json
data/gfs-runs/2024-07-02.csv
data/gfs-runs/2024-07-02.meta.json
data/gfs-runs/2024-07-03.csv
data/gfs-runs/2024-07-03.meta.json
data/gfs-runs/2024-07-04.csv
data/gfs-runs/2024-07-04.meta.json
data/gfs-runs/2024-07-05.csv
data/gfs-runs/2024-07-05.meta.json
data/gfs-runs/2024-07-06.csv
data/gfs-runs/2024-07-06.meta.json
data/gfs-runs/2024-07-07.csv
data/gfs-runs/2024-07-07.meta.json
data/gfs-runs/2024-07-08.csv
data/gfs-runs/2024-07-08.meta.json
data/gfs-runs/2024-07-09.csv
data/gfs-runs/2024-07-09.meta.json
data/gfs-runs/2024-07-10.csv
data/gfs-runs/2024-07-10.meta.json
data/gfs-runs/2024-07-11.csv
data/gfs-runs/2024-07-11.meta.json
data/gfs-runs/2024-07-12.csv
data/gfs-runs/2024-07-12.meta.json
data/gfs-runs/2024-07-13.csv
data/gfs-runs/2024-07-13.meta.json
data/gfs-runs/2024-07-14.csv
data/gfs-runs/2024-07-14.meta.json
data/gfs-runs/2024-07-15.csv
data/gfs-runs/2024-07-15.meta.json
data/gfs-runs/2024-07-16.csv
data/gfs-runs/2024-07-16.meta.json
data/gfs-runs/2024-07-17.csv
data/gfs-runs/2024-07-17.meta.json
data/gfs-runs/2024-07-18.csv
data/gfs-runs/2024-07-18.meta.json
data/gfs-runs/2024-07-19.csv
data/gfs-runs/2024-07-19.meta.json
data/gfs-runs/2024-07-20.csv
data/gfs-runs/2024-07-20.meta.json
data/gfs-runs/2024-07-21.csv
data/gfs-runs/2024-07-21.meta.json
data/gfs-runs/2024-07-22.csv
data/gfs-runs/2024-07-22.meta.json
data/gfs-runs/2024-07-23.csv
data/gfs-runs/2024-07-23.meta.json
data/gfs-runs/2024-07-24.csv
data/gfs-runs/2024-07-24.meta.json
data/gfs-runs/2024-07-25.csv
data/gfs-runs/2024-07-25.meta.json
data/gfs-runs/2024-07-26.csv
data/gfs-runs/2024-07-26.meta.json
data/gfs-runs/2024-07-27.csv
data/gfs-runs/2024-07-27.meta.json
data/gfs-runs/2024-07-28.csv
data/gfs-runs/2024-07-28.meta.json
data/gfs-runs/2024-07-29.csv
data/gfs-runs/2024-07-29.meta.json
data/gfs-runs/2024-07-30.csv
data/gfs-runs/2024-07-30.meta.json
data/gfs-runs/2024-07-31.csv
data/gfs-runs/2024-07-31.meta.json
data/gfs-runs/2024-08-01.csv
data/gfs-runs/2024-08-01.meta.json
data/gfs-runs/2024-08-02.csv
data/gfs-runs/2024-08-02.meta.json
data/gfs-runs/2024-08-03.csv
data/gfs-runs/2024-08-03.meta.json
data/gfs-runs/2024-08-04.csv
data/gfs-runs/2024-08-04.meta.json
data/gfs-runs/2024-08-05.csv
data/gfs-runs/2024-08-05.meta.json
data/gfs-runs/2024-08-06.csv
data/gfs-runs/2024-08-06.meta.json
data/gfs-runs/2024-08-07.csv
data/gfs-runs/2024-08-07.meta.json
data/gfs-runs/2024-08-08.csv
data/gfs-runs/2024-08-08.meta.json
data/gfs-runs/2024-08-09.csv
data/gfs-runs/2024-08-09.meta.json
data/gfs-runs/2024-08-10.csv
data/gfs-runs/2024-08-10.meta.json
data/gfs-runs/2024-08-11.csv
data/gfs-runs/2024-08-11.meta.json
data/gfs-runs/2024-08-12.csv
data/gfs-runs/2024-08-12.meta.json
data/gfs-runs/2024-08-13.csv
data/gfs-runs/2024-08-13.meta.json
data/gfs-runs/2024-08-14.csv
data/gfs-runs/2024-08-14.meta.json
data/gfs-runs/2024-08-15.csv
data/gfs-runs/2024-08-15.meta.json
data/gfs-runs/2024-08-16.csv
data/gfs-runs/2024-08-16.meta.json
data/gfs-runs/2024-08-17.csv
data/gfs-runs/2024-08-17.meta.json
data/gfs-runs/2024-08-18.csv
data/gfs-runs/2024-08-18.meta.json
data/gfs-runs/2024-08-19.csv
data/gfs-runs/2024-08-19.meta.json
data/gfs-runs/2024-08-20.csv
data/gfs-runs/2024-08-20.meta.json
data/gfs-runs/2024-08-21.csv
data/gfs-runs/2024-08-21.meta.json
data/gfs-runs/2024-08-22.csv
data/gfs-runs/2024-08-22.meta.json
data/gfs-runs/2024-08-23.csv
data/gfs-runs/2024-08-23.meta.json
data/gfs-runs/2024-08-24.csv
data/gfs-runs/2024-08-24.meta.json
data/gfs-runs/2024-08-25.csv
data/gfs-runs/2024-08-25.meta.json
data/gfs-runs/2024-08-26.csv
data/gfs-runs/2024-08-26.meta.json
data/gfs-runs/2024-08-27.csv
data/gfs-runs/2024-08-27.meta.json
data/gfs-runs/2024-08-28.csv
data/gfs-runs/2024-08-28.meta.json
data/gfs-runs/2024-08-29.csv
data/gfs-runs/2024-08-29.meta.json
data/gfs-runs/2024-08-30.csv
data/gfs-runs/2024-08-30.meta.json
data/gfs-runs/2024-08-31.csv
data/gfs-runs/2024-08-31.meta.json
data/gfs-runs/2024-09-01.csv
data/gfs-runs/2024-09-01.meta.json
data/gfs-runs/2024-09-02.csv
data/gfs-runs/2024-09-02.meta.json
data/gfs-runs/2024-09-03.csv
data/gfs-runs/2024-09-03.meta.json
data/gfs-runs/2024-09-04.csv
data/gfs-runs/2024-09-04.meta.json
data/gfs-runs/2024-09-05.csv
data/gfs-runs/2024-09-05.meta.json
data/gfs-runs/2024-09-06.csv
data/gfs-runs/2024-09-06.meta.json
data/gfs-runs/2024-09-07.csv
data/gfs-runs/2024-09-07.meta.json
data/gfs-runs/2024-09-08.csv
data/gfs-runs/2024-09-08.meta.json
data/gfs-runs/2024-09-09.csv
data/gfs-runs/2024-09-09.meta.json
data/gfs-runs/2024-09-10.csv
data/gfs-runs/2024-09-10.meta.json
data/gfs-runs/2024-09-11.csv
data/gfs-runs/2024-09-11.meta.json
data/gfs-runs/2024-09-12.csv
data/gfs-runs/2024-09-12.meta.json
data/gfs-runs/2024-09-13.csv
data/gfs-runs/2024-09-13.meta.json
data/gfs-runs/2024-09-14.csv
data/gfs-runs/2024-09-14.meta.json
data/gfs-runs/2024-09-15.csv
data/gfs-runs/2024-09-15.meta.json
data/gfs-runs/2024-09-16.csv
data/gfs-runs/2024-09-16.meta.json
data/gfs-runs/2024-09-17.csv
data/gfs-runs/2024-09-17.meta.json
data/gfs-runs/2024-09-18.csv
data/gfs-runs/2024-09-18.meta.json
data/gfs-runs/2024-09-19.csv
data/gfs-runs/2024-09-19.meta.json
data/gfs-runs/2024-09-20.csv
data/gfs-runs/2024-09-20.meta.json
data/gfs-runs/2024-09-21.csv
data/gfs-runs/2024-09-21.meta.json
data/gfs-runs/2024-09-22.csv
data/gfs-runs/2024-09-22.meta.json
data/gfs-runs/2024-09-23.csv
data/gfs-runs/2024-09-23.meta.json
data/gfs-runs/2024-09-24.csv
data/gfs-runs/2024-09-24.meta.json
data/gfs-runs/2024-09-25.csv
data/gfs-runs/2024-09-25.meta.json
data/gfs-runs/2024-09-26.csv
data/gfs-runs/2024-09-26.meta.json
data/gfs-runs/2024-09-27.csv
data/gfs-runs/2024-09-27.meta.json
data/gfs-runs/2024-09-28.csv
data/gfs-runs/2024-09-28.meta.json
data/gfs-runs/2024-09-29.csv
data/gfs-runs/2024-09-29.meta.json
data/gfs-runs/2024-09-30.csv
data/gfs-runs/2024-09-30.meta.json
data/gfs-runs/2024-10-01.csv
data/gfs-runs/2024-10-01.meta.json
data/gfs-runs/2024-10-02.csv
data/gfs-runs/2024-10-02.meta.json
data/gfs-runs/2024-10-03.csv
data/gfs-runs/2024-10-03.meta.json
data/gfs-runs/2024-10-04.csv
data/gfs-runs/2024-10-04.meta.json
data/gfs-runs/2024-10-05.csv
data/gfs-runs/2024-10-05.meta.json
data/gfs-runs/2024-10-06.csv
data/gfs-runs/2024-10-06.meta.json
data/gfs-runs/2024-10-07.csv
data/gfs-runs/2024-10-07.meta.json
data/gfs-runs/2024-10-08.csv
data/gfs-runs/2024-10-08.meta.json
data/gfs-runs/2024-10-09.csv
data/gfs-runs/2024-10-09.meta.json
data/gfs-runs/2024-10-10.csv
data/gfs-runs/2024-10-10.meta.json
data/gfs-runs/2024-10-11.csv
data/gfs-runs/2024-10-11.meta.json
data/gfs-runs/2024-10-12.csv
data/gfs-runs/2024-10-12.meta.json
data/gfs-runs/2024-10-13.csv
data/gfs-runs/2024-10-13.meta.json
data/gfs-runs/2024-10-14.csv
data/gfs-runs/2024-10-14.meta.json
data/gfs-runs/2024-10-15.csv
data/gfs-runs/2024-10-15.meta.json
data/gfs-runs/2024-10-16.csv
data/gfs-runs/2024-10-16.meta.json
data/gfs-runs/2024-10-17.csv
data/gfs-runs/2024-10-17.meta.json
data/gfs-runs/2024-10-18.csv
data/gfs-runs/2024-10-18.meta.json
data/gfs-runs/2024-10-19.csv
data/gfs-runs/2024-10-19.meta.json
data/gfs-runs/2024-10-20.csv
data/gfs-runs/2024-10-20.meta.json
data/gfs-runs/2024-10-21.csv
data/gfs-runs/2024-10-21.meta.json
data/gfs-runs/2024-10-22.csv
data/gfs-runs/2024-10-22.meta.json
data/gfs-runs/2024-10-23.csv
data/gfs-runs/2024-10-23.meta.json
data/gfs-runs/2024-10-24.csv
data/gfs-runs/2024-10-24.meta.json
data/gfs-runs/2024-10-25.csv
data/gfs-runs/2024-10-25.meta.json
data/gfs-runs/2024-10-26.csv
data/gfs-runs/2024-10-26.meta.json
data/gfs-runs/2024-10-27.csv
data/gfs-runs/2024-10-27.meta.json
data/gfs-runs/2024-10-28.csv
data/gfs-runs/2024-10-28.meta.json
data/gfs-runs/2024-10-29.csv
data/gfs-runs/2024-10-29.meta.json
data/gfs-runs/2024-10-30.csv
data/gfs-runs/2024-10-30.meta.json
data/gfs-runs/2024-10-31.csv
data/gfs-runs/2024-10-31.meta.json
data/gfs-runs/2024-11-01.csv
data/gfs-runs/2024-11-01.meta.json
data/gfs-runs/2024-11-02.csv
data/gfs-runs/2024-11-02.meta.json
data/gfs-runs/2024-11-03.csv
data/gfs-runs/2024-11-03.meta.json
data/gfs-runs/2024-11-04.csv
data/gfs-runs/2024-11-04.meta.json
data/gfs-runs/2024-11-05.csv
data/gfs-runs/2024-11-05.meta.json
data/gfs-runs/2024-11-06.csv
data/gfs-runs/2024-11-06.meta.json
data/gfs-runs/2024-11-07.csv
data/gfs-runs/2024-11-07.meta.json
data/gfs-runs/2024-11-08.csv
data/gfs-runs/2024-11-08.meta.json
data/gfs-runs/2024-11-09.csv
data/gfs-runs/2024-11-09.meta.json
data/gfs-runs/2024-11-10.csv
data/gfs-runs/2024-11-10.meta.json
data/gfs-runs/2024-11-11.csv
data/gfs-runs/2024-11-11.meta.json
data/gfs-runs/2024-11-12.csv
data/gfs-runs/2024-11-12.meta.json
data/gfs-runs/2024-11-13.csv
data/gfs-runs/2024-11-13.meta.json
data/gfs-runs/2024-11-14.csv
data/gfs-runs/2024-11-14.meta.json
data/gfs-runs/2024-11-15.csv
data/gfs-runs/2024-11-15.meta.json
data/gfs-runs/2024-11-16.csv
data/gfs-runs/2024-11-16.meta.json
data/gfs-runs/2024-11-17.csv
data/gfs-runs/2024-11-17.meta.json
data/gfs-runs/2024-11-18.csv
data/gfs-runs/2024-11-18.meta.json
data/gfs-runs/2024-11-19.csv
data/gfs-runs/2024-11-19.meta.json
data/gfs-runs/2024-11-20.csv
data/gfs-runs/2024-11-20.meta.json
data/gfs-runs/2024-11-21.csv
data/gfs-runs/2024-11-21.meta.json
data/gfs-runs/2024-11-22.csv
data/gfs-runs/2024-11-22.meta.json
data/gfs-runs/2024-11-23.csv
data/gfs-runs/2024-11-23.meta.json
data/gfs-runs/2024-11-24.csv
data/gfs-runs/2024-11-24.meta.json
data/gfs-runs/2024-11-25.csv
data/gfs-runs/2024-11-25.meta.json
data/gfs-runs/2024-11-26.csv
data/gfs-runs/2024-11-26.meta.json
data/gfs-runs/2024-11-27.csv
data/gfs-runs/2024-11-27.meta.json
data/gfs-runs/2024-11-28.csv
data/gfs-runs/2024-11-28.meta.json
data/gfs-runs/2024-11-29.csv
data/gfs-runs/2024-11-29.meta.json
data/gfs-runs/2024-11-30.csv
data/gfs-runs/2024-11-30.meta.json
data/gfs-runs/2024-12-01.csv
data/gfs-runs/2024-12-01.meta.json
data/gfs-runs/2024-12-02.csv
data/gfs-runs/2024-12-02.meta.json
data/gfs-runs/2024-12-03.csv
data/gfs-runs/2024-12-03.meta.json
data/gfs-runs/2024-12-04.csv
data/gfs-runs/2024-12-04.meta.json
data/gfs-runs/2024-12-05.csv
data/gfs-runs/2024-12-05.meta.json
data/gfs-runs/2024-12-06.csv
data/gfs-runs/2024-12-06.meta.json
data/gfs-runs/2024-12-07.csv
data/gfs-runs/2024-12-07.meta.json
data/gfs-runs/2024-12-08.csv
data/gfs-runs/2024-12-08.meta.json
data/gfs-runs/2024-12-09.csv
data/gfs-runs/2024-12-09.meta.json
data/gfs-runs/2024-12-10.csv
data/gfs-runs/2024-12-10.meta.json
data/gfs-runs/2024-12-11.csv
data/gfs-runs/2024-12-11.meta.json
data/gfs-runs/2024-12-12.csv
data/gfs-runs/2024-12-12.meta.json
data/gfs-runs/2024-12-13.csv
data/gfs-runs/2024-12-13.meta.json
data/gfs-runs/2024-12-14.csv
data/gfs-runs/2024-12-14.meta.json
data/gfs-runs/2024-12-15.csv
data/gfs-runs/2024-12-15.meta.json
data/gfs-runs/2024-12-16.csv
data/gfs-runs/2024-12-16.meta.json
data/gfs-runs/2024-12-17.csv
data/gfs-runs/2024-12-17.meta.json
data/gfs-runs/2024-12-18.csv
data/gfs-runs/2024-12-18.meta.json
data/gfs-runs/2024-12-19.csv
data/gfs-runs/2024-12-19.meta.json
data/gfs-runs/2024-12-20.csv
data/gfs-runs/2024-12-20.meta.json
data/gfs-runs/2024-12-21.csv
data/gfs-runs/2024-12-21.meta.json
data/gfs-runs/2024-12-22.csv
data/gfs-runs/2024-12-22.meta.json
data/gfs-runs/2024-12-23.csv
data/gfs-runs/2024-12-23.meta.json
data/gfs-runs/2024-12-24.csv
data/gfs-runs/2024-12-24.meta.json
data/gfs-runs/2024-12-25.csv
data/gfs-runs/2024-12-25.meta.json
data/gfs-runs/2024-12-26.csv
data/gfs-runs/2024-12-26.meta.json
data/gfs-runs/2024-12-27.csv
data/gfs-runs/2024-12-27.meta.json
data/gfs-runs/2024-12-28.csv
data/gfs-runs/2024-12-28.meta.json
data/gfs-runs/2024-12-29.csv
data/gfs-runs/2024-12-29.meta.json
data/gfs-runs/2024-12-30.csv
data/gfs-runs/2024-12-30.meta.json
data/gfs-runs/2024-12-31.csv
data/gfs-runs/2024-12-31.meta.json
data/gfs-runs/2025-01-01.csv
data/gfs-runs/2025-01-01.meta.json
data/gfs-runs/2025-01-02.csv
data/gfs-runs/2025-01-02.meta.json
data/gfs-runs/2025-01-03.csv
data/gfs-runs/2025-01-03.meta.json
data/gfs-runs/2025-01-04.csv
data/gfs-runs/2025-01-04.meta.json
data/gfs-runs/2025-01-05.csv
data/gfs-runs/2025-01-05.meta.json
data/gfs-runs/2025-01-06.csv
data/gfs-runs/2025-01-06.meta.json
data/gfs-runs/2025-01-07.csv
data/gfs-runs/2025-01-07.meta.json
data/gfs-runs/2025-01-08.csv
data/gfs-runs/2025-01-08.meta.json
data/gfs-runs/2025-01-09.csv
data/gfs-runs/2025-01-09.meta.json
data/gfs-runs/2025-01-10.csv
data/gfs-runs/2025-01-10.meta.json
data/gfs-runs/2025-01-11.csv
data/gfs-runs/2025-01-11.meta.json
data/gfs-runs/2025-01-12.csv
data/gfs-runs/2025-01-12.meta.json
data/gfs-runs/2025-01-13.csv
data/gfs-runs/2025-01-13.meta.json
data/gfs-runs/2025-01-14.csv
data/gfs-runs/2025-01-14.meta.json
data/gfs-runs/2025-01-15.csv
data/gfs-runs/2025-01-15.meta.json
data/gfs-runs/2025-01-16.csv
data/gfs-runs/2025-01-16.meta.json
data/gfs-runs/2025-01-17.csv
data/gfs-runs/2025-01-17.meta.json
data/gfs-runs/2025-01-18.csv
data/gfs-runs/2025-01-18.meta.json
data/gfs-runs/2025-01-19.csv
data/gfs-runs/2025-01-19.meta.json
data/gfs-runs/2025-01-20.csv
data/gfs-runs/2025-01-20.meta.json
data/gfs-runs/2025-01-21.csv
data/gfs-runs/2025-01-21.meta.json
data/gfs-runs/2025-01-22.csv
data/gfs-runs/2025-01-22.meta.json
data/gfs-runs/2025-01-23.csv
data/gfs-runs/2025-01-23.meta.json
data/gfs-runs/2025-01-24.csv
data/gfs-runs/2025-01-24.meta.json
data/gfs-runs/2025-01-25.csv
data/gfs-runs/2025-01-25.meta.json
data/gfs-runs/2025-01-26.csv
data/gfs-runs/2025-01-26.meta.json
data/gfs-runs/2025-01-27.csv
data/gfs-runs/2025-01-27.meta.json
data/gfs-runs/2025-01-28.csv
data/gfs-runs/2025-01-28.meta.json
data/gfs-runs/2025-01-29.csv
data/gfs-runs/2025-01-29.meta.json
data/gfs-runs/2025-01-30.csv
data/gfs-runs/2025-01-30.meta.json
data/gfs-runs/2025-01-31.csv
data/gfs-runs/2025-01-31.meta.json
data/gfs-runs/2025-02-01.csv
data/gfs-runs/2025-02-01.meta.json
data/gfs-runs/2025-02-02.csv
data/gfs-runs/2025-02-02.meta.json
data/gfs-runs/2025-02-03.csv
data/gfs-runs/2025-02-03.meta.json
data/gfs-runs/2025-02-04.csv
data/gfs-runs/2025-02-04.meta.json
data/gfs-runs/2025-02-05.csv
data/gfs-runs/2025-02-05.meta.json
data/gfs-runs/2025-02-06.csv
data/gfs-runs/2025-02-06.meta.json
data/gfs-runs/2025-02-07.csv
data/gfs-runs/2025-02-07.meta.json
data/gfs-runs/2025-02-08.csv
data/gfs-runs/2025-02-08.meta.json
data/gfs-runs/2025-02-09.csv
data/gfs-runs/2025-02-09.meta.json
data/gfs-runs/2025-02-10.csv
data/gfs-runs/2025-02-10.meta.json
data/gfs-runs/2025-02-11.csv
data/gfs-runs/2025-02-11.meta.json
data/gfs-runs/2025-02-12.csv
data/gfs-runs/2025-02-12.meta.json
data/gfs-runs/2025-02-13.csv
data/gfs-runs/2025-02-13.meta.json
data/gfs-runs/2025-02-14.csv
data/gfs-runs/2025-02-14.meta.json
data/gfs-runs/2025-02-15.csv
data/gfs-runs/2025-02-15.meta.json
data/gfs-runs/2025-02-16.csv
data/gfs-runs/2025-02-16.meta.json
data/gfs-runs/2025-02-17.csv
data/gfs-runs/2025-02-17.meta.json
data/gfs-runs/2025-02-18.csv
data/gfs-runs/2025-02-18.meta.json
data/gfs-runs/2025-02-19.csv
data/gfs-runs/2025-02-19.meta.json
data/gfs-runs/2025-02-20.csv
data/gfs-runs/2025-02-20.meta.json
data/gfs-runs/2025-02-21.csv
data/gfs-runs/2025-02-21.meta.json
data/gfs-runs/2025-02-22.csv
data/gfs-runs/2025-02-22.meta.json
data/gfs-runs/2025-02-23.csv
data/gfs-runs/2025-02-23.meta.json
data/gfs-runs/2025-02-24.csv
data/gfs-runs/2025-02-24.meta.json
data/gfs-runs/2025-02-25.csv
data/gfs-runs/2025-02-25.meta.json
data/gfs-runs/2025-02-26.csv
data/gfs-runs/2025-02-26.meta.json
data/gfs-runs/2025-02-27.csv
data/gfs-runs/2025-02-27.meta.json
data/gfs-runs/2025-02-28.csv
data/gfs-runs/2025-02-28.meta.json
data/gfs-runs/2025-03-01.csv
data/gfs-runs/2025-03-01.meta.json
data/gfs-runs/2025-03-02.csv
data/gfs-runs/2025-03-02.meta.json
data/gfs-runs/2025-03-03.csv
data/gfs-runs/2025-03-03.meta.json
data/gfs-runs/2025-03-04.csv
data/gfs-runs/2025-03-04.meta.json
data/gfs-runs/2025-03-05.csv
data/gfs-runs/2025-03-05.meta.json
data/gfs-runs/2025-03-06.csv
data/gfs-runs/2025-03-06.meta.json
data/gfs-runs/2025-03-07.csv
data/gfs-runs/2025-03-07.meta.json
data/gfs-runs/2025-03-08.csv
data/gfs-runs/2025-03-08.meta.json
data/gfs-runs/2025-03-09.csv
data/gfs-runs/2025-03-09.meta.json
data/gfs-runs/2025-03-10.csv
data/gfs-runs/2025-03-10.meta.json
data/gfs-runs/2025-03-11.csv
data/gfs-runs/2025-03-11.meta.json
data/gfs-runs/2025-03-12.csv
data/gfs-runs/2025-03-12.meta.json
data/gfs-runs/2025-03-13.csv
data/gfs-runs/2025-03-13.meta.json
data/gfs-runs/2025-03-14.csv
data/gfs-runs/2025-03-14.meta.json
data/gfs-runs/2025-03-15.csv
data/gfs-runs/2025-03-15.meta.json
data/gfs-runs/2025-03-16.csv
data/gfs-runs/2025-03-16.meta.json
data/gfs-runs/2025-03-17.csv
data/gfs-runs/2025-03-17.meta.json
data/gfs-runs/2025-03-18.csv
data/gfs-runs/2025-03-18.meta.json
data/gfs-runs/2025-03-19.csv
data/gfs-runs/2025-03-19.meta.json
data/gfs-runs/2025-03-20.csv
data/gfs-runs/2025-03-20.meta.json
data/gfs-runs/2025-03-21.csv
data/gfs-runs/2025-03-21.meta.json
data/gfs-runs/2025-03-22.csv
data/gfs-runs/2025-03-22.meta.json
data/gfs-runs/2025-03-23.csv
data/gfs-runs/2025-03-23.meta.json
data/gfs-runs/2025-03-24.csv
data/gfs-runs/2025-03-24.meta.json
data/gfs-runs/2025-03-25.csv
data/gfs-runs/2025-03-25.meta.json
data/gfs-runs/2025-03-26.csv
data/gfs-runs/2025-03-26.meta.json
data/gfs-runs/2025-03-27.csv
data/gfs-runs/2025-03-27.meta.json
data/gfs-runs/2025-03-28.csv
data/gfs-runs/2025-03-28.meta.json
data/gfs-runs/2025-03-29.csv
data/gfs-runs/2025-03-29.meta.json
data/gfs-runs/2025-03-30.csv
data/gfs-runs/2025-03-30.meta.json
data/gfs-runs/2025-03-31.csv
data/gfs-runs/2025-03-31.meta.json
data/gfs-runs/2025-04-01.csv
data/gfs-runs/2025-04-01.meta.json
data/gfs-runs/2025-04-02.csv
data/gfs-runs/2025-04-02.meta.json
data/gfs-runs/2025-04-03.csv
data/gfs-runs/2025-04-03.meta.json
data/gfs-runs/2025-04-04.csv
data/gfs-runs/2025-04-04.meta.json
data/gfs-runs/2025-04-05.csv
data/gfs-runs/2025-04-05.meta.json
data/gfs-runs/2025-04-06.csv
data/gfs-runs/2025-04-06.meta.json
data/gfs-runs/2025-04-07.csv
data/gfs-runs/2025-04-07.meta.json
data/gfs-runs/2025-04-08.csv
data/gfs-runs/2025-04-08.meta.json
data/gfs-runs/2025-04-09.csv
data/gfs-runs/2025-04-09.meta.json
data/gfs-runs/2025-04-10.csv
data/gfs-runs/2025-04-10.meta.json
data/gfs-runs/2025-04-11.csv
data/gfs-runs/2025-04-11.meta.json
data/gfs-runs/2025-04-12.csv
data/gfs-runs/2025-04-12.meta.json
data/gfs-runs/2025-04-13.csv
data/gfs-runs/2025-04-13.meta.json
data/gfs-runs/2025-04-14.csv
data/gfs-runs/2025-04-14.meta.json
data/gfs-runs/2025-04-15.csv
data/gfs-runs/2025-04-15.meta.json
data/gfs-runs/2025-04-16.csv
data/gfs-runs/2025-04-16.meta.json
data/gfs-runs/2025-04-17.csv
data/gfs-runs/2025-04-17.meta.json
data/gfs-runs/2025-04-18.csv
data/gfs-runs/2025-04-18.meta.json
data/gfs-runs/2025-04-19.csv
data/gfs-runs/2025-04-19.meta.json
data/gfs-runs/2025-04-20.csv
data/gfs-runs/2025-04-20.meta.json
data/gfs-runs/2025-04-21.csv
data/gfs-runs/2025-04-21.meta.json
data/gfs-runs/2025-04-22.csv
data/gfs-runs/2025-04-22.meta.json
data/gfs-runs/2025-04-23.csv
data/gfs-runs/2025-04-23.meta.json
data/gfs-runs/2025-04-24.csv
data/gfs-runs/2025-04-24.meta.json
data/gfs-runs/2025-04-25.csv
data/gfs-runs/2025-04-25.meta.json
data/gfs-runs/2025-04-26.csv
data/gfs-runs/2025-04-26.meta.json
data/gfs-runs/2025-04-27.csv
data/gfs-runs/2025-04-27.meta.json
data/gfs-runs/2025-04-28.csv
data/gfs-runs/2025-04-28.meta.json
data/gfs-runs/2025-04-29.csv
data/gfs-runs/2025-04-29.meta.json
data/gfs-runs/2025-04-30.csv
data/gfs-runs/2025-04-30.meta.json
data/gfs-runs/2025-05-01.csv
data/gfs-runs/2025-05-01.meta.json
data/gfs-runs/2025-05-02.csv
data/gfs-runs/2025-05-02.meta.json
data/gfs-runs/2025-05-03.csv
data/gfs-runs/2025-05-03.meta.json
data/gfs-runs/2025-05-04.csv
data/gfs-runs/2025-05-04.meta.json
data/gfs-runs/2025-05-05.csv
data/gfs-runs/2025-05-05.meta.json
data/gfs-runs/2025-05-06.csv
data/gfs-runs/2025-05-06.meta.json
data/gfs-runs/2025-05-07.csv
data/gfs-runs/2025-05-07.meta.json
data/gfs-runs/2025-05-08.csv
data/gfs-runs/2025-05-08.meta.json
data/gfs-runs/2025-05-09.csv
data/gfs-runs/2025-05-09.meta.json
data/gfs-runs/2025-05-10.csv
data/gfs-runs/2025-05-10.meta.json
data/gfs-runs/2025-05-11.csv
data/gfs-runs/2025-05-11.meta.json
data/gfs-runs/2025-05-12.csv
data/gfs-runs/2025-05-12.meta.json
data/gfs-runs/2025-05-13.csv
data/gfs-runs/2025-05-13.meta.json
data/gfs-runs/2025-05-14.csv
data/gfs-runs/2025-05-14.meta.json
data/gfs-runs/2025-05-15.csv
data/gfs-runs/2025-05-15.meta.json
data/gfs-runs/2025-05-16.csv
data/gfs-runs/2025-05-16.meta.json
data/gfs-runs/2025-05-17.csv
data/gfs-runs/2025-05-17.meta.json
data/gfs-runs/2025-05-18.csv
data/gfs-runs/2025-05-18.meta.json
data/gfs-runs/2025-05-19.csv
data/gfs-runs/2025-05-19.meta.json
data/gfs-runs/2025-05-20.csv
data/gfs-runs/2025-05-20.meta.json
data/gfs-runs/2025-05-21.csv
data/gfs-runs/2025-05-21.meta.json
data/gfs-runs/2025-05-22.csv
data/gfs-runs/2025-05-22.meta.json
data/gfs-runs/2025-05-23.csv
data/gfs-runs/2025-05-23.meta.json
data/gfs-runs/2025-05-24.csv
data/gfs-runs/2025-05-24.meta.json
data/gfs-runs/2025-05-25.csv
data/gfs-runs/2025-05-25.meta.json
data/gfs-runs/2025-05-26.csv
data/gfs-runs/2025-05-26.meta.json
data/gfs-runs/2025-05-27.csv
data/gfs-runs/2025-05-27.meta.json
data/gfs-runs/2025-05-28.csv
data/gfs-runs/2025-05-28.meta.json
data/gfs-runs/2025-05-29.csv
data/gfs-runs/2025-05-29.meta.json
data/gfs-runs/2025-05-30.csv
data/gfs-runs/2025-05-30.meta.json
data/gfs-runs/2025-05-31.csv
data/gfs-runs/2025-05-31.meta.json
data/gfs-runs/2025-06-01.csv
data/gfs-runs/2025-06-01.meta.json
data/gfs-runs/2025-06-02.csv
data/gfs-runs/2025-06-02.meta.json
data/gfs-runs/2025-06-03.csv
data/gfs-runs/2025-06-03.meta.json
data/gfs-runs/2025-06-04.csv
data/gfs-runs/2025-06-04.meta.json
data/gfs-runs/2025-06-05.csv
data/gfs-runs/2025-06-05.meta.json
data/gfs-runs/2025-06-06.csv
data/gfs-runs/2025-06-06.meta.json
data/gfs-runs/2025-06-07.csv
data/gfs-runs/2025-06-07.meta.json
data/gfs-runs/2025-06-08.csv
data/gfs-runs/2025-06-08.meta.json
data/gfs-runs/2025-06-09.csv
data/gfs-runs/2025-06-09.meta.json
data/gfs-runs/2025-06-10.csv
data/gfs-runs/2025-06-10.meta.json
data/gfs-runs/2025-06-11.csv
data/gfs-runs/2025-06-11.meta.json
data/gfs-runs/2025-06-12.csv
data/gfs-runs/2025-06-12.meta.json
data/gfs-runs/2025-06-13.csv
data/gfs-runs/2025-06-13.meta.json
data/gfs-runs/2025-06-14.csv
data/gfs-runs/2025-06-14.meta.json
data/gfs-runs/2025-06-15.csv
data/gfs-runs/2025-06-15.meta.json
data/gfs-runs/2025-06-16.csv
data/gfs-runs/2025-06-16.meta.json
data/gfs-runs/2025-06-17.csv
data/gfs-runs/2025-06-17.meta.json
data/gfs-runs/2025-06-18.csv
data/gfs-runs/2025-06-18.meta.json
data/gfs-runs/2025-06-19.csv
data/gfs-runs/2025-06-19.meta.json
data/gfs-runs/2025-06-20.csv
data/gfs-runs/2025-06-20.meta.json
data/gfs-runs/2025-06-21.csv
data/gfs-runs/2025-06-21.meta.json
data/gfs-runs/2025-06-22.csv
data/gfs-runs/2025-06-22.meta.json
data/gfs-runs/2025-06-23.csv
data/gfs-runs/2025-06-23.meta.json
data/gfs-runs/2025-06-24.csv
data/gfs-runs/2025-06-24.meta.json
data/gfs-runs/2025-06-25.csv
data/gfs-runs/2025-06-25.meta.json
data/gfs-runs/2025-06-26.csv
data/gfs-runs/2025-06-26.meta.json
data/gfs-runs/2025-06-27.csv
data/gfs-runs/2025-06-27.meta.json
data/gfs-runs/2025-06-28.csv
data/gfs-runs/2025-06-28.meta.json
data/gfs-runs/2025-06-29.csv
data/gfs-runs/2025-06-29.meta.json
data/gfs-runs/2025-06-30.csv
data/gfs-runs/2025-06-30.meta.json
data/gfs-runs/2025-07-01.csv
data/gfs-runs/2025-07-01.meta.json
data/gfs-runs/2025-07-02.csv
data/gfs-runs/2025-07-02.meta.json
data/gfs-runs/2025-07-03.csv
data/gfs-runs/2025-07-03.meta.json
data/gfs-runs/2025-07-04.csv
data/gfs-runs/2025-07-04.meta.json
data/gfs-runs/2025-07-05.csv
data/gfs-runs/2025-07-05.meta.json
data/gfs-runs/2025-07-06.csv
data/gfs-runs/2025-07-06.meta.json
data/gfs-runs/2025-07-07.csv
data/gfs-runs/2025-07-07.meta.json
data/gfs-runs/2025-07-08.csv
data/gfs-runs/2025-07-08.meta.json
data/gfs-runs/2025-07-09.csv
data/gfs-runs/2025-07-09.meta.json
data/gfs-runs/2025-07-10.csv
data/gfs-runs/2025-07-10.meta.json
data/gfs-runs/2025-07-11.csv
data/gfs-runs/2025-07-11.meta.json
data/gfs-runs/2025-07-12.csv
data/gfs-runs/2025-07-12.meta.json
data/gfs-runs/2025-07-13.csv
data/gfs-runs/2025-07-13.meta.json
data/gfs-runs/2025-07-14.csv
data/gfs-runs/2025-07-14.meta.json
data/gfs-runs/2025-07-15.csv
data/gfs-runs/2025-07-15.meta.json
data/gfs-runs/2025-07-16.csv
data/gfs-runs/2025-07-16.meta.json
data/gfs-runs/2025-07-17.csv
data/gfs-runs/2025-07-17.meta.json
data/gfs-runs/2025-07-18.csv
data/gfs-runs/2025-07-18.meta.json
data/gfs-runs/2025-07-19.csv
data/gfs-runs/2025-07-19.meta.json
data/gfs-runs/2025-07-20.csv
data/gfs-runs/2025-07-20.meta.json
data/gfs-runs/2025-07-21.csv
data/gfs-runs/2025-07-21.meta.json
data/gfs-runs/2025-07-22.csv
data/gfs-runs/2025-07-22.meta.json
data/gfs-runs/2025-07-23.csv
data/gfs-runs/2025-07-23.meta.json
data/gfs-runs/2025-07-24.csv
data/gfs-runs/2025-07-24.meta.json
data/gfs-runs/2025-07-25.csv
data/gfs-runs/2025-07-25.meta.json
data/gfs-runs/2025-07-26.csv
data/gfs-runs/2025-07-26.meta.json
data/gfs-runs/2025-07-27.csv
data/gfs-runs/2025-07-27.meta.json
data/gfs-runs/2025-07-28.csv
data/gfs-runs/2025-07-28.meta.json
data/gfs-runs/2025-07-29.csv
data/gfs-runs/2025-07-29.meta.json
data/gfs-runs/2025-07-30.csv
data/gfs-runs/2025-07-30.meta.json
data/gfs-runs/2025-07-31.csv
data/gfs-runs/2025-07-31.meta.json
data/gfs-runs/2025-08-01.csv
data/gfs-runs/2025-08-01.meta.json
data/gfs-runs/2025-08-02.csv
data/gfs-runs/2025-08-02.meta.json
data/gfs-runs/2025-08-03.csv
data/gfs-runs/2025-08-03.meta.json
data/gfs-runs/2025-08-04.csv
data/gfs-runs/2025-08-04.meta.json
data/gfs-runs/2025-08-05.csv
data/gfs-runs/2025-08-05.meta.json
data/gfs-runs/2025-08-06.csv
data/gfs-runs/2025-08-06.meta.json
data/gfs-runs/2025-08-07.csv
data/gfs-runs/2025-08-07.meta.json
data/gfs-runs/2025-08-08.csv
data/gfs-runs/2025-08-08.meta.json
data/gfs-runs/2025-08-09.csv
data/gfs-runs/2025-08-09.meta.json
data/gfs-runs/2025-08-10.csv
data/gfs-runs/2025-08-10.meta.json
data/gfs-runs/2025-08-11.csv
data/gfs-runs/2025-08-11.meta.json
data/gfs-runs/2025-08-12.csv
data/gfs-runs/2025-08-12.meta.json
data/gfs-runs/2025-08-13.csv
data/gfs-runs/2025-08-13.meta.json
data/gfs-runs/2025-08-14.csv
data/gfs-runs/2025-08-14.meta.json
data/gfs-runs/2025-08-15.csv
data/gfs-runs/2025-08-15.meta.json
data/gfs-runs/2025-08-16.csv
data/gfs-runs/2025-08-16.meta.json
data/gfs-runs/2025-08-17.csv
data/gfs-runs/2025-08-17.meta.json
data/gfs-runs/2025-08-18.csv
data/gfs-runs/2025-08-18.meta.json
data/gfs-runs/2025-08-19.csv
data/gfs-runs/2025-08-19.meta.json
data/gfs-runs/2025-08-20.csv
data/gfs-runs/2025-08-20.meta.json
data/gfs-runs/2025-08-21.csv
data/gfs-runs/2025-08-21.meta.json
data/gfs-runs/2025-08-22.csv
data/gfs-runs/2025-08-22.meta.json
data/gfs-runs/2025-08-23.csv
data/gfs-runs/2025-08-23.meta.json
data/gfs-runs/2025-08-24.csv
data/gfs-runs/2025-08-24.meta.json
data/gfs-runs/2025-08-25.csv
data/gfs-runs/2025-08-25.meta.json
data/gfs-runs/2025-08-26.csv
data/gfs-runs/2025-08-26.meta.json
data/gfs-runs/2025-08-27.csv
data/gfs-runs/2025-08-27.meta.json
data/gfs-runs/2025-08-28.csv
data/gfs-runs/2025-08-28.meta.json
data/gfs-runs/2025-08-29.csv
data/gfs-runs/2025-08-29.meta.json
data/gfs-runs/2025-08-30.csv
data/gfs-runs/2025-08-30.meta.json
data/gfs-runs/2025-08-31.csv
data/gfs-runs/2025-08-31.meta.json
data/gfs-runs/2025-09-01.csv
data/gfs-runs/2025-09-01.meta.json
data/gfs-runs/2025-09-02.csv
data/gfs-runs/2025-09-02.meta.json
data/gfs-runs/2025-09-03.csv
data/gfs-runs/2025-09-03.meta.json
data/gfs-runs/2025-09-04.csv
data/gfs-runs/2025-09-04.meta.json
data/gfs-runs/2025-09-05.csv
data/gfs-runs/2025-09-05.meta.json
data/gfs-runs/2025-09-06.csv
data/gfs-runs/2025-09-06.meta.json
data/gfs-runs/2025-09-07.csv
data/gfs-runs/2025-09-07.meta.json
data/gfs-runs/2025-09-08.csv
data/gfs-runs/2025-09-08.meta.json
data/gfs-runs/2025-09-09.csv
data/gfs-runs/2025-09-09.meta.json
data/gfs-runs/2025-09-10.csv
data/gfs-runs/2025-09-10.meta.json
data/gfs-runs/2025-09-11.csv
data/gfs-runs/2025-09-11.meta.json
data/gfs-runs/2025-09-12.csv
data/gfs-runs/2025-09-12.meta.json
data/gfs-runs/2025-09-13.csv
data/gfs-runs/2025-09-13.meta.json
data/gfs-runs/2025-09-14.csv
data/gfs-runs/2025-09-14.meta.json
data/gfs-runs/2025-09-15.csv
data/gfs-runs/2025-09-15.meta.json
data/gfs-runs/2025-09-16.csv
data/gfs-runs/2025-09-16.meta.json
data/gfs-runs/2025-09-17.csv
data/gfs-runs/2025-09-17.meta.json
data/gfs-runs/2025-09-18.csv
data/gfs-runs/2025-09-18.meta.json
data/gfs-runs/2025-09-19.csv
data/gfs-runs/2025-09-19.meta.json
data/gfs-runs/2025-09-20.csv
data/gfs-runs/2025-09-20.meta.json
data/gfs-runs/2025-09-21.csv
data/gfs-runs/2025-09-21.meta.json
data/gfs-runs/2025-09-22.csv
data/gfs-runs/2025-09-22.meta.json
data/gfs-runs/2025-09-23.csv
data/gfs-runs/2025-09-23.meta.json
data/gfs-runs/2025-09-24.csv
data/gfs-runs/2025-09-24.meta.json
data/gfs-runs/2025-09-25.csv
data/gfs-runs/2025-09-25.meta.json
data/gfs-runs/2025-09-26.csv
data/gfs-runs/2025-09-26.meta.json
data/gfs-runs/2025-09-27.csv
data/gfs-runs/2025-09-27.meta.json
data/gfs-runs/2025-09-28.csv
data/gfs-runs/2025-09-28.meta.json
data/gfs-runs/2025-09-29.csv
data/gfs-runs/2025-09-29.meta.json
data/gfs-runs/2025-09-30.csv
data/gfs-runs/2025-09-30.meta.json
data/gfs-runs/2025-10-01.csv
data/gfs-runs/2025-10-01.meta.json
data/gfs-runs/2025-10-02.csv
data/gfs-runs/2025-10-02.meta.json
data/gfs-runs/2025-10-03.csv
data/gfs-runs/2025-10-03.meta.json
data/gfs-runs/2025-10-04.csv
data/gfs-runs/2025-10-04.meta.json
data/gfs-runs/2025-10-05.csv
data/gfs-runs/2025-10-05.meta.json
data/gfs-runs/2025-10-06.csv
data/gfs-runs/2025-10-06.meta.json
data/gfs-runs/2025-10-07.csv
data/gfs-runs/2025-10-07.meta.json
data/gfs-runs/2025-10-08.csv
data/gfs-runs/2025-10-08.meta.json
data/gfs-runs/2025-10-09.csv
data/gfs-runs/2025-10-09.meta.json
data/gfs-runs/2025-10-10.csv
data/gfs-runs/2025-10-10.meta.json
data/gfs-runs/2025-10-11.csv
data/gfs-runs/2025-10-11.meta.json
data/gfs-runs/2025-10-12.csv
data/gfs-runs/2025-10-12.meta.json
data/gfs-runs/2025-10-13.csv
data/gfs-runs/2025-10-13.meta.json
data/gfs-runs/2025-10-14.csv
data/gfs-runs/2025-10-14.meta.json
data/gfs-runs/2025-10-15.csv
data/gfs-runs/2025-10-15.meta.json
data/gfs-runs/2025-10-16.csv
data/gfs-runs/2025-10-16.meta.json
data/gfs-runs/2025-10-17.csv
data/gfs-runs/2025-10-17.meta.json
data/gfs-runs/2025-10-18.csv
data/gfs-runs/2025-10-18.meta.json
data/gfs-runs/2025-10-19.csv
data/gfs-runs/2025-10-19.meta.json
data/gfs-runs/2025-10-20.csv
data/gfs-runs/2025-10-20.meta.json
data/gfs-runs/2025-10-21.csv
data/gfs-runs/2025-10-21.meta.json
data/gfs-runs/2025-10-22.csv
data/gfs-runs/2025-10-22.meta.json
data/gfs-runs/2025-10-23.csv
data/gfs-runs/2025-10-23.meta.json
data/gfs-runs/2025-10-24.csv
data/gfs-runs/2025-10-24.meta.json
data/gfs-runs/2025-10-25.csv
data/gfs-runs/2025-10-25.meta.json
data/gfs-runs/2025-10-26.csv
data/gfs-runs/2025-10-26.meta.json
data/gfs-runs/2025-10-27.csv
data/gfs-runs/2025-10-27.meta.json
data/gfs-runs/2025-10-28.csv
data/gfs-runs/2025-10-28.meta.json
data/gfs-runs/2025-10-29.csv
data/gfs-runs/2025-10-29.meta.json
data/gfs-runs/2025-10-30.csv
data/gfs-runs/2025-10-30.meta.json
data/gfs-runs/2025-10-31.csv
data/gfs-runs/2025-10-31.meta.json
data/gfs-runs/2025-11-01.csv
data/gfs-runs/2025-11-01.meta.json
data/gfs-runs/2025-11-02.csv
data/gfs-runs/2025-11-02.meta.json
data/gfs-runs/2025-11-03.csv
data/gfs-runs/2025-11-03.meta.json
data/gfs-runs/2025-11-04.csv
data/gfs-runs/2025-11-04.meta.json
data/gfs-runs/2025-11-05.csv
data/gfs-runs/2025-11-05.meta.json
data/gfs-runs/2025-11-06.csv
data/gfs-runs/2025-11-06.meta.json
data/gfs-runs/2025-11-07.csv
data/gfs-runs/2025-11-07.meta.json
data/gfs-runs/2025-11-08.csv
data/gfs-runs/2025-11-08.meta.json
data/gfs-runs/2025-11-09.csv
data/gfs-runs/2025-11-09.meta.json
data/gfs-runs/2025-11-10.csv
data/gfs-runs/2025-11-10.meta.json
data/gfs-runs/2025-11-11.csv
data/gfs-runs/2025-11-11.meta.json
data/gfs-runs/2025-11-12.csv
data/gfs-runs/2025-11-12.meta.json
data/gfs-runs/2025-11-13.csv
data/gfs-runs/2025-11-13.meta.json
data/gfs-runs/2025-11-14.csv
data/gfs-runs/2025-11-14.meta.json
data/gfs-runs/2025-11-15.csv
data/gfs-runs/2025-11-15.meta.json
data/gfs-runs/2025-11-16.csv
data/gfs-runs/2025-11-16.meta.json
data/gfs-runs/2025-11-17.csv
data/gfs-runs/2025-11-17.meta.json
data/gfs-runs/2025-11-18.csv
data/gfs-runs/2025-11-18.meta.json
data/gfs-runs/2025-11-19.csv
data/gfs-runs/2025-11-19.meta.json
data/gfs-runs/2025-11-20.csv
data/gfs-runs/2025-11-20.meta.json
data/gfs-runs/2025-11-21.csv
data/gfs-runs/2025-11-21.meta.json
data/gfs-runs/2025-11-22.csv
data/gfs-runs/2025-11-22.meta.json
data/gfs-runs/2025-11-23.csv
data/gfs-runs/2025-11-23.meta.json
data/gfs-runs/2025-11-24.csv
data/gfs-runs/2025-11-24.meta.json
data/gfs-runs/2025-11-25.csv
data/gfs-runs/2025-11-25.meta.json
data/gfs-runs/2025-11-26.csv
data/gfs-runs/2025-11-26.meta.json
data/gfs-runs/2025-11-27.csv
data/gfs-runs/2025-11-27.meta.json
data/gfs-runs/2025-11-28.csv
data/gfs-runs/2025-11-28.meta.json
data/gfs-runs/2025-11-29.csv
data/gfs-runs/2025-11-29.meta.json
data/gfs-runs/2025-11-30.csv
data/gfs-runs/2025-11-30.meta.json
data/gfs-runs/2025-12-01.csv
data/gfs-runs/2025-12-01.meta.json
data/gfs-runs/2025-12-02.csv
data/gfs-runs/2025-12-02.meta.json
data/gfs-runs/2025-12-03.csv
data/gfs-runs/2025-12-03.meta.json
data/gfs-runs/2025-12-04.csv
data/gfs-runs/2025-12-04.meta.json
data/gfs-runs/2025-12-05.csv
data/gfs-runs/2025-12-05.meta.json
data/gfs-runs/2025-12-06.csv
data/gfs-runs/2025-12-06.meta.json
data/gfs-runs/2025-12-07.csv
data/gfs-runs/2025-12-07.meta.json
data/gfs-runs/2025-12-08.csv
data/gfs-runs/2025-12-08.meta.json
data/gfs-runs/2025-12-09.csv
data/gfs-runs/2025-12-09.meta.json
data/gfs-runs/2025-12-10.csv
data/gfs-runs/2025-12-10.meta.json
data/gfs-runs/2025-12-11.csv
data/gfs-runs/2025-12-11.meta.json
data/gfs-runs/2025-12-12.csv
data/gfs-runs/2025-12-12.meta.json
data/gfs-runs/2025-12-13.csv
data/gfs-runs/2025-12-13.meta.json
data/gfs-runs/2025-12-14.csv
data/gfs-runs/2025-12-14.meta.json
data/gfs-runs/2025-12-15.csv
data/gfs-runs/2025-12-15.meta.json
data/gfs-runs/2025-12-16.csv
data/gfs-runs/2025-12-16.meta.json
data/gfs-runs/2025-12-17.csv
data/gfs-runs/2025-12-17.meta.json
data/gfs-runs/2025-12-18.csv
data/gfs-runs/2025-12-18.meta.json
data/gfs-runs/2025-12-19.csv
data/gfs-runs/2025-12-19.meta.json
data/gfs-runs/2025-12-20.csv
data/gfs-runs/2025-12-20.meta.json
data/gfs-runs/2025-12-21.csv
data/gfs-runs/2025-12-21.meta.json
data/gfs-runs/2025-12-22.csv
data/gfs-runs/2025-12-22.meta.json
data/gfs-runs/2025-12-23.csv
data/gfs-runs/2025-12-23.meta.json
data/gfs-runs/2025-12-24.csv
data/gfs-runs/2025-12-24.meta.json
data/gfs-runs/2025-12-25.csv
data/gfs-runs/2025-12-25.meta.json
data/gfs-runs/2025-12-26.csv
data/gfs-runs/2025-12-26.meta.json
data/gfs-runs/2025-12-27.csv
data/gfs-runs/2025-12-27.meta.json
data/gfs-runs/2025-12-28.csv
data/gfs-runs/2025-12-28.meta.json
data/gfs-runs/2025-12-29.csv
data/gfs-runs/2025-12-29.meta.json
data/gfs-runs/2025-12-30.csv
data/gfs-runs/2025-12-30.meta.json
data/gfs-runs/2025-12-31.csv
data/gfs-runs/2025-12-31.meta.json
data/gfs-runs/2026-01-01.csv
data/gfs-runs/2026-01-01.meta.json
data/gfs-runs/2026-01-02.csv
data/gfs-runs/2026-01-02.meta.json
data/gfs-runs/2026-01-03.csv
data/gfs-runs/2026-01-03.meta.json
data/gfs-runs/2026-01-04.csv
data/gfs-runs/2026-01-04.meta.json
data/gfs-runs/2026-01-05.csv
data/gfs-runs/2026-01-05.meta.json
data/gfs-runs/2026-01-06.csv
data/gfs-runs/2026-01-06.meta.json
data/gfs-runs/2026-01-07.csv
data/gfs-runs/2026-01-07.meta.json
data/gfs-runs/2026-01-08.csv
data/gfs-runs/2026-01-08.meta.json
data/gfs-runs/2026-01-09.csv
data/gfs-runs/2026-01-09.meta.json
data/gfs-runs/2026-01-10.csv
data/gfs-runs/2026-01-10.meta.json
data/gfs-runs/2026-01-11.csv
data/gfs-runs/2026-01-11.meta.json
data/gfs-runs/2026-01-12.csv
data/gfs-runs/2026-01-12.meta.json
data/gfs-runs/2026-01-13.csv
data/gfs-runs/2026-01-13.meta.json
data/gfs-runs/2026-01-14.csv
data/gfs-runs/2026-01-14.meta.json
data/gfs-runs/2026-01-15.csv
data/gfs-runs/2026-01-15.meta.json
data/gfs-runs/2026-01-16.csv
data/gfs-runs/2026-01-16.meta.json
data/gfs-runs/2026-01-17.csv
data/gfs-runs/2026-01-17.meta.json
data/gfs-runs/2026-01-18.csv
data/gfs-runs/2026-01-18.meta.json
data/gfs-runs/2026-01-19.csv
data/gfs-runs/2026-01-19.meta.json
data/gfs-runs/2026-01-20.csv
data/gfs-runs/2026-01-20.meta.json
data/gfs-runs/2026-01-21.csv
data/gfs-runs/2026-01-21.meta.json
data/gfs-runs/2026-01-22.csv
data/gfs-runs/2026-01-22.meta.json
data/gfs-runs/2026-01-23.csv
data/gfs-runs/2026-01-23.meta.json
data/gfs-runs/2026-01-24.csv
data/gfs-runs/2026-01-24.meta.json
data/gfs-runs/2026-01-25.csv
data/gfs-runs/2026-01-25.meta.json
data/gfs-runs/2026-01-26.csv
data/gfs-runs/2026-01-26.meta.json
data/gfs-runs/2026-01-27.csv
data/gfs-runs/2026-01-27.meta.json
data/gfs-runs/2026-01-28.csv
data/gfs-runs/2026-01-28.meta.json
data/gfs-runs/2026-01-29.csv
data/gfs-runs/2026-01-29.meta.json
data/gfs-runs/2026-01-30.csv
data/gfs-runs/2026-01-30.meta.json
data/gfs-runs/2026-01-31.csv
data/gfs-runs/2026-01-31.meta.json
data/gfs-runs/2026-02-01.csv
data/gfs-runs/2026-02-01.meta.json
data/gfs-runs/2026-02-02.csv
data/gfs-runs/2026-02-02.meta.json
data/gfs-runs/2026-02-03.csv
data/gfs-runs/2026-02-03.meta.json
data/gfs-runs/2026-02-04.csv
data/gfs-runs/2026-02-04.meta.json
data/gfs-runs/2026-02-05.csv
data/gfs-runs/2026-02-05.meta.json
data/gfs-runs/2026-02-06.csv
data/gfs-runs/2026-02-06.meta.json
data/gfs-runs/2026-02-07.csv
data/gfs-runs/2026-02-07.meta.json
data/gfs-runs/2026-02-08.csv
data/gfs-runs/2026-02-08.meta.json
data/gfs-runs/2026-02-09.csv
data/gfs-runs/2026-02-09.meta.json
data/gfs-runs/2026-02-10.csv
data/gfs-runs/2026-02-10.meta.json
data/gfs-runs/2026-02-11.csv
data/gfs-runs/2026-02-11.meta.json
data/gfs-runs/2026-02-12.csv
data/gfs-runs/2026-02-12.meta.json
data/gfs-runs/2026-02-13.csv
data/gfs-runs/2026-02-13.meta.json
data/gfs-runs/2026-02-14.csv
data/gfs-runs/2026-02-14.meta.json
data/gfs-runs/2026-02-15.csv
data/gfs-runs/2026-02-15.meta.json
data/gfs-runs/2026-02-16.csv
data/gfs-runs/2026-02-16.meta.json
data/gfs-runs/2026-02-17.csv
data/gfs-runs/2026-02-17.meta.json
data/gfs-runs/2026-02-18.csv
data/gfs-runs/2026-02-18.meta.json
data/gfs-runs/2026-02-19.csv
data/gfs-runs/2026-02-19.meta.json
data/gfs-runs/2026-02-20.csv
data/gfs-runs/2026-02-20.meta.json
data/gfs-runs/2026-02-21.csv
data/gfs-runs/2026-02-21.meta.json
data/gfs-runs/2026-02-22.csv
data/gfs-runs/2026-02-22.meta.json
data/gfs-runs/2026-02-23.csv
data/gfs-runs/2026-02-23.meta.json
data/gfs-runs/2026-02-24.csv
data/gfs-runs/2026-02-24.meta.json
data/gfs-runs/2026-02-25.csv
data/gfs-runs/2026-02-25.meta.json
data/gfs-runs/2026-02-26.csv
data/gfs-runs/2026-02-26.meta.json
data/gfs-runs/2026-02-27.csv
data/gfs-runs/2026-02-27.meta.json
data/gfs-runs/2026-02-28.csv
data/gfs-runs/2026-02-28.meta.json
data/gfs-runs/download-failures-2024-03-01-2024-08-31.json
data/gfs-runs/download-failures-2024-09-01-2025-02-28.json
data/gfs-runs/download-failures-2025-03-01-2025-08-31.json
data/gfs-runs/download-failures-2025-09-01-2026-01-30.json
data/gfs-runs/download-failures.json
data/incoming/turbine_1.csv
data/incoming/turbine_2.csv
data/weather/gfs_global/2024-01.json
data/weather/gfs_global/2024-01.meta.json
data/weather/gfs_global/2024-02.json
data/weather/gfs_global/2024-02.meta.json
data/weather/gfs_global/2024-03.json
data/weather/gfs_global/2024-03.meta.json
data/weather/gfs_global/2024-04.json
data/weather/gfs_global/2024-04.meta.json
data/weather/gfs_global/2024-05.json
data/weather/gfs_global/2024-05.meta.json
data/weather/gfs_global/2024-06.json
data/weather/gfs_global/2024-06.meta.json
data/weather/gfs_global/2024-07.json
data/weather/gfs_global/2024-07.meta.json
data/weather/gfs_global/2024-08.json
data/weather/gfs_global/2024-08.meta.json
data/weather/gfs_global/2024-09.json
data/weather/gfs_global/2024-09.meta.json
data/weather/gfs_global/2024-10.json
data/weather/gfs_global/2024-10.meta.json
data/weather/gfs_global/2024-11.json
data/weather/gfs_global/2024-11.meta.json
data/weather/gfs_global/2024-12.json
data/weather/gfs_global/2024-12.meta.json
data/weather/gfs_global/2025-01.json
data/weather/gfs_global/2025-01.meta.json
data/weather/gfs_global/2025-02.json
data/weather/gfs_global/2025-02.meta.json
data/weather/gfs_global/2025-03.json
data/weather/gfs_global/2025-03.meta.json
data/weather/gfs_global/2025-04.json
data/weather/gfs_global/2025-04.meta.json
data/weather/gfs_global/2025-05.json
data/weather/gfs_global/2025-05.meta.json
data/weather/gfs_global/2025-06.json
data/weather/gfs_global/2025-06.meta.json
data/weather/gfs_global/2025-07.json
data/weather/gfs_global/2025-07.meta.json
data/weather/gfs_global/2025-08.json
data/weather/gfs_global/2025-08.meta.json
data/weather/gfs_global/2025-09.json
data/weather/gfs_global/2025-09.meta.json
data/weather/gfs_global/2025-10.json
data/weather/gfs_global/2025-10.meta.json
data/weather/gfs_global/2025-11.json
data/weather/gfs_global/2025-11.meta.json
data/weather/gfs_global/2025-12.json
data/weather/gfs_global/2025-12.meta.json
data/weather/gfs_global/2026-01.json
data/weather/gfs_global/2026-01.meta.json
data/weather/gfs_global/2026-02.json
data/weather/gfs_global/2026-02.meta.json
data/weather/gfs_global/2026-03.json
data/weather/gfs_global/2026-03.meta.json
data/weather/icon_global/2024-01.json
data/weather/icon_global/2024-01.meta.json
data/weather/icon_global/2024-02.json
data/weather/icon_global/2024-02.meta.json
data/weather/icon_global/2024-03.json
data/weather/icon_global/2024-03.meta.json
data/weather/icon_global/2024-04.json
data/weather/icon_global/2024-04.meta.json
data/weather/icon_global/2024-05.json
data/weather/icon_global/2024-05.meta.json
data/weather/icon_global/2024-06.json
data/weather/icon_global/2024-06.meta.json
data/weather/icon_global/2024-07.json
data/weather/icon_global/2024-07.meta.json
data/weather/icon_global/2024-08.json
data/weather/icon_global/2024-08.meta.json
data/weather/icon_global/2024-09.json
data/weather/icon_global/2024-09.meta.json
data/weather/icon_global/2024-10.json
data/weather/icon_global/2024-10.meta.json
data/weather/icon_global/2024-11.json
data/weather/icon_global/2024-11.meta.json
data/weather/icon_global/2024-12.json
data/weather/icon_global/2024-12.meta.json
data/weather/icon_global/2025-01.json
data/weather/icon_global/2025-01.meta.json
data/weather/icon_global/2025-02.json
data/weather/icon_global/2025-02.meta.json
data/weather/icon_global/2025-03.json
data/weather/icon_global/2025-03.meta.json
data/weather/icon_global/2025-04.json
data/weather/icon_global/2025-04.meta.json
data/weather/icon_global/2025-05.json
data/weather/icon_global/2025-05.meta.json
data/weather/icon_global/2025-06.json
data/weather/icon_global/2025-06.meta.json
data/weather/icon_global/2025-07.json
data/weather/icon_global/2025-07.meta.json
data/weather/icon_global/2025-08.json
data/weather/icon_global/2025-08.meta.json
data/weather/icon_global/2025-09.json
data/weather/icon_global/2025-09.meta.json
data/weather/icon_global/2025-10.json
data/weather/icon_global/2025-10.meta.json
data/weather/icon_global/2025-11.json
data/weather/icon_global/2025-11.meta.json
data/weather/icon_global/2025-12.json
data/weather/icon_global/2025-12.meta.json
data/weather/icon_global/2026-01.json
data/weather/icon_global/2026-01.meta.json
data/weather/icon_global/2026-02.json
data/weather/icon_global/2026-02.meta.json
data/weather/icon_global/2026-03.json
data/weather/icon_global/2026-03.meta.json
data/weather/manifest.json
docs/AI-HELP.md
docs/API.md
docs/BACKLOG.md
docs/FORECAST_PROTOCOL.md
docs/FRONTEND.md
docs/NVIDIA.md
docs/PLAN.md
docs/README-AUDIT.md
docs/REQUIREMENTS.md
docs/backend/agent-integration.md
docs/backend/duckdb.md
docs/backend/weather-provenance.md
docs/frontend-integration.md
docs/hackathon/README.md
docs/hackathon/about.md
docs/hackathon/cheatsheet.md
docs/hackathon/regulations.md
docs/hackathon/scoring.md
docs/hackathon/sources/about-tab.txt
docs/hackathon/sources/archive-2026-09-22/hackalem-ai-landing.txt
docs/hackathon/sources/archive-2026-09-22/regulations_raw.json
docs/hackathon/sources/hackalem-ai-landing.txt
docs/hackathon/sources/regulations_raw.json
docs/hackathon/sources/track-energy-google-doc-2026-09-23.txt
docs/hackathon/templates/README-template.md
docs/hackathon/track-energy.md
docs/samples/agent-forecast.json
docs/samples/agent-run.json
docs/samples/data-summary.json
docs/samples/health.json
docs/samples/turbines.json
package-lock.json
package.json
packages/eslint-config/base.js
packages/eslint-config/next.js
packages/eslint-config/package.json
packages/eslint-config/react-internal.js
packages/typescript-config/base.json
packages/typescript-config/nextjs.json
packages/typescript-config/package.json
packages/typescript-config/react-library.json
packages/ui/components.json
packages/ui/eslint.config.js
packages/ui/package.json
packages/ui/postcss.config.mjs
packages/ui/src/components/.gitkeep
packages/ui/src/components/badge.tsx
packages/ui/src/components/button.tsx
packages/ui/src/components/card.tsx
packages/ui/src/components/dialog.tsx
packages/ui/src/components/table.tsx
packages/ui/src/components/tooltip.tsx
packages/ui/src/hooks/.gitkeep
packages/ui/src/lib/.gitkeep
packages/ui/src/lib/utils.ts
packages/ui/src/styles/globals.css
packages/ui/tsconfig.json
packages/ui/tsconfig.lint.json
reports/agent-first-run.json
reports/agent-noaa-first-forecast.json
reports/agent-noaa-first-run.json
reports/agent-noaa-replay.json
reports/agent-noaa-reuse.json
reports/agent-replay.json
reports/data-audit.json
reports/data-audit.md
reports/persistence-baseline.json
requirements.txt
run.sh
scripts/audit_data.py
scripts/blender/create_wind_turbine.py
scripts/brev-train.sh
scripts/check-clean-env.sh
scripts/collect_gfs_training.sh
scripts/configure_openai.py
scripts/evaluate_baselines.py
scripts/evolve_rtx5090.py
scripts/fetch_gfs_runs.py
scripts/finalize_rtx5090.py
scripts/finalize_search.py
scripts/hourly-commit.sh
scripts/nvidia_api.py
scripts/predict.py
scripts/search_models.py
scripts/test-nvidia-api.sh
scripts/train.sh
scripts/train_catboost.py
scripts/train_cloud_wide.py
scripts/train_forecast.py
scripts/train_gfs.py
scripts/train_power_curve.py
scripts/train_rtx5090.py
scripts/validate_winter.py
src/__init__.py
src/agent.py
src/api.py
src/data.py
src/gfs_model.py
src/gfs_weather.py
src/model.py
src/nvidia_api.py
src/storage.py
src/weather.py
tests/appearance.test.mjs
tests/forecast-data.test.mjs
tests/forecast-insights.test.mjs
tests/localization.test.mjs
tests/test_storage.py
tests/turbine-scene.test.mjs
tests/wind-simulation.test.mjs
tsconfig.json
turbo.json
Ветки (2)

Обсуждение 0 комментариев

Войдите, чтобы комментировать

Пока нет комментариев — будьте первым.