Frequently Asked Questions

Answers to the most common questions about the GeoVeil platform, GNSS interference monitoring, and data interpretation.

No results for this search.
General
What is GeoVeil?

GeoVeil is a real-time GNSS interference monitoring platform (GPS, Galileo, GLONASS) for the ROMPOS system — Romania's national CORS positioning network. The platform is developed by the National Centre for Cartography (CNC), an institution within ANCPI (the National Agency for Cadastre and Land Registration).

The platform collects, analyses and visualises RF interference data from 83 stations with spectrum-analysis capability (out of 86 active ROMPOS stations), providing automatic spoofing detection and ML forecasts of future activity.

How does GeoVeil work?

Every ROMPOS station with spectrum-analysis capability continuously streams ITDETECTSTATUSA and SPECTRUMANALYSIS data over TCP. GeoVeil connects asynchronously to all 83 monitored stations, parses the data in real time and stores it in PostgreSQL.

After every insert, an analysis engine evaluates 7 indicators for spoofing detection. Data is available for visualisation and API queries with a latency of a few seconds.

The live (V2) API collects ~340,000 events/day in real time (data available since 26 May 2026, continuously growing), with 7-indicator spoofing analysis. The classic (V1) API offers the historical archive — 549,182 records up to the end of May 2026.
Is the platform free / public?

The web interface and read APIs are publicly accessible, no authentication required. The displayed data comes from the ROMPOS system — public infrastructure operated by ANCPI through CNC.

Administrative features (data deletion, model retraining) are protected by a dashboard password.

What is the difference between Simple and Advanced mode?

Simple Mode shows the station map, interference charts (V1 polar + V2 timeline), systematic statistics, cross-station correlations and VADASE data.

Advanced Mode additionally exposes:

  • Threats tab — panoramic view of spoofing analysis for every station
  • Predictor tab — 24h ML forecast with probability and per-RF-band predictions
  • Spoofing tab in the station panel — 7-indicator radar chart + threat table
  • Prediction tab in the station panel — probability gauge + hourly forecast
GNSS & Interference
What is GNSS interference?

GNSS interference is any radio signal that disturbs the reception of satellite positioning signals (GPS, Galileo, GLONASS). It can be accidental (electronic equipment, TV/radio transmitters) or deliberate (jammers, spoofers).

Effects include: loss of positioning fix, position errors, accuracy degradation, up to complete inability to receive.

The use of GNSS jammers is illegal in Romania and across the EU (Regulation 2019/945, ANCOM).
What are the L1, L2, L5, E1 bands?

These are the frequency bands on which GNSS satellites broadcast their signals:

  • L1 (1575.42 MHz) — the primary GPS band, by far the most used, including civilian (smartphones, automotive)
  • L2 (1227.60 MHz) — the secondary GPS band, used for dual-frequency ionospheric correction
  • L5 (1176.45 MHz) — civil safety-of-life band, used by Galileo and GPS Block III
  • E1 (1575.42 MHz) — primary Galileo band, spectrally co-located with GPS L1

ROMPOS stations monitor all of these bands simultaneously, with up to 20 MHz of analysis bandwidth per band.

What do the power-loss values (PL, dBm) mean?

The estimated power loss (dBm) reflects how much an interference affects the useful satellite signal. The values are negative (in dBm):

  • 0 dBm — minimal / negligible degradation
  • -20 to -40 dBm — moderate interference
  • -40 to -60 dBm — significant interference, may affect accuracy
  • < -60 dBm — severe interference, possible loss-of-lock

In the V1 polar chart, power-loss vectors are drawn radially — the longer the vector, the stronger the interference.

Map & Stations
What do the marker colours on the map mean?

Colours reflect interference activity during the last hour (refreshed every 60 seconds):

  • Red — active interference detected within the last hour (marker-active)
  • Green — online, no recent interference (marker-idle)
  • Grey — data unavailable / station offline
Colours are only available with the V2 (Live) API. With V1 Classic, all markers stay grey — V1 has no live data endpoint.
How many stations does GeoVeil monitor and where are they?

The ROMPOS system consists of 86 active CORS stations (Continuously Operating Reference Stations), distributed across the whole of Romania — roughly 2–3 stations per county. Of these, 83 stations are equipped with spectrum-analysis capability and are monitored by GeoVeil for GNSS interference. 74 stations hold a VADASE licence for positional displacement analysis.

The spectrum-capable stations are equipped with NovAtel OEM7 multi-constellation, multi-frequency receivers, capable of simultaneously monitoring GPS, Galileo, GLONASS and BeiDou.

What does the station panel show when I click on a marker?

