| project: |
| name: neuralgcm_develop |
| task: earth_system_forecasting |
| seed: 20260904 |
|
|
| paths: |
| project_root: . |
| |
| official_source_dir: null |
| virtual_era5_dir: data |
| checkpoint_dir: data/checkpoint |
| result_dir: results |
| metadata_dir: metadata |
|
|
| model: |
| |
| variant: weather_forecast |
| grid_degrees: 0.7 |
| |
| |
| grid_shape: [512, 256] |
| profiles: |
| weather_forecast: |
| description: "未来2至15天天气预报" |
| official_reference: models_v1_deterministic_0_7_deg.pkl |
| grid_degrees: 0.7 |
| grid_shape: [512, 256] |
| climate_scale: |
| description: "气候尺度模拟" |
| official_reference: models_v1_deterministic_1_4_deg.pkl |
| grid_degrees: 1.4 |
| grid_shape: [256, 128] |
| forecast_2_8_deg: |
| description: "2.8度天气预报" |
| official_reference: models_v1_deterministic_2_8_deg.pkl |
| grid_degrees: 2.8 |
| grid_shape: [128, 64] |
| stochastic_1_4_deg: |
| description: "1.4度随机预报" |
| official_reference: models_v1_stochastic_1_4_deg.pkl |
| grid_degrees: 1.4 |
| grid_shape: [256, 128] |
| pressure_levels_hpa: [1, 2, 3, 5, 7, 10, 20, 30, 50, 70, 100, 125, 150, 175, 200, 225, 250, 300, 350, 400, 450, 500, 550, 600, 650, 700, 750, 775, 800, 825, 850, 875, 900, 925, 950, 975, 1000] |
| input_variables: [geopotential, specific_humidity, temperature, u_component_of_wind, v_component_of_wind] |
| optional_input_variables: [specific_cloud_ice_water_content, specific_cloud_liquid_water_content] |
| forcing_variables: [sea_ice_cover, sea_surface_temperature] |
| official_checkpoint: null |
| load_pretrained: false |
|
|
| data: |
| dataset_class: onescience.datapipes.climate.ERA5Dataset |
| data_dir: data |
| |
| |
| static_file: data/static.nc |
| |
| |
| |
| static_files: |
| weather_forecast: data/static/weather_forecast.nc |
| climate_scale: data/static/climate_scale.nc |
| forecast_2_8_deg: data/static/forecast_2_8_deg.nc |
| stochastic_1_4_deg: data/static/stochastic_1_4_deg.nc |
| field_key: fields |
| time_step_hours: 6 |
| input_steps: 1 |
| |
| |
| output_steps: 1 |
| normalize: false |
| batch_size: 1 |
| num_workers: 0 |
| train_years: [1999] |
| val_years: [2000] |
| test_years: [2001] |
| virtual: |
| |
| |
| timesteps_per_year: 9 |
| forecast_steps: 8 |
| forecast_horizon_days: 2 |
| height: 721 |
| width: 1440 |
| seed: 20260904 |
| |
| channel_order: &channel_order |
| - geopotential_1 |
| - geopotential_2 |
| - geopotential_3 |
| - geopotential_5 |
| - geopotential_7 |
| - geopotential_10 |
| - geopotential_20 |
| - geopotential_30 |
| - geopotential_50 |
| - geopotential_70 |
| - geopotential_100 |
| - geopotential_125 |
| - geopotential_150 |
| - geopotential_175 |
| - geopotential_200 |
| - geopotential_225 |
| - geopotential_250 |
| - geopotential_300 |
| - geopotential_350 |
| - geopotential_400 |
| - geopotential_450 |
| - geopotential_500 |
| - geopotential_550 |
| - geopotential_600 |
| - geopotential_650 |
| - geopotential_700 |
| - geopotential_750 |
| - geopotential_775 |
| - geopotential_800 |
| - geopotential_825 |
| - geopotential_850 |
| - geopotential_875 |
| - geopotential_900 |
| - geopotential_925 |
| - geopotential_950 |
| - geopotential_975 |
| - geopotential_1000 |
| - specific_humidity_1 |
| - specific_humidity_2 |
| - specific_humidity_3 |
| - specific_humidity_5 |
| - specific_humidity_7 |
| - specific_humidity_10 |
| - specific_humidity_20 |
| - specific_humidity_30 |
| - specific_humidity_50 |
| - specific_humidity_70 |
| - specific_humidity_100 |
| - specific_humidity_125 |
| - specific_humidity_150 |
| - specific_humidity_175 |
| - specific_humidity_200 |
| - specific_humidity_225 |
| - specific_humidity_250 |
| - specific_humidity_300 |
| - specific_humidity_350 |
| - specific_humidity_400 |
| - specific_humidity_450 |
| - specific_humidity_500 |
| - specific_humidity_550 |
| - specific_humidity_600 |
| - specific_humidity_650 |
| - specific_humidity_700 |
| - specific_humidity_750 |
| - specific_humidity_775 |
| - specific_humidity_800 |
| - specific_humidity_825 |
| - specific_humidity_850 |
| - specific_humidity_875 |
| - specific_humidity_900 |
| - specific_humidity_925 |
| - specific_humidity_950 |
| - specific_humidity_975 |
| - specific_humidity_1000 |
| - temperature_1 |
| - temperature_2 |
| - temperature_3 |
| - temperature_5 |
| - temperature_7 |
| - temperature_10 |
| - temperature_20 |
| - temperature_30 |
| - temperature_50 |
| - temperature_70 |
| - temperature_100 |
| - temperature_125 |
| - temperature_150 |
| - temperature_175 |
| - temperature_200 |
| - temperature_225 |
| - temperature_250 |
| - temperature_300 |
| - temperature_350 |
| - temperature_400 |
| - temperature_450 |
| - temperature_500 |
| - temperature_550 |
| - temperature_600 |
| - temperature_650 |
| - temperature_700 |
| - temperature_750 |
| - temperature_775 |
| - temperature_800 |
| - temperature_825 |
| - temperature_850 |
| - temperature_875 |
| - temperature_900 |
| - temperature_925 |
| - temperature_950 |
| - temperature_975 |
| - temperature_1000 |
| - u_component_of_wind_1 |
| - u_component_of_wind_2 |
| - u_component_of_wind_3 |
| - u_component_of_wind_5 |
| - u_component_of_wind_7 |
| - u_component_of_wind_10 |
| - u_component_of_wind_20 |
| - u_component_of_wind_30 |
| - u_component_of_wind_50 |
| - u_component_of_wind_70 |
| - u_component_of_wind_100 |
| - u_component_of_wind_125 |
| - u_component_of_wind_150 |
| - u_component_of_wind_175 |
| - u_component_of_wind_200 |
| - u_component_of_wind_225 |
| - u_component_of_wind_250 |
| - u_component_of_wind_300 |
| - u_component_of_wind_350 |
| - u_component_of_wind_400 |
| - u_component_of_wind_450 |
| - u_component_of_wind_500 |
| - u_component_of_wind_550 |
| - u_component_of_wind_600 |
| - u_component_of_wind_650 |
| - u_component_of_wind_700 |
| - u_component_of_wind_750 |
| - u_component_of_wind_775 |
| - u_component_of_wind_800 |
| - u_component_of_wind_825 |
| - u_component_of_wind_850 |
| - u_component_of_wind_875 |
| - u_component_of_wind_900 |
| - u_component_of_wind_925 |
| - u_component_of_wind_950 |
| - u_component_of_wind_975 |
| - u_component_of_wind_1000 |
| - v_component_of_wind_1 |
| - v_component_of_wind_2 |
| - v_component_of_wind_3 |
| - v_component_of_wind_5 |
| - v_component_of_wind_7 |
| - v_component_of_wind_10 |
| - v_component_of_wind_20 |
| - v_component_of_wind_30 |
| - v_component_of_wind_50 |
| - v_component_of_wind_70 |
| - v_component_of_wind_100 |
| - v_component_of_wind_125 |
| - v_component_of_wind_150 |
| - v_component_of_wind_175 |
| - v_component_of_wind_200 |
| - v_component_of_wind_225 |
| - v_component_of_wind_250 |
| - v_component_of_wind_300 |
| - v_component_of_wind_350 |
| - v_component_of_wind_400 |
| - v_component_of_wind_450 |
| - v_component_of_wind_500 |
| - v_component_of_wind_550 |
| - v_component_of_wind_600 |
| - v_component_of_wind_650 |
| - v_component_of_wind_700 |
| - v_component_of_wind_750 |
| - v_component_of_wind_775 |
| - v_component_of_wind_800 |
| - v_component_of_wind_825 |
| - v_component_of_wind_850 |
| - v_component_of_wind_875 |
| - v_component_of_wind_900 |
| - v_component_of_wind_925 |
| - v_component_of_wind_950 |
| - v_component_of_wind_975 |
| - v_component_of_wind_1000 |
| - specific_cloud_ice_water_content_1 |
| - specific_cloud_ice_water_content_2 |
| - specific_cloud_ice_water_content_3 |
| - specific_cloud_ice_water_content_5 |
| - specific_cloud_ice_water_content_7 |
| - specific_cloud_ice_water_content_10 |
| - specific_cloud_ice_water_content_20 |
| - specific_cloud_ice_water_content_30 |
| - specific_cloud_ice_water_content_50 |
| - specific_cloud_ice_water_content_70 |
| - specific_cloud_ice_water_content_100 |
| - specific_cloud_ice_water_content_125 |
| - specific_cloud_ice_water_content_150 |
| - specific_cloud_ice_water_content_175 |
| - specific_cloud_ice_water_content_200 |
| - specific_cloud_ice_water_content_225 |
| - specific_cloud_ice_water_content_250 |
| - specific_cloud_ice_water_content_300 |
| - specific_cloud_ice_water_content_350 |
| - specific_cloud_ice_water_content_400 |
| - specific_cloud_ice_water_content_450 |
| - specific_cloud_ice_water_content_500 |
| - specific_cloud_ice_water_content_550 |
| - specific_cloud_ice_water_content_600 |
| - specific_cloud_ice_water_content_650 |
| - specific_cloud_ice_water_content_700 |
| - specific_cloud_ice_water_content_750 |
| - specific_cloud_ice_water_content_775 |
| - specific_cloud_ice_water_content_800 |
| - specific_cloud_ice_water_content_825 |
| - specific_cloud_ice_water_content_850 |
| - specific_cloud_ice_water_content_875 |
| - specific_cloud_ice_water_content_900 |
| - specific_cloud_ice_water_content_925 |
| - specific_cloud_ice_water_content_950 |
| - specific_cloud_ice_water_content_975 |
| - specific_cloud_ice_water_content_1000 |
| - specific_cloud_liquid_water_content_1 |
| - specific_cloud_liquid_water_content_2 |
| - specific_cloud_liquid_water_content_3 |
| - specific_cloud_liquid_water_content_5 |
| - specific_cloud_liquid_water_content_7 |
| - specific_cloud_liquid_water_content_10 |
| - specific_cloud_liquid_water_content_20 |
| - specific_cloud_liquid_water_content_30 |
| - specific_cloud_liquid_water_content_50 |
| - specific_cloud_liquid_water_content_70 |
| - specific_cloud_liquid_water_content_100 |
| - specific_cloud_liquid_water_content_125 |
| - specific_cloud_liquid_water_content_150 |
| - specific_cloud_liquid_water_content_175 |
| - specific_cloud_liquid_water_content_200 |
| - specific_cloud_liquid_water_content_225 |
| - specific_cloud_liquid_water_content_250 |
| - specific_cloud_liquid_water_content_300 |
| - specific_cloud_liquid_water_content_350 |
| - specific_cloud_liquid_water_content_400 |
| - specific_cloud_liquid_water_content_450 |
| - specific_cloud_liquid_water_content_500 |
| - specific_cloud_liquid_water_content_550 |
| - specific_cloud_liquid_water_content_600 |
| - specific_cloud_liquid_water_content_650 |
| - specific_cloud_liquid_water_content_700 |
| - specific_cloud_liquid_water_content_750 |
| - specific_cloud_liquid_water_content_775 |
| - specific_cloud_liquid_water_content_800 |
| - specific_cloud_liquid_water_content_825 |
| - specific_cloud_liquid_water_content_850 |
| - specific_cloud_liquid_water_content_875 |
| - specific_cloud_liquid_water_content_900 |
| - specific_cloud_liquid_water_content_925 |
| - specific_cloud_liquid_water_content_950 |
| - specific_cloud_liquid_water_content_975 |
| - specific_cloud_liquid_water_content_1000 |
| - sea_ice_cover |
| - sea_surface_temperature |
|
|
| training: |
| mode: weather_forecast |
| max_steps: 3 |
| trajectory_length: 2 |
| |
| |
| samples_per_step: 1 |
| |
| devices: 1 |
| shuffle: true |
| drop_last: true |
| |
| |
| data_num_workers: 2 |
| prefetch_batches: 1 |
| |
| |
| checkpoint_interval: 0 |
| learning_rate: 0.0001 |
| optimizer: |
| name: adam |
| schedule: constant |
| b1: 0.9 |
| b2: 0.95 |
| eps: 1.0e-6 |
| |
| rates: [] |
| boundaries: [] |
| |
| |
| ema_num_steps: 1000 |
| rollout_schedule: [] |
| |
| |
| |
| gradient_clip_norm: 1.0 |
| loss: |
| backend: official |
| |
| |
| |
| data_weight: 20.0 |
| data_spectrum_weight: 0.1 |
| model_weight: 1.0 |
| model_spectrum_weight: 0.1 |
| bias_weight: 2.0 |
| accuracy_time_scale_hours: 24.0 |
| spectral_time_scale_hours: 40.0 |
| spectral_cutoff_by_mode: |
| weather_forecast: 120 |
| climate_scale: 80 |
| forecast_2_8_deg: 42 |
| |
| |
| variable_weights: null |
| |
| |
| |
| |
| time_rescaling: legacy |
| spectral_weight: 0.0 |
| variable_scales: |
| z: 10000.0 |
| t: 30.0 |
| u: 30.0 |
| v: 30.0 |
| specific_humidity: 0.01 |
| specific_cloud_ice_water_content: 1.0e-5 |
| specific_cloud_liquid_water_content: 2.0e-5 |
| divergence: 0.1 |
| vorticity: 0.1 |
| log_surface_pressure: 0.1 |
| default: 1.0 |
| |
| variable_factors: |
| z: 2.0 |
| specific_humidity: 0.66 |
| log_surface_pressure: 5.0 |
| specific_cloud_ice_water_content: 0.05 |
| specific_cloud_liquid_water_content: 0.05 |
| default: 1.0 |
| |
| |
| |
| predictability_filter: |
| enabled: true |
| order: 12 |
| lead_hours: [0, 6, 12, 24, 36, 48, 60, 72] |
| cutoffs: |
| temperature: [80, 120, 120, 95, 45, 35, 30, 25] |
| wind: [80, 120, 115, 82, 48, 36, 29, 24] |
| moisture: [80, 120, 110, 52, 34, 28, 24, 21] |
| divergence: [80, 120, 105, 43, 24, 19, 16, 14] |
| default: [80, 120, 115, 82, 48, 36, 29, 24] |
| |
| |
| level_weights: [] |
| |
| |
| |
| |
| profiles: |
| weather_forecast: |
| max_steps: 25000 |
| learning_rate: 0.001 |
| optimizer: &paper_optimizer |
| schedule: neuralgcm |
| warmup_steps: 2000 |
| decay_start: 15000 |
| decay_steps: 10000 |
| decay_rate: 0.5 |
| rollout_schedule: |
| - {trajectory_length: 2, until_step: 0} |
| - {trajectory_length: 3, until_step: 500} |
| - {trajectory_length: 4, until_step: 2000} |
| - {trajectory_length: 5, until_step: 4500} |
| - {trajectory_length: 7, until_step: 8000} |
| - {trajectory_length: 9, until_step: 12500} |
| - {trajectory_length: 11, until_step: 18000} |
| climate_scale: |
| max_steps: 26000 |
| learning_rate: 0.002 |
| optimizer: *paper_optimizer |
| rollout_schedule: &coarse_rollout_schedule |
| - {trajectory_length: 3, until_step: 0} |
| - {trajectory_length: 5, until_step: 2000} |
| - {trajectory_length: 7, until_step: 5656} |
| - {trajectory_length: 9, until_step: 10392} |
| - {trajectory_length: 11, until_step: 16000} |
| - {trajectory_length: 13, until_step: 22360} |
| forecast_2_8_deg: |
| max_steps: 38000 |
| learning_rate: 0.002 |
| optimizer: *paper_optimizer |
| rollout_schedule: *coarse_rollout_schedule |
| stochastic_1_4_deg: |
| max_steps: 43000 |
| learning_rate: 0.001 |
| ensemble_size: 2 |
| optimizer: *paper_optimizer |
| rollout_schedule: |
| - {trajectory_length: 2, until_step: 0} |
| - {trajectory_length: 3, until_step: 500} |
| - {trajectory_length: 4, until_step: 2000} |
| - {trajectory_length: 5, until_step: 4500} |
| - {trajectory_length: 7, until_step: 8000} |
| - {trajectory_length: 9, until_step: 12500} |
| - {trajectory_length: 11, until_step: 18000} |
| - {trajectory_length: 13, until_step: 24500} |
| - {trajectory_length: 17, until_step: 32000} |
| - {trajectory_length: 21, until_step: 40500} |
| loss: |
| backend: crps |
| variable_weights: null |
| variable_scale: 1.0 |
| nodal_time_scale_hours: 24.0 |
| spectral_time_scale_hours: 40.0 |
| spectral_max_wavenumber: 80 |
| checkpoint: null |
| gin_config: null |
| train_dataset: null |
| eval_dataset: null |
|
|
| inference: |
| mode: weather_forecast |
| |
| seed: 20260904 |
| |
| |
| prediction_steps: 8 |
| output_interval_hours: 6 |
| |
| |
| checkpoint: data/checkpoint/model_bak.pkl |
| output: results/predictions.nc |
|
|
| runtime: |
| platform: auto |
| dcu_device: 0 |
|
|