Research software developed by Brianna Laird as part of her PhD research at Deakin University. This repository contains a dataset generation framework for building realistic datasets for B5G/6G network planning research.
This repository contains a semi-automated dataset generation framework for building realistic datasets for B5G/6G network planning research. It was designed to support experimentation with reconfigurable RAN, converged optical X-haul, and large-scale network optimisation problems.
The framework generates network planning datasets including:
- Road network topologies (road edges and road nodes)
- Candidate RU, DU, and CU locations
- Demand points and cluster centroids
- Hotspot locations and backup user distributions
- Deployment metadata and configuration summaries
The generator is designed to simplify the process of constructing datasets for new geographic regions while still allowing manual adjustments where required.
Generated datasets can be used directly with the companion repository:
If you use this repository or generated datasets in academic work, please cite this repository.
GitHub provides a built-in "Cite this repository" option via the repository sidebar.
@software{Laird_B5G_Dataset_Generator_2026,
author = {Laird, Brianna},
license = {GPL-3.0},
title = {{B5G Network Dataset Generator}},
url = {https://github.com/breezy-codes/B5G-network-dataset-generator},
version = {1.0.0},
year = {2026}
}- Semi-automated dataset generation pipeline
- Configurable deployment parameters
- Geographic region generation using polygon coordinates
- Automatic road and topology extraction and cleaning
- JSON summary output for generated datasets
- Interactive map visualisation support
- Designed for experimentation with B5G/6G planning algorithms
π Repository/
- π datasets/ β Generated datasets
- π maps/ β Generated map visualisations
- π scripts/ β Dataset generation and preprocessing scripts
- π build_all_paths.py β Builds network connectivity and routing paths
- π build_map_legend.py β Creates legends for generated map visualisations
- π collect_roads.py β Extracts and processes road network data
- π config.py β Main dataset generation configuration file
- π generate_backup_RUs.py β Generates backup RU locations
- π generate_dataset_summary.py β Creates JSON summaries for generated datasets
- π generate_demands.py β Generates network demand distributions
- π generate_devices.py β Generates RU, DU, and CU device placements
- π generate_hotspots.py β Generates hotspot regions and concentrated demand areas
- π generate_users.py β Generates user distributions across the region
- π main.py β Main dataset generation pipeline
- π requirements.txt β Python requirements
- π README.md β Main repository documentation
git clone https://github.com/breezy-codes/B5G-network-dataset-generator.git
cd B5G-network-dataset-generatorPython 3.9+ is recommended.
pip install -r requirements.txtChoose the geographic region you want to generate a dataset for, I recommend using https://geojson.io/next/ to draw a polygon around the desired area and export the coordinates.
Once you have the polygon coordinates for the region, add them to:
scripts/config.pyExample:
POLYGON_COORDS = [
(longitude_1, latitude_1),
(longitude_2, latitude_2),
...
]Modify the dataset generation parameters inside:
scripts/config.pyThis includes settings such as:
- RU information -
- Number of RUs
- RU coverage radius
- RU capacity
- Number of existing RUs (if any)
- Number of backup RUs (if any)
- DU information -
- Number of DUs
- DU capacity
- DU ports
- Number of existing DUs (if any)
- CU information -
- CU capacity
- CU ports
- Demand information -
- Demand grid size
- Number of base users per demand
- Number of demand clusters
- Cluster core user
- Number of core cluster users per demand
- Number of edge cluster users per demand
- Hotspot information -
- Number of hotspots
- Hotspot radius
- Minimum distance between hotspots
- Polygon Coordinates -
- List of (longitude, latitude) tuples defining the region polygon
Execute:
python main.pyThis will automatically build the complete dataset.
After generation, the framework produces:
- All generated datasets in the
datasets/directory - Map visualisations in the
maps/directory - A JSON summary file for each dataset containing metadata and configuration details
While the framework automates most of the generation process, some manual refinement may still be required depending on the selected region.
This can include:
- Relocating CU locations to more suitable positions
- Adjusting problematic road edges
- Moving incorrectly positioned devices
- Correcting unusual topology artefacts
- Refining generated connectivity paths
Different geographic regions may require different levels of manual adjustment.
This framework was developed for research into:
- B5G/6G network planning
- Optical X-haul deployment
- Large-scale combinatorial optimisation problems
The generated datasets are intended to support reproducible experimentation and benchmarking of network planning algorithms.
|
Phoebe: Lead Developer πͺ½ Forever reviewing pull requests from above |
Stanley: Budding New Developer Currently learning the sacred art of debugging |
Contribution Rule: If you submit code, you must include a photo of your cat. No cat? No commit! (Phoebe enforces this strictly.)
- Fork the repository and create a feature branch
- Document any new generation scripts or utilities
- Include example outputs where possible
- Ensure generated datasets remain reproducible
Optional (but encouraged): Include a photo of your cat colleague.
This project is released under the GPL-3.0 License. See the LICENSE file for details.