james-ocf commited on
Commit
4703a86
·
verified ·
1 Parent(s): 9d27d1a

Upload models - u0bc3fi9

Browse files
Files changed (4) hide show
  1. README.md +20 -19
  2. data_config.yaml +125 -2
  3. model_config.yaml +29 -5
  4. model_weights.safetensors +2 -2
README.md CHANGED
@@ -3,14 +3,14 @@ language: en
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. -->
@@ -26,11 +26,17 @@ This model class uses satellite data, numerical weather predictions, and recent
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,19 +44,17 @@ Data is prepared with the `ocf_data_sampler/torch_datasets/datasets/pvnet_uk` Da
38
 
39
  ## Results
40
 
 
41
  The training logs for the current model can be found here:
42
- - [https://wandb.ai/openclimatefix/pvnet2.1/runs/nizugje9](https://wandb.ai/openclimatefix/pvnet2.1/runs/nizugje9)
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,10 +62,7 @@ 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
 
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. -->
 
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
 
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/u0bc3fi9](https://wandb.ai/openclimatefix/pvnet2.1/runs/u0bc3fi9)
 
 
 
 
 
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
+ <!-- Do not remove the section below -->
58
  ### Software
59
 
60
  This model was trained using the following Open Climate Fix packages:
 
62
  - [1] https://github.com/openclimatefix/PVNet
63
  - [2] https://github.com/openclimatefix/ocf-data-sampler
64
 
65
+ <!-- Especially do not change the two lines below -->
66
  The versions of these packages can be found below:
67
+ - pvnet==5.0.0.post1+git.f4f6bfed.dirty
68
+ - ocf-data-sampler==0.3.1
 
 
 
 
data_config.yaml CHANGED
@@ -1,6 +1,5 @@
1
  general:
2
- description: Config for training the saved PVNet model
3
- name: PVNet current
4
  input_data:
5
  gsp:
6
  boundaries_version: '20250109'
@@ -11,6 +10,73 @@ input_data:
11
  time_resolution_minutes: 30
12
  zarr_path: PLACEHOLDER.zarr
13
  nwp:
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
14
  ukv:
15
  channels:
16
  - t
@@ -69,6 +135,63 @@ input_data:
69
  provider: ukv
70
  time_resolution_minutes: 60
71
  zarr_path: PLACEHOLDER.zarr
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
72
  solar_position:
73
  interval_end_minutes: 480
74
  interval_start_minutes: -120
 
1
  general:
2
+ description: Config for producing batches for training PVNet+cloudcasting
 
3
  input_data:
4
  gsp:
5
  boundaries_version: '20250109'
 
10
  time_resolution_minutes: 30
11
  zarr_path: PLACEHOLDER.zarr
12
  nwp:
13
+ ecmwf:
14
+ accum_channels:
15
+ - dswrf
16
+ - dlwrf
17
+ - sr
18
+ - duvrs
19
+ channels:
20
+ - t2m
21
+ - dswrf
22
+ - dlwrf
23
+ - hcc
24
+ - mcc
25
+ - lcc
26
+ - tcc
27
+ - sd
28
+ - sr
29
+ - duvrs
30
+ - u10
31
+ - v10
32
+ dropout_fraction: 1.0
33
+ dropout_timedeltas_minutes:
34
+ - -360
35
+ image_size_pixels_height: 12
36
+ image_size_pixels_width: 12
37
+ interval_end_minutes: 480
38
+ interval_start_minutes: -120
39
+ max_staleness_minutes: null
40
+ normalisation_constants:
41
+ diff_dlwrf:
42
+ mean: 1136464.0
43
+ std: 131942.03125
44
+ diff_dswrf:
45
+ mean: 420584.6875
46
+ std: 715366.3125
47
+ diff_duvrs:
48
+ mean: 48265.4765625
49
+ std: 81605.25
50
+ diff_sr:
51
+ mean: 469169.5
52
+ std: 818950.6875
53
+ hcc:
54
+ mean: 0.3961029052734375
55
+ std: 0.42244860529899597
56
+ lcc:
57
+ mean: 0.44901806116104126
58
+ std: 0.3791404366493225
59
+ mcc:
60
+ mean: 0.3288780450820923
61
+ std: 0.38039860129356384
62
+ sd:
63
+ mean: 8.107526082312688e-05
64
+ std: 0.000913831521756947
65
+ t2m:
66
+ mean: 283.48333740234375
67
+ std: 3.692270040512085
68
+ tcc:
69
+ mean: 0.7049227356910706
70
+ std: 0.37487083673477173
71
+ u10:
72
+ mean: 1.7677178382873535
73
+ std: 5.531515598297119
74
+ v10:
75
+ mean: 0.985887885093689
76
+ std: 5.411230564117432
77
+ provider: ecmwf
78
+ time_resolution_minutes: 60
79
+ zarr_path: PLACEHOLDER.zarr
80
  ukv:
81
  channels:
82
  - t
 
135
  provider: ukv
136
  time_resolution_minutes: 60
137
  zarr_path: PLACEHOLDER.zarr
138
+ sat_pred:
139
+ provider: cloudcasting
140
+ zarr_path: PLACEHOLDER.zarr
141
+ interval_start_minutes: 15
142
+ interval_end_minutes: 180
143
+ time_resolution_minutes: 15
144
+ image_size_pixels_height: 24
145
+ image_size_pixels_width: 24
146
+ dropout_timedeltas_minutes: []
147
+ dropout_fraction: 0
148
+ max_staleness_minutes: null
149
+ channels:
150
+ - IR_016
151
+ - IR_039
152
+ - IR_087
153
+ - IR_097
154
+ - IR_108
155
+ - IR_120
156
+ - IR_134
157
+ - VIS006
158
+ - VIS008
159
+ - WV_062
160
+ - WV_073
161
+ normalisation_constants:
162
+ IR_016:
163
+ mean: 0.17594202
164
+ std: 0.21462157
165
+ IR_039:
166
+ mean: 0.86167645
167
+ std: 0.04618041
168
+ IR_087:
169
+ mean: 0.7719318
170
+ std: 0.06687243
171
+ IR_097:
172
+ mean: 0.8014212
173
+ std: 0.0468558
174
+ IR_108:
175
+ mean: 0.71254843
176
+ std: 0.17482725
177
+ IR_120:
178
+ mean: 0.89058584
179
+ std: 0.06115861
180
+ IR_134:
181
+ mean: 0.944365
182
+ std: 0.04492306
183
+ VIS006:
184
+ mean: 0.09633306
185
+ std: 0.12184761
186
+ VIS008:
187
+ mean: 0.11426069
188
+ std: 0.13090034
189
+ WV_062:
190
+ mean: 0.7359355
191
+ std: 0.16111417
192
+ WV_073:
193
+ mean: 0.62479186
194
+ std: 0.12924142
195
  solar_position:
196
  interval_end_minutes: 480
197
  interval_start_minutes: -120
model_config.yaml CHANGED
@@ -7,6 +7,7 @@ output_quantiles:
7
  - 0.75
8
  - 0.9
9
  - 0.98
 
10
  nwp_encoders_dict:
11
  ukv:
12
  _target_: pvnet.models.late_fusion.encoders.encoders3d.DefaultPVNet
@@ -16,8 +17,26 @@ nwp_encoders_dict:
16
  number_of_conv3d_layers: 6
17
  conv3d_channels: 32
18
  image_size_pixels: 24
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
19
  sat_encoder: null
20
- add_image_embedding_channel: false
21
  pv_encoder: null
22
  output_network:
23
  _target_: pvnet.models.late_fusion.linear_networks.networks.ResFCNet
@@ -31,13 +50,18 @@ include_sun: true
31
  include_gsp_yield_history: false
32
  forecast_minutes: 480
33
  history_minutes: 120
34
- min_sat_delay_minutes: 30
35
- sat_history_minutes: 60
36
- pv_history_minutes: 180
37
  nwp_history_minutes:
38
  ukv: 120
 
 
39
  nwp_forecast_minutes:
40
  ukv: 480
 
 
 
 
 
 
41
  location_id_mapping:
42
  1: 1
43
  2: 2
@@ -370,4 +394,4 @@ location_id_mapping:
370
  340: 329
371
  341: 330
372
  342: 331
373
- adapt_batches: true
 
7
  - 0.75
8
  - 0.9
9
  - 0.98
10
+ add_image_embedding_channel: false
11
  nwp_encoders_dict:
12
  ukv:
13
  _target_: pvnet.models.late_fusion.encoders.encoders3d.DefaultPVNet
 
17
  number_of_conv3d_layers: 6
18
  conv3d_channels: 32
19
  image_size_pixels: 24
20
+ ecmwf:
21
+ _target_: pvnet.models.late_fusion.encoders.encoders3d.DefaultPVNet
22
+ _partial_: true
23
+ in_channels: 12
24
+ out_features: 256
25
+ number_of_conv3d_layers: 4
26
+ conv3d_channels: 32
27
+ image_size_pixels: 12
28
+ sat_pred:
29
+ _target_: pvnet.models.late_fusion.encoders.encoders3d.ResConv3DNet
30
+ _partial_: true
31
+ in_channels: 11
32
+ out_features: 256
33
+ image_size_pixels: 24
34
+ hidden_channels: 32
35
+ n_res_blocks: 3
36
+ res_block_layers: 3
37
+ batch_norm: true
38
+ dropout_frac: 0.0
39
  sat_encoder: null
 
40
  pv_encoder: null
41
  output_network:
42
  _target_: pvnet.models.late_fusion.linear_networks.networks.ResFCNet
 
50
  include_gsp_yield_history: false
51
  forecast_minutes: 480
52
  history_minutes: 120
 
 
 
53
  nwp_history_minutes:
54
  ukv: 120
55
+ ecmwf: 120
56
+ sat_pred: -15
57
  nwp_forecast_minutes:
58
  ukv: 480
59
+ ecmwf: 480
60
+ sat_pred: 180
61
+ nwp_interval_minutes:
62
+ ukv: 60
63
+ ecmwf: 60
64
+ sat_pred: 15
65
  location_id_mapping:
66
  1: 1
67
  2: 2
 
394
  340: 329
395
  341: 330
396
  342: 331
397
+ adapt_batches: false
model_weights.safetensors CHANGED
@@ -1,3 +1,3 @@
1
  version https://git-lfs.github.com/spec/v1
2
- oid sha256:8d71121e13487c529f36a4cb4b7c215ece35a665d662e14d836b7332bc2c478d
3
- size 27734920
 
1
  version https://git-lfs.github.com/spec/v1
2
+ oid sha256:1e4c41f2ed9186132832d1e15cdb96062248180f9da828cff8bb837ea1678008
3
+ size 35975432