Map your WiFi network performance by combining GPS tracking with network measurements. This tool creates beautiful signal strength visualizations using Ordinary Kriging interpolation to transform sparse measurements into comprehensive coverage maps.
WiFi Mapper consists of two main components:
- A network performance logger that collects ping and speed test data
- An analysis notebook that combines GPS tracks with network measurements to create interpolated coverage maps
python >= 3.8
gpxpy
pandas
matplotlib
seaborn
contextily
geopandas
pyproj
speedtest-cli
- Download GPX Tracker from the App Store on your mobile device
- Install required Python packages
- Start GPS tracking in GPX Tracker app
- Run the network logger:
python logger.py
- Walk around your area of interest while the script collects data
- Export the GPX file from GPX Tracker and place it in the project directory
- Run the analysis notebook to generate visualizations
wifi_mapper/
├── logger.py # Network performance data collection script
├── analysis.ipynb # Jupyter notebook for data analysis and visualization
The logger.py
script collects:
- Ping statistics (min/avg/max/packet loss) every 5 seconds
- Speed test measurements (download/upload/ping) every 5 minutes
- Automatic CSV logging with timestamps
The analysis notebook (analysis.ipynb
) provides:
- GPS track visualization
- Network performance heatmaps
- Kriging interpolation for coverage estimation
- Start GPS tracking before running the logger script
- Walk at a steady pace to ensure even sampling
- Cover the area in a grid pattern when possible
- Make sure to visit areas where you expect different signal strengths
- Let the script run for at least a few minutes in each location
The analysis notebook generates several types of visualizations:
- Raw measurement points overlaid on a map
- Interpolated coverage heatmaps
- Uncertainty heatmaps
Feel free to open issues or submit pull requests! Some areas for potential improvement:
- Additional network metrics collection
- More sophisticated interpolation methods
- Real-time visualization