The side panel shows up to 6 tabs for the selected station:

  • Graph — V1 polar chart (hourly/spectral distribution) and/or V2 timeline + last-hour data
  • Statistics — systematic per-band statistics (V1): occurrences, CF min/max, BW, PL
  • Correlated — events correlated with other stations (V1 + V2 combined)
  • VADASE — East/North/Up positional displacements (74 stations with licence, V1 data)
  • Spoofing *(Advanced)* — 7-indicator radar chart + threat type / severity table
  • Prediction *(Advanced)* — probability gauge + 24h hourly forecast

The Spoofing and Prediction tabs are only available in Advanced Mode.

What is the difference between API V1 and V2?

V1 Classic (api.geoveil.ro/v2/v1) — the original API, with Romanian field names (BandaRF, Frecv_cent_MHz, DataOra). Provides the polar chart (hourly distribution on a 24h dial), systematic statistics, correlations and VADASE data.

V2 Live (api.geoveil.ro/v2) — the modern API with standardised field names (rfpath, centfreq_mhz, datetime). Provides chronological timeline, real-time data (last hour), spoofing analysis, aggregate analytics and ML prediction.

You can pick Both to display V1 polar and V2 timeline simultaneously inside the station panel.

API & Data
Do I need an API key or authentication?

No. All read endpoints are public and don't require authentication. You can query them directly from a browser, cURL or any programming language.

curl "https://api.geoveil.ro/v2/lh"
What format does the API return?

All responses are JSON. Timestamps are ISO 8601 UTC. Frequencies in MHz, bandwidths in MHz, power loss in dBm.

See the API Docs page for the full schema of each endpoint.

Is there a rate limit?

Yes — read endpoints are rate-limited per source IP. Specific limits and the 429 response are documented in API Docs → Rate limits. For heavy use, recommendations:

  • Leave at least 500 ms between requests
  • Use /analytics for global stats instead of 83 individual requests
  • Use /lh/summary for recent data (returns all stations in one shot)
How far back do the available data go?

The live (V2) stream covers interference data starting 26 May 2026 — a new high-resolution collection system gathering ~340,000 events/day and growing. For deeper historical perspective, the classic (V1) API offers an archive of 549,182 records (up to the end of May 2026) across the 83 stations.

The live archive grows continuously as new station data flows in.

Spoofing & Security
What is GNSS spoofing?

GNSS spoofing means broadcasting fake signals that mimic the satellite signals, in order to trick a GNSS receiver into computing a wrong position or time. It is much more sophisticated than jamming (which simply blocks the signal).

Possible impacts: aircraft, vessels or vehicles arriving at the wrong destination; disruption of critical infrastructure that depends on GNSS timing (telecoms, power grids).

Deliberate GNSS spoofing is a serious crime in Romania and across the EU.
What is meaconing?

Meaconing is a form of passive spoofing: the real satellite signals are received, delayed and re-emitted at higher power. The GNSS receiver "sees" the same signals but with an artificial delay — leading to position errors proportional to the introduced delay.

It is harder to detect than active spoofing because the signals are authentic (not generated artificially), but the timing is altered.

How does the 7-indicator spoofing detection engine work?

The engine evaluates every interference event across 7 independent dimensions, computing a 0–1 score per dimension:

  • Temporal — time clustering (spoofing signals come in bursts)
  • Spatial — geographic spread (spoofing affects multiple stations simultaneously)
  • Multi-band — simultaneous activity across multiple RF bands (characteristic of sophisticated spoofing)
  • PSD — spectral power density anomaly vs baseline
  • Correlation — similarity with events detected at other stations in the same window
  • Frequency pattern — concentration on exact GNSS frequencies (vs. accidental more diffuse interference)
  • Temporal drift — change in event parameters over time

The weighted average score yields the classification: spoofing_candidate, matched_spectrum, meaconing or clean.

How do I read the confidence and severity levels?

Confidence (0–1) is how certain the classification is: 0.9+ means all 7 indicators agree; 0.5 means inconclusive.

Severity (LOW / MEDIUM / HIGH) reflects the potential impact on GNSS operations:

  • HIGH — interference that can cause loss of fix or significant position errors
  • MEDIUM — perceptible accuracy degradation, but the positioning solution holds
  • LOW — minor impact, within normal operating tolerances
A high-confidence event with HIGH severity classified as spoofing_candidate deserves immediate investigation by ROMPOS operators.
ML Predictor
How does the ML predictor work?

