Jammertest 2025 GNSS Interference Dataset
Authors/Creators
Description
Jammertest 2025 GNSS Interference Dataset
This repository contains a curated GNSS interference dataset recorded during Jammertest 2025 in Andøya, Norway. Jammertest is an authority-controlled outdoor measurement campaign that enables safely managed GNSS jamming, spoofing, and meaconing experiments under realistic propagation conditions.
The dataset is intended for research on GNSS interference monitoring, including interference detection, modulation/waveform classification, interference characterization, multi-source interference analysis, receiver-aware impact assessment, domain-shift evaluation, and direction finding / array-based interference analysis.
Repository structure
The dataset is stored as a sequence of HDF5 files in thedataset/ directory. Each file contains a consecutive range of samples from one test area.fraunhoferIIS_jammertest2025/
├── README.md
└── dataset/
├── Sample_Area1_0000000_0024999.h5
├── Sample_Area1_0025000_0049999.h5
├── Sample_Area1_0050000_0074999.h5
├── Sample_Area1_0075000_0099999.h5
├── Sample_Area1_0100000_0124999.h5
├── Sample_Area1_0125000_0149999.h5
├── Sample_Area1_0150000_0174999.h5
├── Sample_Area1_0175000_0199999.h5
├── Sample_Area1_0200000_0224999.h5
├── Sample_Area1_0225000_0249999.h5
├── Sample_Area1_0250000_0274999.h5
├── Sample_Area1_0275000_0299999.h5
├── Sample_Area1_0300000_0324999.h5
└── ...
The file naming convention is:
Sample_<Area>_<StartIndex>_<EndIndex>.h5
where <Area> identifies the test area (Area1 or Area2), <StartIndex> is the first sample index contained in the file, and <EndIndex> is the last sample index contained in the file. The chunked structure keeps file sizes manageable and enables partial loading during model training and evaluation.
Measurement campaign
The data were recorded during Jammertest 2025 in Andøya, Norway. The campaign provides a controlled outdoor test environment with a predefined transmission plan specifying when, where, and which signal type was transmitted.We recorded data at two official outdoor test sites.
Test Area 1
Test Area 1 is centered around the Bleik community house and its nearby surroundings. It contains a mixture of open outdoor space and nearby structures, enabling realistic propagation effects such as multipath and obstruction.Test Area 2
Test Area 2 is a dedicated open-air measurement setup at a parking lot. It is structured around surveyed reference points and fixed geometries, making it suitable for repeatable jammer placements and controlled multi-emitter configurations. Recordings were performed in parallel in both areas during the campaign schedule.Receiver setups
The dataset contains recordings from two receiver/antenna configurations.Innosense receiver
The first setup is a compact receiver module referred to asInnosense. It is equipped with a 3G+C antenna and a dual-band E1/E5 receiver front end.| Property | Value |
|---|---|
| Receiver type | Compact E1/E5 receiver module |
| Antenna | 3G+C antenna |
| Evaluated bands | E1 and E5, depending on recording |
| Quantization | 8-bit |
| Bandwidth | 40.5 MHz |
| Sampling rate | 81 MHz |
| Power supply | USB |
| Supply voltage | 5 V |
| Power consumption | 2 W |
CRPA receiver
The second setup uses a controlled reception pattern antenna (CRPA) consisting of a 2 x 2 patch array. This setup enables array-based and direction-finding analysis in addition to standard single-receiver interference classification.| Property | Value |
|---|---|
| Receiver type | CRPA array receiver |
| Antenna | 2 x 2 patch array |
| Bandwidth | 100 MHz |
| Sampling | Quadrature sampled |
| Snapshot duration | 10 microseconds |
| Main use | Wideband and array-based interference analysis |
Signal types and scenarios
The dataset contains a broad set of GNSS interference and deception scenarios. The transmitted events include both single-source and multi-source configurations.
Area 1 scenarios
Area 1 contains:- continuous-wave (
CW) interference, - frequency sweep (
Sweep) signals, - pseudo-random-noise-modulated (
PRN) jamming, - meaconing (
Meaconing), - spoofing (
Spoofing), - mixed meaconing and jamming events,
- mixed meaconing and spoofing events,
- power-step experiments with changing interference strength,
- single-band and multi-band GNSS configurations.
Typical bandwidths include approximately 0.1 MHz for CW interference, 10-20 MHz for PRN interference, and 20 MHz for sweep signals. Pure meaconing and spoofing entries have no nominal jamming bandwidth.
Area 2 scenarios
Area 2 contains a broader set of waveform families, includingChirp, ChirpB, ChirpM, ChirpMS, Triang, FmS, Mod, PRN, CW, spoofing, and multi-emitter configurations.Typical bandwidths range from narrowband CW events to wideband chirp and triangular waveforms, including approximately 0.1 MHz, 2 MHz, 20 MHz, 26-30 MHz, 70 MHz, 77-81 MHz, 85-87 MHz, and up to approximately 100 MHz-class events.
Labels and metadata
The dataset is designed for supervised learning and benchmarking. Each recording is associated with campaign metadata such as:- test area,
- recording day,
- jammer ID,
- signal type,
- GNSS band(s),
- nominal bandwidth,
- power setting,
- start time,
- end time.
These metadata enable time-aligned ground-truth labels for machine learning tasks.
Typical labels used in our experiments include:
| Label | Description |
|---|---|
type |
Interference waveform or scenario type, e.g., CW, PRN, Sweep, Chirp, Spoofing |
band |
GNSS band(s) affected by the transmission |
bandwidth |
Nominal occupied bandwidth in MHz |
power |
Transmit-power setting from the campaign metadata |
area |
Test Area 1 or Test Area 2 |
receiver |
Innosense or CRPA |
sample_index |
Sample index within the released file sequence |
The released HDF5 files are intended to be used together with the metadata in this repository and/or the official Jammertest transmission plan.
The /data dataset contains 8-bit quantized raw IQ samples. The samples are stored in interleaved IQ format, i.e., I0, Q0, I1, Q1, and so on. We did not use automatic gain control during the recordings. Instead, we set a defined VGA value for each recording, which is also included in the labels.
The /label dataset has five columns, with the following meaning:
- Jammer type
- Signal strength in dBm
- Jammer bandwidth in MHz
- VGA value, meaning the Variable-Gain Amplifier setting
- E-band
We recorded only on the E1 and E5a bands, and this information is represented in the E-band label column.
For the jammer type column, the numeric labels correspond to the following mapping: jammer_map = { "CW": 0, "Sweep": 1, "Prn": 2, "Meac": 3, "Spoof": 4, "Chirp": 5, "ChirpB": 6, "Triang": 7, "Meac,Prn": 8, "Meac,Spoof": 9, "Mod": 10, "ChirpM": 11, "ChirpMS": 12, "FmS": 13, "Chirp,Spoof": 14, "Chirp,Prn": 15, "Chirp,Prn,Triang": 16 }
Comma-separated names indicate scenarios with multiple emitters. Please note, however, that there are also scenarios with multiple emitters of the same jammer type, which are not separately labeled. The signal strength is defined as emitted by the jammer. Since different jammers were placed at different distances from our receiver, the received signal strength can vary accordingly. There is no additional metadata file required to interpret the HDF5 labels. The dataset can be used as is.
Official transmission plan repository:
https://github.com/NPRA/jammertest-plan
Suggested machine-learning tasks
This dataset supports multiple research tasks.1. Interference classification
Predict the waveform/scenario class from IQ samples, magnitude time series, or spectrograms.Example classes include CW, Sweep, PRN, Meaconing, Spoofing, Chirp, ChirpB, Triang, Mod, and FmS.
2. Interference characterization
Estimate physically meaningful interference attributes, such as modulation/waveform type, occupied bandwidth, signal strength, and affected GNSS band(s).3. Multi-source interference detection
Detect and localize multiple simultaneous interference sources in a spectrogram. This can be formulated as an object-detection task in the time-frequency plane.4. Receiver-aware impact estimation
Use the recorded spectra and estimated interference power to compute navigation-relevant degradation metrics such as the spectral separation coefficient (SSC), jamming resistance factor Q, effective carrier-to-noise density ratio(C_s/N_0)_eff, and C/N0 degradation.5. Domain-shift evaluation
Evaluate robustness across Area 1 vs. Area 2, Innosense vs. CRPA, E1 vs. E5, weak vs. strong interference, single-source vs. multi-source interference, and jamming vs. spoofing/meaconing scenarios.Downloading the Full Dataset
The archive provided by Zenodo contains the repository snapshot and the Git LFS pointer files, but not the complete binary dataset.
The dataset files are stored in the linked GitHub repository using Git Large File Storage (Git LFS). Therefore, downloading the small Zenodo archive alone does not retrieve the full .h5.part-* files.
Requirements
Install Git and Git LFS before downloading the dataset.
On Ubuntu or Debian:
sudo apt update
sudo apt install git git-lfs
git lfs install
Download the Complete Repository
Clone the GitHub repository:
git clone git@github.com:FelixOtt94/FraunhoferIIS_Jammertest2025.git
cd FraunhoferIIS_Jammertest2025
Git LFS should automatically download the large dataset files during cloning.
If the repository was cloned without downloading the LFS files, retrieve them manually:
git lfs pull
This command replaces the small Git LFS pointer files in the working directory with the actual binary dataset parts.
Download Only a Specific Dataset
The complete repository is large. To avoid downloading all LFS files, first clone only the Git repository and its pointer files:
GIT_LFS_SKIP_SMUDGE=1 git clone \
git@github.com:FelixOtt94/FraunhoferIIS_Jammertest2025.git
cd FraunhoferIIS_Jammertest2025
Then download only the required dataset parts. For example:
git lfs pull \
--include="dataset/Sample_Area1_0900000_0924999.h5.part-*"
Multiple datasets can be selected using comma-separated patterns:
git lfs pull \
--include="dataset/Sample_Area1_0900000_0924999.h5.part-*,dataset/Sample_Area1_0925000_0949999.h5.part-*"
Reconstructing an HDF5 File
Large HDF5 files were split into smaller parts because of file-size limits.
A filename such as:
Sample_Area1_0900000_0924999.h5.part-aa
is not an independently readable HDF5 file. It is one binary part of the original .h5 file.
After downloading all parts belonging to one dataset, reconstruct the original HDF5 file by concatenating them in order:
cat dataset/Sample_Area1_0900000_0924999.h5.part-* \
> dataset/Sample_Area1_0900000_0924999.h5
The resulting file can then be opened with standard HDF5 software such as h5py, HDFView, or MATLAB.
Do not attempt to open an individual .part-aa, .part-ab, or .part-ac file as an HDF5 file.
Checking Whether a File Is Still an LFS Pointer
A Git LFS pointer is a small text file. Check a downloaded file with:
head dataset/Sample_Area1_0900000_0924999.h5.part-aa
If the output begins with:
version https://git-lfs.github.com/spec/v1
the actual binary file has not yet been downloaded.
Run:
git lfs pull \
--include="dataset/Sample_Area1_0900000_0924999.h5.part-*"
After a successful download, the file will contain binary data instead of the pointer text.
Important Notes
The complete dataset is very large. Ensure that sufficient disk space and network bandwidth are available before running git lfs pull without an --include filter.
The Zenodo archive primarily provides a permanently archived snapshot of the repository, source code, metadata, and Git LFS references. The full dataset content is retrieved from the linked GitHub repository through Git LFS.
Loading HDF5 files
The dataset is stored in HDF5 format. The exact internal key structure may depend on the exported version. A typical inspection workflow in Python is:import h5py
import numpy as np
path = "dataset/Sample_Area1_0000000_0024999.h5"
with h5py.File(path, "r") as f:
# Replace these keys with the keys shown by f.keys()
samples = np.array(f["samples"])
labels = np.array(f["labels"])
print(samples.shape)
print(labels.shape)
Recommended splits
For benchmarking, we recommend reporting results under several splits:- Random split within one area: train and test on the same area using a random train/test split.
- Area transfer: train on Area 1 and test on Area 2, and vice versa.
- Joint-area training: train on Area 1 + Area 2 and test separately on each area.
- Receiver transfer: train on one receiver setup and test on the other, where applicable.
- Weak-jammer filtering: evaluate with and without very weak jammer events below a predefined power threshold.
These splits help quantify domain shift across site, receiver, band, and interference strength.
Notes on interpretation
The dataset contains realistic field measurements and therefore includes environmental multipath, varying jammer-receiver geometry, varying signal strength, receiver-specific front-end effects, different bandwidth limitations, heterogeneous class frequencies, and multi-source interference events.Class distributions are not balanced, because they follow the actual campaign transmission plan. This imbalance is intentional and reflects realistic operational conditions.
Citation
For more information of the dataset and results, see our publication. If you use our dataset for your research, please consider citing:@inproceedings{heublein_ion_gnss2026,
author = {Lucas Heublein and {I\~{n}igo} Cort\'{e}s Vidal and Tobias Feigl and Alexander Rügamer and Felix Ott},
title = {{Analyzing and Characterizing Multi-Source Interference Effects at Jammertest Norway 2025}},
booktitle = {{Proc. of the Intl. Technical Meeting of the Satellite Division of the Institute of Navigation (ION GNSS+)}},
month = sep,
year = 2026,
address = {Orlando, Florida}
}
Acknowledgment
This work has been carried out within the DARCII project, funding code 50NA2401, and the PaiL project, funding code 50NP2506, sponsored by the German Federal Ministry for Economic Affairs and Climate Action (BMWK) and the German Federal Ministry for Transport (BMV), and supported by the German Space Agency at DLR, the Bundesnetzagentur (BNetzA), and the Federal Agency for Cartography and Geodesy (BKG).License
This work is licensed under a CC BY-NC-SA 4.0: Creative Commons Attribution-Noncommercial-ShareAlike, see https://creativecommons.org/licenses/by-nc-sa/4.0/Contact
If you have any questions or tips to improve the datasets, contact us:Lucas Heublein: lucas.heublein@iis.fraunhofer.de
Felix Ott: felix.ott@iis.fraunhofer.de
Nordostpark 84, 90411 Nürnberg, Germany, GoogleMaps
Fraunhofer Institute for Integrated Circuits IIS, Nürnberg, Germany
Files
FelixOtt94/FraunhoferIIS_Jammertest2025-dataset.zip
Additional details
Related works
- Is supplement to
- Software: https://github.com/FelixOtt94/FraunhoferIIS_Jammertest2025/tree/dataset (URL)
Software
- Repository URL
- https://github.com/FelixOtt94/FraunhoferIIS_Jammertest2025