Skip to main content

Nowcasting Forecast

codecov

Making live forecasts for the nowcasting project. The aim is to produce Grid Supply Point (GSP) Solar generation Forecasts. This is done by loading live PV results, Numerical Weather Predictions (NWPs) and Satellite images, and running this data through various different ML models.

You can run the application locally by:

python nowcasting_forecast/app.py --db-url='sqlite:///test.db'

Installation with conda

mamba env create -f environment.yml
conda activate nowcasting_forecast

# Installing fastai inside environment.yml is currently broken. So install separately:
mamba install -c fastchan fastai

# You need to manually install nowcasting_dataset, nowcasting_datamodel,
# nowcasting_dataloader, and power_perceiver. This can be done via pypi (for all except
# power_perceiver) or by git cloning the repo and using:
pip install -e <path_to_directory>

# Install nowcasting_forecast
pip install -e .

# You may also want to install dev tools:
mamba install pytest flake8 black pre-commit pydocstyle isort mypy
pre-commit install

Directories and files

The following shows the main files

+-- nowcasting_forecast
|   +-- config
|       +-- mvp_v0.yaml
|       +-- mvp_v1.yaml
|   +-- models
|       +-- nwp_solar_simple.py
|       +-- nwp_solar_simple_trained
|           +-- model.py
|       +-- cnn
|           +-- cnn.py
|           +-- dataloader.py
|           +-- model.py
|   +-- app.py
|   +-- batch.py
|   +-- dataloader.py
+-- scripts
+-- tests

☀️ nowcasting_forecast

app.py is the main entry point for running the forecast module. It contains the following arguments:

  • --db-url: the database url that the forecasts will be saved too
  • --fake: Create fake forecast, mainly used for testing

The app has three main steps

  1. Make batched data
  2. Run forecasting model to make forecasts
  3. Save forecasts to the database

batch.py is used to load the data and create batches of data. This uses mainly used ManagerLive

dataloader.py is used to load the batched data in an efficient way. This is current a stripped down version of this dataloader.

The config directory contains configurations that are used to load different data sources. The configuration is used by batch.py to convert large amounts of data into batched data, which is then ready for ML models.

The database directory contains database models and functions to interact with the database. See below for more information

The model directory contains ml models to make forecasts. See below for more information

Models

NWP Simple

This takes the average 'dswrf' for each example and then divides this by 10 to give a rough model for MW per GSP

configuration: mvp_v0.yaml

NWP Simple trained

CNN model of 'dswrf' channel in NWP. 6 CNN layers then 4 fully connected layers.

Diagram

Training run: https://app.neptune.ai/o/OpenClimateFix/org/predict-pv-yield/e/PRED-951/charts

configuration: mvp_v1.yaml

CNN

This model takes both satellite and NWP video data and puts them through separate 3D convolutional neural networks. These are then connected with a few fully connected layers, joined with some simple input data like historic PV data.

🩺 Testing

Tests are run with pytest

These sets up postgres in a docker container. This slightly more complicated testing framework is needed (compared to running pytest) as some queries can not be fully tested on a sqlite database

🛠️ infrastructure

.github/workflows contains a number of CI actions

  1. linters.yaml: Runs linting checks on the code
  2. release.yaml: Make and pushes docker files on a new code release
  3. test-docker.yaml': Runs tests on every push

The docker file is in the folder infrastructure/docker/

The version is bumped automatically for any push to main.

Environmental Variables

  • DB_URL: The database url which the forecasts will be saved too
  • DB_URL_PV: The database url for the PV data
  • NWP_ZARR_PATH: Override NWP data path. This is useful when running this locally, and shows to get data from the cloud.
  • SATELLITE_ZARR_PATH: Override Satellite data path. This is useful when running this locally, and shows to get data from the cloud.
  • FAKE: Option to make fake/dummy forecasts
  • MODEL_NAME: Optional of 'nwp_simple' or 'nwp_simple_trained'

Metadata

Release files for nowcasting-forecast 1.3.26

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for nowcasting-forecast 1.3.26
File Size Uploaded
nowcasting_forecast-1.3.26.tar.gz 17.5 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for nowcasting-forecast 1.3.26
File Interpreter ABI Platform
nowcasting_forecast-1.3.26-py3-none-any.whl Python 3 none any Details

Total release size: 34.2 kB

Release files / nowcasting_forecast-1.3.26.tar.gz

Download URL nowcasting_forecast-1.3.26.tar.gz
Size 17.5 kB
Tags Source
SHA-256 checksum
How to use checksums
22373ebe9f31c5d7d9f49c4a8afdfccf7b823b99cc4225610038c27addc26a86
BLAKE2b-256 checksum
How to use checksums
f90207fb8691875ccc50156a5ed27e66c787a1af005877418c7a58c5d8728cc0
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.2 CPython/3.9.17

Release files / nowcasting_forecast-1.3.26-py3-none-any.whl

Download URL nowcasting_forecast-1.3.26-py3-none-any.whl
Size 16.8 kB
Tags Python 3
SHA-256 checksum
How to use checksums
8f750d869d8c45db77f8e508a464a21a5cd5ab9865aa573a3483f8ce66bf0bad
BLAKE2b-256 checksum
How to use checksums
8de4454cf831fd44576c661099194ffb4b22a484df4e4fc47d35c3a191d93b55
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.2 CPython/3.9.17

