Sukhil-Patel commited on
Commit
779a56b
·
verified ·
1 Parent(s): 990bed9

Upload models - 7itrv8nl

Browse files
Files changed (4) hide show
  1. README.md +31 -21
  2. data_config.yaml +215 -56
  3. model_config.yaml +56 -0
  4. model_weights.safetensors +3 -0
README.md CHANGED
@@ -1,54 +1,64 @@
1
  ---
2
  language: en
3
- license: mit
4
  library_name: pytorch
 
5
  ---
 
 
 
6
 
7
-
8
-
9
-
10
-
11
-
12
- # WindNet
13
-
14
- ## Model Description
15
 
16
  <!-- Provide a longer summary of what this model is/does. -->
17
- This model class uses numerical weather predictions from providers such as ECMWF to forecast the wind power in North West India over the next 48 hours at 15 minute granularity. More information can be found in the model repo [1] and experimental notes [here](https://github.com/openclimatefix/PVNet/tree/main/experiments/india).
18
 
 
 
 
19
 
20
  - **Developed by:** openclimatefix
21
  - **Model type:** Fusion model
22
  - **Language(s) (NLP):** en
23
  - **License:** mit
24
 
25
-
26
  # Training Details
27
 
28
  ## Data
29
 
30
- <!-- This should link to a Data Card, perhaps with a short stub of information on what the training data is all about as well as documentation related to data pre-processing or additional filtering. -->
31
-
32
- The model is trained on data from 2019-2022 and validated on data from 2022-2023. See experimental notes [here](https://github.com/openclimatefix/PVNet/tree/main/experiments/india)
33
 
 
 
34
 
 
35
  ### Preprocessing
36
 
37
- Data is prepared with the `ocf_datapipes.training.windnet` datapipe [2].
38
-
 
39
 
40
  ## Results
41
 
42
- The training logs for the current model can be found here:
43
- - [https://wandb.ai/openclimatefix/wind_mo_global/runs/21t9xqfn](https://wandb.ai/openclimatefix/wind_mo_global/runs/21t9xqfn)
44
-
45
 
46
 
 
47
  ### Hardware
48
-
49
  Trained on a single NVIDIA Tesla T4
50
 
 
51
  ### Software
52
 
 
 
53
  - [1] https://github.com/openclimatefix/PVNet
54
- - [2] https://github.com/openclimatefix/ocf_datapipes
 
 
 
 
 
 
1
  ---
2
  language: en
 
3
  library_name: pytorch
4
+ license: mit
5
  ---
6
+ <!--
7
+ Do not remove elements like the above surrounded by two curly braces and do not add any more of them. These entries are required by the PVNet library and are automaticall infilled when the model is uploaded to huggingface
8
+ -->
9
 
10
+ <!-- Title - e.g. PVNet2, WindNet, PVNet India -->
11
+ # WindNet with GenCast
 
 
 
 
 
 
12
 
13
  <!-- Provide a longer summary of what this model is/does. -->
14
+ ## Model Description
15
 
16
+ <!-- e.g.
17
+ This model uses ECMWF deterministc NWP (HRES) & GDM's GenCast forecast, it forecasts up to 48 hours ahead at 15 min intervals and is trained on regional wind power data in NW India. More information can be found in the model repo [1]. The model repo also includes links to our workshop paper on this model and some experimental notes.
18
+ -->
19
 
20
  - **Developed by:** openclimatefix
21
  - **Model type:** Fusion model
22
  - **Language(s) (NLP):** en
23
  - **License:** mit
24
 
 
25
  # Training Details
26
 
27
  ## Data
28
 
29
+ <!-- eg.
30
+ The model is trained on data from 2020-2022 and validated on data from 2023. This model uses ECMWF deterministc NWP (HRES) & GDM's GenCast forecast, which has its ensemble member data summarised into some aggregate stats e.g. mean, std & percentiles.
 
31
 
32
+ See the data_config.yaml file for more information on the channels and window-size used for each input data source.
33
+ -->
34
 
35
+ <!-- The preprocessing section is not strictly nessessary but perhaps nice to have -->
36
  ### Preprocessing
37
 
38
+ <!-- eg.
39
+ Data is prepared with the `ocf_data_sampler/torch_datasets/datasets/site` Dataset [2].
40
+ -->
41
 
42
  ## Results
43
 
44
+ <!-- Do not remove the lines below -->
45
+ The training logs for this model commit can be found here:
46
+ - [https://wandb.ai/openclimatefix/gdm-gen/runs/7itrv8nl](https://wandb.ai/openclimatefix/gdm-gen/runs/7itrv8nl)
47
 
48
 
49
+ <!-- The hardware section is also just nice to have -->
50
  ### Hardware
 
51
  Trained on a single NVIDIA Tesla T4
52
 
53
+ <!-- Do not remove the section below -->
54
  ### Software
55
 
56
+ This model was trained using the following Open Climate Fix packages:
57
+
58
  - [1] https://github.com/openclimatefix/PVNet
59
+ - [2] https://github.com/openclimatefix/ocf-data-sampler
60
+
61
+ <!-- Especially do not change the two lines below -->
62
+ The versions of these packages can be found below:
63
+ - pvnet==5.2.3
64
+ - ocf-data-sampler==0.6.2.post0+git.accd7422.dirty
data_config.yaml CHANGED
@@ -1,71 +1,230 @@
1
  general:
2
- description: Config for training the saved PVNet model
3
- name: PVNet current
4
  input_data:
5
- default_forecast_minutes: 2880
6
- default_history_minutes: 60
 
 
 
 
 
 
7
  nwp:
8
  ecmwf:
9
- coarsen_to_degrees: 0.2
10
- dropout_fraction: 1.0
11
- dropout_timedeltas_minutes:
12
- - -360
13
- forecast_minutes: 2880.0
14
- history_minutes: 60
15
- max_staleness_minutes: null
16
- nwp_channels:
17
  - t2m
18
- - prate
19
  - u10
20
  - v10
21
  - u100
22
  - v100
23
  - u200
24
  - v200
25
- nwp_image_size_pixels_height: 84
26
- nwp_image_size_pixels_width: 84
27
- nwp_provider: ecmwf
28
- nwp_zarr_path: PLACEHOLDER.zarr
29
- time_resolution_minutes: 60
30
- gfs:
31
- dropout_fraction: 1.0
32
  dropout_timedeltas_minutes:
33
- - -300
34
- forecast_minutes: 2160.0
35
- history_minutes: 0
36
- nwp_channels:
37
- - t
38
- - prate
39
- - u10
40
- - v10
41
- - u100
42
- - v100
43
- nwp_image_size_pixels_height: 10
44
- nwp_image_size_pixels_width: 10
45
- nwp_provider: gfs
46
- nwp_zarr_path: PLACEHOLDER.zarr
47
- time_resolution_minutes: 180
48
- mo_global:
49
  dropout_fraction: 1.0
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
50
  dropout_timedeltas_minutes:
51
- - -180
52
- forecast_minutes: 1860.0
53
- history_minutes: 60
54
  max_staleness_minutes: null
55
- nwp_channels:
56
- - temperature_sl
57
- - wind_u_component_10m
58
- - wind_v_component_10m
59
- nwp_image_size_pixels_height: 50
60
- nwp_image_size_pixels_width: 50
61
- nwp_provider: mo_global
62
- nwp_zarr_path: PLACEHOLDER.zarr
63
- time_resolution_minutes: 60
64
- wind:
65
- n_wind_systems_per_example: 1
66
- time_resolution_minutes: 15
67
- wind_files_groups:
68
- - label: india
69
- wind_filename: /mnt/storage_ssd_4tb/india_wind_data.nc
70
- wind_metadata_filename: /mnt/storage_ssd_4tb/india_wind_metadata2.csv
71
- wind_ml_ids: []
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
  general:
2
+ description: Example config for producing PVNet samples
3
+ name: example_config
4
  input_data:
5
+ site:
6
+ time_resolution_minutes: 15
7
+ interval_start_minutes: 0
8
+ interval_end_minutes: 2880
9
+ file_path: /mnt/disks/gdm_data/gdm_data/ruvnl_data/india_wind_data_data_sampler_schema_v2.nc
10
+ metadata_file_path: /mnt/disks/gdm_data/gdm_data/ruvnl_data/india_wind_metadata_data_sampler_schema.csv
11
+ dropout_timedeltas_minutes: []
12
+ dropout_fraction: 0
13
  nwp:
14
  ecmwf:
15
+ provider: ecmwf
16
+ zarr_path: PLACEHOLDER.zarr
17
+ interval_start_minutes: 0
18
+ interval_end_minutes: 2880
19
+ time_resolution_minutes: 60
20
+ channels:
 
 
21
  - t2m
 
22
  - u10
23
  - v10
24
  - u100
25
  - v100
26
  - u200
27
  - v200
28
+ image_size_pixels_height: 60
29
+ image_size_pixels_width: 60
 
 
 
 
 
30
  dropout_timedeltas_minutes:
31
+ - -360
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
32
  dropout_fraction: 1.0
33
+ max_staleness_minutes: null
34
+ normalisation_constants:
35
+ t2m:
36
+ mean: 283.48333740234375
37
+ std: 3.692270040512085
38
+ u10:
39
+ mean: 1.7677178382873535
40
+ std: 5.531515598297119
41
+ u100:
42
+ mean: 2.393547296524048
43
+ std: 7.2320556640625
44
+ u200:
45
+ mean: 2.7963004112243652
46
+ std: 8.049470901489258
47
+ v10:
48
+ mean: 0.985887885093689
49
+ std: 5.411230564117432
50
+ v100:
51
+ mean: 1.4244288206100464
52
+ std: 6.944501876831055
53
+ v200:
54
+ mean: 1.6010299921035767
55
+ std: 7.561611652374268
56
+ gencast:
57
+ provider: gencast
58
+ zarr_path: PLACEHOLDER.zarr
59
+ interval_start_minutes: 0
60
+ interval_end_minutes: 2880
61
+ time_resolution_minutes: 360
62
+ channels:
63
+ - mean_2m_temperature
64
+ - mean_10m_u_component_of_wind
65
+ - mean_10m_v_component_of_wind
66
+ - mean_100m_u_component_of_wind
67
+ - mean_100m_v_component_of_wind
68
+ - std_2m_temperature
69
+ - std_10m_u_component_of_wind
70
+ - std_10m_v_component_of_wind
71
+ - std_100m_u_component_of_wind
72
+ - std_100m_v_component_of_wind
73
+ - P10_2m_temperature
74
+ - P10_10m_u_component_of_wind
75
+ - P10_10m_v_component_of_wind
76
+ - P10_100m_u_component_of_wind
77
+ - P10_100m_v_component_of_wind
78
+ - P25_2m_temperature
79
+ - P25_10m_u_component_of_wind
80
+ - P25_10m_v_component_of_wind
81
+ - P25_100m_u_component_of_wind
82
+ - P25_100m_v_component_of_wind
83
+ - median_2m_temperature
84
+ - median_10m_u_component_of_wind
85
+ - median_10m_v_component_of_wind
86
+ - median_100m_u_component_of_wind
87
+ - median_100m_v_component_of_wind
88
+ - P75_2m_temperature
89
+ - P75_10m_u_component_of_wind
90
+ - P75_10m_v_component_of_wind
91
+ - P75_100m_u_component_of_wind
92
+ - P75_100m_v_component_of_wind
93
+ - P90_2m_temperature
94
+ - P90_10m_u_component_of_wind
95
+ - P90_10m_v_component_of_wind
96
+ - P90_100m_u_component_of_wind
97
+ - P90_100m_v_component_of_wind
98
+ image_size_pixels_height: 24
99
+ image_size_pixels_width: 24
100
  dropout_timedeltas_minutes:
101
+ - -480
102
+ dropout_fraction: 1.0
 
103
  max_staleness_minutes: null
104
+ normalisation_constants:
105
+ mean_100m_u_component_of_wind:
106
+ mean: 0.6590617299079895
107
+ std: 3.5790820121765137
108
+ mean_100m_v_component_of_wind:
109
+ mean: 0.12761691212654114
110
+ std: 2.9323325157165527
111
+ mean_10m_u_component_of_wind:
112
+ mean: 0.4821879267692566
113
+ std: 2.2281882762908936
114
+ mean_10m_v_component_of_wind:
115
+ mean: 0.15181906521320343
116
+ std: 1.9342707395553589
117
+ mean_2m_temperature:
118
+ mean: 299.2518310546875
119
+ std: 7.597751617431641
120
+ mean_mean_sea_level_pressure:
121
+ mean: 100830.2890625
122
+ std: 680.8427124023438
123
+ std_100m_u_component_of_wind:
124
+ mean: 1.4184794425964355
125
+ std: 0.6928352117538452
126
+ std_100m_v_component_of_wind:
127
+ mean: 1.417962908744812
128
+ std: 0.6868088245391846
129
+ std_10m_u_component_of_wind:
130
+ mean: 0.9582880735397339
131
+ std: 0.4340810179710388
132
+ std_10m_v_component_of_wind:
133
+ mean: 0.9518918395042419
134
+ std: 0.44840630888938904
135
+ std_2m_temperature:
136
+ mean: 0.8567765355110168
137
+ std: 0.33070889115333557
138
+ std_mean_sea_level_pressure:
139
+ mean: 51.64792251586914
140
+ std: 32.0938835144043
141
+ median_100m_u_component_of_wind:
142
+ mean: 0.6676918268203735
143
+ std: 3.639376401901245
144
+ median_100m_v_component_of_wind:
145
+ mean: 0.11620805412530899
146
+ std: 2.985520839691162
147
+ median_10m_u_component_of_wind:
148
+ mean: 0.4807472229003906
149
+ std: 2.2692923545837402
150
+ median_10m_v_component_of_wind:
151
+ mean: 0.14560046792030334
152
+ std: 1.9702688455581665
153
+ median_2m_temperature:
154
+ mean: 299.260986328125
155
+ std: 7.6230292320251465
156
+ median_mean_sea_level_pressure:
157
+ mean: 100830.6796875
158
+ std: 680.1322021484375
159
+ P10_100m_u_component_of_wind:
160
+ mean: -1.0963581800460815
161
+ std: 3.7044365406036377
162
+ P10_100m_v_component_of_wind:
163
+ mean: -1.617751955986023
164
+ std: 3.0236403942108154
165
+ P10_10m_u_component_of_wind:
166
+ mean: -0.6955795288085938
167
+ std: 2.2671751976013184
168
+ P10_10m_v_component_of_wind:
169
+ mean: -1.0150115489959717
170
+ std: 1.971762776374817
171
+ P10_2m_temperature:
172
+ mean: 298.1833190917969
173
+ std: 7.59991455078125
174
+ P10_mean_sea_level_pressure:
175
+ mean: 100765.5078125
176
+ std: 692.2731323242188
177
+ P25_100m_u_component_of_wind:
178
+ mean: -0.2732436954975128
179
+ std: 3.680546283721924
180
+ P25_100m_v_component_of_wind:
181
+ mean: -0.8019947409629822
182
+ std: 2.9948227405548096
183
+ P25_10m_u_component_of_wind:
184
+ mean: -0.14633096754550934
185
+ std: 2.264906883239746
186
+ P25_10m_v_component_of_wind:
187
+ mean: -0.4697841703891754
188
+ std: 1.9634745121002197
189
+ P25_2m_temperature:
190
+ mean: 298.70037841796875
191
+ std: 7.619901657104492
192
+ P25_mean_sea_level_pressure:
193
+ mean: 100796.1953125
194
+ std: 685.6700439453125
195
+ P75_100m_u_component_of_wind:
196
+ mean: 1.5902334451675415
197
+ std: 3.6227025985717773
198
+ P75_100m_v_component_of_wind:
199
+ mean: 1.0552120208740234
200
+ std: 2.9857563972473145
201
+ P75_10m_u_component_of_wind:
202
+ mean: 1.1113481521606445
203
+ std: 2.280269145965576
204
+ P75_10m_v_component_of_wind:
205
+ mean: 0.7679195404052734
206
+ std: 1.9758317470550537
207
+ P75_2m_temperature:
208
+ mean: 299.8158874511719
209
+ std: 7.617563724517822
210
+ P75_mean_sea_level_pressure:
211
+ mean: 100865.046875
212
+ std: 676.5575561523438
213
+ P90_100m_u_component_of_wind:
214
+ mean: 2.4127538204193115
215
+ std: 3.604517936706543
216
+ P90_100m_v_component_of_wind:
217
+ mean: 1.8910019397735596
218
+ std: 3.0057897567749023
219
+ P90_10m_u_component_of_wind:
220
+ mean: 1.6698352098464966
221
+ std: 2.2776920795440674
222
+ P90_10m_v_component_of_wind:
223
+ mean: 1.3297827243804932
224
+ std: 1.9903264045715332
225
+ P90_2m_temperature:
226
+ mean: 300.30584716796875
227
+ std: 7.595254421234131
228
+ P90_mean_sea_level_pressure:
229
+ mean: 100894.1015625
230
+ std: 672.7207641601562
model_config.yaml ADDED
@@ -0,0 +1,56 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ _target_: pvnet.models.LateFusionModel
2
+ output_quantiles:
3
+ - 0.1
4
+ - 0.25
5
+ - 0.5
6
+ - 0.75
7
+ - 0.9
8
+ target_key: site
9
+ interval_minutes: 15
10
+ embedding_dim: null
11
+ nwp_encoders_dict:
12
+ ecmwf:
13
+ _target_: pvnet.models.late_fusion.encoders.encoders3d.DefaultPVNet
14
+ _partial_: true
15
+ in_channels: 7
16
+ out_features: 32
17
+ fc_features: 32
18
+ number_of_conv3d_layers: 3
19
+ conv3d_channels: 16
20
+ image_size_pixels: 60
21
+ stride:
22
+ - 1
23
+ - 2
24
+ - 2
25
+ gencast:
26
+ _target_: pvnet.models.late_fusion.encoders.encoders3d.DefaultPVNet
27
+ _partial_: true
28
+ in_channels: 35
29
+ out_features: 64
30
+ number_of_conv3d_layers: 8
31
+ fc_features: 64
32
+ conv3d_channels: 16
33
+ image_size_pixels: 24
34
+ add_image_embedding_channel: false
35
+ output_network:
36
+ _target_: pvnet.models.late_fusion.linear_networks.networks.ResFCNet
37
+ _partial_: true
38
+ fc_hidden_features: 32
39
+ n_res_blocks: 4
40
+ res_block_layers: 2
41
+ dropout_frac: 0.2
42
+ include_sun: false
43
+ include_time: true
44
+ include_gsp_yield_history: false
45
+ include_site_yield_history: false
46
+ forecast_minutes: 2880
47
+ history_minutes: 0
48
+ nwp_history_minutes:
49
+ gencast: 0
50
+ ecmwf: 0
51
+ nwp_forecast_minutes:
52
+ gencast: 2880
53
+ ecmwf: 2880
54
+ nwp_interval_minutes:
55
+ gencast: 360
56
+ ecmwf: 60
model_weights.safetensors ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:d21a0a811b0c151f6d07516f970e268d064338711d5ed650e1700a92db4903f5
3
+ size 6605176