You are currently using an outdated browser.

Please consider using a modern browser such as one listed below:

Cambridge Pixel Customer Login

Customers

Introduction to ASTERIX CAT048 for Software Engineers

Introduction to ASTERIX CAT048 for Software Engineers

What is ASTERIX?

ASTERIX (All Purpose Structured Eurocontrol Surveillance Information Exchange) is a set of standards developed by Eurocontrol to support the exchange of surveillance data between air traffic control systems. It is widely used in radar systems, providing a common structure for various types of surveillance information. The set of ASTERIX standards consists of a number of different message types, each one being defined as a category.

What is CAT-48?

CAT-48, also written as CAT048, is a specific widely-used category within ASTERIX that deals with radar tracks. It defines the format and structure for transmitting radar track information, which includes data about the position, velocity, and other characteristics of detected objects (e.g., aircraft). This Open Standard can then be used to distribute track data between applications. An example is Cambridge Pixel’s SPx Server, a software application that runs as a server to extract radar targets from radar video and then distribute that data to other applications, such as operator displays, in the ASTERIX CAT-48 format. Display software such as RadarView or third-party applications can then receive track reports in this format and render them as target symbols and labels overlaid on a map background.

A related category is CAT-34, which relates to the sensor (radar) rather than to individual track reports and which defines sensor information such as latitude, longitude and height. Since track reports typically contain only range and bearing information relative to the sensor, the geographical position for each track can be calculated using the sensor position as a reference.

Structure of ASTERIX CAT-48 Messages

