Quadriga-Lib
C++/MEX/Python Utility library for radio channel modelling and simulations
Data Formats


Overview
QuaDRiGa Array Antenna Exchange Format (QDANT)




QuaDRiGa Array Antenna Exchange Format (QDANT)

QDANT is an XML grammar for exchanging array-antenna pattern data. Tag names are case-sensitive. A file contains a single <qdant> root element that may include an optional <layout> and one or more <arrayant> elements. A namespace is required on the root (with or without a prefix).

Coordinate convention (for interpreting pattern data): See related read / write functions in the API documentation for details on how to use this format:


<arrayant> - Describes a single array antenna

Attributes:
Child elements:
Validation & Formatting Rules (at a glance):
Quick Reference:
Element Required Type / Units Notes
qdant Yes Root; carries namespace
layout No int matrix (text) Columns separated by spaces; within a column, IDs comma-separated
arrayant@id Cond. int Unique; referenced by layout
name No string Free text
CenterFrequency No Hz Default 300 MHz if absent
NoElements Cond. int Required for multi-element arrays
ElementPosition No meters Vectors x,y,z; vectors space-separated; components comma-separated
ElevationGrid Yes degrees −90 … +90
AzimuthGrid Yes degrees −180 … +180; 0° east; anti-clockwise positive
CouplingAbs No matrix N×M; columns space-sep; entries comma-sep
CouplingPhase No matrix (deg) Requires CouplingAbs; same shape
EthetaMag Cond. dB grid Rows = elevations; cols = azimuths; el="n" if N>1
EthetaPhase Cond. deg grid Only with EthetaMag; omit if all zeros
EphiMag Cond. dB grid Rows = elevations; cols = azimuths; el="n" if N>1
EphiPhase Cond. deg grid Only with EphiMag; omit if all zeros

Example:
2-Element Cross-Polarized Array (minimal pattern values):
<?xml version="1.0" encoding="UTF-8"?>
<qdant xmlns="http://www.quadriga-channel-model.de">
  <layout>1</layout>
  <arrayant id="1">
    <name>Simple XPOL</name>
    <CenterFrequency>2600000000</CenterFrequency>
    <NoElements>2</NoElements>
    <ElementPosition>0,0,0 0,0,0</ElementPosition>

    <ElevationGrid>-90 0 90</ElevationGrid>
    <AzimuthGrid>-180 -90 0 90 180</AzimuthGrid>

    <CouplingAbs>1,0 0,1</CouplingAbs>
    <CouplingPhase>0,0 0,0</CouplingPhase>

    <EthetaMag el="1">
      0 0 0 0 0
      0 0 0 0 0
      0 0 0 0 0
    </EthetaMag>
    <EthetaPhase el="1">
      0 0 0 0 0
      0 0 0 0 0
      0 0 0 0 0
    </EthetaPhase>

    <EphiMag el="2">
      0 0 0 0 0
      0 0 0 0 0
      0 0 0 0 0
    </EphiMag>
    <EphiPhase el="2">
      0 0 0 0 0
      0 0 0 0 0
      0 0 0 0 0
    </EphiPhase>
  </arrayant>
</qdant>


<layout> - Defines how multiple <arrayant> objects are arranged into an object array (optional)

Content:
Examples: