This project uses Convolutional Neural Networks (CNN) to evaluate various NMME (North American Multi-Model Ensemble) models for predicting the Standardized Precipitation Index (SPI) based on 30 years of historical precipitation data from 1981-2010. The models being evaluated are:
- CanSIPSv2
- CanCM4i
- CanSIPS-IC3
- GEM-NEMO
The aim of this project is to determine which model performs best in predicting SPI using only precipitation data. Evaluation is done using a Taylor diagram and spatio-temporal visualizations of RMSE, standard deviation, and correlation.
- Time Period: 1981-2010 (30 years)
- Data Used: Historical monthly precipitation data from NMME models (CanSIPSv2, CanCM4i, CanSIPS-IC3, GEM-NEMO).
- Target: Standardized Precipitation Index (SPI) calculated from precipitation data.
To evaluate the performance of multiple climate models for SPI prediction, focusing on:
- Root Mean Square Error (RMSE)
- Standard Deviation (stdev)
- Correlation Coefficient
- Skill Score
-
Data Preprocessing:
- Precipitation data from each model is preprocessed and normalized.
- SPI values are calculated for each model based on historical precipitation data.
-
Model Training:
- A CNN is trained on the precipitation data to predict SPI for each model.
- The model uses spatial-temporal features from the precipitation data for prediction.
-
Evaluation:
- A Taylor diagram is used to compare the performance of each model in terms of correlation, RMSE, and standard deviation.
- Spatio-temporal visualizations are generated for the RMSE, standard deviation, and correlation for a detailed comparison.
- Python: Used for data processing and model training.
- TensorFlow/Keras: Deep learning library for building and training the CNN model.
- Numpy & Pandas: Data manipulation and analysis.
- Matplotlib & Seaborn: For visualizations including Taylor diagrams and spatio-temporal plots.
- Basemap: For spatial visualizations.
- NetCDF4: Handling of NMME model data in NetCDF format.
- Taylor Diagrams: Compare model performance in terms of RMSE, standard deviation, and correlation.
- Spatio-Temporal Visualizations: RMSE, standard deviation, correlation, and skill score plotted over time and space to assess model accuracy and behavior across different regions and periods.
-
Taylor Diagram
-
RMSE
-
Standard Deviation
-
Spatial Correlation
-
Skill Score
- Clone the Repository:
git clone https://github.com/rizkyngrh23/NMME-CNN-training.git
- Install Dependencies
pip install -r requirements.txt
- Run Data Preprocessing
python preprocess.py
- Train the CNN Model
python training.py
- Evaluate the Model using Taylor Diagram
python taylor_diagram.py