Import file formats
The Sift UI supports the following file formats for import:Import file settings
CSV
Settings and requirements for importing CSV files.File requirements
Your CSV file must meet the following requirements before importing.Dialog settings
Settings in the Upload CSV dialog.Parquet
Settings and requirements for importing Parquet files.File requirements
Your Parquet file must meet the following requirements before importing.Flat Dataset dialog settings
Settings in the Upload Parquet: Flat Dataset dialog.Channel Per Row dialog settings
Settings in the Upload Parquet: Channel Per Row dialog.Complex types modes
Applies to Flat Dataset Parquet files.TDMS
Settings for importing TDMS files.Dialog settings
Settings in the Upload TDMS dialog.Channel mapping
TDMS imports use the group and Channel hierarchy embedded in the file to derive Channel names. The TDMS dialog does not expose a per-Channel configuration table. Channel-level description properties are imported and appear in the Channel detail panel in the Run view. Embedded enum configurations are also imported and surfaced as enum types on the Channel. To select specific Channels and control how each is imported via the REST API or Python client, useTdmsDataConfig entries in the data field of TDMSConfig. This is recommended when your TDMS file structure does not fit one of the predefined import behaviors. When data is empty, Sift imports all Channels and applies the fallback method to any with missing timing information. See TDMSConfig in the protocol buffers reference.
Ingested volume: TDMS and other compact file formats expand when translated into Sift’s wire format for ingestion, so the total volume ingested is larger than the source file size on disk. This ingested volume, not the source file size, counts against your ingestion quota.
HDF5
Settings for importing HDF5 files.Schemas
The schema determines how Sift interprets the structure of your HDF5 file.Dialog settings
These settings appear in all three HDF5 upload dialogs.Programmatic Channel mapping
To map specific datasets to Channels via the REST API or Python client, useHdf5DataConfig entries in the data field of Hdf5Config. This is recommended when your HDF5 file structure does not fit one of the predefined schemas. When data is empty, Sift does not automatically import all datasets; use the predefined schemas instead. See Hdf5Config in the protocol buffers reference.
ULog
Settings for importing PX4 ULog files.Dialog settings
Settings in the Upload ULog dialog.Channel naming
ULog files are self-describing. Sift detects Channels in the browser before upload and names each one<message>_<instance>.<field>, for example sensor_accel_0.x. Logged status text is imported as log_messages Channels.
The ULog dialog has no Channel preview or per-Channel configuration. Every Channel is imported automatically. To rename, retype, or select Channels, see Programmatic Channel selection below.
Programmatic Channel selection
To select specific Channels via the REST API or Python client, useUlogDataConfig entries in the data field of UlogConfig. When data is empty, Sift imports every detected Channel with its default name and type; when data is non-empty, only the listed Channels import, and each requires a full Channel config. Use info_keys and param_keys to import ULog info and parameter values as Run metadata; both require a Run. See UlogConfig in the protocol buffers reference.
The Python client requires the ulog extra: pip install sift-stack-py[ulog].