An ASTERIX message is composed of several key components:

  • Category: A single byte that specifies the category (in this case, 48.
  • Length: Two bytes that specify the total message size.
  • Field Specification (FSPEC): A bitmap defining which data items are present in the message. Each FSPEC byte corresponds to 7 data items. One bit of each FSPEC byte, the Field Extension Indicator (FEI), indicates whether a further FSPEC byte is present after the current FSPEC byte. This makes provision for up to 28 data items (four FSPEC bytes).
  • Data Item (DI): A number of data items are present in a given message, some of which are described below. Some data items are mandatory while others are optional.

In CAT048, each set of FSPEC bytes and corresponding data items forms a record representing a radar track. Typically only one such record is contained within each network message, but in principle several records may be concatenated.

All Asterix message formats have a User Application Profile (UAP). This defines the exact order in which any data items present in the record appear. The FSPEC as defined above determines which data items are actually present. ASTERIX defines a standard UAP which should be used by default when decoding CAT-48 messages, but it is possible to define a custom UAP that must then be used by both the producer and the consumer of messages.

IMAGE

Key (mandatory) and selected other Data Items in CAT-48

  • Data Source Identifier (I048/010):

    • Description: The source of the track report, defined as System Area Code (SAC) and System Identification Code (SIC).
    • Format: 2 byte integer.
  • Time of Track Information (I048/140):

    • Description: Time at which the track information was generated.
    • Format: 24-bit binary time format (in 1/128 seconds).
  • Type and Properties of Target Report and Target Capabilities (I048/020):

    • Description: Describes whether target is primary or secondary and other properties of the target (simulated/real, classification and so on).
    • Format: Up to 5 bytes (determined by extension bit in each byte).
  • Track Position in Polar Co-ordinates (I048/040):

    • Description: Range and bearing of the target.
    • Format: 4 bytes, with 2 bytes each for range (in multiples of 1/256NM) and bearing (in multiples of 360°/ 216).
  • Flight Level (I048/090):

    • Description: Flight level information.
    • Format: 2 bytes, in multiples of ¼ FL.
  • Time of Track Information (I048/140):

    • Description: Time of day (seconds since midnight) at which the track information was generated.
    • Format: 3 byte binary time format (in multiples of 1/128 seconds).
  • Track Number (I048/161):

    • Description: Unique identifier for a track.
    • Format: 2 byte integer, with value from 0 to 4095.
  • Track Status (I048/170):

    • Description: Track status including confirmed/tentative, sensor type etc.
    • Format: Up to 2 bytes (determined by extension bit in each byte).
  • Track Velocity in Polar Co-ordinates (I048/200):

    • Description: Speed and heading of the tracked object.
    • Format: 4 bytes, with 2 bytes for speed (in multiples of 214 NM/s) and heading (in multiples of 360°/ 216).
  • Aircraft Address (I048/220):

    • Description: Secondary Surveillance Radar (SSR) code assigned to the aircraft.
    • Format: 3-byte aircraft address.

Understanding a CAT-48 Record

Each CAT-48 record starts with a Data Source Identifier (I048/010), followed by various other data items. These items are structured in a way that allows efficient processing and extraction of necessary information.

Example Record Breakdown


Record: 
 - Data Source Identifier (I048/010) 
 - Time of Track Information (I048/140) 
 - Target Report Descriptor (I048/020)
 - Track Position in Polar Co-ordinates (I048/040) 
 - Flight Level (I048/090)
 - Track Number (I048/161)
 - Track Velocity in Polar Co-ordinates (I048/200)
 - Track Status (I048/170)

Processing CAT-48 Messages

When working with CAT-48 messages, the typical steps involve:

 

  • Message Parsing: Extracting individual data items from the binary message.
  • Data Interpretation: Converting binary data into meaningful information (e.g., converting binary coordinates into latitude and longitude).
  • Track Management: Using the track number to manage and update radar tracks over time.
  • Data Utilization: Using the extracted data for further processing, such as displaying on a radar screen or performing collision avoidance calculations.

Example Pseudocode for Parsing CAT-48

Here’s a simple pseudocode example for parsing some elements of a CAT048 message:


def parse_cat048_message(message):
position = 0
category = extract_8_bits(message, position); position += 1;
length = extract_16_bits(message, position); position += 2;
fspec1 = extract_8_bits(message, position); position += 1;
if (fspec1 & 0x01) {
  fspec2 = extract_8_bits(message, position); position += 1;
  if (fspec2 & 0x01) {
    fspec3 = extract_8_bits(message, position); position += 1;
    if (fspec3 & 0x01) {
      fspec4 = extract_8_bits(message, position); position += 1;
    }
  }
}

# Parse Data Source Identifier (I048/010)
if (fspec1 & 0x80) {
  sac = extract_8_bits(message, position); position += 1
  sic = extract_8_bits(message, position); position += 1
}

# Parse Time of Track Information (I048/140)
if (fspec1 & 0x40) {
  time_of_track = extract_24_bits(message, position); position += 3
}

# Parse Track Type (I048/020)
if (fspec1 & 0x20) {
  octet = extract_8_bits(message, position); position += 1;
  type = octet >> 5;
  while (octet & 0x01) {
    octet = extract_8_bits(message, position); position += 1;
  }
}

# Parse Track Position (I048/040)
if (fspec1 & 0x10) {
  range = extract_16_bits(message, position); position += 2;
  rangeNM = range * 256;
  bearing = extract_16_bits(message, position); position += 2;
  bearingDeg = bearing * 360 / 2^^16;
}

return {
  "data_source_id": (sac, sic),
  “type”, type,
  "time_of_track": time_of_track,
  "position": (rangeNM, bearingDeg)
}

Summary

Understanding ASTERIX CAT-48 is crucial for processing radar track information in air traffic control systems. This guide provides a basic overview and structure of CAT-48 messages, highlighting the key data items and steps for processing these messages. With this foundation, software engineers can begin to effectively work with radar track data.

Further reading may be found at https://www.eurocontrol.int/publication/cat048-eurocontrol-specification-surveillance-data-exchange-asterix-part4

Subscribe to continue reading this article, it's free.

Free access to Engineering Insights, authored by our industry leading experts. You will also receive the Cambridge Pixel newsletter which includes the latest Engineering Insights releases.

Fill in the form below and you will be sent an Instant Access link.

Your email address will be added to our mailing list. You may unsubscribe at any time. We take data protection seriously. See our Privacy Policy.

Interested in Cambridge Pixel and our Radar Processing Solutions?

Follow us on LinkedIn and be first to hear about our latest releases and projects.

Cambridge Pixel Radar Processing on LinkedIn

 

events calendar   Next event: Visit us at IDEX 2025, Stand 03-C45 (British Pavilion) | 17 - 21 Feb 2025, ADNEC, Abu Dhabi