Skip to content

Exporters Module Capabilities

This document details the capabilities of the DeepMIMO exporters module, which provides functionality for exporting ray-tracing data from external sources into DeepMIMO-compatible formats.

Overview

The exporters module supports: - AODT Exporter: Export data from AODT ClickHouse database to parquet files - Sionna Exporter: Export Sionna ray-tracing results to pickle files


AODT Exporter

Exports AODT simulation data from ClickHouse database to parquet format for conversion to DeepMIMO.

Feature Support Notes
Source Format
ClickHouse database Direct database connection
Table selection Exports specific tables
Table filtering Can ignore specified tables
Multiple databases Supports database selection
Target Format
Parquet files One file per table
Column preservation All columns exported
Data type preservation Native pandas/parquet types
Compression ✓ [a] Parquet default compression
Exported Tables
Scenario parameters scenario.parquet
Ray paths raypaths.parquet
Channel responses (CIR) cirs.parquet
TX configurations (RUs) rus.parquet
RX configurations (UEs) ues.parquet
Material properties materials.parquet
Antenna patterns patterns.parquet
Time information time_info.parquet
Antenna panels panels.parquet
Database info db_info.parquet
Run configurations runs.parquet
Ignored Tables
CFR data ✓ [b] Excluded by default
Training results ✓ [b] Excluded by default
World geometry ✓ [b] Excluded by default
CSI reports ✓ [b] Excluded by default
Telemetry ✓ [b] Excluded by default
DUs ✓ [b] Excluded by default
RAN config ✓ [b] Excluded by default
Time-Varying Support
Single time slice Exports to single folder
Multiple time slices Creates scene_XXXX folders
Time index filtering Filters by time_idx column
Time info table Determines number of time slices
Per-time-slice folders Organized by time index
Database Operations
List databases Query available databases
List tables Query tables in database
Get table columns Query column names
Execute queries Generic SQL queries
Auto database selection ✓ [c] Selects first non-system database
Output Organization
Named output directory Uses database name
Subfolder structure For time-varying scenarios
Metadata preservation All table metadata exported
File naming convention {table_name}.parquet
Error Handling
Connection errors Graceful error messages
Export errors Per-table error handling
Empty simulations Validation and error reporting
Missing tables Continues with available tables

Sionna Exporter

Exports Sionna ray-tracing simulation results to pickle format for later conversion to DeepMIMO.

Feature Support Notes
Source Format
Sionna Paths object From scene.compute_paths()
Sionna Scene object Scene geometry
Single TX Paths Single Paths object
Multi-TX Paths List of Paths objects
Target Format
Pickle files Python pickle serialization
Dictionary format Structured nested dicts
NumPy arrays Preserves array types
Sionna Version Support
Sionna 0.19.x Legacy version support
Sionna 1.x Current version support
Version detection Automatic version handling
Exported Path Data
Path delays (tau) Time delays
Path amplitudes (a) Complex or (real, imag) tuple
Receive angles (phi_r, theta_r) AoA azimuth and elevation
Transmit angles (phi_t, theta_t) AoD azimuth and elevation
Interaction vertices 3D positions of interactions
Interaction types types (0.x) or interactions (1.x)
Source positions TX positions
Target positions RX positions
TX array info Transmit array configuration
RX array info Receive array configuration
Exported Scene Data
Scene objects Object names and properties
Object vertices Per-object vertex arrays
Vertex coordinates 3D (x, y, z) coordinates
Material indices Per-object material mapping
Scene bounding box ✓ [d] When available from scene
GPS coordinates ✓ [d] When available from scene
Format Differences Handling
Sionna 0.x complex amplitudes Exports complex numbers
Sionna 1.x tuple amplitudes Exports (real, imag) tuples
Sionna 0.x types field Interaction type encoding
Sionna 1.x interactions field Interaction type encoding
Position transpose (v1.x) Handles transposed sources/targets
Filtering and Processing
Relevant fields only Excludes internal/private attrs
Non-callable filtering Excludes methods
Scene reference removal Avoids circular references
Private attribute removal Excludes _ and __ attrs
Output Files
Paths data sionna_paths.pkl
Scene vertices sionna_vertices.pkl
Scene objects sionna_objects.pkl
Material map sionna_material_map.pkl
RT parameters sionna_rt_params.pkl
Multi-TX Handling
Single Paths object Direct export
List of Paths objects Exports list of dicts
TX index tracking Preserves TX ordering
Error Handling
Import errors Graceful Sionna dependency check
Version mismatch warnings Warns on untested versions
Export failures Exception propagation

Usage Examples

AODT Exporter

from clickhouse_connect import get_client
from deepmimo.exporters.aodt_exporter import aodt_exporter

# Connect to ClickHouse
client = get_client(host='localhost', port=8123)

# Export database to parquet files
output_path = aodt_exporter(
    client,
    database='my_simulation',
    output_dir='./aodt_exports',
    ignore_tables=['cfrs', 'training_result']
)

# Convert to DeepMIMO format
import deepmimo as dm
dm.aodt_rt_converter(output_path)

Sionna Exporter

from deepmimo.exporters.sionna_exporter import sionna_exporter
import sionna.rt as rt

# Run Sionna ray tracing
scene = rt.load_scene('scene.xml')
paths = scene.compute_paths()

# Export to pickle
sionna_exporter(
    scene=scene,
    path_list=paths,
    compute_path_params={},  # Parameters used
    save_folder='./sionna_exports'
)

# Convert to DeepMIMO format
import deepmimo as dm
dm.sionna_rt_converter('./sionna_exports')

Notes

  • [a] Parquet uses default compression (typically Snappy). Compression method can be configured via pandas.
  • [b] Some tables excluded by default to reduce export size. Customize via ignore_tables parameter.
  • [c] If no database specified, selects second database in list (first is usually 'system').
  • [d] GPS bounding box and scene metadata exported when present in Sionna scene object.

Common Limitations

These limitations apply to both exporters:

  • Python dependencies: AODT requires pandas, Sionna exporter requires sionna package.
  • Memory constraints: Large simulations may require chunked processing (not currently implemented).
  • Single simulation: Each export handles one simulation/scenario at a time.
  • No incremental export: Full export each time; no incremental/delta updates.