File size: 4,897 Bytes
986ee5a
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
model:
    
    start_epoch: 0
    max_epoch: 1
    patch_size: [2, 4, 4]
    embed_dim: 192
    num_heads: [6, 12, 12, 6]
    window_size: [2, 6, 12]
    patience: 50
    checkpoint_dir: "./data/checkpoints"

datapipe:
  name: "ERA5"
  task: "weather_forecasting"

  # dataset设定
  dataset:
    type: "hdf5"
    data_dir: './data/'
    
    train_time: [1979]
    val_time: [2021]
    test_time: [2023]

    img_size: [721, 1440]
    verbose: true
    cache: false
    # 气象变量
    channels:  ['mean_sea_level_pressure', '10m_u_component_of_wind', '10m_v_component_of_wind', '2m_temperature', 
                
                'geopotential_1000', 'geopotential_925', 'geopotential_850', 'geopotential_700', 'geopotential_600', 'geopotential_500', 
                'geopotential_400', 'geopotential_300', 'geopotential_250', 'geopotential_200', 'geopotential_150', 'geopotential_100', 'geopotential_50',
                
                'specific_humidity_1000', 'specific_humidity_925', 'specific_humidity_850', 'specific_humidity_700', 'specific_humidity_600',
                'specific_humidity_500', 'specific_humidity_400', 'specific_humidity_300', 'specific_humidity_250', 'specific_humidity_200', 
                'specific_humidity_150', 'specific_humidity_100', 'specific_humidity_50', 
                
                'temperature_1000', 'temperature_925', 'temperature_850', 'temperature_700', 'temperature_600', 'temperature_500', 'temperature_400', 
                'temperature_300', 'temperature_250', 'temperature_200','temperature_150', 'temperature_100', 'temperature_50', 
                
                'u_component_of_wind_1000', 'u_component_of_wind_925', 'u_component_of_wind_850', 'u_component_of_wind_700', 'u_component_of_wind_600', 
                'u_component_of_wind_500', 'u_component_of_wind_400', 'u_component_of_wind_300', 'u_component_of_wind_250', 'u_component_of_wind_200', 
                'u_component_of_wind_150', 'u_component_of_wind_100', 'u_component_of_wind_50', 
                
                'v_component_of_wind_1000', 'v_component_of_wind_925', 'v_component_of_wind_850', 'v_component_of_wind_700', 'v_component_of_wind_600', 
                'v_component_of_wind_500', 'v_component_of_wind_400', 'v_component_of_wind_300', 'v_component_of_wind_250', 'v_component_of_wind_200', 
                'v_component_of_wind_150', 'v_component_of_wind_100', 'v_component_of_wind_50'
                ]
    weights: [  # ---- 4 surface variables ----
                1.50,  # mean_sea_level_pressure
                0.77,  # 10m_u_component_of_wind
                0.66,  # 10m_v_component_of_wind
                3.00,  # 2m_temperature
                # ---- 13 geopotential_* (Z) ----
                3.00, 3.00, 3.00, 3.00, 3.00, 3.00, 3.00, 3.00, 3.00, 3.00, 3.00, 3.00, 3.00,
                # ---- 13 specific_humidity_* (Q) ----
                0.60, 0.60, 0.60, 0.60, 0.60, 0.60, 0.60, 0.60, 0.60, 0.60, 0.60, 0.60, 0.60,
                # ---- 13 temperature_* (T) ----
                1.50, 1.50, 1.50, 1.50, 1.50, 1.50, 1.50, 1.50, 1.50, 1.50, 1.50, 1.50, 1.50,
                # ---- 13 u_component_of_wind_* (U) ----
                0.77, 0.77, 0.77, 0.77, 0.77, 0.77, 0.77, 0.77, 0.77, 0.77, 0.77, 0.77, 0.77,
                # ---- 13 v_component_of_wind_* (V) ----
                0.54, 0.54, 0.54, 0.54, 0.54, 0.54, 0.54, 0.54, 0.54, 0.54, 0.54, 0.54, 0.54,
            ]
    variables:
      - "u10"        # 10m U wind component
      - "v10"        # 10m V wind component
      - "t2m"        # 2m temperature
      - "msl"        # Mean sea level pressure
      - "z500"       # Geopotential at 500 hPa
      - "t850"       # Temperature at 850 hPa
    
    # 时间配置
    time_range: ["2000-01-01", "2020-12-31"]
    time_steps: 1
    time_res: 6
    
    # 空间配置
    spatial_resolution: [0.25, 0.25]
    
    # 采样配置
    num_samples: -1  # -1 表示使用全部数据
    shuffle: true
    random_seed: 42
    
    # 领域特定配置
    extra:
      levels: [500, 850, 1000]
      lat_range: [-90, 90]
      lon_range: [0, 360]
  
  # 数据转换配置
  transforms:
    - type: "Normalize"
      params:
        mean: [0.0, 0.0, 288.0, 101325.0, 50000.0, 270.0]
        std: [5.0, 5.0, 15.0, 1000.0, 5000.0, 10.0]
        keys: ["input", "target"]
    
    - type: "ToTensor"
      params:
        keys: null  # null表示转换所有numpy数组
  
  # 其他配置

  # DataLoader配置
  dataloader:
    mask_dtype: "float32"
    batch_size: 1
    num_workers: 1
    pin_memory: true
    drop_last: true
    shuffle: false  # 使用sampler时设为false
    prefetch_factor: 2
    persistent_workers: true
    
  # 分布式配置
  distributed:
    enabled: true
    sampler: "DistributedSampler"
    rank: 0
    world_size: 4
    shuffle: true
    seed: 42
    drop_last: true