Skip to content

fikriaf/mapping-network-analysis

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

2 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Spatial Load Disparities in Cellular Networks

Telkomsel Signal Distribution

GIS, Minimum Spanning Tree, and Signal-Weighted K-Nearest Neighbor Analysis of Telkomsel Towers in Banten, Indonesia

DOI Python License Powered by


πŸ“‹ Table of Contents


πŸ“– Overview

This project analyzes spatial load disparities in Telkomsel's cellular network across Banten Province, Indonesia, integrating:

  • Geographic Information Systems (GIS) β€” spatial data processing with shapefiles
  • Minimum Spanning Tree (MST) β€” optimal network connectivity modeling
  • Signal-Weighted K-Nearest Neighbor (SW-KNN) β€” user-to-tower association with signal-strength weighting

The analysis covers 100 Telkomsel towers (LTE & LTE-A) and simulates 1,000 user samples distributed across Banten. Signal strength is classified using RSRP (Reference Signal Received Power) thresholds:

Signal Level RSRP Threshold Color
🟒 Strong β‰₯ βˆ’80 dBm Green
🟑 Medium βˆ’96 to βˆ’80 dBm Yellow
πŸ”΄ Weak ≀ βˆ’96 dBm Red

πŸ“„ Paper Reference

This repository accompanies the peer-reviewed paper:

Nurhajati, R., Fahmi, F. A., Hadiputra, D. F., Nurhaida, I., & Purwanto, E. (2026). Spatial Load Disparities in Cellular Networks: Integrating Geographic Information System, Minimum Spanning Tree, and Signal-Weighted K-Nearest Neighbor for Telkomsel Towers in Banten, Indonesia. Engineering Proceedings, MDPI.
πŸ“Œ DOI: 10.3390/engproc2026128012


πŸ§ͺ Methodology

Methodological Framework

Methodological Framework

Network Analysis Flowchart

Flowchart

The core workflow consists of:

  1. Data Collection β€” Tower coordinates & specifications from Cellmapper.net
  2. Spatial Processing β€” Banten province boundary via shapefile (shape_Banten/)
  3. User Simulation β€” 1,000 signal samples with RSRP values based on distance to nearest tower
  4. Nearest Neighbor Association β€” Each user assigned to the closest tower
  5. Load Calculation β€” Weighted tower load (Bt) using signal-quality-dependent weights:
    • Strong signal β†’ weight = 1.0
    • Medium signal β†’ weight = 0.75
    • Weak signal β†’ weight = 0.5
  6. MST Construction β€” Minimum Spanning Tree for network topology visualization
  7. Overload Analysis β€” Classification: Overloaded (>20 users), Underutilized (<6 users), Normal

πŸ“ Project Structure

mapping-network-analysis/
β”œβ”€β”€ mapping_network.py              # Main analysis script (simulation mode)
β”œβ”€β”€ mapping_network_from_csv.py     # Analysis from pre-computed tower_load.csv
β”œβ”€β”€ tower.py                        # Tower data module (100 Telkomsel towers)
β”œβ”€β”€ sampel.py                       # User signal simulation module
β”œβ”€β”€ banten.py                       # Banten province map visualization
β”œβ”€β”€ Loc_blank_spot.py               # Blank spot geocoding & analysis
β”œβ”€β”€ underutilized.py                # Underutilized tower identification
β”œβ”€β”€ shape_Banten/                   # Banten province shapefile
β”‚   └── indonesia_Province_level_1.shp
β”œβ”€β”€ tower_load.csv                  # Pre-computed tower load data
β”œβ”€β”€ blank_spot.csv                  # Blank spot coordinates
β”œβ”€β”€ location_counts.csv             # Blank spot location frequency
└── result/                         # Output visualizations

βš™οΈ Installation

Prerequisites

  • Python 3.8+
  • pip package manager

Setup

# Clone the repository
git clone https://github.com/fikriaf/mapping-network-analysis.git
cd mapping-network-analysis

# Install dependencies
pip install geopandas pandas matplotlib networkx shapely tabulate geopy

Note: geopandas may require additional system dependencies on some platforms. Refer to the GeoPandas installation guide if needed.


πŸš€ Usage

1. Full Analysis with User Simulation

python mapping_network.py

This runs the complete pipeline: tower data β†’ user simulation β†’ nearest neighbor β†’ MST β†’ load analysis β†’ visualization.

2. Analysis from Pre-computed CSV

python mapping_network_from_csv.py

Loads existing tower_load.csv and generates the signal distribution map without re-simulating.

3. Blank Spot Analysis

python Loc_blank_spot.py

Reverse-geocodes blank spot coordinates from blank_spot.csv and visualizes distribution across cities/regencies.

4. Underutilized Tower Detection

python underutilized.py

Identifies towers operating below 30% of capacity threshold (C = 20).

5. Banten Province Map

python banten.py

Displays the base map of Banten province from the shapefile.


πŸ“Š Results & Visualizations

Tower and Signal Coverage

Tower and Signal Coverage

Telkomsel tower locations and signal coverage across Banten. Blue markers indicate tower positions with labels.

Signal Distribution with MST Network

Main Signal Distribution

Signal strength distribution map with Minimum Spanning Tree (MST) network topology, top 10 towers by load, and top 10 by connected users.

CSV-based Signal Distribution

Signal Distribution from CSV

Signal distribution generated from pre-computed tower load CSV data.

Top 10 Overloaded Towers

Top 10 Overloaded

Towers exceeding the capacity threshold (C = 20 users).

Signal Strength Heatmap with Blank Spots

Heatmap with Blank Spots

Heatmap visualization of signal strength with blank spot areas highlighted.

Blank Spot Distribution by Region

Blank Spot Distribution

Distribution of blank spot occurrences across cities and regencies in Banten.

Distance vs Signal Strength Regression

Distance vs Signal

Regression analysis with Pearson correlation between distance to nearest tower and signal strength.

Cellmapper Data Source

Cellmapper

Cellmapper.net tower data for the Banten area used as the data source.

Banten Province Base Map

Banten Map

Geographic boundary of Banten Province used for spatial analysis.


πŸ” Key Findings

  • Overloaded Towers: A percentage of towers exceed the capacity threshold (C = 20), indicating spatial load disparities.
  • Underutilized Towers: Several towers operate below 30% capacity, suggesting inefficient resource allocation.
  • Blank Spots: Signal dead zones identified across multiple cities/regencies in Banten.
  • Distance Correlation: Signal strength shows significant negative correlation with distance from the nearest tower (Pearson correlation).
  • MST Connectivity: The Minimum Spanning Tree reveals the optimal network topology connecting all towers with minimal total edge weight.

πŸ“š Citation

If you use this code or data in your research, please cite:

@article{nurhajati2026spatial,
  title={Spatial Load Disparities in Cellular Networks: Integrating Geographic Information System, Minimum Spanning Tree, and Signal-Weighted K-Nearest Neighbor for Telkomsel Towers in Banten, Indonesia},
  author={Nurhajati, R. and Fahmi, F. A. and Hadiputra, D. F. and Nurhaida, I. and Purwanto, E.},
  journal={Engineering Proceedings},
  publisher={MDPI},
  year={2026},
  doi={10.3390/engproc2026128012}
}

πŸ“œ License

This project is licensed under the MIT License β€” see the LICENSE file for details.


Built with ❀️ for Banten β€’ Fikri Armia Fahmi

About

This script analyzes and visualizes signal distribution in Banten using GeoPandas, Matplotlib, and NetworkX.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages