This repository contains the implementation of STORM and the code to reproduce the numerical experiments of the paper "Spatial Transformer for Radio Map Estimation" by Pham Q. Viet and Daniel Romero. The paper was presented in the International Conference on Communications (ICC), 2025.
-
Python version: you may need Python 3.12 or later.
-
The experiments (code) to train and evaluate STORM are in
experiments/transformer_experiments.py. -
Training and testing data are available inside folder
data. We will work with three datasets, referred to as USRP, Gradiant, and ray-tracing; for more information, see "Radio Map Estimation: Empirical Validation and Analysis".
After cloning the repository, do the following steps.
-
Install gsim:
git submodule initgit submodule updatebash gsim/install.shFor more information, see gsim. -
In
gsim_conf.py, changemodule_name = "experiments.example_experiments"tomodule_name = "experiments.transformer_experiments". -
An experiment, e.g.
experiment_1000can be run as follows:python run_experiment 1000 -
This step is optional as it is to download the trained weights for the benchmark estimators. The folders inside this link should be downloaded to
output/trained_estimators.
- Create training datasets:
- You can use Experiments 1000, 1005, or 1010 to create a training dataset for STORM.
- Experiment 1015 creates a training set with ray-tracing data for other DNN benchmarks.
The obtained training datasets will be stored inside folder output/datasets.
-
To train STORM on USRP, Gradiant, and ray-tracing data, run Experiments 2000, 2005, and 2010, respectively.
-
Numerical results:
- Run Experiment
3112to obtain Figure 3. - Run Experiment
3105to obtain Figure 4. - Run Experiment
3107to obtain Figure 5.
- Run Experiment
- Run Experiments
4000and4010to obtain Figure 6.
Contact: - Viet Pham: viet.q.pham@uia.no - Daniel Romero: daniel.romero@uia.no