An end-to-end Python analytics application and interactive dashboard for 20-year historical wind climate assessment and weather forecast evaluation.
Wind Resource Analytics provides comprehensive meteorological and energy-oriented wind assessment:
- 20-Year Historical Climate Analysis: Statistical analysis over 1,051,200 observation records across seasons, months, and directions.
- Wind Rose Generation: Visualizing 360-degree wind direction and speed distributions.
- Weather Forecast Evaluation: Comparing 10,000 weather forecast rows against actual observations, computing speed and power forecast errors.
- Interactive Streamlit Dashboard: Responsive visual exploration with key metrics, charts, and summary reports.
- FastAPI REST API: High-performance JSON endpoints for historical and forecast statistics.
Wind_Resource_Analytics/
├── .streamlit/
│ └── config.toml # Streamlit server & UI configuration
├── analytics/
│ ├── forecast_analysis.py # Forecast statistics calculation script
│ ├── forecast_wind_summary.csv # Computed forecast metrics summary
│ ├── historical_statistics.py # 20-year wind climate stats calculation
│ ├── historical_wind_statistics.csv # Computed historical summary
│ ├── historical_vs_forecast.py # Comparison calculation & plot script
│ ├── monthly_analysis.py # Monthly aggregation script
│ ├── monthly_wind_analysis.csv # Monthly aggregated metrics
│ ├── seasonal_analysis.py # Seasonal aggregation script
│ ├── seasonal_wind_analysis.csv # Seasonal aggregated metrics
│ ├── wind_direction_analysis.py # 8-sector wind direction distribution script
│ └── wind_direction_analysis.csv# Direction frequency & speed statistics
├── api/
│ └── main.py # FastAPI application service
├── charts/
│ ├── historical_vs_forecast.png # Comparison bar chart
│ ├── historical_wind_rose.png # 20-year historical wind rose plot
│ └── wind_rose.py # Wind rose generation script
├── dashboard/
│ └── app.py # Streamlit web dashboard application
├── data/
│ ├── Dataset-4 Long term wind climate dataset 20 years 10min.csv (Local raw file, ~111 MB)
│ └── Dataset-12 weather forecast 10000 rows.csv (Forecast dataset, ~1.45 MB)
├── processed/ # Processed cleaned datasets (generated locally)
├── check_data.py # Dataset quality & integrity verification
├── preprocess.py # Data cleaning and feature engineering pipeline
├── main.py # Root launcher (Streamlit & FastAPI runner)
├── requirements.txt # Project dependencies
├── render.yaml # Render Cloud deployment blueprint
└── .gitignore # Git exclusion rules
- Python 3.10+
- Git
git clone https://github.com/veenothay078-sys/Wind_Resource_Analytics.git
cd Wind_Resource_Analytics
pip install -r requirements.txtstreamlit run dashboard/app.pyOr use the root launcher:
python main.pyOpen your browser at http://localhost:8501.
python -m uvicorn api.main:app --reload --port 8000Or use:
python main.py apiAccess interactive API documentation at http://localhost:8000/docs.
To re-run the complete data pipeline from local raw datasets:
# 1. Verify data integrity
python check_data.py
# 2. Run preprocessing
python preprocess.py
# 3. Generate summary analytics
python analytics/historical_statistics.py
python analytics/monthly_analysis.py
python analytics/seasonal_analysis.py
python analytics/wind_direction_analysis.py
python analytics/forecast_analysis.py
python analytics/historical_vs_forecast.py
# 4. Generate wind rose plot
python charts/wind_rose.pyThis repository includes a render.yaml configuration for 1-click or automated deployment on Render.
- Log in to Render and click New + -> Web Service.
- Connect your GitHub repository:
veenothay078-sys/Wind_Resource_Analytics. - Set the following options:
- Environment:
Python 3 - Build Command:
pip install -r requirements.txt - Start Command:
streamlit run dashboard/app.py --server.port $PORT --server.address 0.0.0.0
- Environment:
- Click Create Web Service.
This project is licensed under the MIT License.