GRIB Loader Interface

application.yaml
---
source: "<%= ENV['GRIB_SOURCE'] || 'gfs' %>"
preparetime: 4
timeout: 5
minwait: 1
maxwait: 3
attempts: 3
retry_delay_minutes: "<%= ENV['RETRY_DELAY_MINUTES'] || '1' %>"
gfs_extensions:
- tropopause
load_grib_gfs.yaml
---
protocol: https://
base_url: nomads.ncep.noaa.gov
precision: 0p50
datalist: <%= ENV['GFS_DATALIST_MAIN'] || ["TCDC", "UGRD", "VGRD", "PRES", "TMP",
  "RH", "PRATE", "TPFI", "DZDT"] %>
forecasts: "<%= ENV['GFS_FORECASTS_MAIN'] || [6, 9, 12, 15, 18, 21, 24, 48, 72] %>"
heights: "<%= ENV['GFS_HEIGHTS_MAIN'] || [ 'surface', '1000_mb', '950_mb', '900_mb',
  '850_mb', '800_mb', '750_mb', '700_mb', '650_mb', '600_mb', '550_mb', '500_mb',
  '450_mb', '400_mb', '350_mb', '300_mb', '250_mb', '200_mb', '150_mb', '100_mb',
  '70_mb', '50_mb'] %>"
path: "./grib"
working_dirs:
- "./grib"
- "./grib/data/"
- "./grib/result/"
load_grib_rosgidro.yaml
---
protocol: ftp://
base_url: 193.7.166.1
precision: 1p25
datalist:
- TMP
- UGRD
- VGRD
- HGT
- RH
forecasts: "<%= ENV['RG_FORECASTS_MAIN'] || [6, 9, 12, 15, 18, 21, 24, 27, 30, 33,
  36] %>"
forecasts_array:
  '6': '020'
  '9': '021'
  '12': '022'
  '15': '023'
  '18': '024'
  '21': '025'
  '24': '026'
  '27': '027'
  '30': '028'
  '33': '029'
  '36': '030'
heights:
- 850_mb
- 750_mb
- 700_mb
- 600_mb
- 500_mb
- 450_mb
- 400_mb
- 350_mb
- 300_mb
- 275_mb
- 250_mb
- 225_mb
- 200_mb
- 175_mb
- 150_mb
- 125_mb
- 100_mb
dir: "./"
path: "./grib"
cleanup_merge_tmp: true
cleanup_downloaded: true
load_grib_tropopause.yaml
---
protocol: https://
base_url: nomads.ncep.noaa.gov
precision: 0p50
datalist: <%= ENV['GFS_DATALIST_TROPO'] || ["ICAHT", "HGT", "TCDC", "UGRD", "VGRD",
  "PRES", "TMP", "RH", "PRATE", "TPFI"] %>
forecasts: "<%= ENV['GFS_FORECASTS_TROPO'] || [6, 9, 12, 15, 18, 21, 24, 48, 72] %>"
heights:
- tropopause
path: "./grib"
load_grib_turbulence.yaml
---
protocol: https://
base_url: nomads.ncep.noaa.gov
precision: 0p25
datalist: <%= ENV['GFS_DATALIST_TURB'] || ["EDPARM"] %>
forecasts: "<%= ENV['GFS_FORECASTS_TURB'] || [6, 9, 12, 15, 18, 21, 24] %>"
heights: "<%= ENV['GFS_HEIGHTS_TURB'] || [ 'surface', '1000_mb', '950_mb', '900_mb',
  '850_mb', '800_mb', '750_mb', '700_mb', '650_mb', '600_mb', '550_mb', '500_mb',
  '450_mb', '400_mb', '350_mb', '300_mb', '250_mb', '200_mb', '150_mb', '100_mb',
  '70_mb', '50_mb'] %>"
path: "./grib"
schedule.yaml
---
gfs:
  times:
  - '05:22'
  - '11:22'
  - '17:22'
  - '23:22'
