james-ocf commited on
Commit
4866007
·
verified ·
1 Parent(s): bbe244d

Migrate model (HF commit 6b7cc5f) to pvnet version 5.2.2.post15+git.fc89eaa7.dirty

Browse files
Files changed (4) hide show
  1. README.md +21 -24
  2. data_config.yaml +43 -155
  3. model_config.yaml +2 -21
  4. model_weights.safetensors +2 -2
README.md CHANGED
@@ -3,18 +3,18 @@ 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
  # PVNet2
12
 
13
- <!-- Provide a longer summary of what this model is/does. -->
14
  ## Model Description
15
 
16
  <!-- Provide a longer summary of what this model is/does. -->
17
- This model class uses satellite data, and numerical weather predictions to forecast the near-term (~8 hours) PV power output at all GSPs. More information can be found in the model repo [1].
18
 
19
  - **Developed by:** openclimatefix
20
  - **Model type:** Fusion model
@@ -26,17 +26,11 @@ This model class uses satellite data, and numerical weather predictions to forec
26
 
27
  ## Data
28
 
29
- <!-- eg.
30
- The model is trained on data from 2019-2022 and validated on data from 2022-2023. It uses NWP data from ECMWF IFS model, and the UK Met Office UKV model. It uses satellite data from the EUMETSAT MSG SEVIRI instrument.
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 model is trained on data from 2019-2021 and validated on data from 2022. It uses NWP data from ECMWF IFS model, and the UK Met Office UKV model. It uses also uses inputs from OCF's cloudcasting model
36
 
 
37
 
38
 
39
- <!-- The preprocessing section is not strictly nessessary but perhaps nice to have -->
40
  ### Preprocessing
41
 
42
  Data is prepared with the `ocf_data_sampler/torch_datasets/datasets/pvnet_uk` Dataset [2].
@@ -44,19 +38,19 @@ Data is prepared with the `ocf_data_sampler/torch_datasets/datasets/pvnet_uk` Da
44
 
45
  ## Results
46
 
47
- <!-- Do not remove the lines below -->
48
  The training logs for the current model can be found here:
