AAYMA
RU
Войти

WindOps AI

Почасовой прогноз нормализованной мощности двух ветротурбин на 24–48 часов по архивной погоде NOAA GFS.

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

О проекте

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

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

Суть

Почасовой прогноз нормализованной мощности двух ветротурбин на 24–48 часов по архивной погоде NOAA GFS. Модели CatBoost, LLM-агент управляет расчётом через инструменты, есть replay исторических выпусков за февраль 2026 и паспорт происхождения данных.

Как устроено

Погодный модуль выборочно скачивает поля GFS 0,25° через HTTP Range, читает GRIB2 через ecCodes и кэширует точки двух площадок. Для каждой турбины обучена отдельная CatBoost-модель с погодными и геометрическими признаками (v2), январь отложен под backtest. Агент через OpenAI Responses API со строгими JSON-схемами вызывает 6 инструментов (list_weather_candidates, fetch_weather, validate_weather, predict_power, analyse_forecast, publish_forecast), есть и детерминированный режим. Результат проверяется (cutoff, полнота сетки, диапазон 0–1) и показывается в Streamlit с экспортом CSV и JSON-паспорта.

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

  • CatBoost
  • NOAA GFS GRIB2
  • ecCodes
  • OpenAI Responses API function calling
  • jsonschema-валидация инструментов
  • backtest
  • persistence baseline
  • replay выпусков

Метрики

v2 vs v1 на январе: MAE снижена на 3.76% / 4.32%, улучшены MAE и RMSE на обоих горизонтах; 162–175 тестов пройдено; 1344 февральских прогноза

Особенности

Каждый целевой час проверяется на историческую доступность погоды на момент запуска, чтобы не подсматривать будущее. Январские проверочные модели и финальные февральские разделены по cutoff. LLM только оркестрирует инструменты, числа выдаёт отдельный ML-плагин. Сохранён паспорт живого LLM-прогона: 6 успешных вызовов инструментов.

Стек

Python 3.12 · Streamlit · Plotly · pandas · NumPy · CatBoost · ecCodes · pytest · Playwright

Модели

OpenAI Responses API (модель через OPENAI_MODEL)


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

README

README.md

WindOps AI

Почасовой прогноз мощности ветроэлектростанции с проверкой происхождения данных.

Проект команды для HackAlem AI помогает диспетчеру и аналитику ВЭС работать с прогнозами двух турбин на 24–48 часов: видеть ожидаемую нормализованную мощность, погодные входы, историю выпусков и изменения после обновления погоды. Кейс предусматривает воспроизведение исторических запусков на февраль 2026 года.

Текущее состояние: реализованы интерфейс, архив NOAA GFS, backend и ML-плагин windops.ml.plugin. Данные, веса моделей, январская проверка и февральские прогнозы включены в репозиторий. Сквозной сценарий повторно проверен локально и в браузере; 162 теста прошли без пропусков. После настройки API сохранён отдельный LLM-запуск: одна турбина, 48 часов, исполнитель openai_responses, шесть успешных вызовов инструментов. Его паспорт и журнал проверены; отчёт и границы проверки.

Что реализовано

Финальная ML-версия: geometry v2

После указанной выше приёмки v1 добавлены погодные признаки и отдельно сохранены улучшенные модели. На уже просмотренном январе MAE снизилась на 3.76% / 4.32%; MAE и RMSE улучшились на обоих горизонтах. Это разработочное сравнение, а исходный независимый backtest v1 сохранён. Для v2 прошли 175 тестов и реальный браузерный сценарий. Отчёт команды о живом LLM выше относится к исходной v1; v2 проверялась в детерминированном режиме.

После установки зависимостей ниже рекомендуемый запуск на Linux/macOS:

bash scripts/run_improved.sh

Скрипт подготавливает локальные пути к включённому погодному кэшу и запускает существующее приложение. Готовые веса находятся в models/geometry_v2/active/; данные v2 — в data/experiments/ml_weather_geometry_v1/runtime_data/. ml/january_backtest.json внутри этого каталога содержит явно помеченное разработочное сравнение, ml/february_hourly.csv — новые 1344 прогноза февраля. Старые пути data/ml/ и models/<site_id>/ ниже относятся к сохранённой v1. Подробности, команды для обеих версий и откат: MODEL_IMPROVEMENT.md.

Возможности приложения

  • Интерфейс на русском языке: выбор одной или двух турбин, даты выпуска и горизонта; графики, почасовые таблицы, история выпусков, паспорт данных и журнал событий.
  • Архивная погода: загрузка выбранных полей оригинальных GFS, извлечение двух площадок, возобновляемый файловый кэш и CSV для обучения модели.
  • Обученные модели: отдельные CatBoost для двух турбин, сохранённые веса и паспорта; январские проверочные модели отделены от финальных февральских. Повторное обучение для запуска не требуется.
  • Проверки входов и результата: историческая доступность погоды, полнота часовой сетки, контрольные суммы, совместимость ML-модели, допустимый cutoff обучения и диапазон мощности 0–1.
  • Управление расчётом: один агент через OpenAI Responses API со строгими схемами инструментов; отдельный детерминированный режим и явно обозначенный резервный режим.
  • Replay и версии: последовательные исторические запуски, обнаружение нового допустимого погодного цикла, пересчёт и сохранение связи с предыдущим прогнозом. Эти сценарии мощности используют ML-плагин и требуют сохранённых весов моделей.
  • Проверка качества: загрузка январского backtest в интерфейс, расчёт MAE/RMSE и сравнение с baseline на совпадающих парах. Реальный артефакт — data/ml/january_backtest.json.
  • Экспорт: CSV выпуска, JSON-паспорт, очищенный журнал и выгрузки replay. Итоговый экспорт проходит дополнительные проверки; синтетические и самостоятельно загруженные непроверенные данные не получают права итоговой выгрузки.

Как работает решение

Основной пользовательский сценарий при наличии сохранённых моделей:

  1. Пользователь выбирает турбины, исторический момент запуска и 24 либо 48 часов.
  2. Backend получает подходящий GFS-выпуск из архива или кэша и проверяет доступность каждого целевого часа на момент запуска.
  3. ML-модуль подготавливает признаки и рассчитывает нормализованную мощность. Его версия и обучающий cutoff проверяются перед вызовом.
  4. Backend проверяет результат, вычисляет агрегаты, сохраняет прогноз, паспорта и журнал.
  5. Интерфейс показывает график, таблицу и происхождение данных; проверенный результат доступен для экспорта.
  6. Проверка обновлений при обнаружении нового допустимого цикла запускает новый расчёт. Старый выпуск сохраняется, сравнение проводится по общим целевым часам.

Для нового расчёта задайте WINDOPS_ML_MODULE=windops.ml.plugin; папка models/ уже присутствует в репозитории. Без настройки возникает MODEL_NOT_CONFIGURED, без подходящих весов — ML_MODEL_MISSING. Просмотр сохранённых результатов, погодный сборщик и тест интерфейса доступны независимо от весов.

Технологии

Версии зафиксированы в requirements*.txt:

  • Python — backend, подготовка данных и проверки. Погодный backend проверен на Python 3.12 / Linux; сохранённые результаты обучения участника №1 получены на Python 3.14.7 / Linux.
  • Streamlit 1.64.0 — веб-интерфейс.
  • Plotly 6.9.0 — интерактивные графики.
  • pandas 2.3.3, NumPy 2.3.5, tzdata 2026.4 — таблицы, вычисления и часовые пояса.
  • requests 2.34.2, ecCodes 2.48.0 — выборочные HTTP Range-запросы и чтение GRIB2.
  • CatBoost 1.2.10 — отдельные CPU-модели мощности двух турбин; дополнительно реализованы постоянный и ветровой baseline.
  • OpenAI Python SDK 3.19.0, Responses API — управляющий LLM-цикл. Конкретная LLM задаётся через OPENAI_MODEL; фиксированной модели по умолчанию нет.
  • jsonschema 4.26.0 — проверка аргументов инструментов.
  • pytest 9.1.1, Streamlit AppTest — автоматические проверки; для дополнительной браузерной приёмки предусмотрены Playwright и Chromium.
  • NOAA GFS 0,25° в публичном S3-архиве — внешние прогнозы погоды.

LLM управляет вызовами инструментов; численные прогнозы возвращает отдельный ML-модуль. Январские проверочные модели и финальные февральские модели имеют разные cutoff и версии.

Архитектура

Приложение состоит из Python-модулей в одном проекте; результаты хранятся в файлах.

flowchart TD
    UI["Streamlit: запрос и просмотр результата"] --> API["backend.py: запуск, replay, обновления"]
    CLI["CLI: сбор архива и запуск"] --> API
    CLI --> W["weather.py: NOAA GFS, кэш, проверки"]
    API --> A["agent.py: Responses API или детерминированный режим"]
    A --> P["pipeline.py: проверенные операции и сохранение"]
    P --> W
    P --> M["ml_bridge.py: контракт модели"]
    M --> ML["ml/: признаки и сохранённые CatBoost-модели"]
    P --> F["Файлы: прогноз, версии, паспорта, журнал"]
    F --> UI

Агенту доступны шесть инструментов: list_weather_candidates, fetch_weather, validate_weather, predict_power, analyse_forecast, publish_forecast. В коде ограничены число итераций и набор допустимых аргументов. Проверки повторяются внутри операций прогнозирования и сохранения, поэтому отдельный пропуск validate_weather не отменяет контроль данных.

app.py                         Интерфейс и пользовательские действия
src/windops/
  core.py                      Время, координаты, ошибки, контрольные суммы
  weather.py                   Загрузка, извлечение точек и проверка GFS
  cli.py                       Аудит CSV, сбор архива, запуск из терминала
  ml_bridge.py                 Подключение и проверка ML-модуля
  ml/                          Подготовка SCADA, обучение, backtest, плагин
  pipeline.py                  Расчётный процесс, сохранение, сравнение
  agent.py                     Строгие инструменты и цикл Responses API
  backend.py                   run_forecast, run_replay, check_updates
  ui/                          Графики, состояние, контракты и экспорт
tests/                         Тесты backend и интерфейса
scripts/browser_acceptance.py   Дополнительная браузерная приёмка
docs/                          Контракты, сценарии и подробные инструкции
data/                          Исходные CSV, погодный кэш и отчёты
models/                        Веса моделей, паспорта и контрольные суммы

Установка и запуск

Инструкции ниже предназначены для Windows x64 (PowerShell), macOS (Terminal, bash/zsh) и Linux (bash/zsh) с 64-разрядным Python 3.12. GPU для сохранённых моделей не нужен.

Статус совместимости: полный запуск проверен на Linux с Python 3.12.13. Windows и macOS пока не прошли отдельную приёмку проекта; наличие команд для них не означает гарантии работы на любой версии ОС или процессоре. CatBoost 1.2.10 предоставляет пакеты Python 3.12 для Windows x64, Linux и macOS Intel/Apple Silicon; ecCodes поставляет необходимую бинарную библиотеку через свои Python-пакеты. См. файлы CatBoost и установку ecCodes. Windows ARM и 32-разрядный Python в сценарий приёмки не входят.

Если проект ещё не скачан, установите Git и получите репозиторий:

git clone https://github.com/BAITC-Hacks/hack-96839d9e-hustlers.git
cd hack-96839d9e-hustlers

Для закрытого репозитория необходим доступ к нему. При скачивании ZIP распакуйте архив и откройте терминал в папке, содержащей app.py. Во всех командах ниже текущая папка — корень проекта. После установки зависимостей офлайн-сценарий использует включённые data/ и models/.

1. Подготовить окружение

Для установки зависимостей нужен интернет. Если .venv уже создана для этого проекта и этой ОС, повторять её создание не требуется. Папку .venv с другого компьютера переносить не нужно: создайте окружение заново в своём checkout.

Windows — PowerShell, при установленном Python 3.12 x64:

py -3.12 -m venv .venv
.\.venv\Scripts\python.exe -m pip install -r requirements-dev.txt -r requirements-ml.txt

macOS и Linux — Terminal, при установленном Python 3.12:

python3.12 -m venv .venv
.venv/bin/python -m pip install -r requirements-dev.txt -r requirements-ml.txt

Если python3.12 или py -3.12 не найден, установите Python 3.12 либо воспользуйтесь уже установленным uv. Вариант macOS/Linux с uv:

uv venv --python 3.12.13 .venv
uv pip install --python .venv/bin/python -r requirements-dev.txt -r requirements-ml.txt

Вариант Windows с uv:

uv venv --python 3.12.13 .venv
uv pip install --python .venv\Scripts\python.exe -r requirements-dev.txt -r requirements-ml.txt

Активация окружения не требуется: команды напрямую используют Python из .venv. В macOS на Apple Silicon используйте Python той же архитектуры, что и устанавливаемые пакеты; не смешивайте окружения Intel и ARM.

requirements-dev.txt устанавливает UI, backend и pytest; requirements-ml.txt добавляет CatBoost для обучения и запуска моделей. Для запуска без тестов установите requirements-backend.txt и requirements-ml.txt. requirements-browser.txt нужен только для дополнительной проверки браузером. Воспроизведение исходного обучения требует отдельного окружения Python 3.14.7 и точных версий из data/ml/selection.json; команды приведены в docs/ML.md.

2. Настроить площадки

В config.example.json уже заполнены параметры двух турбин. При первом запуске создайте его локальную копию. Если у вас есть собственный config.local.json, сначала сравните настройки и сохраните нужные значения.

Windows — PowerShell:

if (-not (Test-Path config.local.json)) { Copy-Item config.example.json config.local.json }

macOS / Linux:

if [ ! -e config.local.json ]; then cp config.example.json config.local.json; fi

Содержимое конфигурации:

{
  "timezone": "Asia/Almaty",
  "timestamp_convention": "target_time = issued_at + horizon_step hours",
  "normalization": "0_1",
  "default_origin": "2026-01-31T23:00:00+05:00",
  "sites": [
    {"site_id": "turbine_1"},
    {"site_id": "turbine_2"}
  ]
}

На подготовленном рабочем месте команды этот файл уже существует. В Git он не включён. Без него доступен тест интерфейса на синтетике, но форма реального расчёта требует заполненных настроек.

3. Открыть интерфейс

Выполните блок для своей ОС в том же терминале. Переменные окружения действуют для запускаемого из него приложения.

Windows — PowerShell:

$env:PYTHONPATH = "src"
$env:WINDOPS_ML_MODULE = "windops.ml.plugin"
$env:WINDOPS_EXECUTION_MODE = "deterministic"
$env:WINDOPS_OFFLINE = "1"
.\.venv\Scripts\python.exe scripts/prepare_improved_runtime.py
$env:WINDOPS_MODEL_DIR = "$PWD/models/geometry_v2/active"
$env:WINDOPS_DATA_DIR = "$PWD/data/experiments/ml_weather_geometry_v1/runtime_data"
.\.venv\Scripts\python.exe -m streamlit run app.py

macOS / Linux:

export PYTHONPATH=src
export WINDOPS_ML_MODULE=windops.ml.plugin
export WINDOPS_EXECUTION_MODE=deterministic
export WINDOPS_OFFLINE=1
.venv/bin/python scripts/prepare_improved_runtime.py
export WINDOPS_MODEL_DIR="$PWD/models/geometry_v2/active"
export WINDOPS_DATA_DIR="$PWD/data/experiments/ml_weather_geometry_v1/runtime_data"
.venv/bin/python -m streamlit run app.py

Откройте локальное приложение. Эти настройки запускают реальные сохранённые модели с погодным кэшем, без вызова LLM. Для просмотра синтетического примера после установки зависимостей не нужны исходные датасеты, ML-модель, OpenAI-ключ или доступ к NOAA.

Проверить установку на своём компьютере

При ошибке запуска или перед демонстрацией остановите сервер через Ctrl+C и выполните проверки в том же терминале с переменными из шага 3.

Windows — PowerShell:

.\.venv\Scripts\python.exe -m eccodes selfcheck
.\.venv\Scripts\python.exe -c "import catboost, pandas, streamlit; print('Imports OK')"
.\.venv\Scripts\python.exe -m windops.cli forecast --site turbine_1 --origin 2026-01-31T23:00:00+05:00 --horizon 48

macOS / Linux:

.venv/bin/python -m eccodes selfcheck
.venv/bin/python -c "import catboost, pandas, streamlit; print('Imports OK')"
.venv/bin/python -m windops.cli forecast --site turbine_1 --origin 2026-01-31T23:00:00+05:00 --horizon 48

Ожидаются успешный selfcheck, Imports OK и JSON с forecast_id и rows: 48. После этого повторите запуск Streamlit из шага 3 и основной сценарий жюри ниже. Прохождение этих проверок подтверждает установку на конкретном компьютере, но не заменяет полный набор тестов.

Если установка сообщает No matching distribution found, проверьте версию и разрядность Python; не меняйте зафиксированные версии библиотек наугад. Для ошибки загрузки ecCodes используйте его selfcheck и инструкцию разработчика.

4. Переменные окружения

Шаблон имён — .env.example. Файл .env автоматически не читается: задавайте значения в окружении процесса.

  • WINDOPS_CONFIG — JSON-конфигурация интерфейса; по умолчанию config.local.json.
  • WINDOPS_BACKEND_MODULE — необязательная замена backend; приложение использует windops.backend.
  • WINDOPS_DATA_DIR — каталог backend-данных; по умолчанию data/ в корне репозитория.
  • WINDOPS_ML_MODULE=windops.ml.plugin — реализованный ML-плагин.
  • WINDOPS_MODEL_DIR — необязательный каталог сохранённых моделей; по умолчанию models/.
  • WINDOPS_EXECUTION_MODE — deterministic, agent или auto.
  • WINDOPS_OFFLINE=1 — запрет погодных сетевых запросов при запуске прогнозов через backend. Для команд weather и collect используйте флаг --offline.
  • OPENAI_API_KEY, OPENAI_MODEL — ключ проекта и идентификатор доступной ему модели для режима agent.
  • WINDOPS_SMOKE_BUNDLE — путь к настоящему сохранённому прогнозу для дополнительного интеграционного теста.

В режиме deterministic LLM не вызывается. auto при отсутствии ключа или ошибке LLM может перейти в явно обозначенный deterministic_fallback; этот режим всё равно требует настоящую ML-модель. Наличие ключа при незаданном OPENAI_MODEL является ошибкой конфигурации.

ML-модуль должен предоставлять get_model_metadata(site_id, forecast_origin) и predict_power(site_id, weather_rows, model_version). Точные требования — в контракте backend.

Как проверить решение жюри

Основной сценарий выполняется в браузере одинаково на всех ОС. Дополнительные CLI-примеры далее записаны для macOS/Linux; в PowerShell используйте .\.venv\Scripts\python.exe, а вместо export ИМЯ=значение — $env:ИМЯ = "значение".

Основной сценарий: реальные модели и данные

После установки и запуска приложения по инструкции выше:

  1. Оставьте синтетику выключенной. Выберите обе турбины, 31.01.2026 23:00 Asia/Almaty, 48 часов и нажмите «Сформировать прогноз». Ожидаются график и 96 строк за 1–2 февраля.
  2. Скачайте «CSV выбранного выпуска». На вкладке «Агент и данные» проверьте источник погоды, версию модели и журнал. В основном режиме исполнитель — deterministic.
  3. На вкладке «Проверка качества» загрузите data/ml/january_backtest.json, нажмите «Проверить артефакт» и сравните MAE/RMSE с результатами ниже.
  4. Для исходного выпуска нажмите «Проверить обновления» на вкладке «Агент и данные»: новый допустимый GFS создаёт связанную версию, предыдущий прогноз остаётся в истории.
  5. Вернитесь на вкладку «Прогноз», раскройте «Исторический replay февраля» и запустите период 31.01.2026–28.02.2026. Ожидаются 58 выпусков без ошибок, полная выгрузка 2 784 строк. Отметьте предложенное правило выбора выпуска и скачайте «Февраль · один прогноз на час»: 1 344 уникальные пары «турбина — час».

Дата 31 января нужна для прогноза первых часов 1 февраля. Этот сценарий использует готовый погодный кэш и после установки не требует сети или API-ключа. Для показа LLM нужен отдельный режим agent, описанный ниже.

Сценарий А: интерфейс без внешних сервисов

  1. Запустите приложение и включите «Тест интерфейса · синтетика» в боковой панели.
  2. Выберите обе турбины, горизонт 48 часов и нажмите «Загрузить тестовый выпуск».
  3. Откройте график, почасовую таблицу и вкладку «Агент и данные». Посмотрите паспорт и диагностическую выгрузку.
  4. Убедитесь, что данные помечены как тестовые, а итоговый экспорт заблокирован. Тестовая зона времени — UTC; реальные площадки используют Asia/Almaty.

Этот сценарий проверяет интерфейс и его ограничения; качество ML и реальные действия LLM он не демонстрирует.

Сценарий Б: настоящая архивная погода

В отдельном терминале из корня проекта:

export PYTHONPATH=src
.venv/bin/python -m windops.cli weather --origin 2026-01-31T23:00:00+05:00 --horizon 48
.venv/bin/python -m windops.cli weather --origin 2026-01-31T23:00:00+05:00 --horizon 48 --offline

Первый вызов использует проверенный кэш или скачивает данные NOAA; без кэша необходим интернет. Ожидаются 96 строк: две турбины × 48 часов, версия погоды и метаданные доступности. Повтор без сети должен использовать тот же weather_version. Набор сохраняется в data/weather/bundles/.

Проверка запрета будущего погодного выпуска:

.venv/bin/python -m windops.cli weather --origin 2026-01-31T23:00:00+05:00 --run 2026-02-01T00:00:00Z --offline

Ожидается ошибка FUTURE_WEATHER и ненулевой код завершения: выбранный цикл инициализирован после исторического запуска. Это ожидаемый результат проверки.

Сценарий В: реальные сохранённые результаты и новый расчёт

Уже доступны без повторного обучения:

  • data/ml/january_backtest.json — загрузите его на вкладке «Проверка качества» и нажмите «Проверить артефакт»;
  • data/ml/february_hourly.csv — 1 344 уникальные строки, по одной на местный час февраля и турбину;
  • data/ml/february_full_releases.csv — 2 784 строки всех 58 исходных 48-часовых выпусков, включая март;
  • data/ml/run_summary.json — версии, объёмы обучения, метрики и ограничения.

Для нового расчёта используйте включённую в репозиторий папку models/: веса, паспорта и контрольные суммы находятся в models/<site_id>/<model_version>/. Повторное обучение для запуска не требуется. Команды воспроизводимого обучения — в docs/ML.md; они требуют указанного там окружения. Не редактируйте зафиксированный выбор параметров ради обхода проверки версий.

export PYTHONPATH=src
export WINDOPS_ML_MODULE=windops.ml.plugin
export WINDOPS_EXECUTION_MODE=deterministic
export WINDOPS_OFFLINE=1
.venv/bin/python -m windops.cli forecast --site turbine_1 --origin 2026-01-31T23:00:00+05:00 --horizon 48
.venv/bin/python -m streamlit run app.py

При успешном расчёте backend возвращает forecast_id и сохраняет bundle.json, forecast.csv, паспорта, контрольную сумму, отчёт проверки и events.jsonl в data/forecasts/<forecast_id>/.

Для повторного исторического replay при наличии весов:

.venv/bin/python -m windops.cli replay --start 2026-01-31 --end 2026-02-28
.venv/bin/python -m windops.ml.cli export-february

Даты означают местные даты выпусков в 23:00, включительно. Полные 48-часовые выпуски сохраняют часы марта. ML-выгрузка на февраль использует фиксированное правило: для дня D берутся шаги 1–24 исходного выпуска D−1 в 23:00. Внутридневные обновления в эту таблицу не включаются.

Для проверки обновления используйте check-updates <реальный_forecast_id> --as-of 2026-02-01T06:00:00Z для первого выпуска от 31 января. Без явного as_of UI сдвигает виртуальный момент на 12 часов.

Для LLM-сценария дополнительно задайте OPENAI_API_KEY, OPENAI_MODEL и WINDOPS_EXECUTION_MODE=agent в окружении процесса, затем повторите команду forecast. WINDOPS_OFFLINE=1 оставляет погоду в кэше; для API нужен интернет. При успешном новом запуске CLI возвращает executor: openai_responses. Используйте отдельный WINDOPS_DATA_DIR с копией data/weather/ и без старых прогнозов: повтор уже сохранённого выпуска сохраняет его первоначальный паспорт и исполнителя. Порядок проверки — в DEMO.md.

Проверенный локальный LLM-результат: turbine_1, выпуск от 31.01.2026 23:00 +05:00, 48 строк, шесть успешных инструментов от выбора погоды до сохранения. Проверены контрольные суммы, погодная сетка и историческая доступность, загрузка ML-модели, диапазон прогноза и совпадение с детерминированным расчётом. Отчёт проверки сохранённого запуска содержит журнал и ограничения. Старый data/ml/backend_verification.json относится к предшествующей детерминированной приёмке.

Результаты исходной независимой январской проверки v1

По сохранённым data/ml/run_summary.json и data/ml/january_backtest.json, на одинаковых 1 464 прогнозных парах каждой турбины:

  • Турбина 1: CatBoost MAE 0,215566, RMSE 0,299051; ветровой baseline MAE 0,239332, RMSE 0,332403. Улучшение MAE — 9,93%.
  • Турбина 2: CatBoost MAE 0,220588, RMSE 0,306425; ветровой baseline MAE 0,245854, RMSE 0,341828. Улучшение MAE — 10,28%.

Это ошибки в шкале нормализованной мощности 0–1. Они относятся к отдельным январским проверочным моделям, не к финальным моделям после переобучения на январе. Разбивка по горизонтам и сравнение с постоянным baseline — в docs/ML.md. Февральских метрик нет: фактическая мощность не предоставлена.

Выбраны CatBoost depth=4, 93 дерева для turbine_1 и 92 для turbine_2. Финальное обучение использовало 5 754 / 5 742 прогнозные пары, или 2 889 / 2 883 уникальных целевых часа. Январский cutoff — 31.12.2025 22:00 +05:00, финальный — 31.01.2026 22:00 +05:00.

Автоматические проверки

Из корня проекта после установки зависимостей. Переменные ниже включают реальные интеграционные проверки:

export PYTHONPATH=src
export WINDOPS_DATA_DIR="$PWD/data"
export WINDOPS_MODEL_DIR="$PWD/models"
export WINDOPS_ML_MODULE=windops.ml.plugin
export WINDOPS_EXECUTION_MODE=deterministic
export WINDOPS_OFFLINE=1
export WINDOPS_RUN_REAL_ML_TEST=1
export WINDOPS_SMOKE_BUNDLE="${WINDOPS_DATA_DIR:-data}/forecasts/forecast-3bd7a5659d75a23ee6b9aea4/bundle.json"
.venv/bin/python -m pytest -q
.venv/bin/python -m compileall -q app.py src
uv pip check --python .venv/bin/python

При установке через pip вместо последней команды используйте .venv/bin/python -m pip check.

Интеграционные проверки могут обновлять служебные метаданные и отчёты в каталоге данных. Для проверки на отдельной копии перенаправьте WINDOPS_DATA_DIR на полную копию data/; одного погодного кэша для всех тестов недостаточно.

162 теста без пропусков повторно пройдены на рабочем месте участника №2 с настоящими моделями, погодным кэшем и сохранённым прогнозом. Запуск и интеграция проверены на Python 3.12.13; исходное обучение выполнялось на Python 3.14.7. Для полного повторения нужны WINDOPS_RUN_REAL_ML_TEST=1 и WINDOPS_SMOKE_BUNDLE, указывающий на существующий локальный bundle.json. Абсолютные пути в перенесённых отчётах относятся к компьютеру автора: используйте путь внутри своего checkout. Проверка выполнена с отдельной копией data/ через WINDOPS_DATA_DIR, чтобы не обновлять исходные артефакты. Без весов реальная ML-проверка пропускается; без необходимых погодных файлов пропускаются и тесты локального GFS. В модульных тестах OpenAI заменяется тестовым клиентом.

Подробная демонстрация и дополнительная приёмка Chromium описаны в docs/DEMO.md. Тесты не являются доказательством точности прогноза мощности.

Данные и интеграции

Наблюдения турбин

Локальные data/scada/turbine_1.csv и turbine_2.csv — неизменённые копии файлов организаторов. Они содержат 10-минутные измерения с марта 2023 года по 31 января 2026 года: ветер, температуру и нормализованную мощность. В исходных временных рядах есть пропуски; аудит доступен через:

.venv/bin/python -m windops.cli audit

Команда требует обеих локальных CSV-копий и сохраняет data/reports/scada_audit.json. Мощность имеет шкалу 0–1; единицы ветра — м/с, температуры — °C. Фактических значений мощности февраля нет.

Погода NOAA GFS

Загрузчик обращается к https://noaa-gfs-bdp-pds.s3.amazonaws.com по HTTPS без AWS-ключа. Он читает индексы и выбранные GRIB2-сообщения температуры на 2 м и компонент ветра на 10/100 м, затем извлекает точки:

  • turbine_1: 43.645150, 78.535604;
  • turbine_2: 43.643198, 78.538828.

Обе площадки используют ближайший узел GFS 43.75, 78.5, примерно в 12 км от турбин. Ветер на 100 м не объявляется ветром на высоте ступицы.

Исторический допуск требует run_initialized_at <= availability_upper_bound <= forecast_origin для каждого целевого часа. Верхняя граница берётся из Last-Modified оригинального объекта S3: она относится к данной версии объекта, а не к точному первоначальному времени публикации NOAA. Время сегодняшнего скачивания хранится отдельно. Контролируются HTTP 206, диапазоны байтов, ETag и SHA-256.

Внутри backend используется UTC, в реальном интерфейсе — Asia/Almaty. Для 2025–2026 годов местные 23:00 соответствуют 18:00 UTC. Ежедневный сбор использует цикл GFS 00 UTC; первый целевой час — через час после пользовательского origin.

Подтверждённый локальный архив: 152 ежедневных выпуска с 30.09.2025 по 28.02.2026, по 48 часов для двух турбин, 14 592 строки в data/weather/weather_for_ml.csv. Отчёты data/reports/weather_coverage.json и backend_verification.json фиксируют покрытие, контрольные суммы и успешную повторную проверку без сети. Это начальный диапазон, а не вся история с 2023 года.

Воспроизводимый сбор полного диапазона:

.venv/bin/python -m windops.cli collect --start 2025-09-30 --end 2026-02-28 --workers 8
.venv/bin/python -m windops.cli export-weather

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

Ключ таблицы — (site_id, forecast_origin, target_time). Один целевой час может встречаться в нескольких выпусках с разной заблаговременностью.

OpenAI и локальное хранение

Управляющий код отправляет в OpenAI параметры запроса, идентификаторы наборов, статусы и агрегаты. Исходные CSV и полные погодные ряды ему не передаются; запросы используют store=False. Секреты берутся из окружения.

В текущей версии подготовленные файлы data/ уже отслеживаются Git: в них входят обе исходные CSV-копии, погодный архив и отчёты. При передаче только исходного кода каталог данных нужно предоставить отдельно, а погодный архив можно восстановить загрузчиком.

Для передачи готовой версии включены исходные модели и проверенные артефакты models/geometry_v2/. Остальные новые экспериментальные модели игнорируются. .env, config.local.json, artifacts/, локальные ссылки и пересоздаваемый кэш прогнозов v2 не включаются в Git. Подробности backend — в docs/BACKEND.md; фактический состав данных сверяйте с Git, поскольку прежние заметки описывают первоначально локальное хранение.

Ограничения текущей версии

  • Приёмка ОС: полный сценарий проверен на Linux. Для Windows x64 и macOS приведены команды установки и локальной проверки, но отдельных результатов запуска проекта на этих ОС пока нет.
  • Окружение обучения зафиксировано: готовые веса включены в Git; для повторения выбора параметров используются точные версии из data/ml/selection.json. Для нового прогноза нужны ML-зависимости и настройка WINDOPS_ML_MODULE.
  • Погода имеет пространственное ограничение: один узел GFS обслуживает обе турбины; отдельной локальной коррекции погоды пока нет.

Развёрнутая версия

Подтверждённая публичная ссылка на deployed-версию в репозитории отсутствует. Доступен локальный запуск по адресу http://localhost:8501; это адрес на компьютере, где запущен Streamlit.

Документация

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

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

ssslap 7abuka999 3redwuu1337 1

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

  • 2026-09-23 17:49feat: ship verified geometry v2 wind power modelsabuka999
  • 2026-09-23 17:31readme ins updt 2ssslap
  • 2026-09-23 17:22readme ins updtssslap
  • 2026-09-23 16:48merge: объединить ML-модуль, модели и READMEssslap
  • 2026-09-23 16:44ml_huiabuka999
  • 2026-09-23 16:39readmessslap
  • 2026-09-23 16:38ml_modelabuka999
  • 2026-09-23 16:27datassslap
Все коммиты (11)
  • 2026-09-23 16:00feat: добавить сбор архива GFS и backend прогнозирования ВЭСssslap
  • 2026-09-23 14:58ui baseredwuu1337
  • 2026-09-23 14:03agents sandboxssslap
