Skip to content

Abhishumat23/Weather-Trend-Analysis-and-Forecasting

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Weather Trend Analysis and Forecasting

🌤️ A comprehensive weather forecasting system combining Classical ML, Quantum Computing, and Modern Web Technologies

🚀 Features

  • Machine Learning Models: Linear Regression, XGBoost, LSTM for weather prediction
  • Quantum Computing: Qiskit-based quantum feature selection and classification
  • Interactive Web Interface: Clean HTML/CSS/JS frontend with real-time visualizations
  • REST API: FastAPI backend with comprehensive endpoints
  • Data Processing: Advanced preprocessing pipeline for weather datasets
  • Visualizations: Interactive charts and performance comparisons

📋 Requirements

Python Dependencies

  • Python 3.8+
  • FastAPI & Uvicorn for web backend
  • Scikit-learn, XGBoost, TensorFlow for ML models
  • Qiskit & PennyLane for quantum computing
  • Pandas, NumPy for data processing
  • Matplotlib, Plotly for visualizations

System Requirements

  • 4GB+ RAM recommended
  • Modern web browser with JavaScript enabled
  • Internet connection for CDN resources

🛠️ Installation

  1. Clone the repository
git clone <repository-url>
cd New-Weather
  1. Create virtual environment
python -m venv weather_env
source weather_env/bin/activate  # On Windows: weather_env\Scripts\activate
  1. Install dependencies
pip install -r requirements.txt
  1. Verify installation
python -c "import qiskit, tensorflow, fastapi; print('All dependencies installed successfully!')"

🎯 Quick Start

1. Start the API Server

cd src/api
python main.py

The API will be available at http://localhost:8000

2. Open the Web Interface

Navigate to http://localhost:8000 in your browser or open src/frontend/index.html

3. Load Sample Data

  • Click "Generate Sample Data" to create synthetic weather data
  • Or upload your own CSV file with weather measurements

4. Train Models

  • Select models to train (Linear Regression, XGBoost, LSTM, Quantum)
  • Click "Start Training" and monitor progress
  • View performance metrics after training completes

5. Make Predictions

  • Enter weather features (temperature, humidity, pressure, wind speed)
  • Select a trained model
  • Get instant predictions

📁 Project Structure

New-Weather/
├── data/                           # Data processing modules
│   └── preprocessing.py           # Weather data preprocessing
├── src/
│   ├── api/                       # FastAPI backend
│   │   └── main.py               # Main API server
│   ├── frontend/                  # Web interface
│   │   ├── index.html            # Main HTML page
│   │   ├── styles.css            # Styling
│   │   └── script.js             # Frontend JavaScript
│   ├── ml_models/                 # Machine learning models
│   │   └── models.py             # ML model implementations
│   ├── quantum/                   # Quantum computing modules
│   │   └── quantum_ml.py         # Quantum ML algorithms
│   └── utils/                     # Utility functions
│       └── visualization.py      # Plotting and visualization
├── models/                        # Saved model files
├── notebooks/                     # Jupyter notebooks for analysis
├── tests/                         # Unit tests
├── requirements.txt              # Python dependencies
└── README.md                     # This file

🤖 Machine Learning Models

Classical Models

  • Linear Regression: Baseline model for weather prediction
  • XGBoost: Gradient boosting for improved accuracy
  • LSTM: Neural network for time series forecasting

Quantum Models

  • Quantum Feature Selector: Uses variational quantum circuits for feature selection
  • Quantum Kernel Classifier: Quantum-enhanced SVM for pattern classification
  • Hybrid Classical-Quantum: Combines classical preprocessing with quantum processing

⚛️ Quantum Computing Features

Qiskit Integration

  • Variational Quantum Circuits (VQC)
  • Quantum Feature Maps
  • Quantum Kernel Methods
  • NISQ-era quantum algorithms

PennyLane Support

  • Quantum neural networks
  • Hybrid optimization
  • Automatic differentiation

📊 Data Processing

Supported Data Formats

  • CSV files with weather measurements
  • Open-Meteo API integration (future)
  • Multiple weather stations data

Data Features

  • Temperature, humidity, pressure, wind speed
  • Datetime handling and feature engineering
  • Missing value imputation
  • Outlier detection and removal
  • Feature scaling and normalization

🔧 API Endpoints

Data Management

  • POST /api/upload-data - Upload weather data CSV
  • POST /api/generate-sample-data - Generate synthetic data
  • GET /api/data-info - Get dataset information

Model Training

  • POST /api/train-models - Start model training
  • GET /api/training-status - Check training progress
  • GET /api/model-metrics - Get model performance metrics

Predictions

  • POST /api/predict - Make weather predictions
  • POST /api/visualize - Generate visualization plots

Quantum Computing

  • GET /api/quantum-info - Get quantum computing status

📈 Performance Metrics

Classical ML Metrics

  • Mean Absolute Error (MAE)
  • Root Mean Square Error (RMSE)
  • R² Score
  • Cross-validation scores

Quantum Metrics

  • Quantum advantage measurements
  • Feature selection efficiency
  • Quantum vs classical comparison

🎨 Visualizations

Available Plots

  • Forecast vs Actual comparisons
  • Model performance comparisons
  • Feature importance charts
  • Residual analysis
  • Time series forecasting
  • Correlation matrices

Interactive Features

  • Plotly-based interactive charts
  • Real-time data updates
  • Downloadable visualizations
  • Responsive design

🧪 Testing

Run the test suite:

python -m pytest tests/

Test individual components:

# Test data preprocessing
python data/preprocessing.py

# Test ML models
python src/ml_models/models.py

# Test quantum modules
python src/quantum/quantum_ml.py

🔬 Development

Adding New Models

  1. Implement model class in src/ml_models/
  2. Add training logic to WeatherMLModels
  3. Update API endpoints in src/api/main.py
  4. Add frontend controls in src/frontend/

Adding New Quantum Algorithms

  1. Implement quantum circuit in src/quantum/
  2. Add to QuantumWeatherPredictor
  3. Update quantum info endpoint
  4. Document quantum advantage

Custom Datasets

  1. Implement loader in data/preprocessing.py
  2. Add data validation
  3. Update frontend upload handling
  4. Test with various data formats

🚨 Troubleshooting

Common Issues

Quantum libraries not found

pip install qiskit qiskit-aer pennylane

TensorFlow/LSTM errors

pip install tensorflow>=2.13.0

API server issues

# Check if port 8000 is available
lsof -i :8000
# Or use different port
uvicorn main:app --port 8001

Frontend not loading

  • Ensure API server is running
  • Check browser console for errors
  • Verify CORS settings

Performance Issues

  • Reduce dataset size for testing
  • Use CPU-only TensorFlow for development
  • Enable quantum simulator fallbacks

🤝 Contributing

  1. Fork the repository
  2. Create feature branch: git checkout -b feature-name
  3. Commit changes: git commit -m "Add feature"
  4. Push to branch: git push origin feature-name
  5. Submit pull request

📄 License

This project is licensed under the MIT License - see the LICENSE file for details.

🙏 Acknowledgments

  • Qiskit community for quantum computing tools
  • FastAPI team for excellent web framework
  • Plotly for interactive visualizations
  • Weather data providers and research community

📞 Support

For questions or issues:

  • Open GitHub issue
  • Check documentation
  • Review troubleshooting guide

Built with ❤️ using Python, Quantum Computing, and Modern Web Technologies

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors