K-means clustering and facility optimization tool for planning mobile health clinic routes in Malawi, using population data and PuLP linear programming.
# Wheels Clinics - Malawi Population Clustering
This repository contains scripts for analyzing and visualizing population distribution in Malawi using K-means clustering algorithms. The tools help identify optimal locations for mobile health clinics by clustering population data.
## đź“‹ Table of Contents
- Overview
- Prerequisites
- Installation
- Repository Structure
- Quick Start
- Available Scripts
- Data Files
- Outputs
- Troubleshooting
## 🎯 Overview
This project provides tools to:
- Cluster population data for different demographic groups in Malawi
- Visualize population distribution on interactive maps
- Generate optimized cluster centers for service delivery planning
- Create heat maps and density visualizations
- Display Traditional Authorities (administrative) boundaries
## đź”§ Prerequisites
- Python 3.8 or higher
- Git with Git LFS (Large File Storage) support
- Web browser (for viewing interactive maps)
## 📦 Installation
### 1. Clone the Repository
```bash
git clone
github.com
cd wheels-clinics
```
### 2. Set Up Git LFS
The population data files are stored using Git LFS. Install and set up Git LFS:
```bash
# Install Git LFS (if not already installed)
# On Ubuntu/Debian:
sudo apt-get install git-lfs
# On macOS:
brew install git-lfs
# On Windows:
# Download from
git-lfs.github.com
# Initialize Git LFS
git lfs install
# Pull the large data files
git lfs pull
```
### 3. Install Python Dependencies
```bash
pip install -r requirements.txt
```
Required packages:
- `pandas` - Data manipulation
- `numpy` - Numerical computing
- `scikit-learn` - Machine learning (K-means clustering)
- `geopandas` - Geographic data processing
- `matplotlib` - Static visualizations
- `folium` - Interactive maps
- `pulp` - Optimization solver
- `dash` - Interactive dashboards
- `plotly` - Interactive visualizations
## 🚀 One-Command Pipeline
**NEW**: Run the entire optimization pipeline with a single command!
```bash
# Make …