Структура репозитория (3000 файлов)
.env.example
.gitignore
.streamlit/config.toml
AGENTS.md
README.md
app.py
config.example.json
data/README.md
data/experiments/ml_guarded_v1/comparison.json
data/experiments/ml_guarded_v1/comparison_checksum.json
data/experiments/ml_guarded_v1/december_predictions/turbine_1_00.csv
data/experiments/ml_guarded_v1/december_predictions/turbine_1_01.csv
data/experiments/ml_guarded_v1/december_predictions/turbine_1_02.csv
data/experiments/ml_guarded_v1/december_predictions/turbine_1_03.csv
data/experiments/ml_guarded_v1/december_predictions/turbine_1_04.csv
data/experiments/ml_guarded_v1/december_predictions/turbine_1_05.csv
data/experiments/ml_guarded_v1/december_predictions/turbine_1_06.csv
data/experiments/ml_guarded_v1/december_predictions/turbine_1_07.csv
data/experiments/ml_guarded_v1/december_predictions/turbine_1_08.csv
data/experiments/ml_guarded_v1/december_predictions/turbine_1_09.csv
data/experiments/ml_guarded_v1/december_predictions/turbine_1_10.csv
data/experiments/ml_guarded_v1/december_predictions/turbine_1_11.csv
data/experiments/ml_guarded_v1/december_predictions/turbine_2_00.csv
data/experiments/ml_guarded_v1/december_predictions/turbine_2_01.csv
data/experiments/ml_guarded_v1/december_predictions/turbine_2_02.csv
data/experiments/ml_guarded_v1/december_predictions/turbine_2_03.csv
data/experiments/ml_guarded_v1/december_predictions/turbine_2_04.csv
data/experiments/ml_guarded_v1/december_predictions/turbine_2_05.csv
data/experiments/ml_guarded_v1/december_predictions/turbine_2_06.csv
data/experiments/ml_guarded_v1/december_predictions/turbine_2_07.csv
data/experiments/ml_guarded_v1/december_predictions/turbine_2_08.csv
data/experiments/ml_guarded_v1/december_predictions/turbine_2_09.csv
data/experiments/ml_guarded_v1/december_predictions/turbine_2_10.csv
data/experiments/ml_guarded_v1/december_predictions/turbine_2_11.csv
data/experiments/ml_guarded_v1/protocol.json
data/experiments/ml_guarded_v1/selection.json
data/experiments/ml_guarded_v1/selection_checksum.json
data/experiments/ml_weather_geometry_v1/activation.json
data/experiments/ml_weather_geometry_v1/build.json
data/experiments/ml_weather_geometry_v1/comparison.json
data/experiments/ml_weather_geometry_v1/comparison_checksum.json
data/experiments/ml_weather_geometry_v1/december_predictions/turbine_1_00.csv
data/experiments/ml_weather_geometry_v1/december_predictions/turbine_1_01.csv
data/experiments/ml_weather_geometry_v1/december_predictions/turbine_1_02.csv
data/experiments/ml_weather_geometry_v1/december_predictions/turbine_1_03.csv
data/experiments/ml_weather_geometry_v1/december_predictions/turbine_1_04.csv
data/experiments/ml_weather_geometry_v1/december_predictions/turbine_1_05.csv
data/experiments/ml_weather_geometry_v1/december_predictions/turbine_2_00.csv
data/experiments/ml_weather_geometry_v1/december_predictions/turbine_2_01.csv
data/experiments/ml_weather_geometry_v1/december_predictions/turbine_2_02.csv
data/experiments/ml_weather_geometry_v1/december_predictions/turbine_2_03.csv
data/experiments/ml_weather_geometry_v1/december_predictions/turbine_2_04.csv
data/experiments/ml_weather_geometry_v1/december_predictions/turbine_2_05.csv
data/experiments/ml_weather_geometry_v1/january_predictions/turbine_1.csv
data/experiments/ml_weather_geometry_v1/january_predictions/turbine_2.csv
data/experiments/ml_weather_geometry_v1/promotion_check.json
data/experiments/ml_weather_geometry_v1/protocol.json
data/experiments/ml_weather_geometry_v1/runtime_data/ml/backend_verification.json
data/experiments/ml_weather_geometry_v1/runtime_data/ml/february_export.json
data/experiments/ml_weather_geometry_v1/runtime_data/ml/february_full_releases.csv
data/experiments/ml_weather_geometry_v1/runtime_data/ml/february_hourly.csv
data/experiments/ml_weather_geometry_v1/runtime_data/ml/final_models.json
data/experiments/ml_weather_geometry_v1/runtime_data/ml/january_backtest.json
data/experiments/ml_weather_geometry_v1/runtime_data/ml/original_independent_january_backtest.json
data/experiments/ml_weather_geometry_v1/selection.json
data/experiments/ml_weather_geometry_v1/selection_checksum.json
data/forecasts/forecast-0b96ad32f0bc4d678a6e3206/bundle.json
data/forecasts/forecast-0b96ad32f0bc4d678a6e3206/bundle_checksum.json
data/forecasts/forecast-0b96ad32f0bc4d678a6e3206/events.jsonl
data/forecasts/forecast-0b96ad32f0bc4d678a6e3206/forecast.csv
data/forecasts/forecast-0b96ad32f0bc4d678a6e3206/forecast_manifest.json
data/forecasts/forecast-0b96ad32f0bc4d678a6e3206/validation_report.json
data/forecasts/forecast-0b96ad32f0bc4d678a6e3206/weather_manifest.json
data/forecasts/forecast-0e2973b22866fc6154b2192e/bundle.json
data/forecasts/forecast-0e2973b22866fc6154b2192e/bundle_checksum.json
data/forecasts/forecast-0e2973b22866fc6154b2192e/events.jsonl
data/forecasts/forecast-0e2973b22866fc6154b2192e/forecast.csv
data/forecasts/forecast-0e2973b22866fc6154b2192e/forecast_manifest.json
data/forecasts/forecast-0e2973b22866fc6154b2192e/validation_report.json
data/forecasts/forecast-0e2973b22866fc6154b2192e/weather_manifest.json
data/forecasts/forecast-12e9f2d5fb07f8d10e280fe6/bundle.json
data/forecasts/forecast-12e9f2d5fb07f8d10e280fe6/bundle_checksum.json
data/forecasts/forecast-12e9f2d5fb07f8d10e280fe6/events.jsonl
data/forecasts/forecast-12e9f2d5fb07f8d10e280fe6/forecast.csv
data/forecasts/forecast-12e9f2d5fb07f8d10e280fe6/forecast_manifest.json
data/forecasts/forecast-12e9f2d5fb07f8d10e280fe6/validation_report.json
data/forecasts/forecast-12e9f2d5fb07f8d10e280fe6/weather_manifest.json
data/forecasts/forecast-145f3516e942fe4adb8a0bce/bundle.json
data/forecasts/forecast-145f3516e942fe4adb8a0bce/bundle_checksum.json
data/forecasts/forecast-145f3516e942fe4adb8a0bce/events.jsonl
data/forecasts/forecast-145f3516e942fe4adb8a0bce/forecast.csv
data/forecasts/forecast-145f3516e942fe4adb8a0bce/forecast_manifest.json
data/forecasts/forecast-145f3516e942fe4adb8a0bce/validation_report.json
data/forecasts/forecast-145f3516e942fe4adb8a0bce/weather_manifest.json
data/forecasts/forecast-171a038d5770cfffc40d60a1/bundle.json
data/forecasts/forecast-171a038d5770cfffc40d60a1/bundle_checksum.json
data/forecasts/forecast-171a038d5770cfffc40d60a1/events.jsonl
data/forecasts/forecast-171a038d5770cfffc40d60a1/forecast.csv
data/forecasts/forecast-171a038d5770cfffc40d60a1/forecast_manifest.json
data/forecasts/forecast-171a038d5770cfffc40d60a1/validation_report.json
data/forecasts/forecast-171a038d5770cfffc40d60a1/weather_manifest.json
data/forecasts/forecast-1748381c490192a257acf0cf/bundle.json
data/forecasts/forecast-1748381c490192a257acf0cf/bundle_checksum.json
data/forecasts/forecast-1748381c490192a257acf0cf/events.jsonl
data/forecasts/forecast-1748381c490192a257acf0cf/forecast.csv
data/forecasts/forecast-1748381c490192a257acf0cf/forecast_manifest.json
data/forecasts/forecast-1748381c490192a257acf0cf/validation_report.json
data/forecasts/forecast-1748381c490192a257acf0cf/weather_manifest.json
data/forecasts/forecast-17de48954e1c73e85c70176f/bundle.json
data/forecasts/forecast-17de48954e1c73e85c70176f/bundle_checksum.json
data/forecasts/forecast-17de48954e1c73e85c70176f/events.jsonl
data/forecasts/forecast-17de48954e1c73e85c70176f/forecast.csv
data/forecasts/forecast-17de48954e1c73e85c70176f/forecast_manifest.json
data/forecasts/forecast-17de48954e1c73e85c70176f/validation_report.json
data/forecasts/forecast-17de48954e1c73e85c70176f/weather_manifest.json
data/forecasts/forecast-2159d630bb94de00acece3ac/bundle.json
data/forecasts/forecast-2159d630bb94de00acece3ac/bundle_checksum.json
data/forecasts/forecast-2159d630bb94de00acece3ac/events.jsonl
data/forecasts/forecast-2159d630bb94de00acece3ac/forecast.csv
data/forecasts/forecast-2159d630bb94de00acece3ac/forecast_manifest.json
data/forecasts/forecast-2159d630bb94de00acece3ac/validation_report.json
data/forecasts/forecast-2159d630bb94de00acece3ac/weather_manifest.json
data/forecasts/forecast-2509ffa39628877b292032f0/bundle.json
data/forecasts/forecast-2509ffa39628877b292032f0/bundle_checksum.json
data/forecasts/forecast-2509ffa39628877b292032f0/events.jsonl
data/forecasts/forecast-2509ffa39628877b292032f0/forecast.csv
data/forecasts/forecast-2509ffa39628877b292032f0/forecast_manifest.json
data/forecasts/forecast-2509ffa39628877b292032f0/validation_report.json
data/forecasts/forecast-2509ffa39628877b292032f0/weather_manifest.json
data/forecasts/forecast-2876604e2efe564622c406cb/bundle.json
data/forecasts/forecast-2876604e2efe564622c406cb/bundle_checksum.json
data/forecasts/forecast-2876604e2efe564622c406cb/events.jsonl
data/forecasts/forecast-2876604e2efe564622c406cb/forecast.csv
data/forecasts/forecast-2876604e2efe564622c406cb/forecast_manifest.json
data/forecasts/forecast-2876604e2efe564622c406cb/validation_report.json
data/forecasts/forecast-2876604e2efe564622c406cb/weather_manifest.json
data/forecasts/forecast-2f29c1d85dbfb0e071b1b690/bundle.json
data/forecasts/forecast-2f29c1d85dbfb0e071b1b690/bundle_checksum.json
data/forecasts/forecast-2f29c1d85dbfb0e071b1b690/events.jsonl
data/forecasts/forecast-2f29c1d85dbfb0e071b1b690/forecast.csv
data/forecasts/forecast-2f29c1d85dbfb0e071b1b690/forecast_manifest.json
data/forecasts/forecast-2f29c1d85dbfb0e071b1b690/validation_report.json
data/forecasts/forecast-2f29c1d85dbfb0e071b1b690/weather_manifest.json
data/forecasts/forecast-38ccdbfdcca32631c4857e6d/bundle.json
data/forecasts/forecast-38ccdbfdcca32631c4857e6d/bundle_checksum.json
data/forecasts/forecast-38ccdbfdcca32631c4857e6d/events.jsonl
data/forecasts/forecast-38ccdbfdcca32631c4857e6d/forecast.csv
data/forecasts/forecast-38ccdbfdcca32631c4857e6d/forecast_manifest.json
data/forecasts/forecast-38ccdbfdcca32631c4857e6d/validation_report.json
data/forecasts/forecast-38ccdbfdcca32631c4857e6d/weather_manifest.json
data/forecasts/forecast-3bd7a5659d75a23ee6b9aea4/bundle.json
data/forecasts/forecast-3bd7a5659d75a23ee6b9aea4/bundle_checksum.json
data/forecasts/forecast-3bd7a5659d75a23ee6b9aea4/events.jsonl
data/forecasts/forecast-3bd7a5659d75a23ee6b9aea4/forecast.csv
data/forecasts/forecast-3bd7a5659d75a23ee6b9aea4/forecast_manifest.json
data/forecasts/forecast-3bd7a5659d75a23ee6b9aea4/validation_report.json
data/forecasts/forecast-3bd7a5659d75a23ee6b9aea4/weather_manifest.json
data/forecasts/forecast-3ca56402d0720765a907701e/bundle.json
data/forecasts/forecast-3ca56402d0720765a907701e/bundle_checksum.json
data/forecasts/forecast-3ca56402d0720765a907701e/events.jsonl
data/forecasts/forecast-3ca56402d0720765a907701e/forecast.csv
data/forecasts/forecast-3ca56402d0720765a907701e/forecast_manifest.json
data/forecasts/forecast-3ca56402d0720765a907701e/validation_report.json
data/forecasts/forecast-3ca56402d0720765a907701e/weather_manifest.json
data/forecasts/forecast-403ee871c82a7f7d30384fb0/bundle.json
data/forecasts/forecast-403ee871c82a7f7d30384fb0/bundle_checksum.json
data/forecasts/forecast-403ee871c82a7f7d30384fb0/events.jsonl
data/forecasts/forecast-403ee871c82a7f7d30384fb0/forecast.csv
data/forecasts/forecast-403ee871c82a7f7d30384fb0/forecast_manifest.json
data/forecasts/forecast-403ee871c82a7f7d30384fb0/validation_report.json
data/forecasts/forecast-403ee871c82a7f7d30384fb0/weather_manifest.json
data/forecasts/forecast-42b84f290eae97b71201c953/bundle.json
data/forecasts/forecast-42b84f290eae97b71201c953/bundle_checksum.json
data/forecasts/forecast-42b84f290eae97b71201c953/events.jsonl
data/forecasts/forecast-42b84f290eae97b71201c953/forecast.csv
data/forecasts/forecast-42b84f290eae97b71201c953/forecast_manifest.json
data/forecasts/forecast-42b84f290eae97b71201c953/validation_report.json
data/forecasts/forecast-42b84f290eae97b71201c953/weather_manifest.json
data/forecasts/forecast-4c8b42ac49529cf2b25eec29/bundle.json
data/forecasts/forecast-4c8b42ac49529cf2b25eec29/bundle_checksum.json
data/forecasts/forecast-4c8b42ac49529cf2b25eec29/events.jsonl
data/forecasts/forecast-4c8b42ac49529cf2b25eec29/forecast.csv
data/forecasts/forecast-4c8b42ac49529cf2b25eec29/forecast_manifest.json
data/forecasts/forecast-4c8b42ac49529cf2b25eec29/validation_report.json
data/forecasts/forecast-4c8b42ac49529cf2b25eec29/weather_manifest.json
data/forecasts/forecast-54c0371c19e2b7e7d2e7ec7a/bundle.json
data/forecasts/forecast-54c0371c19e2b7e7d2e7ec7a/bundle_checksum.json
data/forecasts/forecast-54c0371c19e2b7e7d2e7ec7a/events.jsonl
data/forecasts/forecast-54c0371c19e2b7e7d2e7ec7a/forecast.csv
data/forecasts/forecast-54c0371c19e2b7e7d2e7ec7a/forecast_manifest.json
data/forecasts/forecast-54c0371c19e2b7e7d2e7ec7a/validation_report.json
data/forecasts/forecast-54c0371c19e2b7e7d2e7ec7a/weather_manifest.json
data/forecasts/forecast-54eb16b0aa186e4f0d1a31d5/bundle.json
data/forecasts/forecast-54eb16b0aa186e4f0d1a31d5/bundle_checksum.json
data/forecasts/forecast-54eb16b0aa186e4f0d1a31d5/events.jsonl
data/forecasts/forecast-54eb16b0aa186e4f0d1a31d5/forecast.csv
data/forecasts/forecast-54eb16b0aa186e4f0d1a31d5/forecast_manifest.json
data/forecasts/forecast-54eb16b0aa186e4f0d1a31d5/validation_report.json
data/forecasts/forecast-54eb16b0aa186e4f0d1a31d5/weather_manifest.json
data/forecasts/forecast-59b43d3ca660b0e43d21b66e/bundle.json
data/forecasts/forecast-59b43d3ca660b0e43d21b66e/bundle_checksum.json
data/forecasts/forecast-59b43d3ca660b0e43d21b66e/events.jsonl
data/forecasts/forecast-59b43d3ca660b0e43d21b66e/forecast.csv
data/forecasts/forecast-59b43d3ca660b0e43d21b66e/forecast_manifest.json
data/forecasts/forecast-59b43d3ca660b0e43d21b66e/validation_report.json
data/forecasts/forecast-59b43d3ca660b0e43d21b66e/weather_manifest.json
data/forecasts/forecast-59c63f150c1d2635b16c1f15/bundle.json
data/forecasts/forecast-59c63f150c1d2635b16c1f15/bundle_checksum.json
data/forecasts/forecast-59c63f150c1d2635b16c1f15/events.jsonl
data/forecasts/forecast-59c63f150c1d2635b16c1f15/forecast.csv
data/forecasts/forecast-59c63f150c1d2635b16c1f15/forecast_manifest.json
data/forecasts/forecast-59c63f150c1d2635b16c1f15/validation_report.json
data/forecasts/forecast-59c63f150c1d2635b16c1f15/weather_manifest.json
data/forecasts/forecast-603f6df9ad7ec22eabe54e09/bundle.json
data/forecasts/forecast-603f6df9ad7ec22eabe54e09/bundle_checksum.json
data/forecasts/forecast-603f6df9ad7ec22eabe54e09/events.jsonl
data/forecasts/forecast-603f6df9ad7ec22eabe54e09/forecast.csv
data/forecasts/forecast-603f6df9ad7ec22eabe54e09/forecast_manifest.json
data/forecasts/forecast-603f6df9ad7ec22eabe54e09/validation_report.json
data/forecasts/forecast-603f6df9ad7ec22eabe54e09/weather_manifest.json
data/forecasts/forecast-612542a52eb3ad8f07aa8b10/bundle.json
data/forecasts/forecast-612542a52eb3ad8f07aa8b10/bundle_checksum.json
data/forecasts/forecast-612542a52eb3ad8f07aa8b10/events.jsonl
data/forecasts/forecast-612542a52eb3ad8f07aa8b10/forecast.csv
data/forecasts/forecast-612542a52eb3ad8f07aa8b10/forecast_manifest.json
data/forecasts/forecast-612542a52eb3ad8f07aa8b10/validation_report.json
data/forecasts/forecast-612542a52eb3ad8f07aa8b10/weather_manifest.json
data/forecasts/forecast-67b64a968e3f6bf9b84b4de7/bundle.json
data/forecasts/forecast-67b64a968e3f6bf9b84b4de7/bundle_checksum.json
data/forecasts/forecast-67b64a968e3f6bf9b84b4de7/events.jsonl
data/forecasts/forecast-67b64a968e3f6bf9b84b4de7/forecast.csv
data/forecasts/forecast-67b64a968e3f6bf9b84b4de7/forecast_manifest.json
data/forecasts/forecast-67b64a968e3f6bf9b84b4de7/validation_report.json
data/forecasts/forecast-67b64a968e3f6bf9b84b4de7/weather_manifest.json
data/forecasts/forecast-78335a92a9dafdcd064c6e31/bundle.json
data/forecasts/forecast-78335a92a9dafdcd064c6e31/bundle_checksum.json
data/forecasts/forecast-78335a92a9dafdcd064c6e31/events.jsonl
data/forecasts/forecast-78335a92a9dafdcd064c6e31/forecast.csv
data/forecasts/forecast-78335a92a9dafdcd064c6e31/forecast_manifest.json
data/forecasts/forecast-78335a92a9dafdcd064c6e31/validation_report.json
data/forecasts/forecast-78335a92a9dafdcd064c6e31/weather_manifest.json
data/forecasts/forecast-787af6d7b1bf606aa07d392a/bundle.json
data/forecasts/forecast-787af6d7b1bf606aa07d392a/bundle_checksum.json
data/forecasts/forecast-787af6d7b1bf606aa07d392a/events.jsonl
data/forecasts/forecast-787af6d7b1bf606aa07d392a/forecast.csv
data/forecasts/forecast-787af6d7b1bf606aa07d392a/forecast_manifest.json
data/forecasts/forecast-787af6d7b1bf606aa07d392a/validation_report.json
data/forecasts/forecast-787af6d7b1bf606aa07d392a/weather_manifest.json
data/forecasts/forecast-7a520ceb23ab85117a90df94/bundle.json
data/forecasts/forecast-7a520ceb23ab85117a90df94/bundle_checksum.json
data/forecasts/forecast-7a520ceb23ab85117a90df94/events.jsonl
data/forecasts/forecast-7a520ceb23ab85117a90df94/forecast.csv
data/forecasts/forecast-7a520ceb23ab85117a90df94/forecast_manifest.json
data/forecasts/forecast-7a520ceb23ab85117a90df94/validation_report.json
data/forecasts/forecast-7a520ceb23ab85117a90df94/weather_manifest.json
data/forecasts/forecast-7d4fa54689b0ec15416c9c9f/bundle.json
data/forecasts/forecast-7d4fa54689b0ec15416c9c9f/bundle_checksum.json
data/forecasts/forecast-7d4fa54689b0ec15416c9c9f/events.jsonl
data/forecasts/forecast-7d4fa54689b0ec15416c9c9f/forecast.csv
data/forecasts/forecast-7d4fa54689b0ec15416c9c9f/forecast_manifest.json
data/forecasts/forecast-7d4fa54689b0ec15416c9c9f/validation_report.json
data/forecasts/forecast-7d4fa54689b0ec15416c9c9f/weather_manifest.json
data/forecasts/forecast-7f2a424f9b240e6076be9dc2/bundle.json
data/forecasts/forecast-7f2a424f9b240e6076be9dc2/bundle_checksum.json
data/forecasts/forecast-7f2a424f9b240e6076be9dc2/events.jsonl
data/forecasts/forecast-7f2a424f9b240e6076be9dc2/forecast.csv
data/forecasts/forecast-7f2a424f9b240e6076be9dc2/forecast_manifest.json
data/forecasts/forecast-7f2a424f9b240e6076be9dc2/validation_report.json
data/forecasts/forecast-7f2a424f9b240e6076be9dc2/weather_manifest.json
data/forecasts/forecast-7f5731a55df961b4ac8ff004/bundle.json
data/forecasts/forecast-7f5731a55df961b4ac8ff004/bundle_checksum.json
data/forecasts/forecast-7f5731a55df961b4ac8ff004/events.jsonl
data/forecasts/forecast-7f5731a55df961b4ac8ff004/forecast.csv
data/forecasts/forecast-7f5731a55df961b4ac8ff004/forecast_manifest.json
data/forecasts/forecast-7f5731a55df961b4ac8ff004/validation_report.json
data/forecasts/forecast-7f5731a55df961b4ac8ff004/weather_manifest.json
data/forecasts/forecast-8098dd0a07f3b4f2e21004f7/bundle.json
data/forecasts/forecast-8098dd0a07f3b4f2e21004f7/bundle_checksum.json
data/forecasts/forecast-8098dd0a07f3b4f2e21004f7/events.jsonl
data/forecasts/forecast-8098dd0a07f3b4f2e21004f7/forecast.csv
data/forecasts/forecast-8098dd0a07f3b4f2e21004f7/forecast_manifest.json
data/forecasts/forecast-8098dd0a07f3b4f2e21004f7/validation_report.json
data/forecasts/forecast-8098dd0a07f3b4f2e21004f7/weather_manifest.json
data/forecasts/forecast-80de4173d4f18b9dbb097610/bundle.json
data/forecasts/forecast-80de4173d4f18b9dbb097610/bundle_checksum.json
data/forecasts/forecast-80de4173d4f18b9dbb097610/events.jsonl
data/forecasts/forecast-80de4173d4f18b9dbb097610/forecast.csv
data/forecasts/forecast-80de4173d4f18b9dbb097610/forecast_manifest.json
data/forecasts/forecast-80de4173d4f18b9dbb097610/validation_report.json
data/forecasts/forecast-80de4173d4f18b9dbb097610/weather_manifest.json
data/forecasts/forecast-840406eb17a34fd0436f9c50/bundle.json
data/forecasts/forecast-840406eb17a34fd0436f9c50/bundle_checksum.json
data/forecasts/forecast-840406eb17a34fd0436f9c50/events.jsonl
data/forecasts/forecast-840406eb17a34fd0436f9c50/forecast.csv
data/forecasts/forecast-840406eb17a34fd0436f9c50/forecast_manifest.json
data/forecasts/forecast-840406eb17a34fd0436f9c50/validation_report.json
data/forecasts/forecast-840406eb17a34fd0436f9c50/weather_manifest.json
data/forecasts/forecast-85425196408bbe7c6c8416ce/bundle.json
data/forecasts/forecast-85425196408bbe7c6c8416ce/bundle_checksum.json
data/forecasts/forecast-85425196408bbe7c6c8416ce/events.jsonl
data/forecasts/forecast-85425196408bbe7c6c8416ce/forecast.csv
data/forecasts/forecast-85425196408bbe7c6c8416ce/forecast_manifest.json
data/forecasts/forecast-85425196408bbe7c6c8416ce/validation_report.json
data/forecasts/forecast-85425196408bbe7c6c8416ce/weather_manifest.json
data/forecasts/forecast-8cd582df56ae88dcc835e7b9/bundle.json
data/forecasts/forecast-8cd582df56ae88dcc835e7b9/bundle_checksum.json
data/forecasts/forecast-8cd582df56ae88dcc835e7b9/events.jsonl
data/forecasts/forecast-8cd582df56ae88dcc835e7b9/forecast.csv
data/forecasts/forecast-8cd582df56ae88dcc835e7b9/forecast_manifest.json
data/forecasts/forecast-8cd582df56ae88dcc835e7b9/validation_report.json
data/forecasts/forecast-8cd582df56ae88dcc835e7b9/weather_manifest.json
data/forecasts/forecast-8cf785e48dc483a22afb3d3a/bundle.json
data/forecasts/forecast-8cf785e48dc483a22afb3d3a/bundle_checksum.json
data/forecasts/forecast-8cf785e48dc483a22afb3d3a/events.jsonl
data/forecasts/forecast-8cf785e48dc483a22afb3d3a/forecast.csv
data/forecasts/forecast-8cf785e48dc483a22afb3d3a/forecast_manifest.json
data/forecasts/forecast-8cf785e48dc483a22afb3d3a/validation_report.json
data/forecasts/forecast-8cf785e48dc483a22afb3d3a/weather_manifest.json
data/forecasts/forecast-8e2632e856e47dadc2a5f4ba/bundle.json
data/forecasts/forecast-8e2632e856e47dadc2a5f4ba/bundle_checksum.json
data/forecasts/forecast-8e2632e856e47dadc2a5f4ba/events.jsonl
data/forecasts/forecast-8e2632e856e47dadc2a5f4ba/forecast.csv
data/forecasts/forecast-8e2632e856e47dadc2a5f4ba/forecast_manifest.json
data/forecasts/forecast-8e2632e856e47dadc2a5f4ba/validation_report.json
data/forecasts/forecast-8e2632e856e47dadc2a5f4ba/weather_manifest.json
data/forecasts/forecast-8f55577d9b6a4920938b07b8/bundle.json
data/forecasts/forecast-8f55577d9b6a4920938b07b8/bundle_checksum.json
data/forecasts/forecast-8f55577d9b6a4920938b07b8/events.jsonl
data/forecasts/forecast-8f55577d9b6a4920938b07b8/forecast.csv
data/forecasts/forecast-8f55577d9b6a4920938b07b8/forecast_manifest.json
data/forecasts/forecast-8f55577d9b6a4920938b07b8/validation_report.json
data/forecasts/forecast-8f55577d9b6a4920938b07b8/weather_manifest.json
data/forecasts/forecast-947ba7c3d9c82c2805cd6be1/bundle.json
data/forecasts/forecast-947ba7c3d9c82c2805cd6be1/bundle_checksum.json
data/forecasts/forecast-947ba7c3d9c82c2805cd6be1/events.jsonl
data/forecasts/forecast-947ba7c3d9c82c2805cd6be1/forecast.csv
data/forecasts/forecast-947ba7c3d9c82c2805cd6be1/forecast_manifest.json
data/forecasts/forecast-947ba7c3d9c82c2805cd6be1/validation_report.json
data/forecasts/forecast-947ba7c3d9c82c2805cd6be1/weather_manifest.json
data/forecasts/forecast-99206de5ff4317cbcbacc2de/bundle.json
data/forecasts/forecast-99206de5ff4317cbcbacc2de/bundle_checksum.json
data/forecasts/forecast-99206de5ff4317cbcbacc2de/events.jsonl
data/forecasts/forecast-99206de5ff4317cbcbacc2de/forecast.csv
data/forecasts/forecast-99206de5ff4317cbcbacc2de/forecast_manifest.json
data/forecasts/forecast-99206de5ff4317cbcbacc2de/validation_report.json
data/forecasts/forecast-99206de5ff4317cbcbacc2de/weather_manifest.json
data/forecasts/forecast-9a6e82a781a5b8b4e6f00d46/bundle.json
data/forecasts/forecast-9a6e82a781a5b8b4e6f00d46/bundle_checksum.json
data/forecasts/forecast-9a6e82a781a5b8b4e6f00d46/events.jsonl
data/forecasts/forecast-9a6e82a781a5b8b4e6f00d46/forecast.csv
data/forecasts/forecast-9a6e82a781a5b8b4e6f00d46/forecast_manifest.json
data/forecasts/forecast-9a6e82a781a5b8b4e6f00d46/validation_report.json
data/forecasts/forecast-9a6e82a781a5b8b4e6f00d46/weather_manifest.json
data/forecasts/forecast-a23dc87af5ed40d1198d37f4/bundle.json
data/forecasts/forecast-a23dc87af5ed40d1198d37f4/bundle_checksum.json
data/forecasts/forecast-a23dc87af5ed40d1198d37f4/events.jsonl
data/forecasts/forecast-a23dc87af5ed40d1198d37f4/forecast.csv
data/forecasts/forecast-a23dc87af5ed40d1198d37f4/forecast_manifest.json
data/forecasts/forecast-a23dc87af5ed40d1198d37f4/validation_report.json
data/forecasts/forecast-a23dc87af5ed40d1198d37f4/weather_manifest.json
data/forecasts/forecast-a2f02120d12b698d569181c9/bundle.json
data/forecasts/forecast-a2f02120d12b698d569181c9/bundle_checksum.json
data/forecasts/forecast-a2f02120d12b698d569181c9/events.jsonl
data/forecasts/forecast-a2f02120d12b698d569181c9/forecast.csv
data/forecasts/forecast-a2f02120d12b698d569181c9/forecast_manifest.json
data/forecasts/forecast-a2f02120d12b698d569181c9/validation_report.json
data/forecasts/forecast-a2f02120d12b698d569181c9/weather_manifest.json
data/forecasts/forecast-a4c5c3a2d3473552e060b1a7/bundle.json
data/forecasts/forecast-a4c5c3a2d3473552e060b1a7/bundle_checksum.json
data/forecasts/forecast-a4c5c3a2d3473552e060b1a7/events.jsonl
data/forecasts/forecast-a4c5c3a2d3473552e060b1a7/forecast.csv
data/forecasts/forecast-a4c5c3a2d3473552e060b1a7/forecast_manifest.json
data/forecasts/forecast-a4c5c3a2d3473552e060b1a7/validation_report.json
data/forecasts/forecast-a4c5c3a2d3473552e060b1a7/weather_manifest.json
data/forecasts/forecast-a676b2feca459dd4f493e9c6/bundle.json
data/forecasts/forecast-a676b2feca459dd4f493e9c6/bundle_checksum.json
data/forecasts/forecast-a676b2feca459dd4f493e9c6/events.jsonl
data/forecasts/forecast-a676b2feca459dd4f493e9c6/forecast.csv
data/forecasts/forecast-a676b2feca459dd4f493e9c6/forecast_manifest.json
data/forecasts/forecast-a676b2feca459dd4f493e9c6/validation_report.json
data/forecasts/forecast-a676b2feca459dd4f493e9c6/weather_manifest.json
data/forecasts/forecast-a91f91e2d3b1e5caf41153af/bundle.json
data/forecasts/forecast-a91f91e2d3b1e5caf41153af/bundle_checksum.json
data/forecasts/forecast-a91f91e2d3b1e5caf41153af/events.jsonl
data/forecasts/forecast-a91f91e2d3b1e5caf41153af/forecast.csv
data/forecasts/forecast-a91f91e2d3b1e5caf41153af/forecast_manifest.json
data/forecasts/forecast-a91f91e2d3b1e5caf41153af/validation_report.json
data/forecasts/forecast-a91f91e2d3b1e5caf41153af/weather_manifest.json
data/forecasts/forecast-ac0901c260e1403f37d0b95f/bundle.json
data/forecasts/forecast-ac0901c260e1403f37d0b95f/bundle_checksum.json
data/forecasts/forecast-ac0901c260e1403f37d0b95f/events.jsonl
data/forecasts/forecast-ac0901c260e1403f37d0b95f/forecast.csv
data/forecasts/forecast-ac0901c260e1403f37d0b95f/forecast_manifest.json
data/forecasts/forecast-ac0901c260e1403f37d0b95f/validation_report.json
data/forecasts/forecast-ac0901c260e1403f37d0b95f/weather_manifest.json
data/forecasts/forecast-af20a94aac8d8c18517e06f0/bundle.json
data/forecasts/forecast-af20a94aac8d8c18517e06f0/bundle_checksum.json
data/forecasts/forecast-af20a94aac8d8c18517e06f0/events.jsonl
data/forecasts/forecast-af20a94aac8d8c18517e06f0/forecast.csv
data/forecasts/forecast-af20a94aac8d8c18517e06f0/forecast_manifest.json
data/forecasts/forecast-af20a94aac8d8c18517e06f0/validation_report.json
data/forecasts/forecast-af20a94aac8d8c18517e06f0/weather_manifest.json
data/forecasts/forecast-b3232c2c17f43111b63b9c5b/bundle.json
data/forecasts/forecast-b3232c2c17f43111b63b9c5b/bundle_checksum.json
data/forecasts/forecast-b3232c2c17f43111b63b9c5b/events.jsonl
data/forecasts/forecast-b3232c2c17f43111b63b9c5b/forecast.csv
data/forecasts/forecast-b3232c2c17f43111b63b9c5b/forecast_manifest.json
data/forecasts/forecast-b3232c2c17f43111b63b9c5b/validation_report.json
data/forecasts/forecast-b3232c2c17f43111b63b9c5b/weather_manifest.json
data/forecasts/forecast-b52bb976f30564ebbdbf03b2/bundle.json
data/forecasts/forecast-b52bb976f30564ebbdbf03b2/bundle_checksum.json
data/forecasts/forecast-b52bb976f30564ebbdbf03b2/events.jsonl
data/forecasts/forecast-b52bb976f30564ebbdbf03b2/forecast.csv
data/forecasts/forecast-b52bb976f30564ebbdbf03b2/forecast_manifest.json
data/forecasts/forecast-b52bb976f30564ebbdbf03b2/validation_report.json
data/forecasts/forecast-b52bb976f30564ebbdbf03b2/weather_manifest.json
data/forecasts/forecast-b6c15aa777ea2a07a746b321/bundle.json
data/forecasts/forecast-b6c15aa777ea2a07a746b321/bundle_checksum.json
data/forecasts/forecast-b6c15aa777ea2a07a746b321/events.jsonl
data/forecasts/forecast-b6c15aa777ea2a07a746b321/forecast.csv
data/forecasts/forecast-b6c15aa777ea2a07a746b321/forecast_manifest.json
data/forecasts/forecast-b6c15aa777ea2a07a746b321/validation_report.json
data/forecasts/forecast-b6c15aa777ea2a07a746b321/weather_manifest.json
data/forecasts/forecast-b9374766947e12d8247ad53e/bundle.json
data/forecasts/forecast-b9374766947e12d8247ad53e/bundle_checksum.json
data/forecasts/forecast-b9374766947e12d8247ad53e/events.jsonl
data/forecasts/forecast-b9374766947e12d8247ad53e/forecast.csv
data/forecasts/forecast-b9374766947e12d8247ad53e/forecast_manifest.json
data/forecasts/forecast-b9374766947e12d8247ad53e/validation_report.json
data/forecasts/forecast-b9374766947e12d8247ad53e/weather_manifest.json
data/forecasts/forecast-bba294c2097942452e7a2721/bundle.json
data/forecasts/forecast-bba294c2097942452e7a2721/bundle_checksum.json
data/forecasts/forecast-bba294c2097942452e7a2721/events.jsonl
data/forecasts/forecast-bba294c2097942452e7a2721/forecast.csv
data/forecasts/forecast-bba294c2097942452e7a2721/forecast_manifest.json
data/forecasts/forecast-bba294c2097942452e7a2721/validation_report.json
data/forecasts/forecast-bba294c2097942452e7a2721/weather_manifest.json
data/forecasts/forecast-bfded6b1643215ef78590650/bundle.json
data/forecasts/forecast-bfded6b1643215ef78590650/bundle_checksum.json
data/forecasts/forecast-bfded6b1643215ef78590650/events.jsonl
data/forecasts/forecast-bfded6b1643215ef78590650/forecast.csv
data/forecasts/forecast-bfded6b1643215ef78590650/forecast_manifest.json
data/forecasts/forecast-bfded6b1643215ef78590650/validation_report.json
data/forecasts/forecast-bfded6b1643215ef78590650/weather_manifest.json
data/forecasts/forecast-c23741e0cab0867c1036598e/bundle.json
data/forecasts/forecast-c23741e0cab0867c1036598e/bundle_checksum.json
data/forecasts/forecast-c23741e0cab0867c1036598e/events.jsonl
data/forecasts/forecast-c23741e0cab0867c1036598e/forecast.csv
data/forecasts/forecast-c23741e0cab0867c1036598e/forecast_manifest.json
data/forecasts/forecast-c23741e0cab0867c1036598e/validation_report.json
data/forecasts/forecast-c23741e0cab0867c1036598e/weather_manifest.json
data/forecasts/forecast-c59ab675c470bfc6e9d08745/bundle.json
data/forecasts/forecast-c59ab675c470bfc6e9d08745/bundle_checksum.json
data/forecasts/forecast-c59ab675c470bfc6e9d08745/events.jsonl
data/forecasts/forecast-c59ab675c470bfc6e9d08745/forecast.csv
data/forecasts/forecast-c59ab675c470bfc6e9d08745/forecast_manifest.json
data/forecasts/forecast-c59ab675c470bfc6e9d08745/validation_report.json
data/forecasts/forecast-c59ab675c470bfc6e9d08745/weather_manifest.json
data/forecasts/forecast-cd488e560d8c571ae2670c39/bundle.json
data/forecasts/forecast-cd488e560d8c571ae2670c39/bundle_checksum.json
data/forecasts/forecast-cd488e560d8c571ae2670c39/events.jsonl
data/forecasts/forecast-cd488e560d8c571ae2670c39/forecast.csv
data/forecasts/forecast-cd488e560d8c571ae2670c39/forecast_manifest.json
data/forecasts/forecast-cd488e560d8c571ae2670c39/validation_report.json
data/forecasts/forecast-cd488e560d8c571ae2670c39/weather_manifest.json
data/forecasts/forecast-cd70580e1a80acd1787b0cf6/bundle.json
data/forecasts/forecast-cd70580e1a80acd1787b0cf6/bundle_checksum.json
data/forecasts/forecast-cd70580e1a80acd1787b0cf6/events.jsonl
data/forecasts/forecast-cd70580e1a80acd1787b0cf6/forecast.csv
data/forecasts/forecast-cd70580e1a80acd1787b0cf6/forecast_manifest.json
data/forecasts/forecast-cd70580e1a80acd1787b0cf6/validation_report.json
data/forecasts/forecast-cd70580e1a80acd1787b0cf6/weather_manifest.json
data/forecasts/forecast-d24f50022b3c5b929db71f38/bundle.json
data/forecasts/forecast-d24f50022b3c5b929db71f38/bundle_checksum.json
data/forecasts/forecast-d24f50022b3c5b929db71f38/events.jsonl
data/forecasts/forecast-d24f50022b3c5b929db71f38/forecast.csv
data/forecasts/forecast-d24f50022b3c5b929db71f38/forecast_manifest.json
data/forecasts/forecast-d24f50022b3c5b929db71f38/validation_report.json
data/forecasts/forecast-d24f50022b3c5b929db71f38/weather_manifest.json
data/forecasts/forecast-d81613c22d22970e97bfacc4/bundle.json
data/forecasts/forecast-d81613c22d22970e97bfacc4/bundle_checksum.json
data/forecasts/forecast-d81613c22d22970e97bfacc4/events.jsonl
data/forecasts/forecast-d81613c22d22970e97bfacc4/forecast.csv
data/forecasts/forecast-d81613c22d22970e97bfacc4/forecast_manifest.json
data/forecasts/forecast-d81613c22d22970e97bfacc4/validation_report.json
data/forecasts/forecast-d81613c22d22970e97bfacc4/weather_manifest.json
data/forecasts/forecast-d8b4dee185b786cf3132019e/bundle.json
data/forecasts/forecast-d8b4dee185b786cf3132019e/bundle_checksum.json
data/forecasts/forecast-d8b4dee185b786cf3132019e/events.jsonl
data/forecasts/forecast-d8b4dee185b786cf3132019e/forecast.csv
data/forecasts/forecast-d8b4dee185b786cf3132019e/forecast_manifest.json
data/forecasts/forecast-d8b4dee185b786cf3132019e/validation_report.json
data/forecasts/forecast-d8b4dee185b786cf3132019e/weather_manifest.json
data/forecasts/forecast-d94973364e6407853248c021/bundle.json
data/forecasts/forecast-d94973364e6407853248c021/bundle_checksum.json
data/forecasts/forecast-d94973364e6407853248c021/events.jsonl
data/forecasts/forecast-d94973364e6407853248c021/forecast.csv
data/forecasts/forecast-d94973364e6407853248c021/forecast_manifest.json
data/forecasts/forecast-d94973364e6407853248c021/validation_report.json
data/forecasts/forecast-d94973364e6407853248c021/weather_manifest.json
data/forecasts/forecast-e67b302928610d0bca5a2f20/bundle.json
data/forecasts/forecast-e67b302928610d0bca5a2f20/bundle_checksum.json
data/forecasts/forecast-e67b302928610d0bca5a2f20/events.jsonl
data/forecasts/forecast-e67b302928610d0bca5a2f20/forecast.csv
data/forecasts/forecast-e67b302928610d0bca5a2f20/forecast_manifest.json
data/forecasts/forecast-e67b302928610d0bca5a2f20/validation_report.json
data/forecasts/forecast-e67b302928610d0bca5a2f20/weather_manifest.json
data/forecasts/forecast-f5117e0d34e3b8589a88db80/bundle.json
data/forecasts/forecast-f5117e0d34e3b8589a88db80/bundle_checksum.json
data/forecasts/forecast-f5117e0d34e3b8589a88db80/events.jsonl
data/forecasts/forecast-f5117e0d34e3b8589a88db80/forecast.csv
data/forecasts/forecast-f5117e0d34e3b8589a88db80/forecast_manifest.json
data/forecasts/forecast-f5117e0d34e3b8589a88db80/validation_report.json
data/forecasts/forecast-f5117e0d34e3b8589a88db80/weather_manifest.json
data/forecasts/forecast-f9d73a002c7ba52b1a0c30f1/bundle.json
data/forecasts/forecast-f9d73a002c7ba52b1a0c30f1/bundle_checksum.json
data/forecasts/forecast-f9d73a002c7ba52b1a0c30f1/events.jsonl
data/forecasts/forecast-f9d73a002c7ba52b1a0c30f1/forecast.csv
data/forecasts/forecast-f9d73a002c7ba52b1a0c30f1/forecast_manifest.json
data/forecasts/forecast-f9d73a002c7ba52b1a0c30f1/validation_report.json
data/forecasts/forecast-f9d73a002c7ba52b1a0c30f1/weather_manifest.json
data/forecasts/forecast-fce499b0deb36b03f5c4b444/bundle.json
data/forecasts/forecast-fce499b0deb36b03f5c4b444/bundle_checksum.json
data/forecasts/forecast-fce499b0deb36b03f5c4b444/events.jsonl
data/forecasts/forecast-fce499b0deb36b03f5c4b444/forecast.csv
data/forecasts/forecast-fce499b0deb36b03f5c4b444/forecast_manifest.json
data/forecasts/forecast-fce499b0deb36b03f5c4b444/validation_report.json
data/forecasts/forecast-fce499b0deb36b03f5c4b444/weather_manifest.json
data/ml/backend_verification.json
data/ml/baseline_models.json
data/ml/baseline_verification.json
data/ml/examples.csv
data/ml/february_export.json
data/ml/february_full_releases.csv
data/ml/february_hourly.csv
data/ml/final_models.json
data/ml/hourly_scada.csv
data/ml/inference/00b6b33d871527cee409e820.json
data/ml/inference/07a4e14ec5e556c46b098ed1.json
data/ml/inference/08e6a03aeae8b949d4e9f820.json
data/ml/inference/0b876e16f2d2eec581a5fe53.json
data/ml/inference/0e7ae06751cfda44de68585b.json
data/ml/inference/0e8e3f8e70b87b059a0b971f.json
data/ml/inference/14f5517543d37baef7c47c46.json
data/ml/inference/1edd40e3d141aa2aba03f318.json
data/ml/inference/25825ffb25022aae8b31a197.json
data/ml/inference/2ca7f69715353f95478524cd.json
data/ml/inference/2f6d95cd314c2dd13fc46d8c.json
data/ml/inference/30fe7d01ac1f7f48cd783611.json
data/ml/inference/33eef084adec2fd30d05b18c.json
data/ml/inference/35b4b537957117409243db0d.json
data/ml/inference/36e21da3073a34f1f27daafc.json
data/ml/inference/3b50291af007b64c2ef7b2d4.json
data/ml/inference/3df9d91e46dc40638ac75c30.json
data/ml/inference/40736e8c556fcda4f638e22e.json
data/ml/inference/4156738a7d157d237ce17114.json
data/ml/inference/42693996d3ce3ba1be14de66.json
data/ml/inference/4407e259c37c0dce3620fe78.json
data/ml/inference/451820499dea690159d5f5b7.json
data/ml/inference/48af3da56fb0106707dd0e45.json
data/ml/inference/4c6cecad12008d2d71c4af22.json
data/ml/inference/50f68321c013e3b4e7a8feba.json
data/ml/inference/621210d21c402cf57742be3a.json
data/ml/inference/64d391396908e37542b63fe3.json
data/ml/inference/67595c9d433e12ebf470e95b.json
data/ml/inference/67e922af785c0867161cfc16.json
data/ml/inference/6c0638f97f17e5304e3b9801.json
data/ml/inference/6f45dbd017205f453bb249f8.json
data/ml/inference/6ffdbbe6b7c6c61c918f9435.json
data/ml/inference/703026ff148abb9692a8ccf1.json
data/ml/inference/703e6d5dc69d8aee13b185f7.json
data/ml/inference/70f585828fa31f0d6601af05.json
data/ml/inference/755e50950ccbe317660a7bef.json
data/ml/inference/77383f8b820d9d8f9893a357.json
data/ml/inference/77a58d867a7b621f9e807fb0.json
data/ml/inference/7d200fd106da7bbc4f78f9c0.json
data/ml/inference/7f7662d5f2b4341990bc6429.json
data/ml/inference/8133a65e8f6b54363ae9ad0f.json
data/ml/inference/8186fe488318919f32c4ca97.json
data/ml/inference/876f65bbfbc7e4aa9d975ff8.json
data/ml/inference/8931697a023041daabb3f244.json
data/ml/inference/897a498132117e52ba2d0f06.json
data/ml/inference/91cc78d6dead36ad63121e3c.json
data/ml/inference/950f7c90e346325d1313d123.json
data/ml/inference/96303379e6c59447897dce82.json
data/ml/inference/9ab5323d3a5cb0ae623a7a95.json
data/ml/inference/9eaf0b4f3860a90f09b5d893.json
data/ml/inference/a05209dbca52cce1b23f1154.json
data/ml/inference/a49a7b82cfc49a0682f0e456.json
data/ml/inference/a8f8ed823e9a764cdecf92dd.json
data/ml/inference/b4d767225ff692c6975f437e.json
data/ml/inference/b5e40356e2d6de3fe5e226a1.json
data/ml/inference/b6fbc46afdeb3b17735ccdfb.json
data/ml/inference/b7600eb86fbd375990be6864.json
data/ml/inference/beda4daf0a0b023a6e40dc12.json
data/ml/inference/bfd7dea20a1167d1659293d2.json
data/ml/inference/c1989137cead7e75e6b6134b.json
data/ml/inference/c351df05b5a87a1cd57855b9.json
data/ml/inference/c605be471950f7823547ebda.json
data/ml/inference/c67d6817aae371dd00c28173.json
data/ml/inference/cfa7739ce9743f5bb23192e7.json
data/ml/inference/d446579198ebcf3a5604549a.json
data/ml/inference/d45635e5c0354fd91b849f90.json
data/ml/inference/dca0297c0526dfda42b5c266.json
data/ml/inference/dd9cbb1f90adb3d24fa3e420.json
data/ml/inference/e04ef79cdcd30a5b1b6248c2.json
data/ml/inference/e22908099c9efb5b0d3bd758.json
data/ml/inference/e286cdb0ec549d5f8c224285.json
data/ml/inference/ee742a3bb0ebc5fec3b89f5d.json
data/ml/inference/f1dc9ceaa9c1264a3da4f863.json
data/ml/inference/f58609ea6a917dfaeb44ece7.json
data/ml/january_backtest.json
data/ml/january_metrics.json
data/ml/january_ui_metrics.csv
data/ml/prepared.json
data/ml/run_summary.json
data/ml/selection.json
data/ml/selection_checksum.json
data/ml/splits/baseline.json
data/ml/splits/baseline_train.csv
data/ml/splits/december.json
data/ml/splits/december_eligibility.csv
data/ml/splits/december_evaluation.csv
data/ml/splits/december_train.csv
data/ml/splits/final.json
data/ml/splits/final_train.csv
data/ml/splits/january.json
data/ml/splits/january_evaluation.csv
data/ml/splits/january_train.csv
data/reports/backend_verification.json
data/reports/collection_2025-09-30_2026-02-28.json
data/reports/collection_2025-10-01_2025-12-30.json
data/reports/collection_2025-12-31_2026-01-30.json
data/reports/collection_2026-01-31_2026-01-31.json
data/reports/collection_2026-01-31_2026-02-28.json
data/reports/final_release_verification.json
data/reports/last_forecast_error.json
data/reports/llm_smoke_verification.json
data/reports/replay.json
data/reports/scada_audit.json
data/reports/weather_coverage.json
data/scada/source_manifest.json
data/scada/turbine_1.csv
data/scada/turbine_2.csv
data/weather/bundles/gfs-005fac4da5a4bea5a3b3f999.json
data/weather/bundles/gfs-0097529a146ffa8eb66bf803.json
data/weather/bundles/gfs-00f8250dbe4310df4794276e.json
data/weather/bundles/gfs-01b85528e03af6964d608318.json
data/weather/bundles/gfs-0508518fd4ad7b1ddce74dc6.json
data/weather/bundles/gfs-065a334a38e3950025595f1a.json
data/weather/bundles/gfs-067c34c7d4e83a64c56d8b54.json
data/weather/bundles/gfs-07a0116c35a7d11e92a65161.json
data/weather/bundles/gfs-0802cd4406434a3ba48f4526.json
data/weather/bundles/gfs-08e54c65ac401bd708e5e6b0.json
data/weather/bundles/gfs-0a24e922433fcae0e6a8c2f5.json
data/weather/bundles/gfs-0a63c7ecfe8b70393bb7a545.json
data/weather/bundles/gfs-0a6cea7963b1395f837df108.json
data/weather/bundles/gfs-0f69db49fae19b2a6544b239.json
data/weather/bundles/gfs-15849efe12ca8a2194ecd248.json
data/weather/bundles/gfs-15a021cb57cff54121672d57.json
data/weather/bundles/gfs-17f64d478acb590994c575eb.json
data/weather/bundles/gfs-188e1bae2ce5a33d4da63b0f.json
data/weather/bundles/gfs-1ac70e20a72b04f3645a192a.json
data/weather/bundles/gfs-1dde0d2ef6692b6426993dd3.json
data/weather/bundles/gfs-202efc033217df034c5ee4a6.json
data/weather/bundles/gfs-20e271b9f88a11f7e1f205fd.json
data/weather/bundles/gfs-223390ce27bdd72357a3f522.json
data/weather/bundles/gfs-23cba7cc99c00caa29fdeb3c.json
data/weather/bundles/gfs-261d24ebd97c8475f1346388.json
data/weather/bundles/gfs-27c8c66f51d43f179e5c3d7f.json
data/weather/bundles/gfs-28bc8a79f240d0d3eabefe53.json
data/weather/bundles/gfs-2a3e38b40450fa05a15b4ac1.json
data/weather/bundles/gfs-2b87230902064c821a217077.json
data/weather/bundles/gfs-2be9908970330352d2a694cc.json
data/weather/bundles/gfs-2c893a13fc8f4d31b9eb2700.json
data/weather/bundles/gfs-2d3197d21a53d478daec3f3a.json
data/weather/bundles/gfs-2e6a94c8901820bf41761b83.json
data/weather/bundles/gfs-2f30e62e9e8f58ef0976d909.json
data/weather/bundles/gfs-2fa96ac9cf3ffb867b9bdb88.json
data/weather/bundles/gfs-30eae9770280860931c8dd4b.json
data/weather/bundles/gfs-30ff71858fc25425fddb82ee.json
data/weather/bundles/gfs-31880d666681c30f7f262ffb.json
data/weather/bundles/gfs-380504a5a9b2bd88e1f3432a.json
data/weather/bundles/gfs-3921d47968944ba77c02680a.json
data/weather/bundles/gfs-393e03da3b4ad6e500eaafa6.json
data/weather/bundles/gfs-39467449dbae35ba94a77591.json
data/weather/bundles/gfs-39602cd3b769f18671c00572.json
data/weather/bundles/gfs-3b01fc67d4799973fa65e853.json
data/weather/bundles/gfs-3e6198c39677194bfb43b504.json
data/weather/bundles/gfs-40a2674a5bc6b9cbe2414c84.json
data/weather/bundles/gfs-4163c1a7d00ded2ca29defa5.json
data/weather/bundles/gfs-423cbbb016a656b4dee995b5.json
data/weather/bundles/gfs-4673e28b57bc255680a57338.json
data/weather/bundles/gfs-47f1ea7d21a24887b153a8ed.json
data/weather/bundles/gfs-491ff36e643b6f5cb7ab1e10.json
data/weather/bundles/gfs-4af0dea4da39acdac6609114.json
data/weather/bundles/gfs-4d7fa08866ff70d6f0722525.json
data/weather/bundles/gfs-4ec462b2beeca910e95d9821.json
data/weather/bundles/gfs-50a9226ba26d20b2b723fdb5.json
data/weather/bundles/gfs-5152a82906d72c56941fc12c.json
data/weather/bundles/gfs-51a31a3f0cefcb5d046a1bab.json
data/weather/bundles/gfs-5407546dd72ae1b0dd32d86c.json
data/weather/bundles/gfs-57ed85a8de7bbf75e0b3fc09.json
data/weather/bundles/gfs-591dd93ff85da608bfc2e09f.json
data/weather/bundles/gfs-5b7476387736a8c5b258e846.json
data/weather/bundles/gfs-6023914a361229263d21eb00.json
data/weather/bundles/gfs-61dd96e78bbb4949629539fb.json
data/weather/bundles/gfs-6602cf77fa4ca876132ab72f.json
data/weather/bundles/gfs-665d021e9bf6e7a9afb0b368.json
data/weather/bundles/gfs-696bf7facffa4317bb063fc9.json
data/weather/bundles/gfs-6f0c715a93ff573221cad82f.json
data/weather/bundles/gfs-720e3774affa6ab1a58240e4.json
data/weather/bundles/gfs-7303a484a9afcede3622d3e4.json
data/weather/bundles/gfs-75f28556347e6f29afffb397.json
data/weather/bundles/gfs-766819c3a88e0a09281d9ca2.json
data/weather/bundles/gfs-76d5ade05227a9a22ad82637.json
data/weather/bundles/gfs-77399ca6ad434f7f84072593.json
data/weather/bundles/gfs-777fa5425591e5578f2ab5ea.json
data/weather/bundles/gfs-77ec076fb1a7ead63f544e1e.json
data/weather/bundles/gfs-7a66239ba6e46cf13e00a8ac.json
data/weather/bundles/gfs-7d9d1e3b0365e698ab2f7c48.json
data/weather/bundles/gfs-80ef144584b87cee96141462.json
data/weather/bundles/gfs-82804a37921026e6a3b07c6b.json
data/weather/bundles/gfs-83ea68f6a28d192933c9b6fc.json
data/weather/bundles/gfs-84cc6396bb005d1ab57128ae.json
data/weather/bundles/gfs-850a431b499faa83d64d9dcd.json
data/weather/bundles/gfs-85d674bf16ee609e27e4d87d.json
data/weather/bundles/gfs-87b0a7569570af485ebb403f.json
data/weather/bundles/gfs-87c3b926e78ba51270325265.json
data/weather/bundles/gfs-8a845cee915dcf4cb2c1002b.json
data/weather/bundles/gfs-8e9ba8aecc67611f65bf768c.json
data/weather/bundles/gfs-8f9a04d813992e84f84ff8d5.json
data/weather/bundles/gfs-8fac8c2f85fbce2b053f1154.json
data/weather/bundles/gfs-9064022e8ebc608fb78b5055.json
data/weather/bundles/gfs-90a53f41f34261ef6d2307d8.json
data/weather/bundles/gfs-922795d101ddfd39efa56ee9.json
data/weather/bundles/gfs-930a8f1a1c5e41c315dc84af.json
data/weather/bundles/gfs-93ace1690a438828b403aabe.json
data/weather/bundles/gfs-9437458179ea5776b1a56442.json
data/weather/bundles/gfs-9447321cd54df7652ab56d31.json
data/weather/bundles/gfs-950c1d1e4518738b15e2718c.json
data/weather/bundles/gfs-9821079904788717f86c38d5.json
data/weather/bundles/gfs-98d4c8f3d5c214c0753911c4.json
data/weather/bundles/gfs-9abefb34fb3bee49963377bc.json
data/weather/bundles/gfs-9e3e29abe742ccc9e8de9da2.json
data/weather/bundles/gfs-9fe9419b5a605fb573f531a2.json
data/weather/bundles/gfs-a0a8a6f7a877c28f244bd83a.json
data/weather/bundles/gfs-a17d987dffa2d8ec401bf220.json
data/weather/bundles/gfs-a36079ec291be0a114e69375.json
data/weather/bundles/gfs-a4898c4e012cba96c09a385f.json
data/weather/bundles/gfs-a68354390bf8097632ab58b6.json
data/weather/bundles/gfs-a7733e2def0e9ee918b4a47d.json
data/weather/bundles/gfs-a87d4e8ea046c5a8fbbfb241.json
data/weather/bundles/gfs-aba7ae24322dd3186a25c1ae.json
data/weather/bundles/gfs-ad9ce9efe2cbea4a368af143.json
data/weather/bundles/gfs-ae316aafba4c99a27aeb5e87.json
data/weather/bundles/gfs-ae5d31232d5df5b931d95bca.json
data/weather/bundles/gfs-b081c8ad9300dbf990975031.json
data/weather/bundles/gfs-b1ab1f07c36270ffa4dc60bd.json
data/weather/bundles/gfs-b2eec8b6ccebb895c7d06c00.json
data/weather/bundles/gfs-b4d00e6266f5ff6c7fa4ac5d.json
data/weather/bundles/gfs-b72a92a2ca2873ef482a34e2.json
data/weather/bundles/gfs-b92095060ad5986731b42f76.json
data/weather/bundles/gfs-b9827ced149a35145c41734a.json
data/weather/bundles/gfs-bb68017aa78e8dbcef358589.json
data/weather/bundles/gfs-bce29dc8c8a05bb33e4ae593.json
data/weather/bundles/gfs-bd2a09490c8c325b654ea12b.json
data/weather/bundles/gfs-be4974676bf09113727f9189.json
data/weather/bundles/gfs-c32d594424516de816f585a6.json
data/weather/bundles/gfs-c4ed1c542adc283a12da9e2a.json
data/weather/bundles/gfs-c829c805d0f1b8bd940f7699.json
data/weather/bundles/gfs-c86ef32c1d27c3dd37028806.json
data/weather/bundles/gfs-c8b3ddf3d8764019d569b37f.json
data/weather/bundles/gfs-ca8e172bd63e6c0b17b1f939.json
data/weather/bundles/gfs-cda9569b4eadd2d5a7b12740.json
data/weather/bundles/gfs-ceb65ae96cfb61308473fdd1.json
data/weather/bundles/gfs-cf2b76276a51b8bf9b21247d.json
data/weather/bundles/gfs-cfc040ddd664727e743e38f4.json
data/weather/bundles/gfs-d0d0c9aab12fe01b39972ba8.json
data/weather/bundles/gfs-d136e6f667bac950424326ed.json
data/weather/bundles/gfs-d76e6f2e71fc35ebbc931307.json
data/weather/bundles/gfs-dcabe95921035ac9214fd2b3.json
data/weather/bundles/gfs-dd3dad1e87cc9c0d64be1559.json
data/weather/bundles/gfs-de16030e9a828b3a673e93a8.json
data/weather/bundles/gfs-de4abde062e09cfbc4c40e51.json
data/weather/bundles/gfs-de975058bbbe0c5099edf51a.json
data/weather/bundles/gfs-e2813e214cfa9fcdcc3299e4.json
data/weather/bundles/gfs-e3977ca1233baebc0e01066b.json
data/weather/bundles/gfs-e96a943eafce4c41ac5d2131.json
data/weather/bundles/gfs-eb0b3b8d72d276806abaec84.json
data/weather/bundles/gfs-eb99edeeac27acf733689643.json
data/weather/bundles/gfs-f203464be4088ec8b2d8eab0.json
data/weather/bundles/gfs-f29a2e6b6e3a03f4d53c735b.json
data/weather/bundles/gfs-f785af008cc87bc73cf0893e.json
data/weather/bundles/gfs-f7b8e63a3a6bc4a07d0146c9.json
data/weather/bundles/gfs-f8fbcf0550acf852e0d6c6b9.json
data/weather/bundles/gfs-fcf2c050492a016e8c900ff1.json
data/weather/bundles/gfs-fd211ad326fb12988bc8a3f4.json
data/weather/gfs/20250930T00/f019.json
data/weather/gfs/20250930T00/f020.json
data/weather/gfs/20250930T00/f021.json
data/weather/gfs/20250930T00/f022.json
data/weather/gfs/20250930T00/f023.json
data/weather/gfs/20250930T00/f024.json
data/weather/gfs/20250930T00/f025.json
data/weather/gfs/20250930T00/f026.json
data/weather/gfs/20250930T00/f027.json
data/weather/gfs/20250930T00/f028.json
data/weather/gfs/20250930T00/f029.json
data/weather/gfs/20250930T00/f030.json
data/weather/gfs/20250930T00/f031.json
data/weather/gfs/20250930T00/f032.json
data/weather/gfs/20250930T00/f033.json
data/weather/gfs/20250930T00/f034.json
data/weather/gfs/20250930T00/f035.json
data/weather/gfs/20250930T00/f036.json
data/weather/gfs/20250930T00/f037.json
data/weather/gfs/20250930T00/f038.json
data/weather/gfs/20250930T00/f039.json
data/weather/gfs/20250930T00/f040.json
data/weather/gfs/20250930T00/f041.json
data/weather/gfs/20250930T00/f042.json
data/weather/gfs/20250930T00/f043.json
data/weather/gfs/20250930T00/f044.json
data/weather/gfs/20250930T00/f045.json
data/weather/gfs/20250930T00/f046.json
data/weather/gfs/20250930T00/f047.json
data/weather/gfs/20250930T00/f048.json
data/weather/gfs/20250930T00/f049.json
data/weather/gfs/20250930T00/f050.json
data/weather/gfs/20250930T00/f051.json
data/weather/gfs/20250930T00/f052.json
data/weather/gfs/20250930T00/f053.json
data/weather/gfs/20250930T00/f054.json
data/weather/gfs/20250930T00/f055.json
data/weather/gfs/20250930T00/f056.json
data/weather/gfs/20250930T00/f057.json
data/weather/gfs/20250930T00/f058.json
data/weather/gfs/20250930T00/f059.json
data/weather/gfs/20250930T00/f060.json
data/weather/gfs/20250930T00/f061.json
data/weather/gfs/20250930T00/f062.json
data/weather/gfs/20250930T00/f063.json
data/weather/gfs/20250930T00/f064.json
data/weather/gfs/20250930T00/f065.json
data/weather/gfs/20250930T00/f066.json
data/weather/gfs/20251001T00/f019.json
data/weather/gfs/20251001T00/f020.json
data/weather/gfs/20251001T00/f021.json
data/weather/gfs/20251001T00/f022.json
data/weather/gfs/20251001T00/f023.json
data/weather/gfs/20251001T00/f024.json
data/weather/gfs/20251001T00/f025.json
data/weather/gfs/20251001T00/f026.json
data/weather/gfs/20251001T00/f027.json
data/weather/gfs/20251001T00/f028.json
data/weather/gfs/20251001T00/f029.json
data/weather/gfs/20251001T00/f030.json
data/weather/gfs/20251001T00/f031.json
data/weather/gfs/20251001T00/f032.json
data/weather/gfs/20251001T00/f033.json
data/weather/gfs/20251001T00/f034.json
data/weather/gfs/20251001T00/f035.json
data/weather/gfs/20251001T00/f036.json
data/weather/gfs/20251001T00/f037.json
data/weather/gfs/20251001T00/f038.json
data/weather/gfs/20251001T00/f039.json
data/weather/gfs/20251001T00/f040.json
data/weather/gfs/20251001T00/f041.json
data/weather/gfs/20251001T00/f042.json
data/weather/gfs/20251001T00/f043.json
data/weather/gfs/20251001T00/f044.json
data/weather/gfs/20251001T00/f045.json
data/weather/gfs/20251001T00/f046.json
data/weather/gfs/20251001T00/f047.json
data/weather/gfs/20251001T00/f048.json
data/weather/gfs/20251001T00/f049.json
data/weather/gfs/20251001T00/f050.json
data/weather/gfs/20251001T00/f051.json
data/weather/gfs/20251001T00/f052.json
data/weather/gfs/20251001T00/f053.json
data/weather/gfs/20251001T00/f054.json
data/weather/gfs/20251001T00/f055.json
data/weather/gfs/20251001T00/f056.json
data/weather/gfs/20251001T00/f057.json
data/weather/gfs/20251001T00/f058.json
data/weather/gfs/20251001T00/f059.json
data/weather/gfs/20251001T00/f060.json
data/weather/gfs/20251001T00/f061.json
data/weather/gfs/20251001T00/f062.json
data/weather/gfs/20251001T00/f063.json
data/weather/gfs/20251001T00/f064.json
data/weather/gfs/20251001T00/f065.json
data/weather/gfs/20251001T00/f066.json
data/weather/gfs/20251002T00/f019.json
data/weather/gfs/20251002T00/f020.json
data/weather/gfs/20251002T00/f021.json
data/weather/gfs/20251002T00/f022.json
data/weather/gfs/20251002T00/f023.json
data/weather/gfs/20251002T00/f024.json
data/weather/gfs/20251002T00/f025.json
data/weather/gfs/20251002T00/f026.json
data/weather/gfs/20251002T00/f027.json
data/weather/gfs/20251002T00/f028.json
data/weather/gfs/20251002T00/f029.json
data/weather/gfs/20251002T00/f030.json
data/weather/gfs/20251002T00/f031.json
data/weather/gfs/20251002T00/f032.json
data/weather/gfs/20251002T00/f033.json
data/weather/gfs/20251002T00/f034.json
data/weather/gfs/20251002T00/f035.json
data/weather/gfs/20251002T00/f036.json
data/weather/gfs/20251002T00/f037.json
data/weather/gfs/20251002T00/f038.json
data/weather/gfs/20251002T00/f039.json
data/weather/gfs/20251002T00/f040.json
data/weather/gfs/20251002T00/f041.json
data/weather/gfs/20251002T00/f042.json
data/weather/gfs/20251002T00/f043.json
data/weather/gfs/20251002T00/f044.json
data/weather/gfs/20251002T00/f045.json
data/weather/gfs/20251002T00/f046.json
data/weather/gfs/20251002T00/f047.json
data/weather/gfs/20251002T00/f048.json
data/weather/gfs/20251002T00/f049.json
data/weather/gfs/20251002T00/f050.json
data/weather/gfs/20251002T00/f051.json
data/weather/gfs/20251002T00/f052.json
data/weather/gfs/20251002T00/f053.json
data/weather/gfs/20251002T00/f054.json
data/weather/gfs/20251002T00/f055.json
data/weather/gfs/20251002T00/f056.json
data/weather/gfs/20251002T00/f057.json
data/weather/gfs/20251002T00/f058.json
data/weather/gfs/20251002T00/f059.json
data/weather/gfs/20251002T00/f060.json
data/weather/gfs/20251002T00/f061.json
data/weather/gfs/20251002T00/f062.json
data/weather/gfs/20251002T00/f063.json
data/weather/gfs/20251002T00/f064.json
data/weather/gfs/20251002T00/f065.json
data/weather/gfs/20251002T00/f066.json
data/weather/gfs/20251003T00/f019.json
data/weather/gfs/20251003T00/f020.json
data/weather/gfs/20251003T00/f021.json
data/weather/gfs/20251003T00/f022.json
data/weather/gfs/20251003T00/f023.json
data/weather/gfs/20251003T00/f024.json
data/weather/gfs/20251003T00/f025.json
data/weather/gfs/20251003T00/f026.json
data/weather/gfs/20251003T00/f027.json
data/weather/gfs/20251003T00/f028.json
data/weather/gfs/20251003T00/f029.json
data/weather/gfs/20251003T00/f030.json
data/weather/gfs/20251003T00/f031.json
data/weather/gfs/20251003T00/f032.json
data/weather/gfs/20251003T00/f033.json
data/weather/gfs/20251003T00/f034.json
data/weather/gfs/20251003T00/f035.json
data/weather/gfs/20251003T00/f036.json
data/weather/gfs/20251003T00/f037.json
data/weather/gfs/20251003T00/f038.json
data/weather/gfs/20251003T00/f039.json
data/weather/gfs/20251003T00/f040.json
data/weather/gfs/20251003T00/f041.json
data/weather/gfs/20251003T00/f042.json
data/weather/gfs/20251003T00/f043.json
data/weather/gfs/20251003T00/f044.json
data/weather/gfs/20251003T00/f045.json
data/weather/gfs/20251003T00/f046.json
data/weather/gfs/20251003T00/f047.json
data/weather/gfs/20251003T00/f048.json
data/weather/gfs/20251003T00/f049.json
data/weather/gfs/20251003T00/f050.json
data/weather/gfs/20251003T00/f051.json
data/weather/gfs/20251003T00/f052.json
data/weather/gfs/20251003T00/f053.json
data/weather/gfs/20251003T00/f054.json
data/weather/gfs/20251003T00/f055.json
data/weather/gfs/20251003T00/f056.json
data/weather/gfs/20251003T00/f057.json
data/weather/gfs/20251003T00/f058.json
data/weather/gfs/20251003T00/f059.json
data/weather/gfs/20251003T00/f060.json
data/weather/gfs/20251003T00/f061.json
data/weather/gfs/20251003T00/f062.json
data/weather/gfs/20251003T00/f063.json
data/weather/gfs/20251003T00/f064.json
data/weather/gfs/20251003T00/f065.json
data/weather/gfs/20251003T00/f066.json
data/weather/gfs/20251004T00/f019.json
data/weather/gfs/20251004T00/f020.json
data/weather/gfs/20251004T00/f021.json
data/weather/gfs/20251004T00/f022.json
data/weather/gfs/20251004T00/f023.json
data/weather/gfs/20251004T00/f024.json
data/weather/gfs/20251004T00/f025.json
data/weather/gfs/20251004T00/f026.json
data/weather/gfs/20251004T00/f027.json
data/weather/gfs/20251004T00/f028.json
data/weather/gfs/20251004T00/f029.json
data/weather/gfs/20251004T00/f030.json
data/weather/gfs/20251004T00/f031.json
data/weather/gfs/20251004T00/f032.json
data/weather/gfs/20251004T00/f033.json
data/weather/gfs/20251004T00/f034.json
data/weather/gfs/20251004T00/f035.json
data/weather/gfs/20251004T00/f036.json
data/weather/gfs/20251004T00/f037.json
data/weather/gfs/20251004T00/f038.json
data/weather/gfs/20251004T00/f039.json
data/weather/gfs/20251004T00/f040.json
data/weather/gfs/20251004T00/f041.json
data/weather/gfs/20251004T00/f042.json
data/weather/gfs/20251004T00/f043.json
data/weather/gfs/20251004T00/f044.json
data/weather/gfs/20251004T00/f045.json
data/weather/gfs/20251004T00/f046.json
data/weather/gfs/20251004T00/f047.json
data/weather/gfs/20251004T00/f048.json
data/weather/gfs/20251004T00/f049.json
data/weather/gfs/20251004T00/f050.json
data/weather/gfs/20251004T00/f051.json
data/weather/gfs/20251004T00/f052.json
data/weather/gfs/20251004T00/f053.json
data/weather/gfs/20251004T00/f054.json
data/weather/gfs/20251004T00/f055.json
data/weather/gfs/20251004T00/f056.json
data/weather/gfs/20251004T00/f057.json
data/weather/gfs/20251004T00/f058.json
data/weather/gfs/20251004T00/f059.json
data/weather/gfs/20251004T00/f060.json
data/weather/gfs/20251004T00/f061.json
data/weather/gfs/20251004T00/f062.json
data/weather/gfs/20251004T00/f063.json
data/weather/gfs/20251004T00/f064.json
data/weather/gfs/20251004T00/f065.json
data/weather/gfs/20251004T00/f066.json
data/weather/gfs/20251005T00/f019.json
data/weather/gfs/20251005T00/f020.json
data/weather/gfs/20251005T00/f021.json
data/weather/gfs/20251005T00/f022.json
data/weather/gfs/20251005T00/f023.json
data/weather/gfs/20251005T00/f024.json
data/weather/gfs/20251005T00/f025.json
data/weather/gfs/20251005T00/f026.json
data/weather/gfs/20251005T00/f027.json
data/weather/gfs/20251005T00/f028.json
data/weather/gfs/20251005T00/f029.json
data/weather/gfs/20251005T00/f030.json
data/weather/gfs/20251005T00/f031.json
data/weather/gfs/20251005T00/f032.json
data/weather/gfs/20251005T00/f033.json
data/weather/gfs/20251005T00/f034.json
data/weather/gfs/20251005T00/f035.json
data/weather/gfs/20251005T00/f036.json
data/weather/gfs/20251005T00/f037.json
data/weather/gfs/20251005T00/f038.json
data/weather/gfs/20251005T00/f039.json
data/weather/gfs/20251005T00/f040.json
data/weather/gfs/20251005T00/f041.json
data/weather/gfs/20251005T00/f042.json
data/weather/gfs/20251005T00/f043.json
data/weather/gfs/20251005T00/f044.json
data/weather/gfs/20251005T00/f045.json
data/weather/gfs/20251005T00/f046.json
data/weather/gfs/20251005T00/f047.json
data/weather/gfs/20251005T00/f048.json
data/weather/gfs/20251005T00/f049.json
data/weather/gfs/20251005T00/f050.json
data/weather/gfs/20251005T00/f051.json
data/weather/gfs/20251005T00/f052.json
data/weather/gfs/20251005T00/f053.json
data/weather/gfs/20251005T00/f054.json
data/weather/gfs/20251005T00/f055.json
data/weather/gfs/20251005T00/f056.json
data/weather/gfs/20251005T00/f057.json
data/weather/gfs/20251005T00/f058.json
data/weather/gfs/20251005T00/f059.json
data/weather/gfs/20251005T00/f060.json
data/weather/gfs/20251005T00/f061.json
data/weather/gfs/20251005T00/f062.json
data/weather/gfs/20251005T00/f063.json
data/weather/gfs/20251005T00/f064.json
data/weather/gfs/20251005T00/f065.json
data/weather/gfs/20251005T00/f066.json
data/weather/gfs/20251006T00/f019.json
data/weather/gfs/20251006T00/f020.json
data/weather/gfs/20251006T00/f021.json
data/weather/gfs/20251006T00/f022.json
data/weather/gfs/20251006T00/f023.json
data/weather/gfs/20251006T00/f024.json
data/weather/gfs/20251006T00/f025.json
data/weather/gfs/20251006T00/f026.json
data/weather/gfs/20251006T00/f027.json
data/weather/gfs/20251006T00/f028.json
data/weather/gfs/20251006T00/f029.json
data/weather/gfs/20251006T00/f030.json
data/weather/gfs/20251006T00/f031.json
data/weather/gfs/20251006T00/f032.json
data/weather/gfs/20251006T00/f033.json
data/weather/gfs/20251006T00/f034.json
data/weather/gfs/20251006T00/f035.json
data/weather/gfs/20251006T00/f036.json
data/weather/gfs/20251006T00/f037.json
data/weather/gfs/20251006T00/f038.json
data/weather/gfs/20251006T00/f039.json
data/weather/gfs/20251006T00/f040.json
data/weather/gfs/20251006T00/f041.json
data/weather/gfs/20251006T00/f042.json
data/weather/gfs/20251006T00/f043.json
data/weather/gfs/20251006T00/f044.json
data/weather/gfs/20251006T00/f045.json
data/weather/gfs/20251006T00/f046.json
data/weather/gfs/20251006T00/f047.json
data/weather/gfs/20251006T00/f048.json
data/weather/gfs/20251006T00/f049.json
data/weather/gfs/20251006T00/f050.json
data/weather/gfs/20251006T00/f051.json
data/weather/gfs/20251006T00/f052.json
data/weather/gfs/20251006T00/f053.json
data/weather/gfs/20251006T00/f054.json
data/weather/gfs/20251006T00/f055.json
data/weather/gfs/20251006T00/f056.json
data/weather/gfs/20251006T00/f057.json
data/weather/gfs/20251006T00/f058.json
data/weather/gfs/20251006T00/f059.json
data/weather/gfs/20251006T00/f060.json
data/weather/gfs/20251006T00/f061.json
data/weather/gfs/20251006T00/f062.json
data/weather/gfs/20251006T00/f063.json
data/weather/gfs/20251006T00/f064.json
data/weather/gfs/20251006T00/f065.json
data/weather/gfs/20251006T00/f066.json
data/weather/gfs/20251007T00/f019.json
data/weather/gfs/20251007T00/f020.json
data/weather/gfs/20251007T00/f021.json
data/weather/gfs/20251007T00/f022.json
data/weather/gfs/20251007T00/f023.json
data/weather/gfs/20251007T00/f024.json
data/weather/gfs/20251007T00/f025.json
data/weather/gfs/20251007T00/f026.json
data/weather/gfs/20251007T00/f027.json
data/weather/gfs/20251007T00/f028.json
data/weather/gfs/20251007T00/f029.json
data/weather/gfs/20251007T00/f030.json
data/weather/gfs/20251007T00/f031.json
data/weather/gfs/20251007T00/f032.json
data/weather/gfs/20251007T00/f033.json
data/weather/gfs/20251007T00/f034.json
data/weather/gfs/20251007T00/f035.json
data/weather/gfs/20251007T00/f036.json
data/weather/gfs/20251007T00/f037.json
data/weather/gfs/20251007T00/f038.json
data/weather/gfs/20251007T00/f039.json
data/weather/gfs/20251007T00/f040.json
data/weather/gfs/20251007T00/f041.json
data/weather/gfs/20251007T00/f042.json
data/weather/gfs/20251007T00/f043.json
data/weather/gfs/20251007T00/f044.json
data/weather/gfs/20251007T00/f045.json
data/weather/gfs/20251007T00/f046.json
data/weather/gfs/20251007T00/f047.json
data/weather/gfs/20251007T00/f048.json
data/weather/gfs/20251007T00/f049.json
data/weather/gfs/20251007T00/f050.json
data/weather/gfs/20251007T00/f051.json
data/weather/gfs/20251007T00/f052.json
data/weather/gfs/20251007T00/f053.json
data/weather/gfs/20251007T00/f054.json
data/weather/gfs/20251007T00/f055.json
data/weather/gfs/20251007T00/f056.json
data/weather/gfs/20251007T00/f057.json
data/weather/gfs/20251007T00/f058.json
data/weather/gfs/20251007T00/f059.json
data/weather/gfs/20251007T00/f060.json
data/weather/gfs/20251007T00/f061.json
data/weather/gfs/20251007T00/f062.json
data/weather/gfs/20251007T00/f063.json
data/weather/gfs/20251007T00/f064.json
data/weather/gfs/20251007T00/f065.json
data/weather/gfs/20251007T00/f066.json
data/weather/gfs/20251008T00/f019.json
data/weather/gfs/20251008T00/f020.json
data/weather/gfs/20251008T00/f021.json
data/weather/gfs/20251008T00/f022.json
data/weather/gfs/20251008T00/f023.json
data/weather/gfs/20251008T00/f024.json
data/weather/gfs/20251008T00/f025.json
data/weather/gfs/20251008T00/f026.json
data/weather/gfs/20251008T00/f027.json
data/weather/gfs/20251008T00/f028.json
data/weather/gfs/20251008T00/f029.json
data/weather/gfs/20251008T00/f030.json
data/weather/gfs/20251008T00/f031.json
data/weather/gfs/20251008T00/f032.json
data/weather/gfs/20251008T00/f033.json
data/weather/gfs/20251008T00/f034.json
data/weather/gfs/20251008T00/f035.json
data/weather/gfs/20251008T00/f036.json
data/weather/gfs/20251008T00/f037.json
data/weather/gfs/20251008T00/f038.json
data/weather/gfs/20251008T00/f039.json
data/weather/gfs/20251008T00/f040.json
data/weather/gfs/20251008T00/f041.json
data/weather/gfs/20251008T00/f042.json
data/weather/gfs/20251008T00/f043.json
data/weather/gfs/20251008T00/f044.json
data/weather/gfs/20251008T00/f045.json
data/weather/gfs/20251008T00/f046.json
data/weather/gfs/20251008T00/f047.json
data/weather/gfs/20251008T00/f048.json
data/weather/gfs/20251008T00/f049.json
data/weather/gfs/20251008T00/f050.json
data/weather/gfs/20251008T00/f051.json
data/weather/gfs/20251008T00/f052.json
data/weather/gfs/20251008T00/f053.json
data/weather/gfs/20251008T00/f054.json
data/weather/gfs/20251008T00/f055.json
data/weather/gfs/20251008T00/f056.json
data/weather/gfs/20251008T00/f057.json
data/weather/gfs/20251008T00/f058.json
data/weather/gfs/20251008T00/f059.json
data/weather/gfs/20251008T00/f060.json
data/weather/gfs/20251008T00/f061.json
data/weather/gfs/20251008T00/f062.json
data/weather/gfs/20251008T00/f063.json
data/weather/gfs/20251008T00/f064.json
data/weather/gfs/20251008T00/f065.json
data/weather/gfs/20251008T00/f066.json
data/weather/gfs/20251009T00/f019.json
data/weather/gfs/20251009T00/f020.json
data/weather/gfs/20251009T00/f021.json
data/weather/gfs/20251009T00/f022.json
data/weather/gfs/20251009T00/f023.json
data/weather/gfs/20251009T00/f024.json
data/weather/gfs/20251009T00/f025.json
data/weather/gfs/20251009T00/f026.json
data/weather/gfs/20251009T00/f027.json
data/weather/gfs/20251009T00/f028.json
data/weather/gfs/20251009T00/f029.json
data/weather/gfs/20251009T00/f030.json
data/weather/gfs/20251009T00/f031.json
data/weather/gfs/20251009T00/f032.json
data/weather/gfs/20251009T00/f033.json
data/weather/gfs/20251009T00/f034.json
data/weather/gfs/20251009T00/f035.json
data/weather/gfs/20251009T00/f036.json
data/weather/gfs/20251009T00/f037.json
data/weather/gfs/20251009T00/f038.json
data/weather/gfs/20251009T00/f039.json
data/weather/gfs/20251009T00/f040.json
data/weather/gfs/20251009T00/f041.json
data/weather/gfs/20251009T00/f042.json
data/weather/gfs/20251009T00/f043.json
data/weather/gfs/20251009T00/f044.json
data/weather/gfs/20251009T00/f045.json
data/weather/gfs/20251009T00/f046.json
data/weather/gfs/20251009T00/f047.json
data/weather/gfs/20251009T00/f048.json
data/weather/gfs/20251009T00/f049.json
data/weather/gfs/20251009T00/f050.json
data/weather/gfs/20251009T00/f051.json
data/weather/gfs/20251009T00/f052.json
data/weather/gfs/20251009T00/f053.json
data/weather/gfs/20251009T00/f054.json
data/weather/gfs/20251009T00/f055.json
data/weather/gfs/20251009T00/f056.json
data/weather/gfs/20251009T00/f057.json
data/weather/gfs/20251009T00/f058.json
data/weather/gfs/20251009T00/f059.json
data/weather/gfs/20251009T00/f060.json
data/weather/gfs/20251009T00/f061.json
data/weather/gfs/20251009T00/f062.json
data/weather/gfs/20251009T00/f063.json
data/weather/gfs/20251009T00/f064.json
data/weather/gfs/20251009T00/f065.json
data/weather/gfs/20251009T00/f066.json
data/weather/gfs/20251010T00/f019.json
data/weather/gfs/20251010T00/f020.json
data/weather/gfs/20251010T00/f021.json
data/weather/gfs/20251010T00/f022.json
data/weather/gfs/20251010T00/f023.json
data/weather/gfs/20251010T00/f024.json
data/weather/gfs/20251010T00/f025.json
data/weather/gfs/20251010T00/f026.json
data/weather/gfs/20251010T00/f027.json
data/weather/gfs/20251010T00/f028.json
data/weather/gfs/20251010T00/f029.json
data/weather/gfs/20251010T00/f030.json
data/weather/gfs/20251010T00/f031.json
data/weather/gfs/20251010T00/f032.json
data/weather/gfs/20251010T00/f033.json
data/weather/gfs/20251010T00/f034.json
data/weather/gfs/20251010T00/f035.json
data/weather/gfs/20251010T00/f036.json
data/weather/gfs/20251010T00/f037.json
data/weather/gfs/20251010T00/f038.json
data/weather/gfs/20251010T00/f039.json
data/weather/gfs/20251010T00/f040.json
data/weather/gfs/20251010T00/f041.json
data/weather/gfs/20251010T00/f042.json
data/weather/gfs/20251010T00/f043.json
data/weather/gfs/20251010T00/f044.json
data/weather/gfs/20251010T00/f045.json
data/weather/gfs/20251010T00/f046.json
data/weather/gfs/20251010T00/f047.json
data/weather/gfs/20251010T00/f048.json
data/weather/gfs/20251010T00/f049.json
data/weather/gfs/20251010T00/f050.json
data/weather/gfs/20251010T00/f051.json
data/weather/gfs/20251010T00/f052.json
data/weather/gfs/20251010T00/f053.json
data/weather/gfs/20251010T00/f054.json
data/weather/gfs/20251010T00/f055.json
data/weather/gfs/20251010T00/f056.json
data/weather/gfs/20251010T00/f057.json
data/weather/gfs/20251010T00/f058.json
data/weather/gfs/20251010T00/f059.json
data/weather/gfs/20251010T00/f060.json
data/weather/gfs/20251010T00/f061.json
data/weather/gfs/20251010T00/f062.json
data/weather/gfs/20251010T00/f063.json
data/weather/gfs/20251010T00/f064.json
data/weather/gfs/20251010T00/f065.json
data/weather/gfs/20251010T00/f066.json
data/weather/gfs/20251011T00/f019.json
data/weather/gfs/20251011T00/f020.json
data/weather/gfs/20251011T00/f021.json
data/weather/gfs/20251011T00/f022.json
data/weather/gfs/20251011T00/f023.json
data/weather/gfs/20251011T00/f024.json
data/weather/gfs/20251011T00/f025.json
data/weather/gfs/20251011T00/f026.json
data/weather/gfs/20251011T00/f027.json
data/weather/gfs/20251011T00/f028.json
data/weather/gfs/20251011T00/f029.json
data/weather/gfs/20251011T00/f030.json
data/weather/gfs/20251011T00/f031.json
data/weather/gfs/20251011T00/f032.json
data/weather/gfs/20251011T00/f033.json
data/weather/gfs/20251011T00/f034.json
data/weather/gfs/20251011T00/f035.json
data/weather/gfs/20251011T00/f036.json
data/weather/gfs/20251011T00/f037.json
data/weather/gfs/20251011T00/f038.json
data/weather/gfs/20251011T00/f039.json
data/weather/gfs/20251011T00/f040.json
data/weather/gfs/20251011T00/f041.json
data/weather/gfs/20251011T00/f042.json
data/weather/gfs/20251011T00/f043.json
data/weather/gfs/20251011T00/f044.json
data/weather/gfs/20251011T00/f045.json
data/weather/gfs/20251011T00/f046.json
data/weather/gfs/20251011T00/f047.json
data/weather/gfs/20251011T00/f048.json
data/weather/gfs/20251011T00/f049.json
data/weather/gfs/20251011T00/f050.json
data/weather/gfs/20251011T00/f051.json
data/weather/gfs/20251011T00/f052.json
data/weather/gfs/20251011T00/f053.json
data/weather/gfs/20251011T00/f054.json
data/weather/gfs/20251011T00/f055.json
data/weather/gfs/20251011T00/f056.json
data/weather/gfs/20251011T00/f057.json
data/weather/gfs/20251011T00/f058.json
data/weather/gfs/20251011T00/f059.json
data/weather/gfs/20251011T00/f060.json
data/weather/gfs/20251011T00/f061.json
data/weather/gfs/20251011T00/f062.json
data/weather/gfs/20251011T00/f063.json
data/weather/gfs/20251011T00/f064.json
data/weather/gfs/20251011T00/f065.json
data/weather/gfs/20251011T00/f066.json
data/weather/gfs/20251012T00/f019.json
data/weather/gfs/20251012T00/f020.json
data/weather/gfs/20251012T00/f021.json
data/weather/gfs/20251012T00/f022.json
data/weather/gfs/20251012T00/f023.json
data/weather/gfs/20251012T00/f024.json
data/weather/gfs/20251012T00/f025.json
data/weather/gfs/20251012T00/f026.json
data/weather/gfs/20251012T00/f027.json
data/weather/gfs/20251012T00/f028.json
data/weather/gfs/20251012T00/f029.json
data/weather/gfs/20251012T00/f030.json
data/weather/gfs/20251012T00/f031.json
data/weather/gfs/20251012T00/f032.json
data/weather/gfs/20251012T00/f033.json
data/weather/gfs/20251012T00/f034.json
data/weather/gfs/20251012T00/f035.json
data/weather/gfs/20251012T00/f036.json
data/weather/gfs/20251012T00/f037.json
data/weather/gfs/20251012T00/f038.json
data/weather/gfs/20251012T00/f039.json
data/weather/gfs/20251012T00/f040.json
data/weather/gfs/20251012T00/f041.json
data/weather/gfs/20251012T00/f042.json
data/weather/gfs/20251012T00/f043.json
data/weather/gfs/20251012T00/f044.json
data/weather/gfs/20251012T00/f045.json
data/weather/gfs/20251012T00/f046.json
data/weather/gfs/20251012T00/f047.json
data/weather/gfs/20251012T00/f048.json
data/weather/gfs/20251012T00/f049.json
data/weather/gfs/20251012T00/f050.json
data/weather/gfs/20251012T00/f051.json
data/weather/gfs/20251012T00/f052.json
data/weather/gfs/20251012T00/f053.json
data/weather/gfs/20251012T00/f054.json
data/weather/gfs/20251012T00/f055.json
data/weather/gfs/20251012T00/f056.json
data/weather/gfs/20251012T00/f057.json
data/weather/gfs/20251012T00/f058.json
data/weather/gfs/20251012T00/f059.json
data/weather/gfs/20251012T00/f060.json
data/weather/gfs/20251012T00/f061.json
data/weather/gfs/20251012T00/f062.json
data/weather/gfs/20251012T00/f063.json
data/weather/gfs/20251012T00/f064.json
data/weather/gfs/20251012T00/f065.json
data/weather/gfs/20251012T00/f066.json
data/weather/gfs/20251013T00/f019.json
data/weather/gfs/20251013T00/f020.json
data/weather/gfs/20251013T00/f021.json
data/weather/gfs/20251013T00/f022.json
data/weather/gfs/20251013T00/f023.json
data/weather/gfs/20251013T00/f024.json
data/weather/gfs/20251013T00/f025.json
data/weather/gfs/20251013T00/f026.json
data/weather/gfs/20251013T00/f027.json
data/weather/gfs/20251013T00/f028.json
data/weather/gfs/20251013T00/f029.json
data/weather/gfs/20251013T00/f030.json
data/weather/gfs/20251013T00/f031.json
data/weather/gfs/20251013T00/f032.json
data/weather/gfs/20251013T00/f033.json
data/weather/gfs/20251013T00/f034.json
data/weather/gfs/20251013T00/f035.json
data/weather/gfs/20251013T00/f036.json
data/weather/gfs/20251013T00/f037.json
data/weather/gfs/20251013T00/f038.json
data/weather/gfs/20251013T00/f039.json
data/weather/gfs/20251013T00/f040.json
data/weather/gfs/20251013T00/f041.json
data/weather/gfs/20251013T00/f042.json
data/weather/gfs/20251013T00/f043.json
data/weather/gfs/20251013T00/f044.json
data/weather/gfs/20251013T00/f045.json
data/weather/gfs/20251013T00/f046.json
data/weather/gfs/20251013T00/f047.json
data/weather/gfs/20251013T00/f048.json
data/weather/gfs/20251013T00/f049.json
data/weather/gfs/20251013T00/f050.json
data/weather/gfs/20251013T00/f051.json
data/weather/gfs/20251013T00/f052.json
data/weather/gfs/20251013T00/f053.json
data/weather/gfs/20251013T00/f054.json
data/weather/gfs/20251013T00/f055.json
data/weather/gfs/20251013T00/f056.json
data/weather/gfs/20251013T00/f057.json
data/weather/gfs/20251013T00/f058.json
data/weather/gfs/20251013T00/f059.json
data/weather/gfs/20251013T00/f060.json
data/weather/gfs/20251013T00/f061.json
data/weather/gfs/20251013T00/f062.json
data/weather/gfs/20251013T00/f063.json
data/weather/gfs/20251013T00/f064.json
data/weather/gfs/20251013T00/f065.json
data/weather/gfs/20251013T00/f066.json
data/weather/gfs/20251014T00/f019.json
data/weather/gfs/20251014T00/f020.json
data/weather/gfs/20251014T00/f021.json
data/weather/gfs/20251014T00/f022.json
data/weather/gfs/20251014T00/f023.json
data/weather/gfs/20251014T00/f024.json
data/weather/gfs/20251014T00/f025.json
data/weather/gfs/20251014T00/f026.json
data/weather/gfs/20251014T00/f027.json
data/weather/gfs/20251014T00/f028.json
data/weather/gfs/20251014T00/f029.json
data/weather/gfs/20251014T00/f030.json
data/weather/gfs/20251014T00/f031.json
data/weather/gfs/20251014T00/f032.json
data/weather/gfs/20251014T00/f033.json
data/weather/gfs/20251014T00/f034.json
data/weather/gfs/20251014T00/f035.json
data/weather/gfs/20251014T00/f036.json
data/weather/gfs/20251014T00/f037.json
data/weather/gfs/20251014T00/f038.json
data/weather/gfs/20251014T00/f039.json
data/weather/gfs/20251014T00/f040.json
data/weather/gfs/20251014T00/f041.json
data/weather/gfs/20251014T00/f042.json
data/weather/gfs/20251014T00/f043.json
data/weather/gfs/20251014T00/f044.json
data/weather/gfs/20251014T00/f045.json
data/weather/gfs/20251014T00/f046.json
data/weather/gfs/20251014T00/f047.json
data/weather/gfs/20251014T00/f048.json
data/weather/gfs/20251014T00/f049.json
data/weather/gfs/20251014T00/f050.json
data/weather/gfs/20251014T00/f051.json
data/weather/gfs/20251014T00/f052.json
data/weather/gfs/20251014T00/f053.json
data/weather/gfs/20251014T00/f054.json
data/weather/gfs/20251014T00/f055.json
data/weather/gfs/20251014T00/f056.json
data/weather/gfs/20251014T00/f057.json
data/weather/gfs/20251014T00/f058.json
data/weather/gfs/20251014T00/f059.json
data/weather/gfs/20251014T00/f060.json
data/weather/gfs/20251014T00/f061.json
data/weather/gfs/20251014T00/f062.json
data/weather/gfs/20251014T00/f063.json
data/weather/gfs/20251014T00/f064.json
data/weather/gfs/20251014T00/f065.json
data/weather/gfs/20251014T00/f066.json
data/weather/gfs/20251015T00/f019.json
data/weather/gfs/20251015T00/f020.json
data/weather/gfs/20251015T00/f021.json
data/weather/gfs/20251015T00/f022.json
data/weather/gfs/20251015T00/f023.json
data/weather/gfs/20251015T00/f024.json
data/weather/gfs/20251015T00/f025.json
data/weather/gfs/20251015T00/f026.json
data/weather/gfs/20251015T00/f027.json
data/weather/gfs/20251015T00/f028.json
data/weather/gfs/20251015T00/f029.json
data/weather/gfs/20251015T00/f030.json
data/weather/gfs/20251015T00/f031.json
data/weather/gfs/20251015T00/f032.json
data/weather/gfs/20251015T00/f033.json
data/weather/gfs/20251015T00/f034.json
data/weather/gfs/20251015T00/f035.json
data/weather/gfs/20251015T00/f036.json
data/weather/gfs/20251015T00/f037.json
data/weather/gfs/20251015T00/f038.json
data/weather/gfs/20251015T00/f039.json
data/weather/gfs/20251015T00/f040.json
data/weather/gfs/20251015T00/f041.json
data/weather/gfs/20251015T00/f042.json
data/weather/gfs/20251015T00/f043.json
data/weather/gfs/20251015T00/f044.json
data/weather/gfs/20251015T00/f045.json
data/weather/gfs/20251015T00/f046.json
data/weather/gfs/20251015T00/f047.json
data/weather/gfs/20251015T00/f048.json
data/weather/gfs/20251015T00/f049.json
data/weather/gfs/20251015T00/f050.json
data/weather/gfs/20251015T00/f051.json
data/weather/gfs/20251015T00/f052.json
data/weather/gfs/20251015T00/f053.json
data/weather/gfs/20251015T00/f054.json
data/weather/gfs/20251015T00/f055.json
data/weather/gfs/20251015T00/f056.json
data/weather/gfs/20251015T00/f057.json
data/weather/gfs/20251015T00/f058.json
data/weather/gfs/20251015T00/f059.json
data/weather/gfs/20251015T00/f060.json
data/weather/gfs/20251015T00/f061.json
data/weather/gfs/20251015T00/f062.json
data/weather/gfs/20251015T00/f063.json
data/weather/gfs/20251015T00/f064.json
data/weather/gfs/20251015T00/f065.json
data/weather/gfs/20251015T00/f066.json
data/weather/gfs/20251016T00/f019.json
data/weather/gfs/20251016T00/f020.json
data/weather/gfs/20251016T00/f021.json
data/weather/gfs/20251016T00/f022.json
data/weather/gfs/20251016T00/f023.json
data/weather/gfs/20251016T00/f024.json
data/weather/gfs/20251016T00/f025.json
data/weather/gfs/20251016T00/f026.json
data/weather/gfs/20251016T00/f027.json
data/weather/gfs/20251016T00/f028.json
data/weather/gfs/20251016T00/f029.json
data/weather/gfs/20251016T00/f030.json
data/weather/gfs/20251016T00/f031.json
data/weather/gfs/20251016T00/f032.json
data/weather/gfs/20251016T00/f033.json
data/weather/gfs/20251016T00/f034.json
data/weather/gfs/20251016T00/f035.json
data/weather/gfs/20251016T00/f036.json
data/weather/gfs/20251016T00/f037.json
data/weather/gfs/20251016T00/f038.json
data/weather/gfs/20251016T00/f039.json
data/weather/gfs/20251016T00/f040.json
data/weather/gfs/20251016T00/f041.json
data/weather/gfs/20251016T00/f042.json
data/weather/gfs/20251016T00/f043.json
data/weather/gfs/20251016T00/f044.json
data/weather/gfs/20251016T00/f045.json
data/weather/gfs/20251016T00/f046.json
data/weather/gfs/20251016T00/f047.json
data/weather/gfs/20251016T00/f048.json
data/weather/gfs/20251016T00/f049.json
data/weather/gfs/20251016T00/f050.json
data/weather/gfs/20251016T00/f051.json
data/weather/gfs/20251016T00/f052.json
data/weather/gfs/20251016T00/f053.json
data/weather/gfs/20251016T00/f054.json
data/weather/gfs/20251016T00/f055.json
data/weather/gfs/20251016T00/f056.json
data/weather/gfs/20251016T00/f057.json
data/weather/gfs/20251016T00/f058.json
data/weather/gfs/20251016T00/f059.json
data/weather/gfs/20251016T00/f060.json
data/weather/gfs/20251016T00/f061.json
data/weather/gfs/20251016T00/f062.json
data/weather/gfs/20251016T00/f063.json
data/weather/gfs/20251016T00/f064.json
data/weather/gfs/20251016T00/f065.json
data/weather/gfs/20251016T00/f066.json
data/weather/gfs/20251017T00/f019.json
data/weather/gfs/20251017T00/f020.json
data/weather/gfs/20251017T00/f021.json
data/weather/gfs/20251017T00/f022.json
data/weather/gfs/20251017T00/f023.json
data/weather/gfs/20251017T00/f024.json
data/weather/gfs/20251017T00/f025.json
data/weather/gfs/20251017T00/f026.json
data/weather/gfs/20251017T00/f027.json
data/weather/gfs/20251017T00/f028.json
data/weather/gfs/20251017T00/f029.json
data/weather/gfs/20251017T00/f030.json
data/weather/gfs/20251017T00/f031.json
data/weather/gfs/20251017T00/f032.json
data/weather/gfs/20251017T00/f033.json
data/weather/gfs/20251017T00/f034.json
data/weather/gfs/20251017T00/f035.json
data/weather/gfs/20251017T00/f036.json
data/weather/gfs/20251017T00/f037.json
data/weather/gfs/20251017T00/f038.json
data/weather/gfs/20251017T00/f039.json
data/weather/gfs/20251017T00/f040.json
data/weather/gfs/20251017T00/f041.json
data/weather/gfs/20251017T00/f042.json
data/weather/gfs/20251017T00/f043.json
data/weather/gfs/20251017T00/f044.json
data/weather/gfs/20251017T00/f045.json
data/weather/gfs/20251017T00/f046.json
data/weather/gfs/20251017T00/f047.json
data/weather/gfs/20251017T00/f048.json
data/weather/gfs/20251017T00/f049.json
data/weather/gfs/20251017T00/f050.json
data/weather/gfs/20251017T00/f051.json
data/weather/gfs/20251017T00/f052.json
data/weather/gfs/20251017T00/f053.json
data/weather/gfs/20251017T00/f054.json
data/weather/gfs/20251017T00/f055.json
data/weather/gfs/20251017T00/f056.json
data/weather/gfs/20251017T00/f057.json
data/weather/gfs/20251017T00/f058.json
data/weather/gfs/20251017T00/f059.json
data/weather/gfs/20251017T00/f060.json
data/weather/gfs/20251017T00/f061.json
data/weather/gfs/20251017T00/f062.json
data/weather/gfs/20251017T00/f063.json
data/weather/gfs/20251017T00/f064.json
data/weather/gfs/20251017T00/f065.json
data/weather/gfs/20251017T00/f066.json
data/weather/gfs/20251018T00/f019.json
data/weather/gfs/20251018T00/f020.json
data/weather/gfs/20251018T00/f021.json
data/weather/gfs/20251018T00/f022.json
data/weather/gfs/20251018T00/f023.json
data/weather/gfs/20251018T00/f024.json
data/weather/gfs/20251018T00/f025.json
data/weather/gfs/20251018T00/f026.json
data/weather/gfs/20251018T00/f027.json
data/weather/gfs/20251018T00/f028.json
data/weather/gfs/20251018T00/f029.json
data/weather/gfs/20251018T00/f030.json
data/weather/gfs/20251018T00/f031.json
data/weather/gfs/20251018T00/f032.json
data/weather/gfs/20251018T00/f033.json
data/weather/gfs/20251018T00/f034.json
data/weather/gfs/20251018T00/f035.json
data/weather/gfs/20251018T00/f036.json
data/weather/gfs/20251018T00/f037.json
data/weather/gfs/20251018T00/f038.json
data/weather/gfs/20251018T00/f039.json
data/weather/gfs/20251018T00/f040.json
data/weather/gfs/20251018T00/f041.json
data/weather/gfs/20251018T00/f042.json
data/weather/gfs/20251018T00/f043.json
data/weather/gfs/20251018T00/f044.json
data/weather/gfs/20251018T00/f045.json
data/weather/gfs/20251018T00/f046.json
data/weather/gfs/20251018T00/f047.json
data/weather/gfs/20251018T00/f048.json
data/weather/gfs/20251018T00/f049.json
data/weather/gfs/20251018T00/f050.json
data/weather/gfs/20251018T00/f051.json
data/weather/gfs/20251018T00/f052.json
data/weather/gfs/20251018T00/f053.json
data/weather/gfs/20251018T00/f054.json
data/weather/gfs/20251018T00/f055.json
data/weather/gfs/20251018T00/f056.json
data/weather/gfs/20251018T00/f057.json
data/weather/gfs/20251018T00/f058.json
data/weather/gfs/20251018T00/f059.json
data/weather/gfs/20251018T00/f060.json
data/weather/gfs/20251018T00/f061.json
data/weather/gfs/20251018T00/f062.json
data/weather/gfs/20251018T00/f063.json
data/weather/gfs/20251018T00/f064.json
data/weather/gfs/20251018T00/f065.json
data/weather/gfs/20251018T00/f066.json
data/weather/gfs/20251019T00/f019.json
data/weather/gfs/20251019T00/f020.json
data/weather/gfs/20251019T00/f021.json
data/weather/gfs/20251019T00/f022.json
data/weather/gfs/20251019T00/f023.json
data/weather/gfs/20251019T00/f024.json
data/weather/gfs/20251019T00/f025.json
data/weather/gfs/20251019T00/f026.json
data/weather/gfs/20251019T00/f027.json
data/weather/gfs/20251019T00/f028.json
data/weather/gfs/20251019T00/f029.json
data/weather/gfs/20251019T00/f030.json
data/weather/gfs/20251019T00/f031.json
data/weather/gfs/20251019T00/f032.json
data/weather/gfs/20251019T00/f033.json
data/weather/gfs/20251019T00/f034.json
data/weather/gfs/20251019T00/f035.json
data/weather/gfs/20251019T00/f036.json
data/weather/gfs/20251019T00/f037.json
data/weather/gfs/20251019T00/f038.json
data/weather/gfs/20251019T00/f039.json
data/weather/gfs/20251019T00/f040.json
data/weather/gfs/20251019T00/f041.json
data/weather/gfs/20251019T00/f042.json
data/weather/gfs/20251019T00/f043.json
data/weather/gfs/20251019T00/f044.json
data/weather/gfs/20251019T00/f045.json
data/weather/gfs/20251019T00/f046.json
data/weather/gfs/20251019T00/f047.json
data/weather/gfs/20251019T00/f048.json
data/weather/gfs/20251019T00/f049.json
data/weather/gfs/20251019T00/f050.json
data/weather/gfs/20251019T00/f051.json
data/weather/gfs/20251019T00/f052.json
data/weather/gfs/20251019T00/f053.json
data/weather/gfs/20251019T00/f054.json
data/weather/gfs/20251019T00/f055.json
data/weather/gfs/20251019T00/f056.json
data/weather/gfs/20251019T00/f057.json
data/weather/gfs/20251019T00/f058.json
data/weather/gfs/20251019T00/f059.json
data/weather/gfs/20251019T00/f060.json
data/weather/gfs/20251019T00/f061.json
data/weather/gfs/20251019T00/f062.json
data/weather/gfs/20251019T00/f063.json
data/weather/gfs/20251019T00/f064.json
data/weather/gfs/20251019T00/f065.json
data/weather/gfs/20251019T00/f066.json
data/weather/gfs/20251020T00/f019.json
data/weather/gfs/20251020T00/f020.json
data/weather/gfs/20251020T00/f021.json
data/weather/gfs/20251020T00/f022.json
data/weather/gfs/20251020T00/f023.json
data/weather/gfs/20251020T00/f024.json
data/weather/gfs/20251020T00/f025.json
data/weather/gfs/20251020T00/f026.json
data/weather/gfs/20251020T00/f027.json
data/weather/gfs/20251020T00/f028.json
data/weather/gfs/20251020T00/f029.json
data/weather/gfs/20251020T00/f030.json
data/weather/gfs/20251020T00/f031.json
data/weather/gfs/20251020T00/f032.json
data/weather/gfs/20251020T00/f033.json
data/weather/gfs/20251020T00/f034.json
data/weather/gfs/20251020T00/f035.json
data/weather/gfs/20251020T00/f036.json
data/weather/gfs/20251020T00/f037.json
data/weather/gfs/20251020T00/f038.json
data/weather/gfs/20251020T00/f039.json
data/weather/gfs/20251020T00/f040.json
data/weather/gfs/20251020T00/f041.json
data/weather/gfs/20251020T00/f042.json
data/weather/gfs/20251020T00/f043.json
data/weather/gfs/20251020T00/f044.json
data/weather/gfs/20251020T00/f045.json
data/weather/gfs/20251020T00/f046.json
data/weather/gfs/20251020T00/f047.json
data/weather/gfs/20251020T00/f048.json
data/weather/gfs/20251020T00/f049.json
data/weather/gfs/20251020T00/f050.json
data/weather/gfs/20251020T00/f051.json
data/weather/gfs/20251020T00/f052.json
data/weather/gfs/20251020T00/f053.json
data/weather/gfs/20251020T00/f054.json
data/weather/gfs/20251020T00/f055.json
data/weather/gfs/20251020T00/f056.json
data/weather/gfs/20251020T00/f057.json
data/weather/gfs/20251020T00/f058.json
data/weather/gfs/20251020T00/f059.json
data/weather/gfs/20251020T00/f060.json
data/weather/gfs/20251020T00/f061.json
data/weather/gfs/20251020T00/f062.json
data/weather/gfs/20251020T00/f063.json
data/weather/gfs/20251020T00/f064.json
data/weather/gfs/20251020T00/f065.json
data/weather/gfs/20251020T00/f066.json
data/weather/gfs/20251021T00/f019.json
data/weather/gfs/20251021T00/f020.json
data/weather/gfs/20251021T00/f021.json
data/weather/gfs/20251021T00/f022.json
data/weather/gfs/20251021T00/f023.json
data/weather/gfs/20251021T00/f024.json
data/weather/gfs/20251021T00/f025.json
data/weather/gfs/20251021T00/f026.json
data/weather/gfs/20251021T00/f027.json
data/weather/gfs/20251021T00/f028.json
data/weather/gfs/20251021T00/f029.json
data/weather/gfs/20251021T00/f030.json
data/weather/gfs/20251021T00/f031.json
data/weather/gfs/20251021T00/f032.json
data/weather/gfs/20251021T00/f033.json
data/weather/gfs/20251021T00/f034.json
data/weather/gfs/20251021T00/f035.json
data/weather/gfs/20251021T00/f036.json
data/weather/gfs/20251021T00/f037.json
data/weather/gfs/20251021T00/f038.json
data/weather/gfs/20251021T00/f039.json
data/weather/gfs/20251021T00/f040.json
data/weather/gfs/20251021T00/f041.json
data/weather/gfs/20251021T00/f042.json
data/weather/gfs/20251021T00/f043.json
data/weather/gfs/20251021T00/f044.json
data/weather/gfs/20251021T00/f045.json
data/weather/gfs/20251021T00/f046.json
data/weather/gfs/20251021T00/f047.json
data/weather/gfs/20251021T00/f048.json
data/weather/gfs/20251021T00/f049.json
data/weather/gfs/20251021T00/f050.json
data/weather/gfs/20251021T00/f051.json
data/weather/gfs/20251021T00/f052.json
data/weather/gfs/20251021T00/f053.json
data/weather/gfs/20251021T00/f054.json
data/weather/gfs/20251021T00/f055.json
data/weather/gfs/20251021T00/f056.json
data/weather/gfs/20251021T00/f057.json
data/weather/gfs/20251021T00/f058.json
data/weather/gfs/20251021T00/f059.json
data/weather/gfs/20251021T00/f060.json
data/weather/gfs/20251021T00/f061.json
data/weather/gfs/20251021T00/f062.json
data/weather/gfs/20251021T00/f063.json
data/weather/gfs/20251021T00/f064.json
data/weather/gfs/20251021T00/f065.json
data/weather/gfs/20251021T00/f066.json
data/weather/gfs/20251022T00/f019.json
data/weather/gfs/20251022T00/f020.json
data/weather/gfs/20251022T00/f021.json
data/weather/gfs/20251022T00/f022.json
data/weather/gfs/20251022T00/f023.json
data/weather/gfs/20251022T00/f024.json
data/weather/gfs/20251022T00/f025.json
data/weather/gfs/20251022T00/f026.json
data/weather/gfs/20251022T00/f027.json
data/weather/gfs/20251022T00/f028.json
data/weather/gfs/20251022T00/f029.json
data/weather/gfs/20251022T00/f030.json
data/weather/gfs/20251022T00/f031.json
data/weather/gfs/20251022T00/f032.json
data/weather/gfs/20251022T00/f033.json
data/weather/gfs/20251022T00/f034.json
data/weather/gfs/20251022T00/f035.json
data/weather/gfs/20251022T00/f036.json
data/weather/gfs/20251022T00/f037.json
data/weather/gfs/20251022T00/f038.json
data/weather/gfs/20251022T00/f039.json
data/weather/gfs/20251022T00/f040.json
data/weather/gfs/20251022T00/f041.json
data/weather/gfs/20251022T00/f042.json
data/weather/gfs/20251022T00/f043.json
data/weather/gfs/20251022T00/f044.json
data/weather/gfs/20251022T00/f045.json
data/weather/gfs/20251022T00/f046.json
data/weather/gfs/20251022T00/f047.json
data/weather/gfs/20251022T00/f048.json
data/weather/gfs/20251022T00/f049.json
data/weather/gfs/20251022T00/f050.json
data/weather/gfs/20251022T00/f051.json
data/weather/gfs/20251022T00/f052.json
data/weather/gfs/20251022T00/f053.json
data/weather/gfs/20251022T00/f054.json
data/weather/gfs/20251022T00/f055.json
data/weather/gfs/20251022T00/f056.json
data/weather/gfs/20251022T00/f057.json
data/weather/gfs/20251022T00/f058.json
data/weather/gfs/20251022T00/f059.json
data/weather/gfs/20251022T00/f060.json
data/weather/gfs/20251022T00/f061.json
data/weather/gfs/20251022T00/f062.json
data/weather/gfs/20251022T00/f063.json
data/weather/gfs/20251022T00/f064.json
data/weather/gfs/20251022T00/f065.json
data/weather/gfs/20251022T00/f066.json
data/weather/gfs/20251023T00/f019.json
data/weather/gfs/20251023T00/f020.json
data/weather/gfs/20251023T00/f021.json
data/weather/gfs/20251023T00/f022.json
data/weather/gfs/20251023T00/f023.json
data/weather/gfs/20251023T00/f024.json
data/weather/gfs/20251023T00/f025.json
data/weather/gfs/20251023T00/f026.json
data/weather/gfs/20251023T00/f027.json
data/weather/gfs/20251023T00/f028.json
data/weather/gfs/20251023T00/f029.json
data/weather/gfs/20251023T00/f030.json
data/weather/gfs/20251023T00/f031.json
data/weather/gfs/20251023T00/f032.json
data/weather/gfs/20251023T00/f033.json
data/weather/gfs/20251023T00/f034.json
data/weather/gfs/20251023T00/f035.json
data/weather/gfs/20251023T00/f036.json
data/weather/gfs/20251023T00/f037.json
data/weather/gfs/20251023T00/f038.json
data/weather/gfs/20251023T00/f039.json
data/weather/gfs/20251023T00/f040.json
data/weather/gfs/20251023T00/f041.json
data/weather/gfs/20251023T00/f042.json
data/weather/gfs/20251023T00/f043.json
data/weather/gfs/20251023T00/f044.json
data/weather/gfs/20251023T00/f045.json
data/weather/gfs/20251023T00/f046.json
data/weather/gfs/20251023T00/f047.json
data/weather/gfs/20251023T00/f048.json
data/weather/gfs/20251023T00/f049.json
data/weather/gfs/20251023T00/f050.json
data/weather/gfs/20251023T00/f051.json
data/weather/gfs/20251023T00/f052.json
data/weather/gfs/20251023T00/f053.json
data/weather/gfs/20251023T00/f054.json
data/weather/gfs/20251023T00/f055.json
data/weather/gfs/20251023T00/f056.json
data/weather/gfs/20251023T00/f057.json
data/weather/gfs/20251023T00/f058.json
data/weather/gfs/20251023T00/f059.json
data/weather/gfs/20251023T00/f060.json
data/weather/gfs/20251023T00/f061.json
data/weather/gfs/20251023T00/f062.json
data/weather/gfs/20251023T00/f063.json
data/weather/gfs/20251023T00/f064.json
data/weather/gfs/20251023T00/f065.json
data/weather/gfs/20251023T00/f066.json
data/weather/gfs/20251024T00/f019.json
data/weather/gfs/20251024T00/f020.json
data/weather/gfs/20251024T00/f021.json
data/weather/gfs/20251024T00/f022.json
data/weather/gfs/20251024T00/f023.json
data/weather/gfs/20251024T00/f024.json
data/weather/gfs/20251024T00/f025.json
data/weather/gfs/20251024T00/f026.json
data/weather/gfs/20251024T00/f027.json
data/weather/gfs/20251024T00/f028.json
data/weather/gfs/20251024T00/f029.json
data/weather/gfs/20251024T00/f030.json
data/weather/gfs/20251024T00/f031.json
data/weather/gfs/20251024T00/f032.json
data/weather/gfs/20251024T00/f033.json
data/weather/gfs/20251024T00/f034.json
data/weather/gfs/20251024T00/f035.json
data/weather/gfs/20251024T00/f036.json
data/weather/gfs/20251024T00/f037.json
data/weather/gfs/20251024T00/f038.json
data/weather/gfs/20251024T00/f039.json
data/weather/gfs/20251024T00/f040.json
data/weather/gfs/20251024T00/f041.json
data/weather/gfs/20251024T00/f042.json
data/weather/gfs/20251024T00/f043.json
data/weather/gfs/20251024T00/f044.json
data/weather/gfs/20251024T00/f045.json
data/weather/gfs/20251024T00/f046.json
data/weather/gfs/20251024T00/f047.json
data/weather/gfs/20251024T00/f048.json
data/weather/gfs/20251024T00/f049.json
data/weather/gfs/20251024T00/f050.json
data/weather/gfs/20251024T00/f051.json
data/weather/gfs/20251024T00/f052.json
data/weather/gfs/20251024T00/f053.json
data/weather/gfs/20251024T00/f054.json
data/weather/gfs/20251024T00/f055.json
data/weather/gfs/20251024T00/f056.json
data/weather/gfs/20251024T00/f057.json
data/weather/gfs/20251024T00/f058.json
data/weather/gfs/20251024T00/f059.json
data/weather/gfs/20251024T00/f060.json
data/weather/gfs/20251024T00/f061.json
data/weather/gfs/20251024T00/f062.json
data/weather/gfs/20251024T00/f063.json
data/weather/gfs/20251024T00/f064.json
data/weather/gfs/20251024T00/f065.json
data/weather/gfs/20251024T00/f066.json
data/weather/gfs/20251025T00/f019.json
data/weather/gfs/20251025T00/f020.json
data/weather/gfs/20251025T00/f021.json
data/weather/gfs/20251025T00/f022.json
data/weather/gfs/20251025T00/f023.json
data/weather/gfs/20251025T00/f024.json
data/weather/gfs/20251025T00/f025.json
data/weather/gfs/20251025T00/f026.json
data/weather/gfs/20251025T00/f027.json
data/weather/gfs/20251025T00/f028.json
data/weather/gfs/20251025T00/f029.json
data/weather/gfs/20251025T00/f030.json
data/weather/gfs/20251025T00/f031.json
data/weather/gfs/20251025T00/f032.json
data/weather/gfs/20251025T00/f033.json
data/weather/gfs/20251025T00/f034.json
data/weather/gfs/20251025T00/f035.json
data/weather/gfs/20251025T00/f036.json
data/weather/gfs/20251025T00/f037.json
data/weather/gfs/20251025T00/f038.json
data/weather/gfs/20251025T00/f039.json
data/weather/gfs/20251025T00/f040.json
data/weather/gfs/20251025T00/f041.json
data/weather/gfs/20251025T00/f042.json
data/weather/gfs/20251025T00/f043.json
data/weather/gfs/20251025T00/f044.json
data/weather/gfs/20251025T00/f045.json
data/weather/gfs/20251025T00/f046.json
data/weather/gfs/20251025T00/f047.json
data/weather/gfs/20251025T00/f048.json
data/weather/gfs/20251025T00/f049.json
data/weather/gfs/20251025T00/f050.json
data/weather/gfs/20251025T00/f051.json
data/weather/gfs/20251025T00/f052.json
data/weather/gfs/20251025T00/f053.json
data/weather/gfs/20251025T00/f054.json
data/weather/gfs/20251025T00/f055.json
data/weather/gfs/20251025T00/f056.json
data/weather/gfs/20251025T00/f057.json
data/weather/gfs/20251025T00/f058.json
data/weather/gfs/20251025T00/f059.json
data/weather/gfs/20251025T00/f060.json
data/weather/gfs/20251025T00/f061.json
data/weather/gfs/20251025T00/f062.json
data/weather/gfs/20251025T00/f063.json
data/weather/gfs/20251025T00/f064.json
data/weather/gfs/20251025T00/f065.json
data/weather/gfs/20251025T00/f066.json
data/weather/gfs/20251026T00/f019.json
data/weather/gfs/20251026T00/f020.json
data/weather/gfs/20251026T00/f021.json
data/weather/gfs/20251026T00/f022.json
data/weather/gfs/20251026T00/f023.json
data/weather/gfs/20251026T00/f024.json
data/weather/gfs/20251026T00/f025.json
data/weather/gfs/20251026T00/f026.json
data/weather/gfs/20251026T00/f027.json
data/weather/gfs/20251026T00/f028.json
data/weather/gfs/20251026T00/f029.json
data/weather/gfs/20251026T00/f030.json
data/weather/gfs/20251026T00/f031.json
data/weather/gfs/20251026T00/f032.json
data/weather/gfs/20251026T00/f033.json
data/weather/gfs/20251026T00/f034.json
data/weather/gfs/20251026T00/f035.json
data/weather/gfs/20251026T00/f036.json
data/weather/gfs/20251026T00/f037.json
data/weather/gfs/20251026T00/f038.json
data/weather/gfs/20251026T00/f039.json
data/weather/gfs/20251026T00/f040.json
data/weather/gfs/20251026T00/f041.json
data/weather/gfs/20251026T00/f042.json
data/weather/gfs/20251026T00/f043.json
data/weather/gfs/20251026T00/f044.json
data/weather/gfs/20251026T00/f045.json
data/weather/gfs/20251026T00/f046.json
data/weather/gfs/20251026T00/f047.json
data/weather/gfs/20251026T00/f048.json
data/weather/gfs/20251026T00/f049.json
data/weather/gfs/20251026T00/f050.json
data/weather/gfs/20251026T00/f051.json
data/weather/gfs/20251026T00/f052.json
data/weather/gfs/20251026T00/f053.json
data/weather/gfs/20251026T00/f054.json
data/weather/gfs/20251026T00/f055.json
data/weather/gfs/20251026T00/f056.json
data/weather/gfs/20251026T00/f057.json
data/weather/gfs/20251026T00/f058.json
data/weather/gfs/20251026T00/f059.json
data/weather/gfs/20251026T00/f060.json
data/weather/gfs/20251026T00/f061.json
data/weather/gfs/20251026T00/f062.json
data/weather/gfs/20251026T00/f063.json
data/weather/gfs/20251026T00/f064.json
data/weather/gfs/20251026T00/f065.json
data/weather/gfs/20251026T00/f066.json
data/weather/gfs/20251027T00/f019.json
data/weather/gfs/20251027T00/f020.json
data/weather/gfs/20251027T00/f021.json
data/weather/gfs/20251027T00/f022.json
data/weather/gfs/20251027T00/f023.json
data/weather/gfs/20251027T00/f024.json
data/weather/gfs/20251027T00/f025.json
data/weather/gfs/20251027T00/f026.json
data/weather/gfs/20251027T00/f027.json
data/weather/gfs/20251027T00/f028.json
data/weather/gfs/20251027T00/f029.json
data/weather/gfs/20251027T00/f030.json
data/weather/gfs/20251027T00/f031.json
data/weather/gfs/20251027T00/f032.json
data/weather/gfs/20251027T00/f033.json
data/weather/gfs/20251027T00/f034.json
data/weather/gfs/20251027T00/f035.json
data/weather/gfs/20251027T00/f036.json
data/weather/gfs/20251027T00/f037.json
data/weather/gfs/20251027T00/f038.json
data/weather/gfs/20251027T00/f039.json
data/weather/gfs/20251027T00/f040.json
data/weather/gfs/20251027T00/f041.json
data/weather/gfs/20251027T00/f042.json
data/weather/gfs/20251027T00/f043.json
data/weather/gfs/20251027T00/f044.json
data/weather/gfs/20251027T00/f045.json
data/weather/gfs/20251027T00/f046.json
data/weather/gfs/20251027T00/f047.json
data/weather/gfs/20251027T00/f048.json
data/weather/gfs/20251027T00/f049.json
data/weather/gfs/20251027T00/f050.json
data/weather/gfs/20251027T00/f051.json
data/weather/gfs/20251027T00/f052.json
data/weather/gfs/20251027T00/f053.json
data/weather/gfs/20251027T00/f054.json
data/weather/gfs/20251027T00/f055.json
data/weather/gfs/20251027T00/f056.json
data/weather/gfs/20251027T00/f057.json
data/weather/gfs/20251027T00/f058.json
data/weather/gfs/20251027T00/f059.json
data/weather/gfs/20251027T00/f060.json
data/weather/gfs/20251027T00/f061.json
data/weather/gfs/20251027T00/f062.json
data/weather/gfs/20251027T00/f063.json
data/weather/gfs/20251027T00/f064.json
data/weather/gfs/20251027T00/f065.json
data/weather/gfs/20251027T00/f066.json
data/weather/gfs/20251028T00/f019.json
data/weather/gfs/20251028T00/f020.json
data/weather/gfs/20251028T00/f021.json
data/weather/gfs/20251028T00/f022.json
data/weather/gfs/20251028T00/f023.json
data/weather/gfs/20251028T00/f024.json
data/weather/gfs/20251028T00/f025.json
data/weather/gfs/20251028T00/f026.json
data/weather/gfs/20251028T00/f027.json
data/weather/gfs/20251028T00/f028.json
data/weather/gfs/20251028T00/f029.json
data/weather/gfs/20251028T00/f030.json
data/weather/gfs/20251028T00/f031.json
data/weather/gfs/20251028T00/f032.json
data/weather/gfs/20251028T00/f033.json
data/weather/gfs/20251028T00/f034.json
data/weather/gfs/20251028T00/f035.json
data/weather/gfs/20251028T00/f036.json
data/weather/gfs/20251028T00/f037.json
data/weather/gfs/20251028T00/f038.json
data/weather/gfs/20251028T00/f039.json
data/weather/gfs/20251028T00/f040.json
data/weather/gfs/20251028T00/f041.json
data/weather/gfs/20251028T00/f042.json
data/weather/gfs/20251028T00/f043.json
data/weather/gfs/20251028T00/f044.json
data/weather/gfs/20251028T00/f045.json
data/weather/gfs/20251028T00/f046.json
data/weather/gfs/20251028T00/f047.json
data/weather/gfs/20251028T00/f048.json
data/weather/gfs/20251028T00/f049.json
data/weather/gfs/20251028T00/f050.json
data/weather/gfs/20251028T00/f051.json
data/weather/gfs/20251028T00/f052.json
data/weather/gfs/20251028T00/f053.json
data/weather/gfs/20251028T00/f054.json
data/weather/gfs/20251028T00/f055.json
data/weather/gfs/20251028T00/f056.json
data/weather/gfs/20251028T00/f057.json
data/weather/gfs/20251028T00/f058.json
data/weather/gfs/20251028T00/f059.json
data/weather/gfs/20251028T00/f060.json
data/weather/gfs/20251028T00/f061.json
data/weather/gfs/20251028T00/f062.json
data/weather/gfs/20251028T00/f063.json
data/weather/gfs/20251028T00/f064.json
data/weather/gfs/20251028T00/f065.json
data/weather/gfs/20251028T00/f066.json
data/weather/gfs/20251029T00/f019.json
data/weather/gfs/20251029T00/f020.json
data/weather/gfs/20251029T00/f021.json
data/weather/gfs/20251029T00/f022.json
data/weather/gfs/20251029T00/f023.json
data/weather/gfs/20251029T00/f024.json
data/weather/gfs/20251029T00/f025.json
data/weather/gfs/20251029T00/f026.json
data/weather/gfs/20251029T00/f027.json
data/weather/gfs/20251029T00/f028.json
data/weather/gfs/20251029T00/f029.json
data/weather/gfs/20251029T00/f030.json
data/weather/gfs/20251029T00/f031.json
data/weather/gfs/20251029T00/f032.json
data/weather/gfs/20251029T00/f033.json
data/weather/gfs/20251029T00/f034.json
data/weather/gfs/20251029T00/f035.json
data/weather/gfs/20251029T00/f036.json
data/weather/gfs/20251029T00/f037.json
data/weather/gfs/20251029T00/f038.json
data/weather/gfs/20251029T00/f039.json
data/weather/gfs/20251029T00/f040.json
data/weather/gfs/20251029T00/f041.json
data/weather/gfs/20251029T00/f042.json
data/weather/gfs/20251029T00/f043.json
data/weather/gfs/20251029T00/f044.json
data/weather/gfs/20251029T00/f045.json
data/weather/gfs/20251029T00/f046.json
data/weather/gfs/20251029T00/f047.json
data/weather/gfs/20251029T00/f048.json
data/weather/gfs/20251029T00/f049.json
data/weather/gfs/20251029T00/f050.json
data/weather/gfs/20251029T00/f051.json
data/weather/gfs/20251029T00/f052.json
data/weather/gfs/20251029T00/f053.json
data/weather/gfs/20251029T00/f054.json
data/weather/gfs/20251029T00/f055.json
data/weather/gfs/20251029T00/f056.json
data/weather/gfs/20251029T00/f057.json
data/weather/gfs/20251029T00/f058.json
data/weather/gfs/20251029T00/f059.json
data/weather/gfs/20251029T00/f060.json
data/weather/gfs/20251029T00/f061.json
data/weather/gfs/20251029T00/f062.json
data/weather/gfs/20251029T00/f063.json
data/weather/gfs/20251029T00/f064.json
data/weather/gfs/20251029T00/f065.json
data/weather/gfs/20251029T00/f066.json
data/weather/gfs/20251030T00/f019.json
data/weather/gfs/20251030T00/f020.json
data/weather/gfs/20251030T00/f021.json
data/weather/gfs/20251030T00/f022.json
data/weather/gfs/20251030T00/f023.json
data/weather/gfs/20251030T00/f024.json
data/weather/gfs/20251030T00/f025.json
data/weather/gfs/20251030T00/f026.json
data/weather/gfs/20251030T00/f027.json
data/weather/gfs/20251030T00/f028.json
data/weather/gfs/20251030T00/f029.json
data/weather/gfs/20251030T00/f030.json
data/weather/gfs/20251030T00/f031.json
data/weather/gfs/20251030T00/f032.json
data/weather/gfs/20251030T00/f033.json
data/weather/gfs/20251030T00/f034.json
data/weather/gfs/20251030T00/f035.json
data/weather/gfs/20251030T00/f036.json
data/weather/gfs/20251030T00/f037.json
data/weather/gfs/20251030T00/f038.json
data/weather/gfs/20251030T00/f039.json
data/weather/gfs/20251030T00/f040.json
data/weather/gfs/20251030T00/f041.json
data/weather/gfs/20251030T00/f042.json
data/weather/gfs/20251030T00/f043.json
data/weather/gfs/20251030T00/f044.json
data/weather/gfs/20251030T00/f045.json
data/weather/gfs/20251030T00/f046.json
data/weather/gfs/20251030T00/f047.json
data/weather/gfs/20251030T00/f048.json
data/weather/gfs/20251030T00/f049.json
data/weather/gfs/20251030T00/f050.json
data/weather/gfs/20251030T00/f051.json
data/weather/gfs/20251030T00/f052.json
data/weather/gfs/20251030T00/f053.json
data/weather/gfs/20251030T00/f054.json
data/weather/gfs/20251030T00/f055.json
data/weather/gfs/20251030T00/f056.json
data/weather/gfs/20251030T00/f057.json
data/weather/gfs/20251030T00/f058.json
data/weather/gfs/20251030T00/f059.json
data/weather/gfs/20251030T00/f060.json
data/weather/gfs/20251030T00/f061.json
data/weather/gfs/20251030T00/f062.json
data/weather/gfs/20251030T00/f063.json
data/weather/gfs/20251030T00/f064.json
data/weather/gfs/20251030T00/f065.json
data/weather/gfs/20251030T00/f066.json
data/weather/gfs/20251031T00/f019.json
data/weather/gfs/20251031T00/f020.json
data/weather/gfs/20251031T00/f021.json
data/weather/gfs/20251031T00/f022.json
data/weather/gfs/20251031T00/f023.json
data/weather/gfs/20251031T00/f024.json
data/weather/gfs/20251031T00/f025.json
data/weather/gfs/20251031T00/f026.json
data/weather/gfs/20251031T00/f027.json
data/weather/gfs/20251031T00/f028.json
data/weather/gfs/20251031T00/f029.json
data/weather/gfs/20251031T00/f030.json
data/weather/gfs/20251031T00/f031.json
data/weather/gfs/20251031T00/f032.json
data/weather/gfs/20251031T00/f033.json
data/weather/gfs/20251031T00/f034.json
data/weather/gfs/20251031T00/f035.json
data/weather/gfs/20251031T00/f036.json
data/weather/gfs/20251031T00/f037.json
data/weather/gfs/20251031T00/f038.json
data/weather/gfs/20251031T00/f039.json
data/weather/gfs/20251031T00/f040.json
data/weather/gfs/20251031T00/f041.json
data/weather/gfs/20251031T00/f042.json
data/weather/gfs/20251031T00/f043.json
data/weather/gfs/20251031T00/f044.json
data/weather/gfs/20251031T00/f045.json
data/weather/gfs/20251031T00/f046.json
data/weather/gfs/20251031T00/f047.json
data/weather/gfs/20251031T00/f048.json
data/weather/gfs/20251031T00/f049.json
data/weather/gfs/20251031T00/f050.json
data/weather/gfs/20251031T00/f051.json
data/weather/gfs/20251031T00/f052.json
data/weather/gfs/20251031T00/f053.json
data/weather/gfs/20251031T00/f054.json
data/weather/gfs/20251031T00/f055.json
data/weather/gfs/20251031T00/f056.json
data/weather/gfs/20251031T00/f057.json
data/weather/gfs/20251031T00/f058.json
data/weather/gfs/20251031T00/f059.json
data/weather/gfs/20251031T00/f060.json
data/weather/gfs/20251031T00/f061.json
data/weather/gfs/20251031T00/f062.json
data/weather/gfs/20251031T00/f063.json
data/weather/gfs/20251031T00/f064.json
data/weather/gfs/20251031T00/f065.json
data/weather/gfs/20251031T00/f066.json
data/weather/gfs/20251101T00/f019.json
data/weather/gfs/20251101T00/f020.json
data/weather/gfs/20251101T00/f021.json
data/weather/gfs/20251101T00/f022.json
data/weather/gfs/20251101T00/f023.json
data/weather/gfs/20251101T00/f024.json
data/weather/gfs/20251101T00/f025.json
data/weather/gfs/20251101T00/f026.json
data/weather/gfs/20251101T00/f027.json
data/weather/gfs/20251101T00/f028.json
data/weather/gfs/20251101T00/f029.json
data/weather/gfs/20251101T00/f030.json
data/weather/gfs/20251101T00/f031.json
data/weather/gfs/20251101T00/f032.json
data/weather/gfs/20251101T00/f033.json
data/weather/gfs/20251101T00/f034.json
data/weather/gfs/20251101T00/f035.json
data/weather/gfs/20251101T00/f036.json
data/weather/gfs/20251101T00/f037.json
data/weather/gfs/20251101T00/f038.json
data/weather/gfs/20251101T00/f039.json
data/weather/gfs/20251101T00/f040.json
data/weather/gfs/20251101T00/f041.json
data/weather/gfs/20251101T00/f042.json
data/weather/gfs/20251101T00/f043.json
data/weather/gfs/20251101T00/f044.json
data/weather/gfs/20251101T00/f045.json
data/weather/gfs/20251101T00/f046.json
data/weather/gfs/20251101T00/f047.json
data/weather/gfs/20251101T00/f048.json
data/weather/gfs/20251101T00/f049.json
data/weather/gfs/20251101T00/f050.json
data/weather/gfs/20251101T00/f051.json
data/weather/gfs/20251101T00/f052.json
data/weather/gfs/20251101T00/f053.json
data/weather/gfs/20251101T00/f054.json
data/weather/gfs/20251101T00/f055.json
data/weather/gfs/20251101T00/f056.json
data/weather/gfs/20251101T00/f057.json
data/weather/gfs/20251101T00/f058.json
data/weather/gfs/20251101T00/f059.json
data/weather/gfs/20251101T00/f060.json
data/weather/gfs/20251101T00/f061.json
data/weather/gfs/20251101T00/f062.json
data/weather/gfs/20251101T00/f063.json
data/weather/gfs/20251101T00/f064.json
data/weather/gfs/20251101T00/f065.json
data/weather/gfs/20251101T00/f066.json
data/weather/gfs/20251102T00/f019.json
data/weather/gfs/20251102T00/f020.json
data/weather/gfs/20251102T00/f021.json
data/weather/gfs/20251102T00/f022.json
data/weather/gfs/20251102T00/f023.json
data/weather/gfs/20251102T00/f024.json
data/weather/gfs/20251102T00/f025.json
data/weather/gfs/20251102T00/f026.json
data/weather/gfs/20251102T00/f027.json
data/weather/gfs/20251102T00/f028.json
data/weather/gfs/20251102T00/f029.json
data/weather/gfs/20251102T00/f030.json
data/weather/gfs/20251102T00/f031.json
data/weather/gfs/20251102T00/f032.json
data/weather/gfs/20251102T00/f033.json
data/weather/gfs/20251102T00/f034.json
data/weather/gfs/20251102T00/f035.json
data/weather/gfs/20251102T00/f036.json
data/weather/gfs/20251102T00/f037.json
data/weather/gfs/20251102T00/f038.json
data/weather/gfs/20251102T00/f039.json
data/weather/gfs/20251102T00/f040.json
data/weather/gfs/20251102T00/f041.json
data/weather/gfs/20251102T00/f042.json
data/weather/gfs/20251102T00/f043.json
data/weather/gfs/20251102T00/f044.json
data/weather/gfs/20251102T00/f045.json
data/weather/gfs/20251102T00/f046.json
data/weather/gfs/20251102T00/f047.json
data/weather/gfs/20251102T00/f048.json
data/weather/gfs/20251102T00/f049.json
data/weather/gfs/20251102T00/f050.json
data/weather/gfs/20251102T00/f051.json
data/weather/gfs/20251102T00/f052.json
data/weather/gfs/20251102T00/f053.json
data/weather/gfs/20251102T00/f054.json
data/weather/gfs/20251102T00/f055.json
data/weather/gfs/20251102T00/f056.json
data/weather/gfs/20251102T00/f057.json
data/weather/gfs/20251102T00/f058.json
data/weather/gfs/20251102T00/f059.json
data/weather/gfs/20251102T00/f060.json
data/weather/gfs/20251102T00/f061.json
data/weather/gfs/20251102T00/f062.json
data/weather/gfs/20251102T00/f063.json
data/weather/gfs/20251102T00/f064.json
data/weather/gfs/20251102T00/f065.json
data/weather/gfs/20251102T00/f066.json
data/weather/gfs/20251103T00/f019.json
data/weather/gfs/20251103T00/f020.json
data/weather/gfs/20251103T00/f021.json
data/weather/gfs/20251103T00/f022.json
data/weather/gfs/20251103T00/f023.json
data/weather/gfs/20251103T00/f024.json
data/weather/gfs/20251103T00/f025.json
data/weather/gfs/20251103T00/f026.json
data/weather/gfs/20251103T00/f027.json
data/weather/gfs/20251103T00/f028.json
data/weather/gfs/20251103T00/f029.json
data/weather/gfs/20251103T00/f030.json
data/weather/gfs/20251103T00/f031.json
data/weather/gfs/20251103T00/f032.json
data/weather/gfs/20251103T00/f033.json
data/weather/gfs/20251103T00/f034.json
data/weather/gfs/20251103T00/f035.json
data/weather/gfs/20251103T00/f036.json
data/weather/gfs/20251103T00/f037.json
data/weather/gfs/20251103T00/f038.json
data/weather/gfs/20251103T00/f039.json
data/weather/gfs/20251103T00/f040.json
data/weather/gfs/20251103T00/f041.json
data/weather/gfs/20251103T00/f042.json
data/weather/gfs/20251103T00/f043.json
data/weather/gfs/20251103T00/f044.json
data/weather/gfs/20251103T00/f045.json
data/weather/gfs/20251103T00/f046.json
data/weather/gfs/20251103T00/f047.json
data/weather/gfs/20251103T00/f048.json
data/weather/gfs/20251103T00/f049.json
data/weather/gfs/20251103T00/f050.json
data/weather/gfs/20251103T00/f051.json
data/weather/gfs/20251103T00/f052.json
data/weather/gfs/20251103T00/f053.json
data/weather/gfs/20251103T00/f054.json
data/weather/gfs/20251103T00/f055.json
data/weather/gfs/20251103T00/f056.json
data/weather/gfs/20251103T00/f057.json
data/weather/gfs/20251103T00/f058.json
data/weather/gfs/20251103T00/f059.json
data/weather/gfs/20251103T00/f060.json
data/weather/gfs/20251103T00/f061.json
data/weather/gfs/20251103T00/f062.json
data/weather/gfs/20251103T00/f063.json
data/weather/gfs/20251103T00/f064.json
data/weather/gfs/20251103T00/f065.json
data/weather/gfs/20251103T00/f066.json
data/weather/gfs/20251104T00/f019.json
data/weather/gfs/20251104T00/f020.json
data/weather/gfs/20251104T00/f021.json
data/weather/gfs/20251104T00/f022.json
data/weather/gfs/20251104T00/f023.json
data/weather/gfs/20251104T00/f024.json
data/weather/gfs/20251104T00/f025.json
data/weather/gfs/20251104T00/f026.json
data/weather/gfs/20251104T00/f027.json
data/weather/gfs/20251104T00/f028.json
data/weather/gfs/20251104T00/f029.json
data/weather/gfs/20251104T00/f030.json
data/weather/gfs/20251104T00/f031.json
data/weather/gfs/20251104T00/f032.json
data/weather/gfs/20251104T00/f033.json
data/weather/gfs/20251104T00/f034.json
data/weather/gfs/20251104T00/f035.json
data/weather/gfs/20251104T00/f036.json
data/weather/gfs/20251104T00/f037.json
data/weather/gfs/20251104T00/f038.json
data/weather/gfs/20251104T00/f039.json
data/weather/gfs/20251104T00/f040.json
data/weather/gfs/20251104T00/f041.json
data/weather/gfs/20251104T00/f042.json
data/weather/gfs/20251104T00/f043.json
data/weather/gfs/20251104T00/f044.json
data/weather/gfs/20251104T00/f045.json
data/weather/gfs/20251104T00/f046.json
data/weather/gfs/20251104T00/f047.json
data/weather/gfs/20251104T00/f048.json
data/weather/gfs/20251104T00/f049.json
data/weather/gfs/20251104T00/f050.json
data/weather/gfs/20251104T00/f051.json
data/weather/gfs/20251104T00/f052.json
data/weather/gfs/20251104T00/f053.json
data/weather/gfs/20251104T00/f054.json
data/weather/gfs/20251104T00/f055.json
data/weather/gfs/20251104T00/f056.json
data/weather/gfs/20251104T00/f057.json
data/weather/gfs/20251104T00/f058.json
data/weather/gfs/20251104T00/f059.json
data/weather/gfs/20251104T00/f060.json
data/weather/gfs/20251104T00/f061.json
data/weather/gfs/20251104T00/f062.json
data/weather/gfs/20251104T00/f063.json
data/weather/gfs/20251104T00/f064.json
data/weather/gfs/20251104T00/f065.json
data/weather/gfs/20251104T00/f066.json
data/weather/gfs/20251105T00/f019.json
data/weather/gfs/20251105T00/f020.json
data/weather/gfs/20251105T00/f021.json
data/weather/gfs/20251105T00/f022.json
data/weather/gfs/20251105T00/f023.json
data/weather/gfs/20251105T00/f024.json
data/weather/gfs/20251105T00/f025.json
data/weather/gfs/20251105T00/f026.json
data/weather/gfs/20251105T00/f027.json
data/weather/gfs/20251105T00/f028.json
data/weather/gfs/20251105T00/f029.json
data/weather/gfs/20251105T00/f030.json
data/weather/gfs/20251105T00/f031.json
data/weather/gfs/20251105T00/f032.json
data/weather/gfs/20251105T00/f033.json
data/weather/gfs/20251105T00/f034.json
data/weather/gfs/20251105T00/f035.json
data/weather/gfs/20251105T00/f036.json
data/weather/gfs/20251105T00/f037.json
data/weather/gfs/20251105T00/f038.json
data/weather/gfs/20251105T00/f039.json
data/weather/gfs/20251105T00/f040.json
data/weather/gfs/20251105T00/f041.json
data/weather/gfs/20251105T00/f042.json
data/weather/gfs/20251105T00/f043.json
data/weather/gfs/20251105T00/f044.json
data/weather/gfs/20251105T00/f045.json
data/weather/gfs/20251105T00/f046.json
data/weather/gfs/20251105T00/f047.json
data/weather/gfs/20251105T00/f048.json
data/weather/gfs/20251105T00/f049.json
data/weather/gfs/20251105T00/f050.json
data/weather/gfs/20251105T00/f051.json
data/weather/gfs/20251105T00/f052.json
data/weather/gfs/20251105T00/f053.json
data/weather/gfs/20251105T00/f054.json
data/weather/gfs/20251105T00/f055.json
data/weather/gfs/20251105T00/f056.json
data/weather/gfs/20251105T00/f057.json
data/weather/gfs/20251105T00/f058.json
data/weather/gfs/20251105T00/f059.json
data/weather/gfs/20251105T00/f060.json
data/weather/gfs/20251105T00/f061.json
data/weather/gfs/20251105T00/f062.json
data/weather/gfs/20251105T00/f063.json
data/weather/gfs/20251105T00/f064.json
data/weather/gfs/20251105T00/f065.json
data/weather/gfs/20251105T00/f066.json
data/weather/gfs/20251106T00/f019.json
data/weather/gfs/20251106T00/f020.json
data/weather/gfs/20251106T00/f021.json
data/weather/gfs/20251106T00/f022.json
data/weather/gfs/20251106T00/f023.json
data/weather/gfs/20251106T00/f024.json
data/weather/gfs/20251106T00/f025.json
data/weather/gfs/20251106T00/f026.json
data/weather/gfs/20251106T00/f027.json
data/weather/gfs/20251106T00/f028.json
data/weather/gfs/20251106T00/f029.json
data/weather/gfs/20251106T00/f030.json
data/weather/gfs/20251106T00/f031.json
data/weather/gfs/20251106T00/f032.json
data/weather/gfs/20251106T00/f033.json
data/weather/gfs/20251106T00/f034.json
data/weather/gfs/20251106T00/f035.json
data/weather/gfs/20251106T00/f036.json
data/weather/gfs/20251106T00/f037.json
data/weather/gfs/20251106T00/f038.json
data/weather/gfs/20251106T00/f039.json
data/weather/gfs/20251106T00/f040.json
data/weather/gfs/20251106T00/f041.json
data/weather/gfs/20251106T00/f042.json
data/weather/gfs/20251106T00/f043.json
data/weather/gfs/20251106T00/f044.json
data/weather/gfs/20251106T00/f045.json
data/weather/gfs/20251106T00/f046.json
data/weather/gfs/20251106T00/f047.json
data/weather/gfs/20251106T00/f048.json
data/weather/gfs/20251106T00/f049.json
data/weather/gfs/20251106T00/f050.json
data/weather/gfs/20251106T00/f051.json
data/weather/gfs/20251106T00/f052.json
data/weather/gfs/20251106T00/f053.json
data/weather/gfs/20251106T00/f054.json
data/weather/gfs/20251106T00/f055.json
data/weather/gfs/20251106T00/f056.json
data/weather/gfs/20251106T00/f057.json
data/weather/gfs/20251106T00/f058.json
data/weather/gfs/20251106T00/f059.json
data/weather/gfs/20251106T00/f060.json
data/weather/gfs/20251106T00/f061.json
data/weather/gfs/20251106T00/f062.json
data/weather/gfs/20251106T00/f063.json
data/weather/gfs/20251106T00/f064.json
data/weather/gfs/20251106T00/f065.json
data/weather/gfs/20251106T00/f066.json
data/weather/gfs/20251107T00/f019.json
data/weather/gfs/20251107T00/f020.json
data/weather/gfs/20251107T00/f021.json
data/weather/gfs/20251107T00/f022.json
data/weather/gfs/20251107T00/f023.json
data/weather/gfs/20251107T00/f024.json
data/weather/gfs/20251107T00/f025.json
data/weather/gfs/20251107T00/f026.json
data/weather/gfs/20251107T00/f027.json
data/weather/gfs/20251107T00/f028.json
data/weather/gfs/20251107T00/f029.json
data/weather/gfs/20251107T00/f030.json
data/weather/gfs/20251107T00/f031.json
data/weather/gfs/20251107T00/f032.json
data/weather/gfs/20251107T00/f033.json
data/weather/gfs/20251107T00/f034.json
data/weather/gfs/20251107T00/f035.json
data/weather/gfs/20251107T00/f036.json
data/weather/gfs/20251107T00/f037.json
data/weather/gfs/20251107T00/f038.json
data/weather/gfs/20251107T00/f039.json
data/weather/gfs/20251107T00/f040.json
data/weather/gfs/20251107T00/f041.json
data/weather/gfs/20251107T00/f042.json
data/weather/gfs/20251107T00/f043.json
data/weather/gfs/20251107T00/f044.json
data/weather/gfs/20251107T00/f045.json
data/weather/gfs/20251107T00/f046.json
data/weather/gfs/20251107T00/f047.json
data/weather/gfs/20251107T00/f048.json
data/weather/gfs/20251107T00/f049.json
data/weather/gfs/20251107T00/f050.json
data/weather/gfs/20251107T00/f051.json
data/weather/gfs/20251107T00/f052.json
data/weather/gfs/20251107T00/f053.json
data/weather/gfs/20251107T00/f054.json
data/weather/gfs/20251107T00/f055.json
data/weather/gfs/20251107T00/f056.json
data/weather/gfs/20251107T00/f057.json
data/weather/gfs/20251107T00/f058.json
data/weather/gfs/20251107T00/f059.json
data/weather/gfs/20251107T00/f060.json
data/weather/gfs/20251107T00/f061.json
data/weather/gfs/20251107T00/f062.json
data/weather/gfs/20251107T00/f063.json
data/weather/gfs/20251107T00/f064.json
data/weather/gfs/20251107T00/f065.json
data/weather/gfs/20251107T00/f066.json
data/weather/gfs/20251108T00/f019.json
data/weather/gfs/20251108T00/f020.json
data/weather/gfs/20251108T00/f021.json
data/weather/gfs/20251108T00/f022.json
data/weather/gfs/20251108T00/f023.json
data/weather/gfs/20251108T00/f024.json
data/weather/gfs/20251108T00/f025.json
data/weather/gfs/20251108T00/f026.json
data/weather/gfs/20251108T00/f027.json
data/weather/gfs/20251108T00/f028.json
data/weather/gfs/20251108T00/f029.json
data/weather/gfs/20251108T00/f030.json
data/weather/gfs/20251108T00/f031.json
data/weather/gfs/20251108T00/f032.json
data/weather/gfs/20251108T00/f033.json
data/weather/gfs/20251108T00/f034.json
data/weather/gfs/20251108T00/f035.json
data/weather/gfs/20251108T00/f036.json
data/weather/gfs/20251108T00/f037.json
data/weather/gfs/20251108T00/f038.json
data/weather/gfs/20251108T00/f039.json
data/weather/gfs/20251108T00/f040.json
data/weather/gfs/20251108T00/f041.json
data/weather/gfs/20251108T00/f042.json
data/weather/gfs/20251108T00/f043.json
data/weather/gfs/20251108T00/f044.json
data/weather/gfs/20251108T00/f045.json
data/weather/gfs/20251108T00/f046.json
data/weather/gfs/20251108T00/f047.json
data/weather/gfs/20251108T00/f048.json
data/weather/gfs/20251108T00/f049.json
data/weather/gfs/20251108T00/f050.json
data/weather/gfs/20251108T00/f051.json
data/weather/gfs/20251108T00/f052.json
data/weather/gfs/20251108T00/f053.json
data/weather/gfs/20251108T00/f054.json
data/weather/gfs/20251108T00/f055.json
data/weather/gfs/20251108T00/f056.json
data/weather/gfs/20251108T00/f057.json
data/weather/gfs/20251108T00/f058.json
data/weather/gfs/20251108T00/f059.json
data/weather/gfs/20251108T00/f060.json
data/weather/gfs/20251108T00/f061.json
data/weather/gfs/20251108T00/f062.json
data/weather/gfs/20251108T00/f063.json
data/weather/gfs/20251108T00/f064.json
data/weather/gfs/20251108T00/f065.json
data/weather/gfs/20251108T00/f066.json
data/weather/gfs/20251109T00/f019.json
data/weather/gfs/20251109T00/f020.json
data/weather/gfs/20251109T00/f021.json
data/weather/gfs/20251109T00/f022.json
data/weather/gfs/20251109T00/f023.json
data/weather/gfs/20251109T00/f024.json
data/weather/gfs/20251109T00/f025.json
data/weather/gfs/20251109T00/f026.json
data/weather/gfs/20251109T00/f027.json
data/weather/gfs/20251109T00/f028.json
data/weather/gfs/20251109T00/f029.json
data/weather/gfs/20251109T00/f030.json
data/weather/gfs/20251109T00/f031.json
data/weather/gfs/20251109T00/f032.json
data/weather/gfs/20251109T00/f033.json
data/weather/gfs/20251109T00/f034.json
data/weather/gfs/20251109T00/f035.json
data/weather/gfs/20251109T00/f036.json
data/weather/gfs/20251109T00/f037.json
data/weather/gfs/20251109T00/f038.json
data/weather/gfs/20251109T00/f039.json
data/weather/gfs/20251109T00/f040.json
data/weather/gfs/20251109T00/f041.json
data/weather/gfs/20251109T00/f042.json
data/weather/gfs/20251109T00/f043.json
data/weather/gfs/20251109T00/f044.json
data/weather/gfs/20251109T00/f045.json
data/weather/gfs/20251109T00/f046.json
data/weather/gfs/20251109T00/f047.json
data/weather/gfs/20251109T00/f048.json
data/weather/gfs/20251109T00/f049.json
data/weather/gfs/20251109T00/f050.json
data/weather/gfs/20251109T00/f051.json
data/weather/gfs/20251109T00/f052.json
data/weather/gfs/20251109T00/f053.json
data/weather/gfs/20251109T00/f054.json
data/weather/gfs/20251109T00/f055.json
data/weather/gfs/20251109T00/f056.json
data/weather/gfs/20251109T00/f057.json
data/weather/gfs/20251109T00/f058.json
data/weather/gfs/20251109T00/f059.json
data/weather/gfs/20251109T00/f060.json
data/weather/gfs/20251109T00/f061.json
data/weather/gfs/20251109T00/f062.json
data/weather/gfs/20251109T00/f063.json
data/weather/gfs/20251109T00/f064.json
data/weather/gfs/20251109T00/f065.json
data/weather/gfs/20251109T00/f066.json
data/weather/gfs/20251110T00/f019.json
data/weather/gfs/20251110T00/f020.json
data/weather/gfs/20251110T00/f021.json
data/weather/gfs/20251110T00/f022.json
data/weather/gfs/20251110T00/f023.json
data/weather/gfs/20251110T00/f024.json
data/weather/gfs/20251110T00/f025.json
data/weather/gfs/20251110T00/f026.json
data/weather/gfs/20251110T00/f027.json
data/weather/gfs/20251110T00/f028.json
data/weather/gfs/20251110T00/f029.json
data/weather/gfs/20251110T00/f030.json
data/weather/gfs/20251110T00/f031.json
data/weather/gfs/20251110T00/f032.json
data/weather/gfs/20251110T00/f033.json
data/weather/gfs/20251110T00/f034.json
data/weather/gfs/20251110T00/f035.json
data/weather/gfs/20251110T00/f036.json
data/weather/gfs/20251110T00/f037.json
data/weather/gfs/20251110T00/f038.json
data/weather/gfs/20251110T00/f039.json
data/weather/gfs/20251110T00/f040.json
data/weather/gfs/20251110T00/f041.json
data/weather/gfs/20251110T00/f042.json
data/weather/gfs/20251110T00/f043.json
data/weather/gfs/20251110T00/f044.json
data/weather/gfs/20251110T00/f045.json
data/weather/gfs/20251110T00/f046.json
data/weather/gfs/20251110T00/f047.json
data/weather/gfs/20251110T00/f048.json
data/weather/gfs/20251110T00/f049.json
data/weather/gfs/20251110T00/f050.json
data/weather/gfs/20251110T00/f051.json
data/weather/gfs/20251110T00/f052.json
data/weather/gfs/20251110T00/f053.json
data/weather/gfs/20251110T00/f054.json
data/weather/gfs/20251110T00/f055.json
data/weather/gfs/20251110T00/f056.json
data/weather/gfs/20251110T00/f057.json
data/weather/gfs/20251110T00/f058.json
data/weather/gfs/20251110T00/f059.json
data/weather/gfs/20251110T00/f060.json
data/weather/gfs/20251110T00/f061.json
data/weather/gfs/20251110T00/f062.json
data/weather/gfs/20251110T00/f063.json
data/weather/gfs/20251110T00/f064.json
data/weather/gfs/20251110T00/f065.json
data/weather/gfs/20251110T00/f066.json
data/weather/gfs/20251111T00/f019.json
data/weather/gfs/20251111T00/f020.json
data/weather/gfs/20251111T00/f021.json
data/weather/gfs/20251111T00/f022.json
data/weather/gfs/20251111T00/f023.json
data/weather/gfs/20251111T00/f024.json
data/weather/gfs/20251111T00/f025.json
data/weather/gfs/20251111T00/f026.json
data/weather/gfs/20251111T00/f027.json
data/weather/gfs/20251111T00/f028.json
data/weather/gfs/20251111T00/f029.json
data/weather/gfs/20251111T00/f030.json
data/weather/gfs/20251111T00/f031.json
data/weather/gfs/20251111T00/f032.json
data/weather/gfs/20251111T00/f033.json
data/weather/gfs/20251111T00/f034.json
data/weather/gfs/20251111T00/f035.json
data/weather/gfs/20251111T00/f036.json
data/weather/gfs/20251111T00/f037.json
data/weather/gfs/20251111T00/f038.json
data/weather/gfs/20251111T00/f039.json
data/weather/gfs/20251111T00/f040.json
data/weather/gfs/20251111T00/f041.json
data/weather/gfs/20251111T00/f042.json
data/weather/gfs/20251111T00/f043.json
data/weather/gfs/20251111T00/f044.json
data/weather/gfs/20251111T00/f045.json
data/weather/gfs/20251111T00/f046.json
data/weather/gfs/20251111T00/f047.json
data/weather/gfs/20251111T00/f048.json
data/weather/gfs/20251111T00/f049.json
data/weather/gfs/20251111T00/f050.json
data/weather/gfs/20251111T00/f051.json
data/weather/gfs/20251111T00/f052.json
data/weather/gfs/20251111T00/f053.json
data/weather/gfs/20251111T00/f054.json
data/weather/gfs/20251111T00/f055.json
data/weather/gfs/20251111T00/f056.json
data/weather/gfs/20251111T00/f057.json
data/weather/gfs/20251111T00/f058.json
data/weather/gfs/20251111T00/f059.json
data/weather/gfs/20251111T00/f060.json
data/weather/gfs/20251111T00/f061.json
data/weather/gfs/20251111T00/f062.json
data/weather/gfs/20251111T00/f063.json
data/weather/gfs/20251111T00/f064.json
data/weather/gfs/20251111T00/f065.json
data/weather/gfs/20251111T00/f066.json
data/weather/gfs/20251112T00/f019.json
data/weather/gfs/20251112T00/f020.json
data/weather/gfs/20251112T00/f021.json
data/weather/gfs/20251112T00/f022.json
data/weather/gfs/20251112T00/f023.json
data/weather/gfs/20251112T00/f024.json
data/weather/gfs/20251112T00/f025.json
data/weather/gfs/20251112T00/f026.json
data/weather/gfs/20251112T00/f027.json
data/weather/gfs/20251112T00/f028.json
data/weather/gfs/20251112T00/f029.json
data/weather/gfs/20251112T00/f030.json
data/weather/gfs/20251112T00/f031.json
data/weather/gfs/20251112T00/f032.json
data/weather/gfs/20251112T00/f033.json
data/weather/gfs/20251112T00/f034.json
data/weather/gfs/20251112T00/f035.json
data/weather/gfs/20251112T00/f036.json
data/weather/gfs/20251112T00/f037.json
data/weather/gfs/20251112T00/f038.json
data/weather/gfs/20251112T00/f039.json
data/weather/gfs/20251112T00/f040.json
data/weather/gfs/20251112T00/f041.json
data/weather/gfs/20251112T00/f042.json
data/weather/gfs/20251112T00/f043.json
data/weather/gfs/20251112T00/f044.json
data/weather/gfs/20251112T00/f045.json
data/weather/gfs/20251112T00/f046.json
data/weather/gfs/20251112T00/f047.json
data/weather/gfs/20251112T00/f048.json
data/weather/gfs/20251112T00/f049.json
data/weather/gfs/20251112T00/f050.json
data/weather/gfs/20251112T00/f051.json
data/weather/gfs/20251112T00/f052.json
data/weather/gfs/20251112T00/f053.json
data/weather/gfs/20251112T00/f054.json
data/weather/gfs/20251112T00/f055.json
data/weather/gfs/20251112T00/f056.json
data/weather/gfs/20251112T00/f057.json
data/weather/gfs/20251112T00/f058.json
data/weather/gfs/20251112T00/f059.json
data/weather/gfs/20251112T00/f060.json
data/weather/gfs/20251112T00/f061.json
data/weather/gfs/20251112T00/f062.json
data/weather/gfs/20251112T00/f063.json
data/weather/gfs/20251112T00/f064.json
data/weather/gfs/20251112T00/f065.json
data/weather/gfs/20251112T00/f066.json
data/weather/gfs/20251113T00/f019.json
data/weather/gfs/20251113T00/f020.json
data/weather/gfs/20251113T00/f021.json
data/weather/gfs/20251113T00/f022.json
data/weather/gfs/20251113T00/f023.json
data/weather/gfs/20251113T00/f024.json
data/weather/gfs/20251113T00/f025.json
data/weather/gfs/20251113T00/f026.json
data/weather/gfs/20251113T00/f027.json
data/weather/gfs/20251113T00/f028.json
data/weather/gfs/20251113T00/f029.json
data/weather/gfs/20251113T00/f030.json
data/weather/gfs/20251113T00/f031.json
data/weather/gfs/20251113T00/f032.json
data/weather/gfs/20251113T00/f033.json
data/weather/gfs/20251113T00/f034.json
data/weather/gfs/20251113T00/f035.json
data/weather/gfs/20251113T00/f036.json
data/weather/gfs/20251113T00/f037.json
data/weather/gfs/20251113T00/f038.json
data/weather/gfs/20251113T00/f039.json
data/weather/gfs/20251113T00/f040.json
data/weather/gfs/20251113T00/f041.json
data/weather/gfs/20251113T00/f042.json
data/weather/gfs/20251113T00/f043.json
data/weather/gfs/20251113T00/f044.json
data/weather/gfs/20251113T00/f045.json
data/weather/gfs/20251113T00/f046.json
data/weather/gfs/20251113T00/f047.json
data/weather/gfs/20251113T00/f048.json
data/weather/gfs/20251113T00/f049.json
data/weather/gfs/20251113T00/f050.json
data/weather/gfs/20251113T00/f051.json
data/weather/gfs/20251113T00/f052.json
data/weather/gfs/20251113T00/f053.json
data/weather/gfs/20251113T00/f054.json
data/weather/gfs/20251113T00/f055.json
data/weather/gfs/20251113T00/f056.json
data/weather/gfs/20251113T00/f057.json
data/weather/gfs/20251113T00/f058.json
data/weather/gfs/20251113T00/f059.json
data/weather/gfs/20251113T00/f060.json
data/weather/gfs/20251113T00/f061.json
data/weather/gfs/20251113T00/f062.json
data/weather/gfs/20251113T00/f063.json
data/weather/gfs/20251113T00/f064.json
data/weather/gfs/20251113T00/f065.json
data/weather/gfs/20251113T00/f066.json
data/weather/gfs/20251114T00/f019.json
data/weather/gfs/20251114T00/f020.json
data/weather/gfs/20251114T00/f021.json
data/weather/gfs/20251114T00/f022.json
data/weather/gfs/20251114T00/f023.json
data/weather/gfs/20251114T00/f024.json
data/weather/gfs/20251114T00/f025.json
data/weather/gfs/20251114T00/f026.json
data/weather/gfs/20251114T00/f027.json
data/weather/gfs/20251114T00/f028.json
data/weather/gfs/20251114T00/f029.json
data/weather/gfs/20251114T00/f030.json
data/weather/gfs/20251114T00/f031.json
data/weather/gfs/20251114T00/f032.json
data/weather/gfs/20251114T00/f033.json
data/weather/gfs/20251114T00/f034.json
data/weather/gfs/20251114T00/f035.json
data/weather/gfs/20251114T00/f036.json
data/weather/gfs/20251114T00/f037.json
data/weather/gfs/20251114T00/f038.json
data/weather/gfs/20251114T00/f039.json
data/weather/gfs/20251114T00/f040.json
data/weather/gfs/20251114T00/f041.json
data/weather/gfs/20251114T00/f042.json
data/weather/gfs/20251114T00/f043.json
data/weather/gfs/20251114T00/f044.json
data/weather/gfs/20251114T00/f045.json
data/weather/gfs/20251114T00/f046.json
data/weather/gfs/20251114T00/f047.json
data/weather/gfs/20251114T00/f048.json
data/weather/gfs/20251114T00/f049.json
data/weather/gfs/20251114T00/f050.json
data/weather/gfs/20251114T00/f051.json
data/weather/gfs/20251114T00/f052.json
data/weather/gfs/20251114T00/f053.json
data/weather/gfs/20251114T00/f054.json
data/weather/gfs/20251114T00/f055.json
data/weather/gfs/20251114T00/f056.json
data/weather/gfs/20251114T00/f057.json
data/weather/gfs/20251114T00/f058.json
data/weather/gfs/20251114T00/f059.json
data/weather/gfs/20251114T00/f060.json

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

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

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