rosgidro:
  times:
  - '04:55'
  - '10:55'
  - '16:55'
  - '22:55'
# Logfile created on 2026-06-21 11:12:15 +0000 by logger.rb/v1.7.0
startup_check:Auto update required: stale date in /app/grib/data/info.json: 2026-06-21 00:00 UTC. Starting main.rb - 2026-06-21 11:12:17
[Main]:Запуск основного загрузчика: gfs - 2026-06-21 11:12:18
gfs_loader:Start loading GFS data - 2026-06-21 11:12:18
[Main]:GFS cycle is not available for the configured preparetime window - 2026-06-21 11:14:26
[Main]:Keeping temp directory for resume on next retry - 2026-06-21 11:14:26
grib_scheduler:Запуск планировщика в отдельном потоке - 2026-06-21 11:14:26
grib_scheduler:Старт: source=gfs, times=05:22, 11:22, 17:22, 23:22 - 2026-06-21 11:14:27
grib_scheduler:[Scheduler] 11:22 -> starting main.rb (gfs, reason=schedule) - 2026-06-21 11:22:00
[Main]:Запуск основного загрузчика: gfs - 2026-06-21 11:22:00
gfs_loader:Start loading GFS data - 2026-06-21 11:22:00
[Main]:GFS cycle is not available for the configured preparetime window - 2026-06-21 11:24:15
[Main]:Keeping temp directory for resume on next retry - 2026-06-21 11:24:15
grib_scheduler:[Scheduler] main.rb failed (exit=1). Retry at 11:25 - 2026-06-21 11:24:15
grib_scheduler:[Scheduler] 11:25 -> starting main.rb (gfs, reason=retry) - 2026-06-21 11:25:15
[Main]:Запуск основного загрузчика: gfs - 2026-06-21 11:25:16
gfs_loader:Start loading GFS data - 2026-06-21 11:25:16
[Main]:GFS cycle is not available for the configured preparetime window - 2026-06-21 11:27:27
[Main]:Keeping temp directory for resume on next retry - 2026-06-21 11:27:27
grib_scheduler:[Scheduler] main.rb failed (exit=1). Retry at 11:28 - 2026-06-21 11:27:27
grib_scheduler:[Scheduler] 11:28 -> starting main.rb (gfs, reason=retry) - 2026-06-21 11:28:27
[Main]:Запуск основного загрузчика: gfs - 2026-06-21 11:28:28
gfs_loader:Start loading GFS data - 2026-06-21 11:28:28
[Main]:Не удалось загрузить данные: forecast=f003, height=600_mb - 2026-06-21 11:48:03
[Main]:Keeping temp directory for resume on next retry - 2026-06-21 11:48:03
grib_scheduler:[Scheduler] main.rb failed (exit=1). Retry at 11:49 - 2026-06-21 11:48:03
grib_scheduler:[Scheduler] 11:49 -> starting main.rb (gfs, reason=retry) - 2026-06-21 11:49:03
[Main]:Запуск основного загрузчика: gfs - 2026-06-21 11:49:03
gfs_loader:Start loading GFS data - 2026-06-21 11:49:03
gfs_loader:Resume temp cycle 20260621.t06.0p50 - 2026-06-21 11:49:05
gfs_loader:Загрузка завершена успешно - 2026-06-21 11:58:30
[Main]:Запуск расширения GFS: tropopause - 2026-06-21 11:58:30
[Tropopause]:Старт загрузки данных тропопаузы - 2026-06-21 11:58:30
[Tropopause]:Загрузка завершена успешно - 2026-06-21 11:58:37
[Main]:Все модули завершены успешно. Перемещаем данные из temp. - 2026-06-21 11:58:37
[Main]:Перемещение данных из temp в рабочие директории - 2026-06-21 11:58:37
[Main]:Обработка: ./grib/temp/data → ./grib/data - 2026-06-21 11:58:37
[Main]:Обработка: ./grib/temp/result → ./grib/result - 2026-06-21 11:58:40
[Main]:Обработка: ./grib/temp/data_tropo → ./grib/data_tropo - 2026-06-21 11:58:42
[Main]:Данные успешно перемещены - 2026-06-21 11:58:43
[Main]:Обновление завершено успешно - 2026-06-21 11:58:43
grib_scheduler:[Scheduler] main.rb finished successfully - 2026-06-21 11:58:43
base_loader:Source available: nomads.ncep.noaa.gov - 2026-06-21 17:12:00
grib_scheduler:Source gfs check passed before 17:22 - 2026-06-21 17:12:00
grib_scheduler:[Scheduler] 17:22 -> starting main.rb (gfs, reason=schedule) - 2026-06-21 17:22:00
[Main]:Запуск основного загрузчика: gfs - 2026-06-21 17:22:02
gfs_loader:Start loading GFS data - 2026-06-21 17:22:02
gfs_loader:Загрузка завершена успешно - 2026-06-21 17:24:44
[Main]:Запуск расширения GFS: tropopause - 2026-06-21 17:24:44
[Tropopause]:Старт загрузки данных тропопаузы - 2026-06-21 17:24:44
[Tropopause]:Загрузка завершена успешно - 2026-06-21 17:24:52
[Main]:Все модули завершены успешно. Перемещаем данные из temp. - 2026-06-21 17:24:52
[Main]:Перемещение данных из temp в рабочие директории - 2026-06-21 17:24:52
[Main]:Обработка: ./grib/temp/data → ./grib/data - 2026-06-21 17:24:52
[Main]:Обработка: ./grib/temp/result → ./grib/result - 2026-06-21 17:24:54
[Main]:Обработка: ./grib/temp/data_tropo → ./grib/data_tropo - 2026-06-21 17:24:57
[Main]:Данные успешно перемещены - 2026-06-21 17:24:57
[Main]:Обновление завершено успешно - 2026-06-21 17:24:57
grib_scheduler:[Scheduler] main.rb finished successfully - 2026-06-21 17:24:57
base_loader:Source available: nomads.ncep.noaa.gov - 2026-06-21 23:12:00
grib_scheduler:Source gfs check passed before 23:22 - 2026-06-21 23:12:00
grib_scheduler:[Scheduler] 23:22 -> starting main.rb (gfs, reason=schedule) - 2026-06-21 23:22:00
[Main]:Запуск основного загрузчика: gfs - 2026-06-21 23:22:02
gfs_loader:Start loading GFS data - 2026-06-21 23:22:02
gfs_loader:Загрузка завершена успешно - 2026-06-21 23:24:54
[Main]:Запуск расширения GFS: tropopause - 2026-06-21 23:24:54
[Tropopause]:Старт загрузки данных тропопаузы - 2026-06-21 23:24:54
[Tropopause]:Загрузка завершена успешно - 2026-06-21 23:25:03
[Main]:Все модули завершены успешно. Перемещаем данные из temp. - 2026-06-21 23:25:03
[Main]:Перемещение данных из temp в рабочие директории - 2026-06-21 23:25:03
[Main]:Обработка: ./grib/temp/data → ./grib/data - 2026-06-21 23:25:03
[Main]:Обработка: ./grib/temp/result → ./grib/result - 2026-06-21 23:25:05
[Main]:Обработка: ./grib/temp/data_tropo → ./grib/data_tropo - 2026-06-21 23:25:08
[Main]:Данные успешно перемещены - 2026-06-21 23:25:08
[Main]:Обновление завершено успешно - 2026-06-21 23:25:08
grib_scheduler:[Scheduler] main.rb finished successfully - 2026-06-21 23:25:08
base_loader:Source available: nomads.ncep.noaa.gov - 2026-06-22 05:12:01
grib_scheduler:Source gfs check passed before 05:22 - 2026-06-22 05:12:01
grib_scheduler:[Scheduler] 05:22 -> starting main.rb (gfs, reason=schedule) - 2026-06-22 05:22:00
[Main]:Запуск основного загрузчика: gfs - 2026-06-22 05:22:01
gfs_loader:Start loading GFS data - 2026-06-22 05:22:01
gfs_loader:Загрузка завершена успешно - 2026-06-22 05:24:14
[Main]:Запуск расширения GFS: tropopause - 2026-06-22 05:24:14
[Tropopause]:Старт загрузки данных тропопаузы - 2026-06-22 05:24:14
[Tropopause]:Загрузка завершена успешно - 2026-06-22 05:24:20
[Main]:Все модули завершены успешно. Перемещаем данные из temp. - 2026-06-22 05:24:20
[Main]:Перемещение данных из temp в рабочие директории - 2026-06-22 05:24:20
[Main]:Обработка: ./grib/temp/data → ./grib/data - 2026-06-22 05:24:20
[Main]:Обработка: ./grib/temp/result → ./grib/result - 2026-06-22 05:24:23
[Main]:Обработка: ./grib/temp/data_tropo → ./grib/data_tropo - 2026-06-22 05:24:27
[Main]:Данные успешно перемещены - 2026-06-22 05:24:27
[Main]:Обновление завершено успешно - 2026-06-22 05:24:27
grib_scheduler:[Scheduler] main.rb finished successfully - 2026-06-22 05:24:27
base_loader:Source available: nomads.ncep.noaa.gov - 2026-06-22 11:12:00
grib_scheduler:Source gfs check passed before 11:22 - 2026-06-22 11:12:00
grib_scheduler:[Scheduler] 11:22 -> starting main.rb (gfs, reason=schedule) - 2026-06-22 11:22:00
[Main]:Запуск основного загрузчика: gfs - 2026-06-22 11:22:01
gfs_loader:Start loading GFS data - 2026-06-22 11:22:01
gfs_loader:Загрузка завершена успешно - 2026-06-22 11:24:27
[Main]:Запуск расширения GFS: tropopause - 2026-06-22 11:24:27
[Tropopause]:Старт загрузки данных тропопаузы - 2026-06-22 11:24:27
[Tropopause]:Загрузка завершена успешно - 2026-06-22 11:24:34
[Main]:Все модули завершены успешно. Перемещаем данные из temp. - 2026-06-22 11:24:34
[Main]:Перемещение данных из temp в рабочие директории - 2026-06-22 11:24:34
[Main]:Обработка: ./grib/temp/data → ./grib/data - 2026-06-22 11:24:34
[Main]:Обработка: ./grib/temp/result → ./grib/result - 2026-06-22 11:24:36
[Main]:Обработка: ./grib/temp/data_tropo → ./grib/data_tropo - 2026-06-22 11:24:40
[Main]:Данные успешно перемещены - 2026-06-22 11:24:40
[Main]:Обновление завершено успешно - 2026-06-22 11:24:40
grib_scheduler:[Scheduler] main.rb finished successfully - 2026-06-22 11:24:40
base_loader:Source available: nomads.ncep.noaa.gov - 2026-06-22 17:12:01
grib_scheduler:Source gfs check passed before 17:22 - 2026-06-22 17:12:01
grib_scheduler:[Scheduler] 17:22 -> starting main.rb (gfs, reason=schedule) - 2026-06-22 17:22:00
[Main]:Запуск основного загрузчика: gfs - 2026-06-22 17:22:01
gfs_loader:Start loading GFS data - 2026-06-22 17:22:01
gfs_loader:Загрузка завершена успешно - 2026-06-22 17:24:48
[Main]:Запуск расширения GFS: tropopause - 2026-06-22 17:24:48
[Tropopause]:Старт загрузки данных тропопаузы - 2026-06-22 17:24:48
[Tropopause]:Загрузка завершена успешно - 2026-06-22 17:24:54
[Main]:Все модули завершены успешно. Перемещаем данные из temp. - 2026-06-22 17:24:54
[Main]:Перемещение данных из temp в рабочие директории - 2026-06-22 17:24:54
[Main]:Обработка: ./grib/temp/data → ./grib/data - 2026-06-22 17:24:54
[Main]:Обработка: ./grib/temp/result → ./grib/result - 2026-06-22 17:24:57
[Main]:Обработка: ./grib/temp/data_tropo → ./grib/data_tropo - 2026-06-22 17:25:00
[Main]:Данные успешно перемещены - 2026-06-22 17:25:01
[Main]:Обновление завершено успешно - 2026-06-22 17:25:01
grib_scheduler:[Scheduler] main.rb finished successfully - 2026-06-22 17:25:01
base_loader:Source available: nomads.ncep.noaa.gov - 2026-06-22 23:12:01
grib_scheduler:Source gfs check passed before 23:22 - 2026-06-22 23:12:01
grib_scheduler:[Scheduler] 23:22 -> starting main.rb (gfs, reason=schedule) - 2026-06-22 23:22:00
[Main]:Запуск основного загрузчика: gfs - 2026-06-22 23:22:01
gfs_loader:Start loading GFS data - 2026-06-22 23:22:01
gfs_loader:Загрузка завершена успешно - 2026-06-22 23:25:34
[Main]:Запуск расширения GFS: tropopause - 2026-06-22 23:25:34
[Tropopause]:Старт загрузки данных тропопаузы - 2026-06-22 23:25:34
[Tropopause]:Загрузка завершена успешно - 2026-06-22 23:25:43
[Main]:Все модули завершены успешно. Перемещаем данные из temp. - 2026-06-22 23:25:43
[Main]:Перемещение данных из temp в рабочие директории - 2026-06-22 23:25:43
[Main]:Обработка: ./grib/temp/data → ./grib/data - 2026-06-22 23:25:43
[Main]:Обработка: ./grib/temp/result → ./grib/result - 2026-06-22 23:25:46
[Main]:Обработка: ./grib/temp/data_tropo → ./grib/data_tropo - 2026-06-22 23:25:49
[Main]:Данные успешно перемещены - 2026-06-22 23:25:49
[Main]:Обновление завершено успешно - 2026-06-22 23:25:49
grib_scheduler:[Scheduler] main.rb finished successfully - 2026-06-22 23:25:49
base_loader:Source available: nomads.ncep.noaa.gov - 2026-06-23 05:12:00
grib_scheduler:Source gfs check passed before 05:22 - 2026-06-23 05:12:00
grib_scheduler:[Scheduler] 05:22 -> starting main.rb (gfs, reason=schedule) - 2026-06-23 05:22:00
[Main]:Запуск основного загрузчика: gfs - 2026-06-23 05:22:02
gfs_loader:Start loading GFS data - 2026-06-23 05:22:02
gfs_loader:Загрузка завершена успешно - 2026-06-23 05:25:33
[Main]:Запуск расширения GFS: tropopause - 2026-06-23 05:25:33
[Tropopause]:Старт загрузки данных тропопаузы - 2026-06-23 05:25:33
[Tropopause]:Загрузка завершена успешно - 2026-06-23 05:25:44
[Main]:Все модули завершены успешно. Перемещаем данные из temp. - 2026-06-23 05:25:44
[Main]:Перемещение данных из temp в рабочие директории - 2026-06-23 05:25:44
[Main]:Обработка: ./grib/temp/data → ./grib/data - 2026-06-23 05:25:44
[Main]:Обработка: ./grib/temp/result → ./grib/result - 2026-06-23 05:25:46
[Main]:Обработка: ./grib/temp/data_tropo → ./grib/data_tropo - 2026-06-23 05:25:49
[Main]:Данные успешно перемещены - 2026-06-23 05:25:49
[Main]:Обновление завершено успешно - 2026-06-23 05:25:49
grib_scheduler:[Scheduler] main.rb finished successfully - 2026-06-23 05:25:49