Release history Release notifications | RSS feed

This release

1.3.26 This release

2 release files

1.3.25

2 release files

1.3.24

2 release files

1.3.23

2 release files

1.3.22

2 release files

1.3.21

2 release files

1.3.18

2 release files

1.3.17

2 release files

1.3.11

2 release files

1.3.10

2 release files

1.3.9

2 release files

1.3.8

2 release files

1.3.7

2 release files

1.3.6

2 release files

1.3.5

2 release files

1.3.4

2 release files

1.3.3

2 release files

1.3.2

2 release files

1.3.1

2 release files

1.3.0

2 release files

1.2.39

2 release files

1.2.38

2 release files

1.2.37

2 release files

1.2.36

2 release files

1.2.35

2 release files

1.2.34

2 release files

1.2.33

2 release files

1.2.32

2 release files

1.2.29

2 release files

1.2.28

2 release files

1.2.27

2 release files

1.2.26

2 release files

1.2.25

2 release files

1.2.24

2 release files

1.2.23

2 release files

1.2.22

2 release files

1.2.19

2 release files

1.2.18

2 release files

1.2.17

2 release files

1.2.16

2 release files

1.2.15

2 release files

1.2.14

2 release files

1.2.10

2 release files

1.2.9

2 release files

1.2.8

2 release files

1.2.7

2 release files

1.2.6

2 release files

1.2.5

2 release files

1.2.4

2 release files

1.2.3

2 release files

1.2.2

2 release files

1.2.1

2 release files

1.2.0

2 release files

1.1.38

2 release files

1.1.37

2 release files

1.1.36

2 release files

1.1.35

2 release files

1.1.34

2 release files

1.1.33

2 release files

1.1.32

2 release files

1.1.31

2 release files

1.1.30

2 release files

1.1.29

2 release files

1.1.28

2 release files

1.1.24

2 release files

1.1.23

2 release files

1.1.22

2 release files

1.1.21

2 release files

1.1.20

2 release files

1.1.19

2 release files

1.1.18

2 release files

1.1.17

2 release files

1.1.16

2 release files

1.1.15

2 release files

1.1.14

2 release files

1.1.13

2 release files

1.1.12

2 release files

1.1.11

2 release files

1.1.10

2 release files

1.1.9

2 release files

1.1.8

2 release files

1.1.7

2 release files

1.1.6

2 release files

1.1.5

2 release files

1.1.4

2 release files

1.1.3

2 release files

1.1.2

2 release files

1.1.1

2 release files

1.1.0

2 release files

1.0.27

2 release files

1.0.26

2 release files

1.0.25

2 release files

1.0.24

2 release files

1.0.23

2 release files

1.0.22

2 release files

1.0.21

2 release files

1.0.20

2 release files

1.0.19

2 release files

1.0.18

2 release files

1.0.17

2 release files

1.0.16

2 release files

1.0.15

2 release files

1.0.14

2 release files

1.0.13

2 release files

1.0.12

2 release files

1.0.11

2 release files

1.0.10

2 release files

1.0.9

2 release files

1.0.8

2 release files

1.0.7

2 release files

1.0.6

2 release files

1.0.5

2 release files

1.0.4

2 release files

1.0.3

2 release files

1.0.2

2 release files

1.0.1

2 release files

1.0.0

2 release files

0.2.7

2 release files

0.2.6

2 release files

0.2.5

2 release files

0.2.4

2 release files

0.2.3

2 release files

0.2.2

2 release files

0.2.1

2 release files

0.2.0

2 release files

0.1.15

2 release files

0.1.14

2 release files

0.1.13

2 release files

0.1.12

2 release files

0.1.11

2 release files

0.1.10

2 release files

0.1.9

2 release files

0.1.8

2 release files

0.1.7

2 release files

0.1.6

2 release files

0.1.5

2 release files

0.1.4

2 release files

0.1.3

2 release files

0.1.2

2 release files

0.1.1

2 release files

0.1.0

2 release files

0.0.57

2 release files

0.0.56

2 release files

0.0.55

2 release files

0.0.54

2 release files

0.0.36

2 release files

0.0.35

2 release files

0.0.34

2 release files

0.0.33

2 release files

0.0.32

2 release files

0.0.31

2 release files

0.0.30

2 release files

0.0.29

2 release files

0.0.28

2 release files

0.0.27

2 release files

0.0.26

2 release files

0.0.25

2 release files

0.0.24

2 release files

0.0.23

2 release files

0.0.22

2 release files

0.0.21

2 release files

0.0.20

2 release files

0.0.19

2 release files

0.0.18

2 release files

0.0.17

2 release files

0.0.16

2 release files

0.0.15

2 release files

0.0.14

2 release files

0.0.13

2 release files

0.0.12

2 release files

0.0.11

2 release files

0.0.10

2 release files

0.0.9

2 release files

0.0.8

2 release files

0.0.7

2 release files

0.0.6

2 release files

0.0.5

2 release files

0.0.4

2 release files

0.0.3

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page