ASTERIX Category 048: what one radar detected
Category 048 carries the target reports a single radar produces. SynapseCommand publishes a bidirectional Category 048 adapter, and its most important behaviour is what it refuses to do without a site position it has been given.
What CAT048 is
A Category 048 record is one plot or one local track from one radar. Position arrives as slant range and azimuth measured from a station whose own location the format never carries.
The category also allows the report to describe something that is not an aircraft at all. It has codes for a reflection, a sidelobe reply, an angel, a phantom plot, a bird and a wind turbine, and a reader that assumes every report is a target will produce a picture full of things that are not there.
As with the other categories, there is no checksum. Structural conformance is the integrity gate, and the checks that passed are recorded on every object produced.
Why this matters to a commander
Monoradar reports are the closest thing to raw measurement that a surveillance network exposes. Working from them means the decision layer can see the measurement rather than a downstream tracker's interpretation of it.
The non-target codes are operationally significant. Distinguishing a wind turbine return from a slow moving contact is exactly the kind of judgement that ought to be visible in a decision record rather than buried in a filter.
For counter-uncrewed-aircraft work, the low, slow and small problem lives in this category's quality fields, not in a downstream summary.
The exact behaviour, not a capability claim
Ingest produces one Entity and one Event per record, in block order.
Two values are injected by the caller rather than taken from the payload: the clock, which supplies the date the time item lacks, and the sensor position, which supplies the site the format never carries. Both are supplied once at construction and both are visible in every golden fixture.
Without a site position the default behaviour is the conservative one. The polar measurement is parked and no geographic position is produced at all. With a site and a height item the geometry is derived, the arithmetic used is declared on the object, and the raw range and azimuth integers are still parked, because a derived position is a one-way view and egress re-emits from the integers.
The adapter never obtains a site for itself. Reading one out of another payload, or resolving a source address through a lookup table it carried, would be a station configuration discovered from the data, which is a different act from accepting an argument.
One geodesy question in the pinned specification could not be answered from that document. It is recorded as an open gap in the coverage file rather than closed by a plausible assumption.
Egress re-emits Entities that came from Category 048 as one byte exact data block. Anything else is refused with a message naming what is missing.
- 01Direction inCategory 048 data block to canonical Entity and Event per record.
- 02Direction outEntities that originated in Category 048, back to one byte exact data block.
- 03Injected valuesClock, and optionally a sensor position. Default is no sensor position and therefore no derived geographic position.
- 04Non-target reportsReflections, sidelobe replies, phantom plots, birds and wind turbines are carried as what the format says they are.
- 05IdentityThe 24-bit ICAO address uses the same namespace as the ADS-B and Category 021 adapters, so one airframe derives one identifier across all three.
Which way the data actually moves
Into the canonical model
- CAT048 data blockTarget reports from one radar.
- Entity and EventPosition derived only when a site position has been supplied.
Out of the canonical model
- EntityOnly objects that came from this category.
- CAT048 data blockRe-emitted from the parsed integers, byte exactly.
Where this data is used
Measurement level ingest
Plots enter the canonical model with their quality fields intact, so fusion decisions are taken with the radar's own uncertainty rather than a rounded version of it.
Low, slow and small detection support
Reports the format marks as probable clutter or as non-aircraft returns stay labelled as such, which is what allows a counter-uncrewed-aircraft workflow to reason about them explicitly.
Configuration as evidence
Because the site position is an injected argument rather than a discovered value, every derived position in a decision record can be traced back to the configuration that produced it.
Every claim above has a file behind it
These paths are in the public repository, published under Apache 2.0. The adapter module for this page is asterix_cat048.
Source and fixtures
- Adapter sourcepackages/cdm/synapse_cdm/adapters/asterix_cat048.py
Ingest, byte exact egress, the two injected values and the refusal rules.
- Codecpackages/cdm/synapse_cdm/adapters/cat048_codec.py
Item level decode and encode.
- Fixturespackages/cdm/synapse_cdm/fixtures/cat048/
Raw blocks, parsed twins and golden canonical output.
- Declared gapsFORMAT_COVERAGE.md
Including the geodesy question left open rather than guessed.
Test evidence
- Harness testtests/test_cdm_asterix_cat048_adapter.py
Replayed by the validation harness shipped in the same package, which runs six checks per fixture including a never-drop lossless check.
- Boundary testtests/test_cdm_boundary.py
Asserts the refusal behaviour at the edges of what an adapter is allowed to do.
Manifest-backed assurance
Maturity is declared in each generated adapter manifest and checked against suite eligibility. VERIFIED is a separate claim-status axis. Neither means external certification or integration with a named system.
asterix_cat048Maturity L4Claim VERIFIED
What these maturity levels mean
L3 means required provenance survives translation. L4 adds applicable roundtrip evidence. L5 would require every applicable public conformance gate to pass. L6 requires an independent real implementation or system and cannot be awarded from this repository's synthetic fixtures.
What is claimed, and what is not
The published adapter implements both translation directions: the format into the canonical data model, and the canonical data model back out to the format. Both directions are replayed by the validation harness against shipped fixtures.
Last reviewed against the published implementation on 2026-09-06.
Limitations
- Without a supplied site position, no geographic position is produced. This is the default and it is intentional.
- One geodesy question is recorded as an open gap and is not silently resolved.
- Egress refuses objects that did not originate in this category.
- No cross-payload state. A site position present in a Category 034 record is not used here.
Security boundary
- The site position is configuration supplied by the operator inside their own environment. It is not present in the repository, and no example carries a real installation.
- The published layer performs translation only. It has no network client and no persistence.
Public sources
Statements about what SynapseCommand® implements are drawn from the published repository rather than from these external sources.
Frequently asked
- Why does the adapter sometimes produce no position?
- Because Category 048 states range and azimuth from a station whose location the format does not carry. Without a supplied site position, deriving a geographic position would mean inventing the origin of the measurement, so the measurement is carried unconverted instead.
- Where does the site position come from?
- From the caller, as configuration supplied once at construction. The adapter never reads one out of a payload or resolves one from a lookup table it carries.
- Are non-aircraft returns filtered out?
- No. The format has explicit codes for reflections, phantom plots, birds and wind turbines, and those are carried as what they are. Filtering is a fusion decision, made where it can be audited.
Where to go next
Related standards
Related use cases
Related C2 environments
Command environments in the compatibility catalogue whose published characteristics reference this standard. Each page states the current SynapseCommand integration status for that system.