File size: 4,685 Bytes
d6d123e
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
# --------------------------------------------------------------------------------------------------------------------- #
# This yaml file implements 6 hourly FuXi on NSF NCAR HPCs (casper.ucar.edu and derecho.hpc.ucar.edu) 
# the FuXi architecture has been modified to reduce the overall model size
# The model is trained on hourly model-level ERA5 data with top solar irradiance, geopotential, and land-sea mask inputs
# Output variables: model level [U, V, T, Q], single level [SP, t2m], and 500 hPa [U, V, T, Z, Q]
#
# Yingkai Sha
# [email protected]
# --------------------------------------------------------------------------------------------------------------------- #
save_loc: '/glade/work/ksha/CREDIT_runs/fuxi_6h/'
seed: 1000

data:
    # upper-air variables
    variables: ['U','V','T','Q']
    save_loc: '/glade/derecho/scratch/wchapman/SixHourly_y_TOTAL*'
    
    # surface variables
    surface_variables: ['SP','t2m','V500','U500','T500','Z500','Q500']
    save_loc_surface: '/glade/derecho/scratch/wchapman/SixHourly_y_TOTAL*'
    
    # dynamic forcing variables
    dynamic_forcing_variables: ['tsi']
    save_loc_dynamic_forcing: '/glade/derecho/scratch/dgagne/credit_solar_6h_0.25deg/*.nc'
    
    # static variables
    static_variables: ['Z_GDS4_SFC','LSM'] 
    save_loc_static: '/glade/derecho/scratch/ksha/CREDIT_data/static_norm_old.nc'
    
    # mean / std path
    mean_path: '/glade/derecho/scratch/ksha/CREDIT_data/mean_6h_1979_2018_16lev_0.25deg.nc'
    std_path: '/glade/derecho/scratch/ksha/CREDIT_data/std_residual_6h_1979_2018_16lev_0.25deg.nc'
    
    # train / validation split
    train_years: [1979, 2018]
    valid_years: [2018, 2019]
    
    # data workflow
    scaler_type: 'std_new'  
    
    # number of input states
    # FuXi has 2 input states
    history_len: 2
    valid_history_len: 2
    
    # number of forecast steps to compute loss
    # 0 for single step training / validation
    # larger than 0 for multi-step training / validation
    forecast_len: 0
    valid_forecast_len: 0
    
    # 1 for hourly model
    lead_time_periods: 6
    
    # do not use skip_period
    skip_periods: null
    
    # compatible with the old 'std'
    static_first: True
    
trainer:
    type: standard
    mode: none
    
model:
    type: "fuxi"
    
    frames: 2               # number of input states
    image_height: 640       # number of latitude grids
    image_width: 1280       # number of longitude grids
    levels: 16              # number of upper-air variable levels
    channels: 4             # upper-air variable channels
    surface_channels: 7     # surface variable channels
    input_only_channels: 3  # dynamic forcing, forcing, static channels
    output_only_channels: 0 # diagnostic variable channels
    
    # patchify layer
    patch_height: 4         # number of latitude grids in each 3D patch
    patch_width: 4          # number of longitude grids in each 3D patch
    frame_patch_size: 2     # number of input states in each 3D patch
    
    # hidden layers
    dim: 1024               # dimension (default: 1536)
    num_groups: 32          # number of groups (default: 32)
    num_heads: 8            # number of heads (default: 8)
    window_size: 7          # window size (default: 7)
    depth: 16               # number of swin transformers (default: 48)
    
    # map boundary padding
    pad_lon: 80             # number of grids to pad on 0 and 360 deg lon
    pad_lat: 80             # number of grids to pad on -90 and 90 deg lat
    
    # use spectral norm
    use_spectral_norm: True
    
loss:
    use_latitude_weights: True
    latitude_weights: "/glade/u/home/wchapman/MLWPS/DataLoader/LSM_static_variables_ERA5_zhght.nc" 
    
predict:
    forecasts:
        type: "custom"       # keep it as "custom"
        start_year: 2020     # year of the first initialization (where rollout will start)
        start_month: 1       # month of the first initialization
        start_day: 1         # day of the first initialization
        start_hours: [0,] # hour-of-day for each initialization, 0 for 00Z, 12 for 12Z
        duration: 1        # number of days to initialize, starting from the (year, mon, day) above
                             # duration should be divisible by the number of GPUs 
                             # (e.g., duration: 384 for 365-day rollout using 32 GPUs)
        days: 1              # forecast lead time as days (1 means 24-hour forecast)
        
    save_forecast: '/glade/derecho/scratch/ksha/CREDIT/RAW_OUTPUT/fuxi_6h_collins/'
    save_vars: ['SP','t2m','V500','U500','T500','Z500','Q500']
    
    # turn-off low-pass filter
    use_laplace_filter: False