WeatherIQ is a machine learning inference system for classifying weather conditions from environmental parameters.
The project focuses on deploying machine learning models through a modular inference architecture with:
- API-based model serving
- reproducible preprocessing pipelines
- frontend/backend integration
- containerized deployment
- real-time prediction workflows
The platform exposes a FastAPI inference service alongside an interactive Streamlit frontend for live predictions.
🌐 https://cloud-cover-classification-cm3ajlcsp6ytwzkdphchzy.streamlit.app/
Backend API & Documentation
┌──────────────────────┐
│ Streamlit Client │
└──────────┬───────────┘
│
▼
POST /predict
│
▼
┌──────────────────────┐
│ FastAPI Backend │
└──────────┬───────────┘
│
▼
┌──────────────────────┐
│ ML Inference Layer │
│ │
│ • Feature Scaling │
│ • One-Hot Encoding │
│ • Classification │
└──────────┬───────────┘
│
▼
Prediction + Confidence
- RESTful inference API using FastAPI
- Request validation using Pydantic schemas
- Unified preprocessing and inference workflow
- Serialized ML artifact bundle for reproducible inference
- Probability-based confidence estimation
- Decoupled frontend and backend services
- Containerized deployment using Docker and Docker Compose
- Modular deployment-ready project structure
POST /predict{
"Temperature": 14.0,
"Humidity": 73,
"Wind_Speed": 9.5,
"Precipitation": 82.0,
"Atmospheric_Pressure": 1010.82,
"Visibility": 3.5,
"Season": "Winter",
"Location": "inland"
}{
"prediction": "Rainy",
"confidence": 0.87
}The backend loads a serialized artifact bundle containing:
- trained classification model
- feature scaler
- one-hot encoder
- feature mappings
This ensures preprocessing consistency between training and inference environments while reducing feature mismatch during deployment.
| Layer | Technologies |
|---|---|
| Machine Learning | scikit-learn |
| Backend | FastAPI, Uvicorn |
| Frontend | Streamlit |
| Data Processing | pandas, NumPy |
| Containerization | Docker, Docker Compose |
| Deployment | Render, Streamlit Cloud |
docker compose builddocker compose upgit clone https://github.com/YuvarajGML/Cloud-Cover-Classification.git
cd Cloud-Cover-Classificationcd backend
pip install -r requirements.txt
uvicorn app:app --reload --port 10000cd Frontend
pip install -r requirements.txt
streamlit run frontend.pyCloud-Cover-Classification/
│
├── backend/
│ ├── app.py
│ ├── requirements.txt
│ ├── Dockerfile
│ └── weather_model_bundle.pkl
│
├── Frontend/
│ ├── frontend.py
│ ├── requirements.txt
│ └── Dockerfile
│
├── docker-compose.yml
├── .dockerignore
└── README.md