Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/hamidurrk/ground-station
Visualization and analysis tool to analyze signal strength data to identify areas with poor network coverage
https://github.com/hamidurrk/ground-station
machine-learning mean-shift network-analysis robotics scikit-learn
Last synced: about 2 months ago
JSON representation
Visualization and analysis tool to analyze signal strength data to identify areas with poor network coverage
- Host: GitHub
- URL: https://github.com/hamidurrk/ground-station
- Owner: hamidurrk
- Created: 2023-11-05T20:55:03.000Z (about 1 year ago)
- Default Branch: main
- Last Pushed: 2024-03-09T16:37:08.000Z (11 months ago)
- Last Synced: 2024-03-09T17:36:44.738Z (11 months ago)
- Topics: machine-learning, mean-shift, network-analysis, robotics, scikit-learn
- Language: Python
- Homepage:
- Size: 35.7 MB
- Stars: 2
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Network Tower Location Estimation Using Mean Shift Clustering
This project aims to estimate network tower locations using the Mean Shift clustering algorithm based on signal strength measurements collected by a robot at various locations. The software provides visualization tools to analyze signal strength data and identify areas with poor network coverage.
## Overview
The ground station software processes signal strength data obtained from a robot's measurements in Dhaka, Bangladesh. The data consists of latitude, longitude, and signal strength (CSQ) values, ranging from 0 to 31. The software visualizes this data on a map, colorizing each point based on signal strength, and utilizes the Mean Shift clustering algorithm to estimate network tower locations.
## Features
- **Data Visualization**: Visualize signal strength data on a map, with color-coded markers representing signal strength levels.
- **Mean Shift Clustering**: Utilize the Mean Shift clustering algorithm to cluster data points based on signal strength measurements.
- **Cluster Analysis**: Analyze clusters to identify areas with poor network coverage and potential locations for network towers.
- **3D Plot Visualization**: Generate a 3D surface plot to visualize signal strength distribution across different locations.
- **Customizable Interface**: Customize map type and appearance mode to enhance user experience.## Usage
1. **Data Loading**: Load signal strength data obtained from robot measurements.
2. **Data Visualization**:
- View Heatmap: Visualize signal strength distribution on the map.
- View Cluster: Utilize Mean Shift clustering to identify areas with poor network coverage.
- View Tower: Visualize estimated network tower locations based on clustering results.
3. **3D Plot Visualization**: Analyze signal strength distribution using a 3D surface plot.
4. **Map Customization**: Choose map type (Google normal, Google satellite, or OpenStreetMap) and appearance mode (Light, Dark, or System).
5. **Reset**: Reset map to default settings.## Repository Structure
- `images/`: Contains images used in the project.
- `optimizer/`: Contains scripts and data related to data optimization and clustering.
- `plots/`: Contains generated plots.
- `README.md`: Project overview and usage instructions.
- `app.py`: Main Python script for the ground station software.## Requirements
- Python 3.x
- Tkinter
- PIL
- numpy
- matplotlib
- scipy
- pandas
- colour
- requests## Installation
1. Clone the repository:
```
git clone https://github.com/hamidurrk/ground-station.git
```2. Setup virtual environment:
```bash
python -m venv venv
./venv/Scripts/activate
```3. Install dependencies:
```bash
pip install -r requirements.txt
```3. Run the application:
```
python app.py
```## Credits
This project was developed by Md Hamidur Rahman Khan as part of [Tethr].