Sukhil-Patel commited on
Commit
0afd8c9
·
verified ·
1 Parent(s): 73c068d

Migrate model (HF commit 5090946) to pvnet version 5.3.0.post0+git.489723d6.dirty

Browse files
Files changed (4) hide show
  1. README.md +28 -25
  2. data_config.yaml +70 -64
  3. model_config.yaml +20 -24
  4. model_weights.safetensors +2 -2
README.md CHANGED
@@ -3,54 +3,54 @@ 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
- # TEMPLATE
12
 
13
- <!-- Provide a longer summary of what this model is/does. -->
 
 
 
 
 
14
  ## Model Description
15
 
16
- <!-- e.g.
17
- This model class uses satellite data, and numerical weather predictions to forecast the near-term (up to 8 hours ahead) PV power output at all Grid Service Points (GSPs) in Great Britain. 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 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 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/pvnet_uk` 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/NL-Solar/runs/8zxhbp9a](https://wandb.ai/openclimatefix/NL-Solar/runs/8zxhbp9a)
 
 
 
 
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:
@@ -58,11 +58,14 @@ 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
- <!-- Especially do not change the two lines below -->
62
  The versions of these packages can be found below:
63
- - pvnet==5.1.0.post0+git.c15f1d4e.dirty
64
- - ocf-data-sampler==0.5.27.post2+git.e15368d8.dirty
 
 
 
 
65
 
66
 
67
  ---
68
- **Migration Note**: This model was migrated on 2025-12-05 to pvnet version 5.3.0.post0+git.489723d6.dirty
 
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
21
  - **Language(s) (NLP):** en
22
  - **License:** mit
23
 
24
+
25
  # Training Details
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].
37
+
38
 
39
  ## Results
40
 
41
+ The training logs for the current model can be found here:
42
+ - [https://wandb.ai/openclimatefix/NL-Solar/runs/r4naockv](https://wandb.ai/openclimatefix/NL-Solar/runs/r4naockv)
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.18
63
+ - ocf-data-sampler==0.2.31
64
+
65
+
66
+ ---
67
+ **Migration Note**: This model (HF commit 9ebb76d6497d3f0e53607e99b8ffe33679259464) was migrated on 2025-09-10 to pvnet version 5.0.6.post0+git.e31d0340.dirty
68
 
69
 
70
  ---
71
+ **Migration Note**: This model was migrated on 2025-12-07 to pvnet version 5.3.0.post0+git.489723d6.dirty
data_config.yaml CHANGED
@@ -1,14 +1,9 @@
1
  general:
2
- description: Initial config for NL model
3
- name: Netherlands_pvnet_config
4
  input_data:
5
  nwp:
6
  ecmwf:
7
- provider: ecmwf
8
- zarr_path: PLACEHOLDER.zarr
9
- interval_start_minutes: -120
10
- interval_end_minutes: 2220
11
- time_resolution_minutes: 60
12
  accum_channels:
13
  - direct_shortwave_radiation_flux_gl
14
  - downward_longwave_radiation_flux_gl
@@ -26,86 +21,88 @@ input_data:
26
  - snow_depth_gl
27
  - temperature_sl
28
  - total_precipitation_rate_gl
 
29
  - wind_u_component_10m
30
  - wind_v_component_10m
31
- image_size_pixels_height: 10
32
- image_size_pixels_width: 10
33
- dropout_timedeltas_minutes:
34
- - -360
35
  dropout_fraction: 1.0
 
 
 
 
 
 
36
  max_staleness_minutes: null
37
  normalisation_constants:
38
- temperature_sl:
39
- mean: 283.48333740234375
40
- std: 3.692270040512085
41
- downward_shortwave_radiation_flux_gl:
42
- mean: 11458988.0
43
- std: 13025427.0
44
- downward_longwave_radiation_flux_gl:
45
- mean: 27187026.0
46
- std: 15855867.0
47
  cloud_cover_high:
48
  mean: 0.3961029052734375
49
  std: 0.42244860529899597
50
- cloud_cover_medium:
51
- mean: 0.3288780450820923
52
- std: 0.38039860129356384
53
  cloud_cover_low:
54
  mean: 0.44901806116104126
55
  std: 0.3791404366493225
 
 
 
56
  cloud_cover_total:
57
  mean: 0.7049227356910706
58
  std: 0.37487083673477173
59
- visibility_sl:
60
- mean: 12905302.0
61
- std: 16294988.0
62
- snow_depth_gl:
63
- mean: 8.107526082312688e-05
64
- std: 0.000913831521756947
 
 
 
 
 
 
65
  direct_shortwave_radiation_flux_gl:
66
- mean: 12905302.0
67
- std: 16294988.0
 
 
 
 
 
 
68
  downward_ultraviolet_radiation_flux_gl:
69
  mean: 1305651.25
70
  std: 1445635.25
 
 
 
 
 
 
71
  total_precipitation_rate_gl:
72
  mean: 3.108070450252853e-05
73
  std: 9.81039775069803e-05
74
- wind_u_component_10m:
75
- mean: 1.7677178382873535
76
- std: 5.531515598297119
77
  wind_u_component_100m:
78
  mean: 2.393547296524048
79
  std: 7.2320556640625
 
 
 
80
  wind_u_component_200m:
81
  mean: 2.7963004112243652
82
  std: 8.049470901489258
83
- wind_v_component_10m:
84
- mean: 0.985887885093689
85
- std: 5.411230564117432
86
  wind_v_component_100m:
87
  mean: 1.4244288206100464
88
  std: 6.944501876831055
 
 
 
89
  wind_v_component_200m:
90
  mean: 1.6010299921035767
91
  std: 7.561611652374268
92
- diff_downward_longwave_radiation_flux_gl:
93
- mean: 1136464.0
94
- std: 131942.03125
95
- diff_downward_shortwave_radiation_flux_gl:
96
- mean: 420584.6875
97
- std: 715366.3125
98
- diff_downward_ultraviolet_radiation_flux_gl:
99
- mean: 48265.4765625
100
- std: 81605.25
101
- diff_direct_shortwave_radiation_flux_gl:
102
- mean: 469169.5
103
- std: 818950.6875
104
  satellite:
105
- zarr_path: PLACEHOLDER.zarr
106
- interval_start_minutes: -60
107
- interval_end_minutes: 0
108
- time_resolution_minutes: 5
109
  channels:
110
  - IR_016
111
  - IR_039
@@ -118,12 +115,22 @@ input_data:
118
  - VIS008
119
  - WV_062
120
  - WV_073
121
- image_size_pixels_height: 20
122
- image_size_pixels_width: 20
123
  dropout_timedeltas_minutes:
124
  - -5
125
- dropout_fraction: 1.0
 
 
 
 
 
 
 
 
126
  normalisation_constants:
 
 
 
127
  IR_016:
128
  mean: 0.17594202
129
  std: 0.21462157
@@ -157,16 +164,15 @@ input_data:
157
  WV_073:
158
  mean: 0.62479186
159
  std: 0.12924142
 
 
160
  solar_position:
 
161
  interval_start_minutes: -2880
162
- interval_end_minutes: 2160
163
  time_resolution_minutes: 15
164
  generation:
165
- time_resolution_minutes: 15
 
166
  interval_start_minutes: -2880
167
- interval_end_minutes: 2160
168
- dropout_timedeltas_minutes:
169
- - -15
170
- dropout_fraction: 1.0
171
- dropout_value: -1
172
- zarr_path: /home/alex/NL/NL_regional_generation_kw.nc
 
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
  - direct_shortwave_radiation_flux_gl
9
  - downward_longwave_radiation_flux_gl
 
21
  - snow_depth_gl
22
  - temperature_sl
23
  - total_precipitation_rate_gl
24
+ - visibility_sl
25
  - wind_u_component_10m
26
  - wind_v_component_10m
 
 
 
 
27
  dropout_fraction: 1.0
28
+ dropout_timedeltas_minutes:
29
+ - -180
30
+ image_size_pixels_height: 36
31
+ image_size_pixels_width: 36
32
+ interval_end_minutes: 2880
33
+ interval_start_minutes: -120
34
  max_staleness_minutes: null
35
  normalisation_constants:
 
 
 
 
 
 
 
 
 
36
  cloud_cover_high:
37
  mean: 0.3961029052734375
38
  std: 0.42244860529899597
 
 
 
39
  cloud_cover_low:
40
  mean: 0.44901806116104126
41
  std: 0.3791404366493225
42
+ cloud_cover_medium:
43
+ mean: 0.3288780450820923
44
+ std: 0.38039860129356384
45
  cloud_cover_total:
46
  mean: 0.7049227356910706
47
  std: 0.37487083673477173
48
+ diff_direct_shortwave_radiation_flux_gl:
49
+ mean: 469169.5
50
+ std: 818950.6875
51
+ diff_downward_longwave_radiation_flux_gl:
52
+ mean: 1136464.0
53
+ std: 131942.03125
54
+ diff_downward_shortwave_radiation_flux_gl:
55
+ mean: 420584.6875
56
+ std: 715366.3125
57
+ diff_downward_ultraviolet_radiation_flux_gl:
58
+ mean: 48265.4765625
59
+ std: 81605.25
60
  direct_shortwave_radiation_flux_gl:
61
+ mean: 11458988.0
62
+ std: 13025427.0
63
+ downward_longwave_radiation_flux_gl:
64
+ mean: 27187026.0
65
+ std: 15855867.0
66
+ downward_shortwave_radiation_flux_gl:
67
+ mean: 11458988.0
68
+ std: 13025427.0
69
  downward_ultraviolet_radiation_flux_gl:
70
  mean: 1305651.25
71
  std: 1445635.25
72
+ snow_depth_gl:
73
+ mean: 8.107526082312688e-05
74
+ std: 0.000913831521756947
75
+ temperature_sl:
76
+ mean: 283.48333740234375
77
+ std: 3.692270040512085
78
  total_precipitation_rate_gl:
79
  mean: 3.108070450252853e-05
80
  std: 9.81039775069803e-05
81
+ visibility_sl:
82
+ mean: 12905302.0
83
+ std: 16294988.0
84
  wind_u_component_100m:
85
  mean: 2.393547296524048
86
  std: 7.2320556640625
87
+ wind_u_component_10m:
88
+ mean: 1.7677178382873535
89
+ std: 5.531515598297119
90
  wind_u_component_200m:
91
  mean: 2.7963004112243652
92
  std: 8.049470901489258
 
 
 
93
  wind_v_component_100m:
94
  mean: 1.4244288206100464
95
  std: 6.944501876831055
96
+ wind_v_component_10m:
97
+ mean: 0.985887885093689
98
+ std: 5.411230564117432
99
  wind_v_component_200m:
100
  mean: 1.6010299921035767
101
  std: 7.561611652374268
102
+ provider: ecmwf
103
+ time_resolution_minutes: 60
104
+ zarr_path: PLACEHOLDER.zarr
 
 
 
 
 
 
 
 
 
105
  satellite:
 
 
 
 
106
  channels:
107
  - IR_016
108
  - IR_039
 
115
  - VIS008
116
  - WV_062
117
  - WV_073
118
+ dropout_fraction: 0.8
 
119
  dropout_timedeltas_minutes:
120
  - -5
121
+ - -10
122
+ - -15
123
+ - -20
124
+ - -25
125
+ - -30
126
+ image_size_pixels_height: 100
127
+ image_size_pixels_width: 100
128
+ interval_end_minutes: -60
129
+ interval_start_minutes: -90
130
  normalisation_constants:
131
+ HRV:
132
+ mean: 0.09298719
133
+ std: 0.11405209
134
  IR_016:
135
  mean: 0.17594202
136
  std: 0.21462157
 
164
  WV_073:
165
  mean: 0.62479186
166
  std: 0.12924142
167
+ time_resolution_minutes: 5
168
+ zarr_path: PLACEHOLDER.zarr
169
  solar_position:
170
+ interval_end_minutes: 2880
171
  interval_start_minutes: -2880
 
172
  time_resolution_minutes: 15
173
  generation:
174
+ capacity_mode: variable
175
+ interval_end_minutes: 2880
176
  interval_start_minutes: -2880
177
+ time_resolution_minutes: 15
178
+ zarr_path: /home/zak/projects/PVNet/nl_solar/pv_data/netherlands_pv_data_v2.nc
 
 
 
 
model_config.yaml CHANGED
@@ -11,12 +11,11 @@ nwp_encoders_dict:
11
  ecmwf:
12
  _target_: pvnet.models.late_fusion.encoders.encoders3d.DefaultPVNet
13
  _partial_: true
14
- in_channels: 13
15
  out_features: 64
16
- fc_features: 32
17
  number_of_conv3d_layers: 4
18
  conv3d_channels: 32
19
- image_size_pixels: 10
20
  sat_encoder:
21
  _target_: pvnet.models.late_fusion.encoders.encoders3d.DefaultPVNet
22
  _partial_: true
@@ -24,38 +23,35 @@ sat_encoder:
24
  out_features: 256
25
  number_of_conv3d_layers: 6
26
  conv3d_channels: 32
27
- image_size_pixels: 20
 
 
 
 
 
 
 
 
 
28
  output_network:
29
  _target_: pvnet.models.late_fusion.linear_networks.networks.ResFCNet
30
  _partial_: true
31
  fc_hidden_features: 128
32
  n_res_blocks: 6
33
  res_block_layers: 2
34
- dropout_frac: 0.2
 
35
  include_sun: true
36
- interval_minutes: 15
37
- location_id_mapping:
38
- 1: 1
39
- 2: 2
40
- 3: 3
41
- 4: 4
42
- 5: 5
43
- 6: 6
44
- 7: 7
45
- 8: 8
46
- 9: 9
47
- 10: 10
48
- 11: 11
49
- 12: 12
50
- forecast_minutes: 2160
51
  history_minutes: 2880
52
- min_sat_delay_minutes: 5
53
- sat_history_minutes: 65
 
54
  pv_history_minutes: 2880
 
55
  nwp_history_minutes:
56
  ecmwf: 120
57
  nwp_forecast_minutes:
58
- ecmwf: 2220
59
  nwp_interval_minutes:
60
  ecmwf: 60
61
- include_generation_history: true
 
11
  ecmwf:
12
  _target_: pvnet.models.late_fusion.encoders.encoders3d.DefaultPVNet
13
  _partial_: true
14
+ in_channels: 14
15
  out_features: 64
 
16
  number_of_conv3d_layers: 4
17
  conv3d_channels: 32
18
+ image_size_pixels: 36
19
  sat_encoder:
20
  _target_: pvnet.models.late_fusion.encoders.encoders3d.DefaultPVNet
21
  _partial_: true
 
23
  out_features: 256
24
  number_of_conv3d_layers: 6
25
  conv3d_channels: 32
26
+ image_size_pixels: 100
27
+ add_image_embedding_channel: false
28
+ pv_encoder:
29
+ _target_: pvnet.models.late_fusion.site_encoders.encoders.SingleAttentionNetwork
30
+ _partial_: true
31
+ num_sites: 1
32
+ out_features: 64
33
+ num_heads: 4
34
+ kdim: 64
35
+ id_embed_dim: 64
36
  output_network:
37
  _target_: pvnet.models.late_fusion.linear_networks.networks.ResFCNet
38
  _partial_: true
39
  fc_hidden_features: 128
40
  n_res_blocks: 6
41
  res_block_layers: 2
42
+ dropout_frac: 0.0
43
+ embedding_dim: 16
44
  include_sun: true
45
+ forecast_minutes: 2880
 
 
 
 
 
 
 
 
 
 
 
 
 
 
46
  history_minutes: 2880
47
+ interval_minutes: 15
48
+ min_sat_delay_minutes: 60
49
+ sat_history_minutes: 90
50
  pv_history_minutes: 2880
51
+ pv_interval_minutes: 15
52
  nwp_history_minutes:
53
  ecmwf: 120
54
  nwp_forecast_minutes:
55
+ ecmwf: 2880
56
  nwp_interval_minutes:
57
  ecmwf: 60
 
model_weights.safetensors CHANGED
@@ -1,3 +1,3 @@
1
  version https://git-lfs.github.com/spec/v1
2
- oid sha256:9ea4c96ba3c7ce16440d368dcfee4294e424db26f00b419b5cde9f7376958957
3
- size 17070288
 
1
  version https://git-lfs.github.com/spec/v1
2
+ oid sha256:8ad51e8341008745f6e88e4104b1483bc4bcf98379f57cd589cfbdb634351023
3
+ size 1548563104