Skip to content

About

End-to-end Python wind climate assessment and weather forecast analytics platform with interactive Streamlit dashboard, FastAPI REST API, and 20-year meteorological data modeling.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Repository files navigation

🌬️ Wind Resource Analytics

An end-to-end Python analytics application and interactive dashboard for 20-year historical wind climate assessment and weather forecast evaluation.


📌 Project Overview

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.

📂 Project Structure

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

🚀 Quick Start (Local Setup)

1. Prerequisites

  • Python 3.10+
  • Git

2. Clone and Install Dependencies

git clone https://github.com/veenothay078-sys/Wind_Resource_Analytics.git
cd Wind_Resource_Analytics
pip install -r requirements.txt

3. Run the Streamlit Dashboard

streamlit run dashboard/app.py

Or use the root launcher:

python main.py

Open your browser at http://localhost:8501.

4. Run the FastAPI REST API

python -m uvicorn api.main:app --reload --port 8000

Or use:

python main.py api

Access interactive API documentation at http://localhost:8000/docs.


📊 Analytics Pipelines

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.py

☁️ Deployment on Render

This repository includes a render.yaml configuration for 1-click or automated deployment on Render.

Manual Render Setup:

  1. Log in to Render and click New + -> Web Service.
  2. Connect your GitHub repository: veenothay078-sys/Wind_Resource_Analytics.
  3. 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
  4. Click Create Web Service.

📜 License

This project is licensed under the MIT License.

About

End-to-end Python wind climate assessment and weather forecast analytics platform with interactive Streamlit dashboard, FastAPI REST API, and 20-year meteorological data modeling.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages