A simple, but surprisingly accurate model for predicting global temperatures. Volcanic activity and climate oscillations will cause the actual temperature to fluctuate around the prediction.
The model is a hybrid model predicting global temperatures using using sunspots and CO2 concentrations.
Note: Sunspot data accuracy prior to 1800 limits prediction accuracy prior to 1900. See Muñoz-Jaramillo, A.; Vaquero, J.M., 2019
Sunspots + CO2 model:
Sunspot-only model:

Brief Sunspot/CO2 Model Description
Download the python program files.
Setup the environment:
pip install -r requirements.txt
Run tempPredict.py for the sunspot/CO2 model
There are several different preconfigured models in a comment block. Copy the desired model parms dictionary and replace (or place below) the parms dictionary located just below the comment block. You can also create your own model by adjusting the parameters of an existing model.
Image (png) files showing predictions for a few of the models have been uploaded into this codespace. Click on the filename to view.
A variable called showExtra can be configured to show the model, or the prediction error.
Set variable showSpectrums to True for plots of the temperature and sunspot spectrums.
The first time you run the program it will automatically download the required datasets.
WARNING: Your results may change, or may not match results shown here as the data sets are constantly being updated and revised.
When getTempSunspotData.py is run as a stand-alone program it will plot temperature and sunspot data.
When getSynopticData.py is run as a stand-alone program it will plot a synoptic chart, butterfly diagram, and magnetic field data. This program is not used by the model.
Sunspot Data: WDC-SILSO, Royal Observatory of Belgium, Brussels
Global Temperature Anomaly Data HadCRUT5: Met Office
Global Temperature Anomaly Data NOAA: NOAA
Wilcox Solar Observatory Synoptic Charts and Data WSO
El Niño Southern Oscillation (ENSO) data: NOAA