GeoVeil offers two prediction models, selectable from the Predictor interface:

  • V1 — Classic (currently recommended): LightGBM (gradient boosting) trained on the historical archive of 549,182 records across the 83 stations. Accuracy: ~82 %, AUC-ROC: 0.91. A mature, stable model validated over years of data.
  • V2 — Live: a model under continuous retraining on the new high-resolution live dataset (~340,000 events/day since 26 May 2026). As the data volume grows, V2 accuracy improves progressively.

Both models use tabular features (hour, day, month, station coordinates, baseline) plus lag features (recent station activity) to predict interference probability for upcoming hours.

What does a 73 % probability mean?

A 73 % probability means the model estimates there is a 73 % chance that at least one interference event will occur during that hour at the selected station, based on historical patterns (hour, day-of-week, location, prior activity).

It is not a guarantee — interference also has a random component (unpredictable external sources). The predictor is useful for planning critical measurements or proactive alerting.

Suggested alert threshold: >70 % probability combined with HIGH severity and high confidence in the concurrent spoofing analysis.
How often does the model retrain?

The LightGBM model retrains automatically 60 seconds after server startup. Training takes ~30 s. Once done, the LSTM kicks off automatically (~5–10 minutes).

Manual retraining can be triggered via POST /api/predict/retrain. Current training state is available at GET /api/predict/status.

Which prediction model should I use?

For reliable predictions right now, we recommend the V1 — Classic model. It is trained on the complete historical archive (549,182 records) and delivers stable, validated results.

The V2 — Live model is currently retraining on the new high-resolution live dataset and improving its accuracy as more data accumulates. You can select it from the Predictor's Model dropdown, but until it matures, V1 stays the recommended choice.

ROMPOS
What is the ROMPOS system?

ROMPOS (Romanian Positioning System) is the national network of permanent GNSS reference stations, operated by ANCPI through the National Centre for Cartography (CNC). It provides real-time (RTK) and post-processed (RINEX) corrections for precision applications: surveying, cadastre, construction, geodesy.

The system consists of 86 active stations distributed across the whole of Romania (average density ~1 station per ~3,000 km²), of which 83 have interference-analysis capability and 74 have VADASE licences.

Official information: rompos.ro

How do GNSS interferences affect surveying / cadastre work?

Interferences can degrade or break the RTK (Real-Time Kinematic) solution, reducing precision from centimetres to tens of centimetres or even full fix-loss.

GeoVeil lets surveyors:

  • Determine whether a fix problem is caused by interference at the reference station
  • Pick hours / days with minimal interference for critical measurements (using the Predictor)
  • Correlate field issues with the database events
Technical
What is the "noise floor" in the Spectrum Analyzer?

ROMPOS stations use GR50 receivers with AR20 and AR25 geodetic GNSS antennas. Spectral analysis comes from the NovAtel OEM7 Interference Toolkit (ITK), which samples the RF spectrum across the GNSS bands (L1, L2, L5, L-band) and reports Power Spectral Density (PSD) in dBm/Hz.

The noise floor is the reference background-noise level — the power below which a signal cannot be distinguished from noise. The fundamental physical limit is thermal noise, −174 dBm/Hz (kT at 290 K). After amplification through the active antenna LNA and the receiver RF chain (~30 dB gain on L1), the effective noise floor shown by the analyzer sits around −144 dBm/Hz.

ITK compares the received spectrum against an interference-free reference calibrated at receiver startup; any significant rise above the noise floor is flagged as a possible interference event.

In GeoVeil live data, weak detected events show up just above the noise floor (~−145 dBm/Hz), typical events around −135 dBm/Hz, and strong jammers reach up to ~−92 dBm/Hz. The higher the PSD (closer to 0), the stronger the interference.

Reference: NovAtel OEM7 Interference Toolkit.

What technologies does GeoVeil use?
  • Backend: Flask + asyncio (Python), Gunicorn, PostgreSQL (~340,000 events/day, growing)
  • ML: LightGBM, PyTorch LSTM, scikit-learn (CV, calibration, ROC)
  • Frontend: Vanilla JS + Plotly.js + Leaflet.js (no UI framework)
  • Proxy: Caddy (automatic HTTPS, reverse proxy)
  • Infra: Docker Compose, Ubuntu Server
Is the interface mobile-friendly?

Yes. The interface is mobile-first: below 768 px the station panel becomes a bottom sheet (slides up from the bottom), navigation collapses into a hamburger, map controls compact.

Plotly.js charts are responsive (auto-resize). The Leaflet map fully supports touch.

How do I report a problem or bug?

Use the contact form or write directly to hi@geoveil.ro with a description of the issue, the exact URL, and a screenshot if possible.

For API issues, please include the cURL request that reproduces the problem.