Skip to content

pdp3: warn on the console when the receiver antenna is missing from the ANTEX file - #66

Open
smyrgl wants to merge 1 commit into
PrideLab:masterfrom
smyrgl:pdp3-warn-antenna-not-in-antex
Open

smyrgl wants to merge 1 commit into
PrideLab:masterfrom
smyrgl:pdp3-warn-antenna-not-in-antex

Conversation

@smyrgl

@smyrgl smyrgl commented Sep 16, 2026

Copy link
Copy Markdown

Problem: When the antenna type in the RINEX header has no entry in the ANTEX file, rdatx prints ###WARNING(rdatx): Antenna not found and applies a zero antenna model (no PCO, no PCV). But pdp3 runs the programs through ExecuteWithoutOutput, which discards their output when they exit 0, so that warning never reaches the user and the run looks clean.

I hit this with a SparkFun SFESPK6618H, which is calibrated by NGS but absent from igs20.atx. The processing succeeded and the height came out about 102 mm high compared with the same day processed after adding the NGS entry to the table copy of the ANTEX (horizontal position unaffected). Nothing in the console pointed at the antenna.

Fix: Right after Prepare IGS ANTEX file ... done, pdp3 reads the antenna type from the RINEX header (columns 21-40 of the ANT # / TYPE line) and looks it up in abs_igs.atx by an exact 20-column match on the TYPE / SERIAL NO lines. If it is missing it tries the radome NONE variant, mirroring what rdatx does itself, and says so. If that is missing too it prints two warning lines and a hint naming the table file to augment:

warning: PrepareProducts: antenna `SFESPK6618H     NONE' NOT FOUND in ANTEX file abs_igs.atx
warning: PrepareProducts: a ZERO antenna model (no PCO/PCV) will be applied, which biases the height by centimetres
:: please check the antenna type in the RINEX header, or add its calibration (e.g. from NGS) to /path/to/table/igs20_2425.atx

It is a warning only; processing is unchanged. The check is skipped in LEO mode, where leoatx.py adds the entry.

Verified: The same daily RINEX file processed twice on Ubuntu 24.04: with the stock igs20_2425.atx the warning is printed and the SITE ANTENNA PCO lines in the pos file are zero; with the NGS entry appended to the table copy there is no warning and the PCO values are applied. Antennas present in the stock table (for example TRM59800.00 SCIS) pass silently.

…he ANTEX file

When the antenna type in the RINEX header has no entry in the ANTEX file,
rdatx prints "###WARNING(rdatx): Antenna not found" and applies a zero
antenna model (no PCO, no PCV). pdp3 runs the programs through
ExecuteWithoutOutput, which discards their output when they exit 0, so the
warning never reaches the user and the run looks clean. Observed with a
SparkFun SFESPK6618H (calibrated by NGS, absent from igs20.atx): the
height came out about 102 mm high compared with the same day processed
after adding the NGS entry, with nothing on the console pointing at the
antenna.

After the ANTEX file is prepared, read the antenna type from the RINEX
header (columns 21-40 of "ANT # / TYPE") and look it up in abs_igs.atx by
an exact 20-column match on the "TYPE / SERIAL NO" lines. If it is missing,
try the radome NONE variant as rdatx does and say so; if that is missing
too, print two warning lines and a hint naming the table file to augment.
Warning only, processing is unchanged; skipped in LEO mode, where
leoatx.py adds the entry.

Verified on Ubuntu 24.04 with one daily RINEX file processed twice: the
stock igs20_2425.atx prints the warning and the pos file shows zero PCO;
with the NGS entry appended to the table copy there is no warning and the
PCO values are applied. Antennas present in the stock table pass silently.
@smyrgl
smyrgl marked this pull request as ready for review September 16, 2026 17:22
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant