james-ocf commited on
Commit
fba62ff
·
verified ·
1 Parent(s): 13064a9

Upload model - 9qyz1dl8

Browse files
README.md CHANGED
@@ -3,18 +3,18 @@ language: en
3
  library_name: pytorch
4
  license: mit
5
  ---
 
 
 
6
 
 
 
7
 
8
-
9
-
10
-
11
-
12
- # PVNet_summation
13
-
14
  ## Model Description
15
 
16
  <!-- Provide a longer summary of what this model is/does. -->
17
- This model class sums the output of the PVNet model's GSP level predictions to make a national forecast of UK PV output. More information can be found in the model repo [1], the PVNet model repo [2], 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,38 +26,44 @@ This model class sums the output of the PVNet model's GSP level predictions to m
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 the output predictions of our PVNet model which gives GSP (i.e. UK regional) level predictions
32
- of solar power across Great Britain. This model is trained to take those predictions and use them to estimate
33
- the national total with uncertainty estimates.
34
 
35
 
 
 
36
  ### Preprocessing
37
 
38
- The input data is prepared with the `ocf_data_sampler` [3].
39
 
40
 
41
  ## Results
42
 
 
43
  The training logs for the current model can be found here:
44
- - [https://wandb.ai/openclimatefix/pvnet_summation/runs/j9c7l2ob](https://wandb.ai/openclimatefix/pvnet_summation/runs/j9c7l2ob)
45
-
46
-
47
- The training logs for all model runs of PVNet_summation can be found [here](https://wandb.ai/openclimatefix/pvnet_summation).
48
-
49
- Some experimental notes can be found at in [the google doc](https://docs.google.com/document/d/1fbkfkBzp16WbnCg7RDuRDvgzInA6XQu3xh4NCjV-WDA/edit?usp=sharing)
50
 
51
 
52
- ### Hardware
 
53
 
54
  Trained on a single NVIDIA Tesla T4
55
 
 
 
 
56
  ### Software
57
 
58
- - [1] https://github.com/openclimatefix/PVNet_summation
59
- - [2] https://github.com/openclimatefix/PVNet
60
- - [3] https://github.com/openclimatefix/ocf-data-sampler
61
 
62
- ---
63
- **Migration Note**: This model was migrated on 2025-08-08 to pvnet-summation version 1.0.0.post0+git.cd7464d2.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. -->
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
 
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].
43
 
44
 
45
  ## Results
46
 
47
+ <!-- Do not remove the lines below -->
48
  The training logs for the current model can be found here:
 
 
 
 
 
 
49
 
50
 
51
+ <!-- The hardware section is also just nice to have -->
52
+ <!-- ### Hardware
53
 
54
  Trained on a single NVIDIA Tesla T4
55
 
56
+ -->
57
+
58
+ <!-- Do not remove the section below -->
59
  ### Software
60
 
61
+ This model was trained using the following Open Climate Fix packages:
 
 
62
 
63
+ - [1] https://github.com/openclimatefix/PVNet
64
+ - [2] https://github.com/openclimatefix/ocf-data-sampler
65
+
66
+ <!-- Especially do not change the two lines below -->
67
+ The versions of these packages can be found below:
68
+ - pvnet_summation==1.1.0.post0+git.3b6f1115.dirty
69
+ - ocf-data-sampler==0.5.26.post2+git.90ee263d.dirty
datamodule_config.yaml CHANGED
@@ -1,3 +1,3 @@
1
  pvnet_model:
2
  model_id: openclimatefix/pvnet_uk_region_day_ahead
3
- revision: e12f7d7c16a00c41b03aecb787a7e992fbd4235b
 
1
  pvnet_model:
2
  model_id: openclimatefix/pvnet_uk_region_day_ahead
3
+ revision: ace3469f6fb6db7356afe401c1aaf1a78505f4f7
full_experiment_config.yaml ADDED
@@ -0,0 +1,127 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ trainer:
2
+ _target_: lightning.pytorch.trainer.trainer.Trainer
3
+ accelerator: gpu
4
+ devices:
5
+ - 1
6
+ min_epochs: null
7
+ max_epochs: 300
8
+ reload_dataloaders_every_n_epochs: 0
9
+ num_sanity_val_steps: 8
10
+ fast_dev_run: false
11
+ log_every_n_steps: 50
12
+ model:
13
+ _target_: pvnet_summation.training.lightning_module.PVNetSummationLightningModule
14
+ model:
15
+ _target_: pvnet_summation.models.horizon_dense_model.HorizonDenseModel
16
+ output_quantiles:
17
+ - 0.02
18
+ - 0.1
19
+ - 0.25
20
+ - 0.5
21
+ - 0.75
22
+ - 0.9
23
+ - 0.98
24
+ output_network:
25
+ _target_: pvnet.models.late_fusion.linear_networks.networks.ResFCNet
26
+ _partial_: true
27
+ fc_hidden_features: 128
28
+ n_res_blocks: 3
29
+ res_block_layers: 2
30
+ dropout_frac: 0.2
31
+ predict_difference_from_sum: true
32
+ force_non_crossing: true
33
+ beta: 3
34
+ use_horizon_encoding: true
35
+ use_solar_position: true
36
+ history_minutes: 120
37
+ forecast_minutes: 2160
38
+ interval_minutes: 30
39
+ num_input_locations: 331
40
+ input_quantiles:
41
+ - 0.02
42
+ - 0.1
43
+ - 0.25
44
+ - 0.5
45
+ - 0.75
46
+ - 0.9
47
+ - 0.98
48
+ optimizer:
49
+ _target_: pvnet_summation.optimizers.AdamWReduceLROnPlateau
50
+ lr: 3.0e-05
51
+ weight_decay: 0.1
52
+ amsgrad: true
53
+ patience: 10
54
+ factor: 0.2
55
+ threshold: 0.0
56
+ datamodule:
57
+ data_source_paths:
58
+ gsp: /mnt/storage_u2_30tb_a/ml_training_zarrs/pv/pvlive_gsp_new_boundaries_2019-2025.zarr
59
+ satellite:
60
+ - /mnt/storage_u2_30tb_a/ml_training_zarrs/sat/uk_sat_crops/v1/2019_nonhrv.zarr
61
+ - /mnt/storage_u2_30tb_a/ml_training_zarrs/sat/uk_sat_crops/v1/2020_nonhrv.zarr
62
+ - /mnt/storage_u2_30tb_a/ml_training_zarrs/sat/uk_sat_crops/v1/2021_nonhrv.zarr
63
+ - /mnt/storage_u2_30tb_a/ml_training_zarrs/sat/uk_sat_crops/v1/2022_nonhrv.zarr
64
+ nwp:
65
+ ukv:
66
+ - /mnt/storage_u2_30tb_a/ml_training_zarrs/nwp/ukv_v7/UKV_intermediate_version_7.1.zarr
67
+ - /mnt/storage_u2_30tb_a/ml_training_zarrs/nwp/ukv_v7/UKV_2021_missing.zarr
68
+ - /mnt/storage_u2_30tb_a/ml_training_zarrs/nwp/ukv_v7/UKV_2022.zarr
69
+ ecmwf:
70
+ - /mnt/storage_u2_30tb_a/ml_training_zarrs/nwp/ecmwf_v3/ECMWF_2019.zarr
71
+ - /mnt/storage_u2_30tb_a/ml_training_zarrs/nwp/ecmwf_v3/ECMWF_2020.zarr
72
+ - /mnt/storage_u2_30tb_a/ml_training_zarrs/nwp/ecmwf_v3/ECMWF_2021.zarr
73
+ - /mnt/storage_u2_30tb_a/ml_training_zarrs/nwp/ecmwf_v3/ECMWF_2022.zarr
74
+ cloudcasting: /mnt/raphael/fast/cloudcasting/simvp.zarr
75
+ batch_size: 32
76
+ num_workers: 16
77
+ prefetch_factor: 2
78
+ persistent_workers: true
79
+ max_num_train_samples: null
80
+ max_num_val_samples: null
81
+ pvnet_model:
82
+ model_id: openclimatefix/pvnet_uk_region_day_ahead
83
+ revision: ace3469f6fb6db7356afe401c1aaf1a78505f4f7
84
+ train_period:
85
+ - null
86
+ - '2021-12-31'
87
+ val_period:
88
+ - '2022-01-01'
89
+ - '2022-12-31'
90
+ seed: ${seed}
91
+ dataset_pickle_dir: /home/james/tmp/summation_dataset_pickles_pvnet_day_ahead
92
+ callbacks:
93
+ learning_rate_monitor:
94
+ _target_: lightning.pytorch.callbacks.LearningRateMonitor
95
+ logging_interval: epoch
96
+ model_summary:
97
+ _target_: lightning.pytorch.callbacks.ModelSummary
98
+ max_depth: 3
99
+ model_checkpoint:
100
+ _target_: lightning.pytorch.callbacks.ModelCheckpoint
101
+ monitor: ${resolve_monitor_loss:${model.model.output_quantiles}}
102
+ mode: min
103
+ save_top_k: 1
104
+ save_last: true
105
+ every_n_epochs: 1
106
+ verbose: false
107
+ filename: epoch={epoch}-step={step}
108
+ dirpath: checkpoints/${model_name}
109
+ auto_insert_metric_name: false
110
+ save_on_train_epoch_end: false
111
+ logger:
112
+ wandb:
113
+ _target_: lightning.pytorch.loggers.wandb.WandbLogger
114
+ project: pvnet_summation
115
+ name: ${model_name}
116
+ save_dir: ./
117
+ offline: false
118
+ id: null
119
+ log_model: false
120
+ prefix: ''
121
+ job_type: train
122
+ group: ''
123
+ tags: []
124
+ sample_save_dir: /home/james/repos/pvnet-summation/presaved_saved_samples
125
+ work_dir: ${hydra:runtime.cwd}
126
+ model_name: pvnet_day_ahead
127
+ seed: 2727831
model_config.yaml CHANGED
@@ -1,4 +1,4 @@
1
- _target_: pvnet_summation.models.dense_model.DenseModel
2
  output_quantiles:
3
  - 0.02
4
  - 0.1
@@ -11,14 +11,18 @@ output_network:
11
  _target_: pvnet.models.late_fusion.linear_networks.networks.ResFCNet
12
  _partial_: true
13
  fc_hidden_features: 128
14
- n_res_blocks: 2
15
  res_block_layers: 2
16
- dropout_frac: 0.1
17
  predict_difference_from_sum: true
18
- num_input_locations: 331
 
 
 
19
  history_minutes: 120
20
  forecast_minutes: 2160
21
  interval_minutes: 30
 
22
  input_quantiles:
23
  - 0.02
24
  - 0.1
 
1
+ _target_: pvnet_summation.models.horizon_dense_model.HorizonDenseModel
2
  output_quantiles:
3
  - 0.02
4
  - 0.1
 
11
  _target_: pvnet.models.late_fusion.linear_networks.networks.ResFCNet
12
  _partial_: true
13
  fc_hidden_features: 128
14
+ n_res_blocks: 3
15
  res_block_layers: 2
16
+ dropout_frac: 0.2
17
  predict_difference_from_sum: true
18
+ force_non_crossing: true
19
+ beta: 3
20
+ use_horizon_encoding: true
21
+ use_solar_position: true
22
  history_minutes: 120
23
  forecast_minutes: 2160
24
  interval_minutes: 30
25
+ num_input_locations: 331
26
  input_quantiles:
27
  - 0.02
28
  - 0.1
model_weights.safetensors CHANGED
@@ -1,3 +1,3 @@
1
  version https://git-lfs.github.com/spec/v1
2
- oid sha256:1498a14dfc7126ef2e4eb045042d9d912c539b95ea1bd91e184ed2b047ba0d6c
3
- size 86968264
 
1
  version https://git-lfs.github.com/spec/v1
2
+ oid sha256:f0f6bd8d607aea0010b37213faf23c92cd7104cdd5a8aefcd2706e948f438f08
3
+ size 1605412