API for hosting nowcasting solar predictions. This is for GSP and National forecasts in the UK.
We use FastAPI.
Pull the docker image from
docker pull openclimatefix/nowcasting_api:latest
You will need to set the following environmental variables:
AUTH0_DOMAIN
- The Auth0 domain which can be collected from the Applications/Applications tab. It should be something like 'XXXXXXX.eu.auth0.com'AUTH0_API_AUDIENCE
- THE Auth0 api audience, this can be collected from the Applications/APIs tab. It should be something likehttps://XXXXXXXXXX.eu.auth0.com/api/v2/
DB_URL
- The Forecast database URL used to get GSP forecast dataORIGINS
- Endpoints that are valid CORS origins. See FastAPI documentation.N_HISTORY_DAYS
- Default is just to load data from today and yesterday, but we can set this to 5, if we want the api always to return 5 days of dataFORECAST_ERROR_HOURS
- using route/v0/system/GBstatus/check_last_forecast_run
we can check if a forecast has been made in the lastFORECAST_ERROR_HOURS
hoursADJUST_MW_LIMIT
- the maximum the api is allowed to adjust the national forecast byFAKE
- This allows fake data to be used, rather than connecting to a database
Note you will need a database set up at DB_URL
. This should use the datamodel in nowcasting_datamodel
Live documentation can be viewed at https://api.quartz.solar/docs
or https://api.quartz.solar/swagger
.
This is automatically generated from the code.
This can be done it two different ways: With Python or with Docker.
Create a virtual env
python3 -m venv ./venv
source venv/bin/activate
Install Requirements and Run
pip install -r requirements.txt
cd src && uvicorn main:app --reload
Warning:
If you don't have a local database set up, you can leave the DB_URL
string empty (default not set)
and set FAKE=True
and the API will return fake data. This is a work in progress,
so some routes might be need to be updated
π Currently non-functional, needs updating to migrate database to match datamodel
- Make sure docker is installed on your system.
- Use
docker-compose up
in the main directory to start up the application. - You will now be able to access it on
http://localhost:80
To run tests use the following command
docker stop $(docker ps -a -q)
docker-compose -f test-docker-compose.yml build
docker-compose -f test-docker-compose.yml run api
graph TD;
N1(national/forecast) --> Q1;
Q1{Include metadata?>} -->|no| Q2;
Q1 --> |yes| N2[NationalForecast];
N4[ForecastValueLatest];
Q2{forecast horizon <br> minutes not None}
Q2-->|yes| N5[ForecastValueSevenDays];
Q2-->|no| N4;
NP1(national/pvlive)-->NP2;
NP2[GSPYield];
graph TD;
G1(gsp/forecast/all);
G1--> N3[ManyForecasts];
G3(gsp/gsp_id/forecast) -->Q4;
Q4{forecast horizon <br> minutes not None}
Q4-->|yes| G7[ForecastValueSevenDays];
Q4-->|no| G6[ForecastValueLatest];
GP1(gsp/pvlive/all)-->GP2;
GP2[LocationWithGSPYields];
GP3(gsp/gsp_id/pvlive)-->GP4;
GP4[GSPYield];
graph TD;
G1(status)-->G2;
G2[Status];
G3(gsp)-->G4
G4[Location]
TODO
- PR's are welcome! See the Organisation Profile for details on contributing
- Find out about our other projects in the here
- Check out the OCF blog for updates
- Follow OCF on LinkedIn
Thanks goes to these wonderful people (emoji key):
Part of the Open Climate Fix community.