49
- - [https://wandb.ai/openclimatefix/pvnet2.1/runs/49nlmpdy](https://wandb.ai/openclimatefix/pvnet2.1/runs/49nlmpdy)
50
 
51
 
52
- <!-- The hardware section is also just nice to have -->
53
- <!-- ### Hardware
 
54
 
55
- Trained on a single NVIDIA Tesla T4
56
 
57
- -->
 
 
58
 
59
- <!-- Do not remove the section below -->
60
  ### Software
61
 
62
  This model was trained using the following Open Climate Fix packages:
@@ -64,10 +58,13 @@ This model was trained using the following Open Climate Fix packages:
64
  - [1] https://github.com/openclimatefix/PVNet
65
  - [2] https://github.com/openclimatefix/ocf-data-sampler
66
 
67
- <!-- Especially do not change the two lines below -->
68
  The versions of these packages can be found below:
69
- - pvnet==5.0.6.post1+git.f02c06e6.dirty
70
- - ocf-data-sampler==0.5.26.post2+git.90ee263d.dirty
 
 
 
 
71
 
72
 
73
  ---
 
3
  library_name: pytorch
4
  license: mit
5
  ---
 
 
 
6
 
7
+
8
+
9
+
10
+
11
+
12
  # PVNet2
13
 
 
14
  ## Model Description
15
 
16
  <!-- Provide a longer summary of what this model is/does. -->
17
+ This model class uses satellite data, numerical weather predictions, and recent Grid Service Point( GSP) PV power output to forecast the near-term (~8 hours) PV power output at all GSPs. More information can be found in the model repo [1] and experimental notes in [this google doc](https://docs.google.com/document/d/1fbkfkBzp16WbnCg7RDuRDvgzInA6XQu3xh4NCjV-WDA/edit?usp=sharing).
18
 
19
  - **Developed by:** openclimatefix
20
  - **Model type:** Fusion model
 
26
 
27
  ## Data
28
 
29
+ <!-- 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. -->
 
 
 
 
 
 
30
 
31
+ The model is trained on data from 2019-2022 and validated on data from 2022-2023. See experimental notes in the [the google doc](https://docs.google.com/document/d/1fbkfkBzp16WbnCg7RDuRDvgzInA6XQu3xh4NCjV-WDA/edit?usp=sharing) for more details.
32
 
33
 
 
34
  ### Preprocessing
35
 
36
  Data is prepared with the `ocf_data_sampler/torch_datasets/datasets/pvnet_uk` Dataset [2].
 
38
 
39
  ## Results
40
 
 
41
  The training logs for the current model can be found here:
42
+ - [https://wandb.ai/openclimatefix/pvnet2.1/runs/uuyepo74](https://wandb.ai/openclimatefix/pvnet2.1/runs/uuyepo74)
43
 
44
 
45
+ The training logs for all model runs of PVNet2 can be found [here](https://wandb.ai/openclimatefix/pvnet2.1).
46
+
47
+ Some experimental notes can be found at in [the google doc](https://docs.google.com/document/d/1fbkfkBzp16WbnCg7RDuRDvgzInA6XQu3xh4NCjV-WDA/edit?usp=sharing)
48
 
 
49
 
50
+ ### Hardware
51
+
52
+ Trained on a single NVIDIA Tesla T4
53
 
 
54
  ### Software
55
 
56
  This model was trained using the following Open Climate Fix packages:
 
58
  - [1] https://github.com/openclimatefix/PVNet
59
  - [2] https://github.com/openclimatefix/ocf-data-sampler
60
 
 
61
  The versions of these packages can be found below:
62
+ - pvnet==4.1.6
63
+ - ocf-data-sampler==0.2.10
64
+
65
+
66
+ ---
67
+ **Migration Note**: This model was migrated on 2025-08-08 to pvnet version 5.0.3.post0+git.c5a17176.dirty
68
 
69
 
70
  ---
data_config.yaml CHANGED
@@ -1,81 +1,14 @@
1
  general:
2
- description: na
 
3
  input_data:
4
- solar_position:
5
- interval_start_minutes: -120
6
- interval_end_minutes: 480
7
- time_resolution_minutes: 30
8
  nwp:
9
- ukv:
10
- provider: ukv
11
- zarr_path: PLACEHOLDER.zarr
12
- interval_start_minutes: -120
13
- interval_end_minutes: 480
14
- time_resolution_minutes: 60
15
- image_size_pixels_height: 24
16
- image_size_pixels_width: 24
17
- dropout_timedeltas_minutes:
18
- - -180
19
- dropout_fraction: 1.0
20
- max_staleness_minutes: null
21
- channels:
22
- - t
23
  - dswrf
24
  - dlwrf
25
- - hcc
26
- - mcc
27
- - lcc
28
- - sde
29
- - r
30
- - vis
31
- - si10
32
- - prate
33
- normalisation_constants:
34
- t:
35
- mean: 283.64913206
36
- std: 4.38818501
37
- dswrf:
38
- mean: 111.28265039
39
- std: 190.47216887
40
- dlwrf:
41
- mean: 325.03130139
42
- std: 39.45988077
43
- hcc:
44
- mean: 29.11949682
45
- std: 38.07184418
46
- mcc:
47
- mean: 40.88984494
48
- std: 41.91144559
49
- lcc:
50
- mean: 50.08362643
51
- std: 39.33210726
52
- sde:
53
- mean: 0.00289545
54
- std: 0.1029753
55
- r:
56
- mean: 81.79229501
57
- std: 11.45012499
58
- vis:
59
- mean: 32262.03285118
60
- std: 21578.97975625
61
- si10:
62
- mean: 6.88348448
63
- std: 3.94718813
64
- prate:
65
- mean: 3.45793433e-05
66
- std: 0.00021497
67
- ecmwf:
68
- provider: ecmwf
69
- zarr_path: PLACEHOLDER.zarr
70
- interval_start_minutes: -120
71
- interval_end_minutes: 480
72
- time_resolution_minutes: 60
73
- image_size_pixels_height: 12
74
- image_size_pixels_width: 12
75
- dropout_timedeltas_minutes:
76
- - -360
77
- dropout_fraction: 1.0
78
- max_staleness_minutes: null
79
  channels:
80
  - t2m
81
  - dswrf
@@ -89,107 +22,62 @@ input_data:
89
  - duvrs
90
  - u10
91
  - v10
92
- accum_channels:
93
- - dswrf
94
- - dlwrf
95
- - sr
96
- - duvrs
 
 
 
97
  normalisation_constants:
98
- t2m:
99
- mean: 283.48333740234375
100
- std: 3.692270040512085
101
- diff_dswrf:
102
- mean: 420584.6875
103
- std: 715366.3125
104
  diff_dlwrf:
105
  mean: 1136464.0
106
  std: 131942.03125
 
 
 
 
 
 
 
 
 
107
  hcc:
108
  mean: 0.3961029052734375
109
  std: 0.42244860529899597
110
- mcc:
111
- mean: 0.3288780450820923
112
- std: 0.38039860129356384
113
  lcc:
114
  mean: 0.44901806116104126
115
  std: 0.3791404366493225
116
- tcc:
117
- mean: 0.7049227356910706
118
- std: 0.37487083673477173
119
  sd:
120
  mean: 8.107526082312688e-05
121
  std: 0.000913831521756947
122
- diff_sr:
123
- mean: 469169.5
124
- std: 818950.6875
125
- diff_duvrs:
126
- mean: 48265.4765625
127
- std: 81605.25
128
  u10:
129
  mean: 1.7677178382873535
130
  std: 5.531515598297119
131
  v10:
132
  mean: 0.985887885093689
133
  std: 5.411230564117432
134
- satellite:
135
- zarr_path: PLACEHOLDER.zarr
136
- interval_start_minutes: -60
137
- interval_end_minutes: 0
138
- time_resolution_minutes: 5
139
- image_size_pixels_height: 24
140
- image_size_pixels_width: 24
141
- dropout_timedeltas_minutes: []
142
- dropout_fraction: 0.0
143
- channels:
144
- - IR_016
145
- - IR_039
146
- - IR_087
147
- - IR_097
148
- - IR_108
149
- - IR_120
150
- - IR_134
151
- - VIS006
152
- - VIS008
153
- - WV_062
154
- - WV_073
155
- normalisation_constants:
156
- IR_016:
157
- mean: 0.17594202
158
- std: 0.21462157
159
- IR_039:
160
- mean: 0.86167645
161
- std: 0.04618041
162
- IR_087:
163
- mean: 0.7719318
164
- std: 0.06687243
165
- IR_097:
166
- mean: 0.8014212
167
- std: 0.0468558
168
- IR_108:
169
- mean: 0.71254843
170
- std: 0.17482725
171
- IR_120:
172
- mean: 0.89058584
173
- std: 0.06115861
174
- IR_134:
175
- mean: 0.944365
176
- std: 0.04492306
177
- VIS006:
178
- mean: 0.09633306
179
- std: 0.12184761
180
- VIS008:
181
- mean: 0.11426069
182
- std: 0.13090034
183
- WV_062:
184
- mean: 0.7359355
185
- std: 0.16111417
186
- WV_073:
187
- mean: 0.62479186
188
- std: 0.12924142
189
- generation:
190
- zarr_path: PLACEHOLDER.zarr
191
- interval_start_minutes: -120
192
  interval_end_minutes: 480
 
193
  time_resolution_minutes: 30
194
- dropout_timedeltas_minutes: []
195
  dropout_fraction: 0
 
 
 
 
 
 
1
  general:
2
+ description: Config for training the saved PVNet model
3
+ name: PVNet current
4
  input_data:
 
 
 
 
5
  nwp:
6
+ ecmwf:
7
+ accum_channels:
 
 
 
 
 
 
 
 
 
 
 
 
8
  - dswrf
9
  - dlwrf
10
+ - sr
11
+ - duvrs
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
12
  channels:
13
  - t2m
14
  - dswrf
 
22
  - duvrs
23
  - u10
24
  - v10
25
+ dropout_fraction: 1.0
26
+ dropout_timedeltas_minutes:
27
+ - -360
28
+ image_size_pixels_height: 12
29
+ image_size_pixels_width: 12
30
+ interval_end_minutes: 480
31
+ interval_start_minutes: -120
32
+ max_staleness_minutes: null
33
  normalisation_constants:
 
 
 
 
 
 
34
  diff_dlwrf:
35
  mean: 1136464.0
36
  std: 131942.03125
37
+ diff_dswrf:
38
+ mean: 420584.6875
39
+ std: 715366.3125
40
+ diff_duvrs:
41
+ mean: 48265.4765625
42
+ std: 81605.25
43
+ diff_sr:
44
+ mean: 469169.5
45
+ std: 818950.6875
46
  hcc:
47
  mean: 0.3961029052734375
48
  std: 0.42244860529899597
 
 
 
49
  lcc:
50
  mean: 0.44901806116104126
51
  std: 0.3791404366493225
52
+ mcc:
53
+ mean: 0.3288780450820923
54
+ std: 0.38039860129356384
55
  sd:
56
  mean: 8.107526082312688e-05
57
  std: 0.000913831521756947
58
+ t2m:
59
+ mean: 283.48333740234375
60
+ std: 3.692270040512085
61
+ tcc:
62
+ mean: 0.7049227356910706
63
+ std: 0.37487083673477173
64
  u10:
65
  mean: 1.7677178382873535
66
  std: 5.531515598297119
67
  v10:
68
  mean: 0.985887885093689
69
  std: 5.411230564117432
70
+ provider: ecmwf
71
+ time_resolution_minutes: 60
72
+ zarr_path: PLACEHOLDER.zarr
73
+ solar_position:
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
74
  interval_end_minutes: 480
75
+ interval_start_minutes: -120
76
  time_resolution_minutes: 30
77
+ generation:
78
  dropout_fraction: 0
79
+ dropout_timedeltas_minutes: []
80
+ interval_end_minutes: 480
81
+ interval_start_minutes: -120
82
+ time_resolution_minutes: 30
83
+ zarr_path: PLACEHOLDER.zarr
model_config.yaml CHANGED
@@ -8,14 +8,6 @@ output_quantiles:
8
  - 0.9
9
  - 0.98
10
  nwp_encoders_dict:
11
- ukv:
12
- _target_: pvnet.models.late_fusion.encoders.encoders3d.DefaultPVNet
13
- _partial_: true
14
- in_channels: 11
15
- out_features: 256
16
- number_of_conv3d_layers: 6
17
- conv3d_channels: 32
18
- image_size_pixels: 24
19
  ecmwf:
20
  _target_: pvnet.models.late_fusion.encoders.encoders3d.DefaultPVNet
21
  _partial_: true
@@ -24,17 +16,7 @@ nwp_encoders_dict:
24
  number_of_conv3d_layers: 4
25
  conv3d_channels: 32
26
  image_size_pixels: 12
27
- sat_encoder:
28
- _target_: pvnet.models.late_fusion.encoders.encoders3d.ResConv3DNet
29
- _partial_: true
30
- in_channels: 11
31
- out_features: 256
32
- image_size_pixels: 24
33
- hidden_channels: 32
34
- n_res_blocks: 3
35
- res_block_layers: 3
36
- batch_norm: true
37
- dropout_frac: 0.0
38
  add_image_embedding_channel: false
39
  pv_encoder: null
40
  output_network:
@@ -50,11 +32,10 @@ forecast_minutes: 480
50
  history_minutes: 120
51
  min_sat_delay_minutes: 0
52
  sat_history_minutes: 60
 
53
  nwp_history_minutes:
54
- ukv: 120
55
  ecmwf: 120
56
  nwp_forecast_minutes:
57
- ukv: 480
58
  ecmwf: 480
59
  location_id_mapping:
60
  1: 1
 
8
  - 0.9
9
  - 0.98
10
  nwp_encoders_dict:
 
 
 
 
 
 
 
 
11
  ecmwf:
12
  _target_: pvnet.models.late_fusion.encoders.encoders3d.DefaultPVNet
13
  _partial_: true
 
16
  number_of_conv3d_layers: 4
17
  conv3d_channels: 32
18
  image_size_pixels: 12
19
+ sat_encoder: null
 
 
 
 
 
 
 
 
 
 
20
  add_image_embedding_channel: false
21
  pv_encoder: null
22
  output_network:
 
32
  history_minutes: 120
33
  min_sat_delay_minutes: 0
34
  sat_history_minutes: 60
35
+ pv_history_minutes: 180
36
  nwp_history_minutes:
 
37
  ecmwf: 120
38
  nwp_forecast_minutes:
 
39
  ecmwf: 480
40
  location_id_mapping:
41
  1: 1
model_weights.safetensors CHANGED
@@ -1,3 +1,3 @@
1
  version https://git-lfs.github.com/spec/v1
2
- oid sha256:cb28ee3d8e13f28b3310054e702ba70732d67f916ee4cbcdd483ae0215ab777f
3
- size 36269456
 
1
  version https://git-lfs.github.com/spec/v1
2
+ oid sha256:3a27e27f3e53a9804e8eaa30164eae5c037c0edeaf554f8737de22b867d343e4
3
+ size 4447688