PVNet 5.0.5__tar.gz → 5.0.8__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {pvnet-5.0.5 → pvnet-5.0.8}/PKG-INFO +22 -21
- {pvnet-5.0.5 → pvnet-5.0.8}/PVNet.egg-info/PKG-INFO +22 -21
- {pvnet-5.0.5 → pvnet-5.0.8}/PVNet.egg-info/requires.txt +1 -1
- {pvnet-5.0.5 → pvnet-5.0.8}/README.md +19 -18
- {pvnet-5.0.5 → pvnet-5.0.8}/pvnet/data/base_datamodule.py +36 -6
- {pvnet-5.0.5 → pvnet-5.0.8}/pvnet/training/lightning_module.py +3 -1
- {pvnet-5.0.5 → pvnet-5.0.8}/pyproject.toml +2 -2
- pvnet-5.0.8/tests/test_end2end.py +32 -0
- pvnet-5.0.5/tests/test_end2end.py +0 -21
- {pvnet-5.0.5 → pvnet-5.0.8}/LICENSE +0 -0
- {pvnet-5.0.5 → pvnet-5.0.8}/PVNet.egg-info/SOURCES.txt +0 -0
- {pvnet-5.0.5 → pvnet-5.0.8}/PVNet.egg-info/dependency_links.txt +0 -0
- {pvnet-5.0.5 → pvnet-5.0.8}/PVNet.egg-info/top_level.txt +0 -0
- {pvnet-5.0.5 → pvnet-5.0.8}/pvnet/__init__.py +0 -0
- {pvnet-5.0.5 → pvnet-5.0.8}/pvnet/data/__init__.py +0 -0
- {pvnet-5.0.5 → pvnet-5.0.8}/pvnet/data/site_datamodule.py +0 -0
- {pvnet-5.0.5 → pvnet-5.0.8}/pvnet/data/uk_regional_datamodule.py +0 -0
- {pvnet-5.0.5 → pvnet-5.0.8}/pvnet/load_model.py +0 -0
- {pvnet-5.0.5 → pvnet-5.0.8}/pvnet/models/__init__.py +0 -0
- {pvnet-5.0.5 → pvnet-5.0.8}/pvnet/models/base_model.py +0 -0
- {pvnet-5.0.5 → pvnet-5.0.8}/pvnet/models/ensemble.py +0 -0
- {pvnet-5.0.5 → pvnet-5.0.8}/pvnet/models/late_fusion/__init__.py +0 -0
- {pvnet-5.0.5 → pvnet-5.0.8}/pvnet/models/late_fusion/basic_blocks.py +0 -0
- {pvnet-5.0.5 → pvnet-5.0.8}/pvnet/models/late_fusion/encoders/__init__.py +0 -0
- {pvnet-5.0.5 → pvnet-5.0.8}/pvnet/models/late_fusion/encoders/basic_blocks.py +0 -0
- {pvnet-5.0.5 → pvnet-5.0.8}/pvnet/models/late_fusion/encoders/encoders3d.py +0 -0
- {pvnet-5.0.5 → pvnet-5.0.8}/pvnet/models/late_fusion/late_fusion.py +0 -0
- {pvnet-5.0.5 → pvnet-5.0.8}/pvnet/models/late_fusion/linear_networks/__init__.py +0 -0
- {pvnet-5.0.5 → pvnet-5.0.8}/pvnet/models/late_fusion/linear_networks/basic_blocks.py +0 -0
- {pvnet-5.0.5 → pvnet-5.0.8}/pvnet/models/late_fusion/linear_networks/networks.py +0 -0
- {pvnet-5.0.5 → pvnet-5.0.8}/pvnet/models/late_fusion/site_encoders/__init__.py +0 -0
- {pvnet-5.0.5 → pvnet-5.0.8}/pvnet/models/late_fusion/site_encoders/basic_blocks.py +0 -0
- {pvnet-5.0.5 → pvnet-5.0.8}/pvnet/models/late_fusion/site_encoders/encoders.py +0 -0
- {pvnet-5.0.5 → pvnet-5.0.8}/pvnet/optimizers.py +0 -0
- {pvnet-5.0.5 → pvnet-5.0.8}/pvnet/training/__init__.py +0 -0
- {pvnet-5.0.5 → pvnet-5.0.8}/pvnet/training/plots.py +0 -0
- {pvnet-5.0.5 → pvnet-5.0.8}/pvnet/training/train.py +0 -0
- {pvnet-5.0.5 → pvnet-5.0.8}/pvnet/utils.py +0 -0
- {pvnet-5.0.5 → pvnet-5.0.8}/setup.cfg +0 -0
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: PVNet
|
|
3
|
-
Version: 5.0.
|
|
3
|
+
Version: 5.0.8
|
|
4
4
|
Summary: PVNet
|
|
5
5
|
Author-email: Peter Dudfield <info@openclimatefix.org>
|
|
6
|
-
Requires-Python: >=3.
|
|
6
|
+
Requires-Python: >=3.11
|
|
7
7
|
Description-Content-Type: text/markdown
|
|
8
8
|
License-File: LICENSE
|
|
9
|
-
Requires-Dist: ocf-data-sampler>=0.
|
|
9
|
+
Requires-Dist: ocf-data-sampler>=0.5.20
|
|
10
10
|
Requires-Dist: numpy
|
|
11
11
|
Requires-Dist: pandas
|
|
12
12
|
Requires-Dist: matplotlib
|
|
@@ -30,7 +30,7 @@ Dynamic: license-file
|
|
|
30
30
|
|
|
31
31
|
# PVNet
|
|
32
32
|
<!-- ALL-CONTRIBUTORS-BADGE:START - Do not remove or modify this section -->
|
|
33
|
-
[](#contributors-)
|
|
34
34
|
<!-- ALL-CONTRIBUTORS-BADGE:END -->
|
|
35
35
|
|
|
36
36
|
[](https://github.com/openclimatefix/PVNet/tags)
|
|
@@ -271,29 +271,30 @@ Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/d
|
|
|
271
271
|
<table>
|
|
272
272
|
<tbody>
|
|
273
273
|
<tr>
|
|
274
|
-
<td align="center" valign="top" width="14.28%"><a href="https://github.com/felix-e-h-p"><img src="https://avatars.githubusercontent.com/u/137530077?v=4?s=100" width="100px;" alt="Felix"/><br /><sub><b>Felix</b></sub></a><br /><a href="https://github.com/openclimatefix/
|
|
275
|
-
<td align="center" valign="top" width="14.28%"><a href="https://github.com/Sukh-P"><img src="https://avatars.githubusercontent.com/u/42407101?v=4?s=100" width="100px;" alt="Sukhil Patel"/><br /><sub><b>Sukhil Patel</b></sub></a><br /><a href="https://github.com/openclimatefix/
|
|
276
|
-
<td align="center" valign="top" width="14.28%"><a href="https://github.com/dfulu"><img src="https://avatars.githubusercontent.com/u/41546094?v=4?s=100" width="100px;" alt="James Fulton"/><br /><sub><b>James Fulton</b></sub></a><br /><a href="https://github.com/openclimatefix/
|
|
277
|
-
<td align="center" valign="top" width="14.28%"><a href="https://github.com/AUdaltsova"><img src="https://avatars.githubusercontent.com/u/43303448?v=4?s=100" width="100px;" alt="Alexandra Udaltsova"/><br /><sub><b>Alexandra Udaltsova</b></sub></a><br /><a href="https://github.com/openclimatefix/
|
|
278
|
-
<td align="center" valign="top" width="14.28%"><a href="https://github.com/zakwatts"><img src="https://avatars.githubusercontent.com/u/47150349?v=4?s=100" width="100px;" alt="Megawattz"/><br /><sub><b>Megawattz</b></sub></a><br /><a href="https://github.com/openclimatefix/
|
|
279
|
-
<td align="center" valign="top" width="14.28%"><a href="https://github.com/peterdudfield"><img src="https://avatars.githubusercontent.com/u/34686298?v=4?s=100" width="100px;" alt="Peter Dudfield"/><br /><sub><b>Peter Dudfield</b></sub></a><br /><a href="https://github.com/openclimatefix/
|
|
274
|
+
<td align="center" valign="top" width="14.28%"><a href="https://github.com/felix-e-h-p"><img src="https://avatars.githubusercontent.com/u/137530077?v=4?s=100" width="100px;" alt="Felix"/><br /><sub><b>Felix</b></sub></a><br /><a href="https://github.com/openclimatefix/pvnet/commits?author=felix-e-h-p" title="Code">💻</a></td>
|
|
275
|
+
<td align="center" valign="top" width="14.28%"><a href="https://github.com/Sukh-P"><img src="https://avatars.githubusercontent.com/u/42407101?v=4?s=100" width="100px;" alt="Sukhil Patel"/><br /><sub><b>Sukhil Patel</b></sub></a><br /><a href="https://github.com/openclimatefix/pvnet/commits?author=Sukh-P" title="Code">💻</a></td>
|
|
276
|
+
<td align="center" valign="top" width="14.28%"><a href="https://github.com/dfulu"><img src="https://avatars.githubusercontent.com/u/41546094?v=4?s=100" width="100px;" alt="James Fulton"/><br /><sub><b>James Fulton</b></sub></a><br /><a href="https://github.com/openclimatefix/pvnet/commits?author=dfulu" title="Code">💻</a></td>
|
|
277
|
+
<td align="center" valign="top" width="14.28%"><a href="https://github.com/AUdaltsova"><img src="https://avatars.githubusercontent.com/u/43303448?v=4?s=100" width="100px;" alt="Alexandra Udaltsova"/><br /><sub><b>Alexandra Udaltsova</b></sub></a><br /><a href="https://github.com/openclimatefix/pvnet/commits?author=AUdaltsova" title="Code">💻</a> <a href="https://github.com/openclimatefix/pvnet/pulls?q=is%3Apr+reviewed-by%3AAUdaltsova" title="Reviewed Pull Requests">👀</a></td>
|
|
278
|
+
<td align="center" valign="top" width="14.28%"><a href="https://github.com/zakwatts"><img src="https://avatars.githubusercontent.com/u/47150349?v=4?s=100" width="100px;" alt="Megawattz"/><br /><sub><b>Megawattz</b></sub></a><br /><a href="https://github.com/openclimatefix/pvnet/commits?author=zakwatts" title="Code">💻</a></td>
|
|
279
|
+
<td align="center" valign="top" width="14.28%"><a href="https://github.com/peterdudfield"><img src="https://avatars.githubusercontent.com/u/34686298?v=4?s=100" width="100px;" alt="Peter Dudfield"/><br /><sub><b>Peter Dudfield</b></sub></a><br /><a href="https://github.com/openclimatefix/pvnet/commits?author=peterdudfield" title="Code">💻</a></td>
|
|
280
280
|
<td align="center" valign="top" width="14.28%"><a href="https://github.com/mahdilamb"><img src="https://avatars.githubusercontent.com/u/4696915?v=4?s=100" width="100px;" alt="Mahdi Lamb"/><br /><sub><b>Mahdi Lamb</b></sub></a><br /><a href="#infra-mahdilamb" title="Infrastructure (Hosting, Build-Tools, etc)">🚇</a></td>
|
|
281
281
|
</tr>
|
|
282
282
|
<tr>
|
|
283
|
-
<td align="center" valign="top" width="14.28%"><a href="https://www.jacobbieker.com"><img src="https://avatars.githubusercontent.com/u/7170359?v=4?s=100" width="100px;" alt="Jacob Prince-Bieker"/><br /><sub><b>Jacob Prince-Bieker</b></sub></a><br /><a href="https://github.com/openclimatefix/
|
|
284
|
-
<td align="center" valign="top" width="14.28%"><a href="https://github.com/codderrrrr"><img src="https://avatars.githubusercontent.com/u/149995852?v=4?s=100" width="100px;" alt="codderrrrr"/><br /><sub><b>codderrrrr</b></sub></a><br /><a href="https://github.com/openclimatefix/
|
|
285
|
-
<td align="center" valign="top" width="14.28%"><a href="https://chrisxbriggs.com"><img src="https://avatars.githubusercontent.com/u/617309?v=4?s=100" width="100px;" alt="Chris Briggs"/><br /><sub><b>Chris Briggs</b></sub></a><br /><a href="https://github.com/openclimatefix/
|
|
286
|
-
<td align="center" valign="top" width="14.28%"><a href="https://github.com/tmi"><img src="https://avatars.githubusercontent.com/u/147159?v=4?s=100" width="100px;" alt="tmi"/><br /><sub><b>tmi</b></sub></a><br /><a href="https://github.com/openclimatefix/
|
|
287
|
-
<td align="center" valign="top" width="14.28%"><a href="https://rdrn.me/"><img src="https://avatars.githubusercontent.com/u/19817302?v=4?s=100" width="100px;" alt="Chris Arderne"/><br /><sub><b>Chris Arderne</b></sub></a><br /><a href="https://github.com/openclimatefix/
|
|
288
|
-
<td align="center" valign="top" width="14.28%"><a href="https://github.com/Dakshbir"><img src="https://avatars.githubusercontent.com/u/144359831?v=4?s=100" width="100px;" alt="Dakshbir"/><br /><sub><b>Dakshbir</b></sub></a><br /><a href="https://github.com/openclimatefix/
|
|
289
|
-
<td align="center" valign="top" width="14.28%"><a href="https://github.com/MAYANK12SHARMA"><img src="https://avatars.githubusercontent.com/u/145884197?v=4?s=100" width="100px;" alt="MAYANK SHARMA"/><br /><sub><b>MAYANK SHARMA</b></sub></a><br /><a href="https://github.com/openclimatefix/
|
|
283
|
+
<td align="center" valign="top" width="14.28%"><a href="https://www.jacobbieker.com"><img src="https://avatars.githubusercontent.com/u/7170359?v=4?s=100" width="100px;" alt="Jacob Prince-Bieker"/><br /><sub><b>Jacob Prince-Bieker</b></sub></a><br /><a href="https://github.com/openclimatefix/pvnet/commits?author=jacobbieker" title="Code">💻</a></td>
|
|
284
|
+
<td align="center" valign="top" width="14.28%"><a href="https://github.com/codderrrrr"><img src="https://avatars.githubusercontent.com/u/149995852?v=4?s=100" width="100px;" alt="codderrrrr"/><br /><sub><b>codderrrrr</b></sub></a><br /><a href="https://github.com/openclimatefix/pvnet/commits?author=codderrrrr" title="Code">💻</a></td>
|
|
285
|
+
<td align="center" valign="top" width="14.28%"><a href="https://chrisxbriggs.com"><img src="https://avatars.githubusercontent.com/u/617309?v=4?s=100" width="100px;" alt="Chris Briggs"/><br /><sub><b>Chris Briggs</b></sub></a><br /><a href="https://github.com/openclimatefix/pvnet/commits?author=confusedmatrix" title="Code">💻</a></td>
|
|
286
|
+
<td align="center" valign="top" width="14.28%"><a href="https://github.com/tmi"><img src="https://avatars.githubusercontent.com/u/147159?v=4?s=100" width="100px;" alt="tmi"/><br /><sub><b>tmi</b></sub></a><br /><a href="https://github.com/openclimatefix/pvnet/commits?author=tmi" title="Code">💻</a></td>
|
|
287
|
+
<td align="center" valign="top" width="14.28%"><a href="https://rdrn.me/"><img src="https://avatars.githubusercontent.com/u/19817302?v=4?s=100" width="100px;" alt="Chris Arderne"/><br /><sub><b>Chris Arderne</b></sub></a><br /><a href="https://github.com/openclimatefix/pvnet/commits?author=carderne" title="Code">💻</a></td>
|
|
288
|
+
<td align="center" valign="top" width="14.28%"><a href="https://github.com/Dakshbir"><img src="https://avatars.githubusercontent.com/u/144359831?v=4?s=100" width="100px;" alt="Dakshbir"/><br /><sub><b>Dakshbir</b></sub></a><br /><a href="https://github.com/openclimatefix/pvnet/commits?author=Dakshbir" title="Code">💻</a></td>
|
|
289
|
+
<td align="center" valign="top" width="14.28%"><a href="https://github.com/MAYANK12SHARMA"><img src="https://avatars.githubusercontent.com/u/145884197?v=4?s=100" width="100px;" alt="MAYANK SHARMA"/><br /><sub><b>MAYANK SHARMA</b></sub></a><br /><a href="https://github.com/openclimatefix/pvnet/commits?author=MAYANK12SHARMA" title="Code">💻</a></td>
|
|
290
290
|
</tr>
|
|
291
291
|
<tr>
|
|
292
|
-
<td align="center" valign="top" width="14.28%"><a href="https://github.com/lambaaryan011"><img src="https://avatars.githubusercontent.com/u/153702847?v=4?s=100" width="100px;" alt="aryan lamba "/><br /><sub><b>aryan lamba </b></sub></a><br /><a href="https://github.com/openclimatefix/
|
|
293
|
-
<td align="center" valign="top" width="14.28%"><a href="https://github.com/michael-gendy"><img src="https://avatars.githubusercontent.com/u/64384201?v=4?s=100" width="100px;" alt="michael-gendy"/><br /><sub><b>michael-gendy</b></sub></a><br /><a href="https://github.com/openclimatefix/
|
|
294
|
-
<td align="center" valign="top" width="14.28%"><a href="https://adityasuthar.github.io/"><img src="https://avatars.githubusercontent.com/u/95685363?v=4?s=100" width="100px;" alt="Aditya Suthar"/><br /><sub><b>Aditya Suthar</b></sub></a><br /><a href="https://github.com/openclimatefix/
|
|
295
|
-
<td align="center" valign="top" width="14.28%"><a href="https://github.com/markus-kreft"><img src="https://avatars.githubusercontent.com/u/129367085?v=4?s=100" width="100px;" alt="Markus Kreft"/><br /><sub><b>Markus Kreft</b></sub></a><br /><a href="https://github.com/openclimatefix/
|
|
292
|
+
<td align="center" valign="top" width="14.28%"><a href="https://github.com/lambaaryan011"><img src="https://avatars.githubusercontent.com/u/153702847?v=4?s=100" width="100px;" alt="aryan lamba "/><br /><sub><b>aryan lamba </b></sub></a><br /><a href="https://github.com/openclimatefix/pvnet/commits?author=lambaaryan011" title="Code">💻</a></td>
|
|
293
|
+
<td align="center" valign="top" width="14.28%"><a href="https://github.com/michael-gendy"><img src="https://avatars.githubusercontent.com/u/64384201?v=4?s=100" width="100px;" alt="michael-gendy"/><br /><sub><b>michael-gendy</b></sub></a><br /><a href="https://github.com/openclimatefix/pvnet/commits?author=michael-gendy" title="Code">💻</a></td>
|
|
294
|
+
<td align="center" valign="top" width="14.28%"><a href="https://adityasuthar.github.io/"><img src="https://avatars.githubusercontent.com/u/95685363?v=4?s=100" width="100px;" alt="Aditya Suthar"/><br /><sub><b>Aditya Suthar</b></sub></a><br /><a href="https://github.com/openclimatefix/pvnet/commits?author=adityasuthar" title="Code">💻</a></td>
|
|
295
|
+
<td align="center" valign="top" width="14.28%"><a href="https://github.com/markus-kreft"><img src="https://avatars.githubusercontent.com/u/129367085?v=4?s=100" width="100px;" alt="Markus Kreft"/><br /><sub><b>Markus Kreft</b></sub></a><br /><a href="https://github.com/openclimatefix/pvnet/commits?author=markus-kreft" title="Code">💻</a></td>
|
|
296
296
|
<td align="center" valign="top" width="14.28%"><a href="http://jack-kelly.com"><img src="https://avatars.githubusercontent.com/u/460756?v=4?s=100" width="100px;" alt="Jack Kelly"/><br /><sub><b>Jack Kelly</b></sub></a><br /><a href="#ideas-JackKelly" title="Ideas, Planning, & Feedback">🤔</a></td>
|
|
297
|
+
<td align="center" valign="top" width="14.28%"><a href="https://github.com/zaryab-ali"><img src="https://avatars.githubusercontent.com/u/85732412?v=4?s=100" width="100px;" alt="zaryab-ali"/><br /><sub><b>zaryab-ali</b></sub></a><br /><a href="https://github.com/openclimatefix/pvnet/commits?author=zaryab-ali" title="Code">💻</a></td>
|
|
297
298
|
</tr>
|
|
298
299
|
</tbody>
|
|
299
300
|
</table>
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: PVNet
|
|
3
|
-
Version: 5.0.
|
|
3
|
+
Version: 5.0.8
|
|
4
4
|
Summary: PVNet
|
|
5
5
|
Author-email: Peter Dudfield <info@openclimatefix.org>
|
|
6
|
-
Requires-Python: >=3.
|
|
6
|
+
Requires-Python: >=3.11
|
|
7
7
|
Description-Content-Type: text/markdown
|
|
8
8
|
License-File: LICENSE
|
|
9
|
-
Requires-Dist: ocf-data-sampler>=0.
|
|
9
|
+
Requires-Dist: ocf-data-sampler>=0.5.20
|
|
10
10
|
Requires-Dist: numpy
|
|
11
11
|
Requires-Dist: pandas
|
|
12
12
|
Requires-Dist: matplotlib
|
|
@@ -30,7 +30,7 @@ Dynamic: license-file
|
|
|
30
30
|
|
|
31
31
|
# PVNet
|
|
32
32
|
<!-- ALL-CONTRIBUTORS-BADGE:START - Do not remove or modify this section -->
|
|
33
|
-
[](#contributors-)
|
|
34
34
|
<!-- ALL-CONTRIBUTORS-BADGE:END -->
|
|
35
35
|
|
|
36
36
|
[](https://github.com/openclimatefix/PVNet/tags)
|
|
@@ -271,29 +271,30 @@ Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/d
|
|
|
271
271
|
<table>
|
|
272
272
|
<tbody>
|
|
273
273
|
<tr>
|
|
274
|
-
<td align="center" valign="top" width="14.28%"><a href="https://github.com/felix-e-h-p"><img src="https://avatars.githubusercontent.com/u/137530077?v=4?s=100" width="100px;" alt="Felix"/><br /><sub><b>Felix</b></sub></a><br /><a href="https://github.com/openclimatefix/
|
|
275
|
-
<td align="center" valign="top" width="14.28%"><a href="https://github.com/Sukh-P"><img src="https://avatars.githubusercontent.com/u/42407101?v=4?s=100" width="100px;" alt="Sukhil Patel"/><br /><sub><b>Sukhil Patel</b></sub></a><br /><a href="https://github.com/openclimatefix/
|
|
276
|
-
<td align="center" valign="top" width="14.28%"><a href="https://github.com/dfulu"><img src="https://avatars.githubusercontent.com/u/41546094?v=4?s=100" width="100px;" alt="James Fulton"/><br /><sub><b>James Fulton</b></sub></a><br /><a href="https://github.com/openclimatefix/
|
|
277
|
-
<td align="center" valign="top" width="14.28%"><a href="https://github.com/AUdaltsova"><img src="https://avatars.githubusercontent.com/u/43303448?v=4?s=100" width="100px;" alt="Alexandra Udaltsova"/><br /><sub><b>Alexandra Udaltsova</b></sub></a><br /><a href="https://github.com/openclimatefix/
|
|
278
|
-
<td align="center" valign="top" width="14.28%"><a href="https://github.com/zakwatts"><img src="https://avatars.githubusercontent.com/u/47150349?v=4?s=100" width="100px;" alt="Megawattz"/><br /><sub><b>Megawattz</b></sub></a><br /><a href="https://github.com/openclimatefix/
|
|
279
|
-
<td align="center" valign="top" width="14.28%"><a href="https://github.com/peterdudfield"><img src="https://avatars.githubusercontent.com/u/34686298?v=4?s=100" width="100px;" alt="Peter Dudfield"/><br /><sub><b>Peter Dudfield</b></sub></a><br /><a href="https://github.com/openclimatefix/
|
|
274
|
+
<td align="center" valign="top" width="14.28%"><a href="https://github.com/felix-e-h-p"><img src="https://avatars.githubusercontent.com/u/137530077?v=4?s=100" width="100px;" alt="Felix"/><br /><sub><b>Felix</b></sub></a><br /><a href="https://github.com/openclimatefix/pvnet/commits?author=felix-e-h-p" title="Code">💻</a></td>
|
|
275
|
+
<td align="center" valign="top" width="14.28%"><a href="https://github.com/Sukh-P"><img src="https://avatars.githubusercontent.com/u/42407101?v=4?s=100" width="100px;" alt="Sukhil Patel"/><br /><sub><b>Sukhil Patel</b></sub></a><br /><a href="https://github.com/openclimatefix/pvnet/commits?author=Sukh-P" title="Code">💻</a></td>
|
|
276
|
+
<td align="center" valign="top" width="14.28%"><a href="https://github.com/dfulu"><img src="https://avatars.githubusercontent.com/u/41546094?v=4?s=100" width="100px;" alt="James Fulton"/><br /><sub><b>James Fulton</b></sub></a><br /><a href="https://github.com/openclimatefix/pvnet/commits?author=dfulu" title="Code">💻</a></td>
|
|
277
|
+
<td align="center" valign="top" width="14.28%"><a href="https://github.com/AUdaltsova"><img src="https://avatars.githubusercontent.com/u/43303448?v=4?s=100" width="100px;" alt="Alexandra Udaltsova"/><br /><sub><b>Alexandra Udaltsova</b></sub></a><br /><a href="https://github.com/openclimatefix/pvnet/commits?author=AUdaltsova" title="Code">💻</a> <a href="https://github.com/openclimatefix/pvnet/pulls?q=is%3Apr+reviewed-by%3AAUdaltsova" title="Reviewed Pull Requests">👀</a></td>
|
|
278
|
+
<td align="center" valign="top" width="14.28%"><a href="https://github.com/zakwatts"><img src="https://avatars.githubusercontent.com/u/47150349?v=4?s=100" width="100px;" alt="Megawattz"/><br /><sub><b>Megawattz</b></sub></a><br /><a href="https://github.com/openclimatefix/pvnet/commits?author=zakwatts" title="Code">💻</a></td>
|
|
279
|
+
<td align="center" valign="top" width="14.28%"><a href="https://github.com/peterdudfield"><img src="https://avatars.githubusercontent.com/u/34686298?v=4?s=100" width="100px;" alt="Peter Dudfield"/><br /><sub><b>Peter Dudfield</b></sub></a><br /><a href="https://github.com/openclimatefix/pvnet/commits?author=peterdudfield" title="Code">💻</a></td>
|
|
280
280
|
<td align="center" valign="top" width="14.28%"><a href="https://github.com/mahdilamb"><img src="https://avatars.githubusercontent.com/u/4696915?v=4?s=100" width="100px;" alt="Mahdi Lamb"/><br /><sub><b>Mahdi Lamb</b></sub></a><br /><a href="#infra-mahdilamb" title="Infrastructure (Hosting, Build-Tools, etc)">🚇</a></td>
|
|
281
281
|
</tr>
|
|
282
282
|
<tr>
|
|
283
|
-
<td align="center" valign="top" width="14.28%"><a href="https://www.jacobbieker.com"><img src="https://avatars.githubusercontent.com/u/7170359?v=4?s=100" width="100px;" alt="Jacob Prince-Bieker"/><br /><sub><b>Jacob Prince-Bieker</b></sub></a><br /><a href="https://github.com/openclimatefix/
|
|
284
|
-
<td align="center" valign="top" width="14.28%"><a href="https://github.com/codderrrrr"><img src="https://avatars.githubusercontent.com/u/149995852?v=4?s=100" width="100px;" alt="codderrrrr"/><br /><sub><b>codderrrrr</b></sub></a><br /><a href="https://github.com/openclimatefix/
|
|
285
|
-
<td align="center" valign="top" width="14.28%"><a href="https://chrisxbriggs.com"><img src="https://avatars.githubusercontent.com/u/617309?v=4?s=100" width="100px;" alt="Chris Briggs"/><br /><sub><b>Chris Briggs</b></sub></a><br /><a href="https://github.com/openclimatefix/
|
|
286
|
-
<td align="center" valign="top" width="14.28%"><a href="https://github.com/tmi"><img src="https://avatars.githubusercontent.com/u/147159?v=4?s=100" width="100px;" alt="tmi"/><br /><sub><b>tmi</b></sub></a><br /><a href="https://github.com/openclimatefix/
|
|
287
|
-
<td align="center" valign="top" width="14.28%"><a href="https://rdrn.me/"><img src="https://avatars.githubusercontent.com/u/19817302?v=4?s=100" width="100px;" alt="Chris Arderne"/><br /><sub><b>Chris Arderne</b></sub></a><br /><a href="https://github.com/openclimatefix/
|
|
288
|
-
<td align="center" valign="top" width="14.28%"><a href="https://github.com/Dakshbir"><img src="https://avatars.githubusercontent.com/u/144359831?v=4?s=100" width="100px;" alt="Dakshbir"/><br /><sub><b>Dakshbir</b></sub></a><br /><a href="https://github.com/openclimatefix/
|
|
289
|
-
<td align="center" valign="top" width="14.28%"><a href="https://github.com/MAYANK12SHARMA"><img src="https://avatars.githubusercontent.com/u/145884197?v=4?s=100" width="100px;" alt="MAYANK SHARMA"/><br /><sub><b>MAYANK SHARMA</b></sub></a><br /><a href="https://github.com/openclimatefix/
|
|
283
|
+
<td align="center" valign="top" width="14.28%"><a href="https://www.jacobbieker.com"><img src="https://avatars.githubusercontent.com/u/7170359?v=4?s=100" width="100px;" alt="Jacob Prince-Bieker"/><br /><sub><b>Jacob Prince-Bieker</b></sub></a><br /><a href="https://github.com/openclimatefix/pvnet/commits?author=jacobbieker" title="Code">💻</a></td>
|
|
284
|
+
<td align="center" valign="top" width="14.28%"><a href="https://github.com/codderrrrr"><img src="https://avatars.githubusercontent.com/u/149995852?v=4?s=100" width="100px;" alt="codderrrrr"/><br /><sub><b>codderrrrr</b></sub></a><br /><a href="https://github.com/openclimatefix/pvnet/commits?author=codderrrrr" title="Code">💻</a></td>
|
|
285
|
+
<td align="center" valign="top" width="14.28%"><a href="https://chrisxbriggs.com"><img src="https://avatars.githubusercontent.com/u/617309?v=4?s=100" width="100px;" alt="Chris Briggs"/><br /><sub><b>Chris Briggs</b></sub></a><br /><a href="https://github.com/openclimatefix/pvnet/commits?author=confusedmatrix" title="Code">💻</a></td>
|
|
286
|
+
<td align="center" valign="top" width="14.28%"><a href="https://github.com/tmi"><img src="https://avatars.githubusercontent.com/u/147159?v=4?s=100" width="100px;" alt="tmi"/><br /><sub><b>tmi</b></sub></a><br /><a href="https://github.com/openclimatefix/pvnet/commits?author=tmi" title="Code">💻</a></td>
|
|
287
|
+
<td align="center" valign="top" width="14.28%"><a href="https://rdrn.me/"><img src="https://avatars.githubusercontent.com/u/19817302?v=4?s=100" width="100px;" alt="Chris Arderne"/><br /><sub><b>Chris Arderne</b></sub></a><br /><a href="https://github.com/openclimatefix/pvnet/commits?author=carderne" title="Code">💻</a></td>
|
|
288
|
+
<td align="center" valign="top" width="14.28%"><a href="https://github.com/Dakshbir"><img src="https://avatars.githubusercontent.com/u/144359831?v=4?s=100" width="100px;" alt="Dakshbir"/><br /><sub><b>Dakshbir</b></sub></a><br /><a href="https://github.com/openclimatefix/pvnet/commits?author=Dakshbir" title="Code">💻</a></td>
|
|
289
|
+
<td align="center" valign="top" width="14.28%"><a href="https://github.com/MAYANK12SHARMA"><img src="https://avatars.githubusercontent.com/u/145884197?v=4?s=100" width="100px;" alt="MAYANK SHARMA"/><br /><sub><b>MAYANK SHARMA</b></sub></a><br /><a href="https://github.com/openclimatefix/pvnet/commits?author=MAYANK12SHARMA" title="Code">💻</a></td>
|
|
290
290
|
</tr>
|
|
291
291
|
<tr>
|
|
292
|
-
<td align="center" valign="top" width="14.28%"><a href="https://github.com/lambaaryan011"><img src="https://avatars.githubusercontent.com/u/153702847?v=4?s=100" width="100px;" alt="aryan lamba "/><br /><sub><b>aryan lamba </b></sub></a><br /><a href="https://github.com/openclimatefix/
|
|
293
|
-
<td align="center" valign="top" width="14.28%"><a href="https://github.com/michael-gendy"><img src="https://avatars.githubusercontent.com/u/64384201?v=4?s=100" width="100px;" alt="michael-gendy"/><br /><sub><b>michael-gendy</b></sub></a><br /><a href="https://github.com/openclimatefix/
|
|
294
|
-
<td align="center" valign="top" width="14.28%"><a href="https://adityasuthar.github.io/"><img src="https://avatars.githubusercontent.com/u/95685363?v=4?s=100" width="100px;" alt="Aditya Suthar"/><br /><sub><b>Aditya Suthar</b></sub></a><br /><a href="https://github.com/openclimatefix/
|
|
295
|
-
<td align="center" valign="top" width="14.28%"><a href="https://github.com/markus-kreft"><img src="https://avatars.githubusercontent.com/u/129367085?v=4?s=100" width="100px;" alt="Markus Kreft"/><br /><sub><b>Markus Kreft</b></sub></a><br /><a href="https://github.com/openclimatefix/
|
|
292
|
+
<td align="center" valign="top" width="14.28%"><a href="https://github.com/lambaaryan011"><img src="https://avatars.githubusercontent.com/u/153702847?v=4?s=100" width="100px;" alt="aryan lamba "/><br /><sub><b>aryan lamba </b></sub></a><br /><a href="https://github.com/openclimatefix/pvnet/commits?author=lambaaryan011" title="Code">💻</a></td>
|
|
293
|
+
<td align="center" valign="top" width="14.28%"><a href="https://github.com/michael-gendy"><img src="https://avatars.githubusercontent.com/u/64384201?v=4?s=100" width="100px;" alt="michael-gendy"/><br /><sub><b>michael-gendy</b></sub></a><br /><a href="https://github.com/openclimatefix/pvnet/commits?author=michael-gendy" title="Code">💻</a></td>
|
|
294
|
+
<td align="center" valign="top" width="14.28%"><a href="https://adityasuthar.github.io/"><img src="https://avatars.githubusercontent.com/u/95685363?v=4?s=100" width="100px;" alt="Aditya Suthar"/><br /><sub><b>Aditya Suthar</b></sub></a><br /><a href="https://github.com/openclimatefix/pvnet/commits?author=adityasuthar" title="Code">💻</a></td>
|
|
295
|
+
<td align="center" valign="top" width="14.28%"><a href="https://github.com/markus-kreft"><img src="https://avatars.githubusercontent.com/u/129367085?v=4?s=100" width="100px;" alt="Markus Kreft"/><br /><sub><b>Markus Kreft</b></sub></a><br /><a href="https://github.com/openclimatefix/pvnet/commits?author=markus-kreft" title="Code">💻</a></td>
|
|
296
296
|
<td align="center" valign="top" width="14.28%"><a href="http://jack-kelly.com"><img src="https://avatars.githubusercontent.com/u/460756?v=4?s=100" width="100px;" alt="Jack Kelly"/><br /><sub><b>Jack Kelly</b></sub></a><br /><a href="#ideas-JackKelly" title="Ideas, Planning, & Feedback">🤔</a></td>
|
|
297
|
+
<td align="center" valign="top" width="14.28%"><a href="https://github.com/zaryab-ali"><img src="https://avatars.githubusercontent.com/u/85732412?v=4?s=100" width="100px;" alt="zaryab-ali"/><br /><sub><b>zaryab-ali</b></sub></a><br /><a href="https://github.com/openclimatefix/pvnet/commits?author=zaryab-ali" title="Code">💻</a></td>
|
|
297
298
|
</tr>
|
|
298
299
|
</tbody>
|
|
299
300
|
</table>
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# PVNet
|
|
2
2
|
<!-- ALL-CONTRIBUTORS-BADGE:START - Do not remove or modify this section -->
|
|
3
|
-
[](#contributors-)
|
|
4
4
|
<!-- ALL-CONTRIBUTORS-BADGE:END -->
|
|
5
5
|
|
|
6
6
|
[](https://github.com/openclimatefix/PVNet/tags)
|
|
@@ -241,29 +241,30 @@ Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/d
|
|
|
241
241
|
<table>
|
|
242
242
|
<tbody>
|
|
243
243
|
<tr>
|
|
244
|
-
<td align="center" valign="top" width="14.28%"><a href="https://github.com/felix-e-h-p"><img src="https://avatars.githubusercontent.com/u/137530077?v=4?s=100" width="100px;" alt="Felix"/><br /><sub><b>Felix</b></sub></a><br /><a href="https://github.com/openclimatefix/
|
|
245
|
-
<td align="center" valign="top" width="14.28%"><a href="https://github.com/Sukh-P"><img src="https://avatars.githubusercontent.com/u/42407101?v=4?s=100" width="100px;" alt="Sukhil Patel"/><br /><sub><b>Sukhil Patel</b></sub></a><br /><a href="https://github.com/openclimatefix/
|
|
246
|
-
<td align="center" valign="top" width="14.28%"><a href="https://github.com/dfulu"><img src="https://avatars.githubusercontent.com/u/41546094?v=4?s=100" width="100px;" alt="James Fulton"/><br /><sub><b>James Fulton</b></sub></a><br /><a href="https://github.com/openclimatefix/
|
|
247
|
-
<td align="center" valign="top" width="14.28%"><a href="https://github.com/AUdaltsova"><img src="https://avatars.githubusercontent.com/u/43303448?v=4?s=100" width="100px;" alt="Alexandra Udaltsova"/><br /><sub><b>Alexandra Udaltsova</b></sub></a><br /><a href="https://github.com/openclimatefix/
|
|
248
|
-
<td align="center" valign="top" width="14.28%"><a href="https://github.com/zakwatts"><img src="https://avatars.githubusercontent.com/u/47150349?v=4?s=100" width="100px;" alt="Megawattz"/><br /><sub><b>Megawattz</b></sub></a><br /><a href="https://github.com/openclimatefix/
|
|
249
|
-
<td align="center" valign="top" width="14.28%"><a href="https://github.com/peterdudfield"><img src="https://avatars.githubusercontent.com/u/34686298?v=4?s=100" width="100px;" alt="Peter Dudfield"/><br /><sub><b>Peter Dudfield</b></sub></a><br /><a href="https://github.com/openclimatefix/
|
|
244
|
+
<td align="center" valign="top" width="14.28%"><a href="https://github.com/felix-e-h-p"><img src="https://avatars.githubusercontent.com/u/137530077?v=4?s=100" width="100px;" alt="Felix"/><br /><sub><b>Felix</b></sub></a><br /><a href="https://github.com/openclimatefix/pvnet/commits?author=felix-e-h-p" title="Code">💻</a></td>
|
|
245
|
+
<td align="center" valign="top" width="14.28%"><a href="https://github.com/Sukh-P"><img src="https://avatars.githubusercontent.com/u/42407101?v=4?s=100" width="100px;" alt="Sukhil Patel"/><br /><sub><b>Sukhil Patel</b></sub></a><br /><a href="https://github.com/openclimatefix/pvnet/commits?author=Sukh-P" title="Code">💻</a></td>
|
|
246
|
+
<td align="center" valign="top" width="14.28%"><a href="https://github.com/dfulu"><img src="https://avatars.githubusercontent.com/u/41546094?v=4?s=100" width="100px;" alt="James Fulton"/><br /><sub><b>James Fulton</b></sub></a><br /><a href="https://github.com/openclimatefix/pvnet/commits?author=dfulu" title="Code">💻</a></td>
|
|
247
|
+
<td align="center" valign="top" width="14.28%"><a href="https://github.com/AUdaltsova"><img src="https://avatars.githubusercontent.com/u/43303448?v=4?s=100" width="100px;" alt="Alexandra Udaltsova"/><br /><sub><b>Alexandra Udaltsova</b></sub></a><br /><a href="https://github.com/openclimatefix/pvnet/commits?author=AUdaltsova" title="Code">💻</a> <a href="https://github.com/openclimatefix/pvnet/pulls?q=is%3Apr+reviewed-by%3AAUdaltsova" title="Reviewed Pull Requests">👀</a></td>
|
|
248
|
+
<td align="center" valign="top" width="14.28%"><a href="https://github.com/zakwatts"><img src="https://avatars.githubusercontent.com/u/47150349?v=4?s=100" width="100px;" alt="Megawattz"/><br /><sub><b>Megawattz</b></sub></a><br /><a href="https://github.com/openclimatefix/pvnet/commits?author=zakwatts" title="Code">💻</a></td>
|
|
249
|
+
<td align="center" valign="top" width="14.28%"><a href="https://github.com/peterdudfield"><img src="https://avatars.githubusercontent.com/u/34686298?v=4?s=100" width="100px;" alt="Peter Dudfield"/><br /><sub><b>Peter Dudfield</b></sub></a><br /><a href="https://github.com/openclimatefix/pvnet/commits?author=peterdudfield" title="Code">💻</a></td>
|
|
250
250
|
<td align="center" valign="top" width="14.28%"><a href="https://github.com/mahdilamb"><img src="https://avatars.githubusercontent.com/u/4696915?v=4?s=100" width="100px;" alt="Mahdi Lamb"/><br /><sub><b>Mahdi Lamb</b></sub></a><br /><a href="#infra-mahdilamb" title="Infrastructure (Hosting, Build-Tools, etc)">🚇</a></td>
|
|
251
251
|
</tr>
|
|
252
252
|
<tr>
|
|
253
|
-
<td align="center" valign="top" width="14.28%"><a href="https://www.jacobbieker.com"><img src="https://avatars.githubusercontent.com/u/7170359?v=4?s=100" width="100px;" alt="Jacob Prince-Bieker"/><br /><sub><b>Jacob Prince-Bieker</b></sub></a><br /><a href="https://github.com/openclimatefix/
|
|
254
|
-
<td align="center" valign="top" width="14.28%"><a href="https://github.com/codderrrrr"><img src="https://avatars.githubusercontent.com/u/149995852?v=4?s=100" width="100px;" alt="codderrrrr"/><br /><sub><b>codderrrrr</b></sub></a><br /><a href="https://github.com/openclimatefix/
|
|
255
|
-
<td align="center" valign="top" width="14.28%"><a href="https://chrisxbriggs.com"><img src="https://avatars.githubusercontent.com/u/617309?v=4?s=100" width="100px;" alt="Chris Briggs"/><br /><sub><b>Chris Briggs</b></sub></a><br /><a href="https://github.com/openclimatefix/
|
|
256
|
-
<td align="center" valign="top" width="14.28%"><a href="https://github.com/tmi"><img src="https://avatars.githubusercontent.com/u/147159?v=4?s=100" width="100px;" alt="tmi"/><br /><sub><b>tmi</b></sub></a><br /><a href="https://github.com/openclimatefix/
|
|
257
|
-
<td align="center" valign="top" width="14.28%"><a href="https://rdrn.me/"><img src="https://avatars.githubusercontent.com/u/19817302?v=4?s=100" width="100px;" alt="Chris Arderne"/><br /><sub><b>Chris Arderne</b></sub></a><br /><a href="https://github.com/openclimatefix/
|
|
258
|
-
<td align="center" valign="top" width="14.28%"><a href="https://github.com/Dakshbir"><img src="https://avatars.githubusercontent.com/u/144359831?v=4?s=100" width="100px;" alt="Dakshbir"/><br /><sub><b>Dakshbir</b></sub></a><br /><a href="https://github.com/openclimatefix/
|
|
259
|
-
<td align="center" valign="top" width="14.28%"><a href="https://github.com/MAYANK12SHARMA"><img src="https://avatars.githubusercontent.com/u/145884197?v=4?s=100" width="100px;" alt="MAYANK SHARMA"/><br /><sub><b>MAYANK SHARMA</b></sub></a><br /><a href="https://github.com/openclimatefix/
|
|
253
|
+
<td align="center" valign="top" width="14.28%"><a href="https://www.jacobbieker.com"><img src="https://avatars.githubusercontent.com/u/7170359?v=4?s=100" width="100px;" alt="Jacob Prince-Bieker"/><br /><sub><b>Jacob Prince-Bieker</b></sub></a><br /><a href="https://github.com/openclimatefix/pvnet/commits?author=jacobbieker" title="Code">💻</a></td>
|
|
254
|
+
<td align="center" valign="top" width="14.28%"><a href="https://github.com/codderrrrr"><img src="https://avatars.githubusercontent.com/u/149995852?v=4?s=100" width="100px;" alt="codderrrrr"/><br /><sub><b>codderrrrr</b></sub></a><br /><a href="https://github.com/openclimatefix/pvnet/commits?author=codderrrrr" title="Code">💻</a></td>
|
|
255
|
+
<td align="center" valign="top" width="14.28%"><a href="https://chrisxbriggs.com"><img src="https://avatars.githubusercontent.com/u/617309?v=4?s=100" width="100px;" alt="Chris Briggs"/><br /><sub><b>Chris Briggs</b></sub></a><br /><a href="https://github.com/openclimatefix/pvnet/commits?author=confusedmatrix" title="Code">💻</a></td>
|
|
256
|
+
<td align="center" valign="top" width="14.28%"><a href="https://github.com/tmi"><img src="https://avatars.githubusercontent.com/u/147159?v=4?s=100" width="100px;" alt="tmi"/><br /><sub><b>tmi</b></sub></a><br /><a href="https://github.com/openclimatefix/pvnet/commits?author=tmi" title="Code">💻</a></td>
|
|
257
|
+
<td align="center" valign="top" width="14.28%"><a href="https://rdrn.me/"><img src="https://avatars.githubusercontent.com/u/19817302?v=4?s=100" width="100px;" alt="Chris Arderne"/><br /><sub><b>Chris Arderne</b></sub></a><br /><a href="https://github.com/openclimatefix/pvnet/commits?author=carderne" title="Code">💻</a></td>
|
|
258
|
+
<td align="center" valign="top" width="14.28%"><a href="https://github.com/Dakshbir"><img src="https://avatars.githubusercontent.com/u/144359831?v=4?s=100" width="100px;" alt="Dakshbir"/><br /><sub><b>Dakshbir</b></sub></a><br /><a href="https://github.com/openclimatefix/pvnet/commits?author=Dakshbir" title="Code">💻</a></td>
|
|
259
|
+
<td align="center" valign="top" width="14.28%"><a href="https://github.com/MAYANK12SHARMA"><img src="https://avatars.githubusercontent.com/u/145884197?v=4?s=100" width="100px;" alt="MAYANK SHARMA"/><br /><sub><b>MAYANK SHARMA</b></sub></a><br /><a href="https://github.com/openclimatefix/pvnet/commits?author=MAYANK12SHARMA" title="Code">💻</a></td>
|
|
260
260
|
</tr>
|
|
261
261
|
<tr>
|
|
262
|
-
<td align="center" valign="top" width="14.28%"><a href="https://github.com/lambaaryan011"><img src="https://avatars.githubusercontent.com/u/153702847?v=4?s=100" width="100px;" alt="aryan lamba "/><br /><sub><b>aryan lamba </b></sub></a><br /><a href="https://github.com/openclimatefix/
|
|
263
|
-
<td align="center" valign="top" width="14.28%"><a href="https://github.com/michael-gendy"><img src="https://avatars.githubusercontent.com/u/64384201?v=4?s=100" width="100px;" alt="michael-gendy"/><br /><sub><b>michael-gendy</b></sub></a><br /><a href="https://github.com/openclimatefix/
|
|
264
|
-
<td align="center" valign="top" width="14.28%"><a href="https://adityasuthar.github.io/"><img src="https://avatars.githubusercontent.com/u/95685363?v=4?s=100" width="100px;" alt="Aditya Suthar"/><br /><sub><b>Aditya Suthar</b></sub></a><br /><a href="https://github.com/openclimatefix/
|
|
265
|
-
<td align="center" valign="top" width="14.28%"><a href="https://github.com/markus-kreft"><img src="https://avatars.githubusercontent.com/u/129367085?v=4?s=100" width="100px;" alt="Markus Kreft"/><br /><sub><b>Markus Kreft</b></sub></a><br /><a href="https://github.com/openclimatefix/
|
|
262
|
+
<td align="center" valign="top" width="14.28%"><a href="https://github.com/lambaaryan011"><img src="https://avatars.githubusercontent.com/u/153702847?v=4?s=100" width="100px;" alt="aryan lamba "/><br /><sub><b>aryan lamba </b></sub></a><br /><a href="https://github.com/openclimatefix/pvnet/commits?author=lambaaryan011" title="Code">💻</a></td>
|
|
263
|
+
<td align="center" valign="top" width="14.28%"><a href="https://github.com/michael-gendy"><img src="https://avatars.githubusercontent.com/u/64384201?v=4?s=100" width="100px;" alt="michael-gendy"/><br /><sub><b>michael-gendy</b></sub></a><br /><a href="https://github.com/openclimatefix/pvnet/commits?author=michael-gendy" title="Code">💻</a></td>
|
|
264
|
+
<td align="center" valign="top" width="14.28%"><a href="https://adityasuthar.github.io/"><img src="https://avatars.githubusercontent.com/u/95685363?v=4?s=100" width="100px;" alt="Aditya Suthar"/><br /><sub><b>Aditya Suthar</b></sub></a><br /><a href="https://github.com/openclimatefix/pvnet/commits?author=adityasuthar" title="Code">💻</a></td>
|
|
265
|
+
<td align="center" valign="top" width="14.28%"><a href="https://github.com/markus-kreft"><img src="https://avatars.githubusercontent.com/u/129367085?v=4?s=100" width="100px;" alt="Markus Kreft"/><br /><sub><b>Markus Kreft</b></sub></a><br /><a href="https://github.com/openclimatefix/pvnet/commits?author=markus-kreft" title="Code">💻</a></td>
|
|
266
266
|
<td align="center" valign="top" width="14.28%"><a href="http://jack-kelly.com"><img src="https://avatars.githubusercontent.com/u/460756?v=4?s=100" width="100px;" alt="Jack Kelly"/><br /><sub><b>Jack Kelly</b></sub></a><br /><a href="#ideas-JackKelly" title="Ideas, Planning, & Feedback">🤔</a></td>
|
|
267
|
+
<td align="center" valign="top" width="14.28%"><a href="https://github.com/zaryab-ali"><img src="https://avatars.githubusercontent.com/u/85732412?v=4?s=100" width="100px;" alt="zaryab-ali"/><br /><sub><b>zaryab-ali</b></sub></a><br /><a href="https://github.com/openclimatefix/pvnet/commits?author=zaryab-ali" title="Code">💻</a></td>
|
|
267
268
|
</tr>
|
|
268
269
|
</tbody>
|
|
269
270
|
</table>
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
""" Data module for pytorch lightning """
|
|
2
2
|
|
|
3
|
+
import os
|
|
3
4
|
from glob import glob
|
|
4
5
|
|
|
5
|
-
import
|
|
6
|
+
import numpy as np
|
|
6
7
|
from lightning.pytorch import LightningDataModule
|
|
7
8
|
from ocf_data_sampler.numpy_sample.collate import stack_np_samples_into_batch
|
|
8
9
|
from ocf_data_sampler.numpy_sample.common_types import NumpySample, TensorBatch
|
|
@@ -77,6 +78,7 @@ class BasePresavedDataModule(LightningDataModule):
|
|
|
77
78
|
worker_init_fn=None,
|
|
78
79
|
prefetch_factor=prefetch_factor,
|
|
79
80
|
persistent_workers=persistent_workers,
|
|
81
|
+
multiprocessing_context="spawn" if num_workers>0 else None,
|
|
80
82
|
)
|
|
81
83
|
|
|
82
84
|
def _get_premade_samples_dataset(self, subdir: str) -> Dataset:
|
|
@@ -107,7 +109,7 @@ class BaseStreamedDataModule(LightningDataModule):
|
|
|
107
109
|
train_period: list[str | None] = [None, None],
|
|
108
110
|
val_period: list[str | None] = [None, None],
|
|
109
111
|
seed: int | None = None,
|
|
110
|
-
|
|
112
|
+
dataset_pickle_dir: str | None = None,
|
|
111
113
|
):
|
|
112
114
|
"""Base Datamodule for streaming samples.
|
|
113
115
|
|
|
@@ -124,6 +126,8 @@ class BaseStreamedDataModule(LightningDataModule):
|
|
|
124
126
|
train_period: Date range filter for train dataloader.
|
|
125
127
|
val_period: Date range filter for val dataloader.
|
|
126
128
|
seed: Random seed used in shuffling datasets.
|
|
129
|
+
dataset_pickle_dir: Directory in which the val and train set will be presaved as
|
|
130
|
+
pickle objects. Setting this speeds up instantiation of multiple workers a lot.
|
|
127
131
|
"""
|
|
128
132
|
super().__init__()
|
|
129
133
|
|
|
@@ -131,6 +135,7 @@ class BaseStreamedDataModule(LightningDataModule):
|
|
|
131
135
|
self.train_period = train_period
|
|
132
136
|
self.val_period = val_period
|
|
133
137
|
self.seed = seed
|
|
138
|
+
self.dataset_pickle_dir = dataset_pickle_dir
|
|
134
139
|
|
|
135
140
|
self._common_dataloader_kwargs = dict(
|
|
136
141
|
batch_size=batch_size,
|
|
@@ -143,6 +148,7 @@ class BaseStreamedDataModule(LightningDataModule):
|
|
|
143
148
|
worker_init_fn=None,
|
|
144
149
|
prefetch_factor=prefetch_factor,
|
|
145
150
|
persistent_workers=persistent_workers,
|
|
151
|
+
multiprocessing_context="spawn" if num_workers>0 else None,
|
|
146
152
|
)
|
|
147
153
|
|
|
148
154
|
def setup(self, stage: str | None = None):
|
|
@@ -158,11 +164,35 @@ class BaseStreamedDataModule(LightningDataModule):
|
|
|
158
164
|
# Prepare and pre-shuffle the val dataset and set seed for reproducibility
|
|
159
165
|
val_dataset = self._get_streamed_samples_dataset(*self.val_period)
|
|
160
166
|
|
|
161
|
-
|
|
162
|
-
torch.manual_seed(self.seed)
|
|
163
|
-
|
|
164
|
-
shuffled_indices = torch.randperm(len(val_dataset))
|
|
167
|
+
shuffled_indices = np.random.default_rng(seed=self.seed).permutation(len(val_dataset))
|
|
165
168
|
self.val_dataset = Subset(val_dataset, shuffled_indices)
|
|
169
|
+
|
|
170
|
+
if self.dataset_pickle_dir is not None:
|
|
171
|
+
os.makedirs(self.dataset_pickle_dir, exist_ok=True)
|
|
172
|
+
train_dataset_path = f"{self.dataset_pickle_dir}/train_dataset.pkl"
|
|
173
|
+
val_dataset_path = f"{self.dataset_pickle_dir}/val_dataset.pkl"
|
|
174
|
+
|
|
175
|
+
# For safety, these pickled datasets cannot be overwritten.
|
|
176
|
+
# See: https://github.com/openclimatefix/pvnet/pull/445
|
|
177
|
+
for path in [train_dataset_path, val_dataset_path]:
|
|
178
|
+
if os.path.exists(path):
|
|
179
|
+
raise FileExistsError(
|
|
180
|
+
f"The pickled dataset path '{path}' already exists. Make sure that "
|
|
181
|
+
"this can be safely deleted (i.e. not currently being used by any "
|
|
182
|
+
"training run) and delete it manually. Else change the "
|
|
183
|
+
"`dataset_pickle_dir` to a different directory."
|
|
184
|
+
)
|
|
185
|
+
|
|
186
|
+
self.train_dataset.presave_pickle(train_dataset_path)
|
|
187
|
+
self.train_dataset.presave_pickle(val_dataset_path)
|
|
188
|
+
|
|
189
|
+
def teardown(self, stage: str | None = None) -> None:
|
|
190
|
+
"""Clean up the pickled datasets"""
|
|
191
|
+
if self.dataset_pickle_dir is not None:
|
|
192
|
+
for filename in ["val_dataset.pkl", "train_dataset.pkl"]:
|
|
193
|
+
filepath = f"{self.dataset_pickle_dir}/{filename}"
|
|
194
|
+
if os.path.exists(filepath):
|
|
195
|
+
os.remove(filepath)
|
|
166
196
|
|
|
167
197
|
def _get_streamed_samples_dataset(
|
|
168
198
|
self,
|
|
@@ -223,7 +223,9 @@ class PVNetLightningModule(pl.LightningModule):
|
|
|
223
223
|
|
|
224
224
|
plot_name = f"val_forecast_samples/sample_set_{plot_num}"
|
|
225
225
|
|
|
226
|
-
|
|
226
|
+
# Disabled for testing or using no logger
|
|
227
|
+
if self.logger:
|
|
228
|
+
self.logger.experiment.log({plot_name: wandb.Image(fig)})
|
|
227
229
|
|
|
228
230
|
plt.close(fig)
|
|
229
231
|
|
|
@@ -9,10 +9,10 @@ authors = [{name="Peter Dudfield", email="info@openclimatefix.org"}]
|
|
|
9
9
|
dynamic = ["version"]
|
|
10
10
|
license={file="LICENCE"}
|
|
11
11
|
readme = {file="README.md", content-type="text/markdown"}
|
|
12
|
-
requires-python = ">=3.
|
|
12
|
+
requires-python = ">=3.11"
|
|
13
13
|
|
|
14
14
|
dependencies = [
|
|
15
|
-
"ocf-data-sampler>=0.
|
|
15
|
+
"ocf-data-sampler>=0.5.20",
|
|
16
16
|
"numpy",
|
|
17
17
|
"pandas",
|
|
18
18
|
"matplotlib",
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import lightning
|
|
2
|
+
from pvnet.data import UKRegionalStreamedDataModule
|
|
3
|
+
from pvnet.training.lightning_module import PVNetLightningModule
|
|
4
|
+
from pvnet.optimizers import EmbAdamWReduceLROnPlateau
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
def test_model_trainer_fit(session_tmp_path, uk_data_config_path, late_fusion_model):
|
|
8
|
+
"""Test end-to-end training."""
|
|
9
|
+
|
|
10
|
+
datamodule = UKRegionalStreamedDataModule(
|
|
11
|
+
configuration=uk_data_config_path,
|
|
12
|
+
batch_size=2,
|
|
13
|
+
num_workers=2,
|
|
14
|
+
prefetch_factor=None,
|
|
15
|
+
dataset_pickle_dir=f"{session_tmp_path}/dataset_pickles"
|
|
16
|
+
)
|
|
17
|
+
|
|
18
|
+
ligtning_model = PVNetLightningModule(
|
|
19
|
+
model=late_fusion_model,
|
|
20
|
+
optimizer=EmbAdamWReduceLROnPlateau(),
|
|
21
|
+
)
|
|
22
|
+
|
|
23
|
+
# Train the model for two batches
|
|
24
|
+
trainer = lightning.Trainer(
|
|
25
|
+
max_epochs=2,
|
|
26
|
+
limit_val_batches=2,
|
|
27
|
+
limit_train_batches=2,
|
|
28
|
+
accelerator="cpu",
|
|
29
|
+
logger=False,
|
|
30
|
+
enable_checkpointing=False,
|
|
31
|
+
)
|
|
32
|
+
trainer.fit(model=ligtning_model, datamodule=datamodule)
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
import lightning
|
|
2
|
-
from pvnet.training.lightning_module import PVNetLightningModule
|
|
3
|
-
from pvnet.optimizers import EmbAdamWReduceLROnPlateau
|
|
4
|
-
|
|
5
|
-
def test_model_trainer_fit(late_fusion_model, uk_streamed_datamodule):
|
|
6
|
-
"""Test end-to-end training."""
|
|
7
|
-
|
|
8
|
-
ligtning_model = PVNetLightningModule(
|
|
9
|
-
model=late_fusion_model,
|
|
10
|
-
optimizer=EmbAdamWReduceLROnPlateau(),
|
|
11
|
-
)
|
|
12
|
-
|
|
13
|
-
# Get a sample batch for testing
|
|
14
|
-
batch = next(iter(uk_streamed_datamodule.train_dataloader()))
|
|
15
|
-
|
|
16
|
-
# Run a forward pass to verify the training module works with the data
|
|
17
|
-
y = late_fusion_model(batch)
|
|
18
|
-
|
|
19
|
-
# Train the model for one batch
|
|
20
|
-
trainer = lightning.Trainer(fast_dev_run=True, accelerator="cpu")
|
|
21
|
-
trainer.fit(model=ligtning_model, datamodule=uk_streamed_datamodule)
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|