Skip to main content

LICENSE STARS Tests Release Please PYPI Python Version

IMCtermite

IMCtermite provides access to proprietary IMC measurement file formats introduced and developed by imc Test & Measurement GmbH. The library currently supports both the legacy IMC2 Data Format and the newer IMC3 Data Format, which are commonly encountered with the file extensions .raw and .dat. These formats are employed i.a. by the measurement hardware imc CRONOSflex to dump and store data and the software packages imc Studio & imc FAMOS for measurement data control and analysis. Thanks to the integrated Python module, the extracted measurement data can be stored in any open-source file format accessible by Python like i.a. csv, json or parquet.

On the Record Evolution Platform, the library can be used both as a command line tool for interactive usage and as a Python module to integrate IMC measurement files into any ETL workflow.

Supported formats

Overview

Format reference

IMCtermite auto-detects the file format while loading a file. The same CLI and Python interfaces are used for both supported formats; no explicit format flag is required.

format typical extensions support status notes
IMC2 .raw, .dat supported Legacy marker-based stream format
IMC3 .raw, .dat supported Structured successor format; compressed IMC3 is currently rejected

Detailed format notes live in dedicated pages:

Installation

The IMCtermite library may be employed both as a CLI tool and a python module.

CLI tool

To build the CLI tool locally, use the default target make resulting in the binary imctermite. To ensure system-wide availability, the installation of the tool (in the default location /usr/local/bin) is done via

make install

which may require root permissions.

Python

To integrate the library into a customized ETL toolchain, several python targets are available. For a local in-place build that enables you to run the examples, use:

make python-build

Installation with pip

This fork is distributed as imctermite3 on the Python Package Index. Once published, install it with

python3 -m pip install imctermite3

The Python import remains from imctermite import ImcTermite. The distribution provides binary wheels for Windows and Linux with Python 3.10-3.13 and requires NumPy, which pip installs automatically.

Do not install imctermite and imctermite3 in the same environment: both provide the imctermite import package. To replace the original distribution:

python3 -m pip uninstall imctermite
python3 -m pip install imctermite3

However, if your platform/architecture is not supported you can still compile the source distribution yourself, which requires python3_setuptools, numpy, and an up-to-date compiler supporting C++11 standard (e.g. gcc version >= 10.2.0).

Usage

CLI

The usage of the imctermite binary looks like this:

imctermite <imc-file> [options]

You have to provide a single supported IMC file and any option to specify what to do with the data. All available options can be listed with imctermite --help:

Options:

 -c, --listchannels      list channels
 -b, --listblocks        list IMC key-blocks
 -d, --output            output directory to print channels
 -s, --delimiter         csv delimiter/separator char for output
 -h, --help              show this help message
 -v, --version           display version

For instance, to show a list of all channels included in sample-data.raw, you do imctermite sample-data.raw --listchannels. No output files are written by default. Output files are written only when an existing (!) directory is provided as argument to the --output option. By default, every output file is written using a , delimiter. You may provide any custom separator with the option --delimiter. For example, in order to use |, the binary is called with options imctermite sample-data.raw -b -c -s '|'.

Python

Given the IMCtermite module is available, we can import it and declare an instance of it by passing an IMC file to the constructor:

from imctermite import ImcTermite

imcraw = ImcTermite("sample/sampleA.raw")

An example of how to create an instance and obtain the list of channels is:

from imctermite import ImcTermite

# declare and initialize instance of "imctermite" by passing an IMC file
try :
    imcraw = ImcTermite("samples/sampleA.raw")
except RuntimeError as e :
    print("failed to load/parse IMC file: " + str(e))

# obtain list of channels as list of dictionaries (without data)
channels = imcraw.get_channels(False)
print(channels)

Typed channel metadata

For integrations that need a stable metadata contract without loading sample data, use the typed API:

from imctermite import ImcTermite

imcraw = ImcTermite("samples/sampleA.raw")
for channel in imcraw.get_channels_metadata():
    print(channel.name, channel.y_unit, channel.sample_count)

ChannelMetadata.name is the canonical channel name and falls back to the IMC component-group name when the source channel name is empty. The literal source value remains available as ChannelMetadata.source_name. The existing get_channels() dictionary schema is unchanged.

File, group, standalone text-object, and typed channel-property metadata are available through separate typed getters:

metadata = imcraw.get_file_metadata()
groups = imcraw.get_groups_metadata()
text_objects = imcraw.get_text_objects_metadata()
channel = imcraw.get_channels_metadata()[0]

print(metadata.producer, metadata.comment)
print(channel.properties)

TSA custom-decoder support

For native custom decoders, lib/imc_raw.hpp provides copied TSA container bytes and logical timestamped-record access. This supports application-specific frame decoding while IMCtermite remains responsible only for container parsing, metadata, and sample access; it does not decode proprietary protocol descriptions or write IMC files.

A more complete example, including the methods for obtaining the channels, i.a. their data and/or directly printing them to files, can be found in the python/examples folder.

Chunked NumPy export (fast path)

For large files, you can iterate over channel data in chunks as NumPy arrays. This avoids creating large Python lists and allows for streaming processing (e.g. writing to Parquet). See python/examples/usage_numpy_chunks.py for a complete example.

Testing

Prepare the local test environment with make prepare-test, then run end-to-end tests with make test.

The Python environment is expected to be prepared outside Make and already contain the required build and test dependencies.

To emit the Python wrapper coverage report through the same target, ensure pytest-cov is installed and use make test COVERAGE=1.

See tests/README.md for details.

References

IMC

Cython

PyPI

iconv

Metadata

Release files for imctermite3 3.0.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for imctermite3 3.0.0
File Size Uploaded Provenance
imctermite3-3.0.0.tar.gz 283.4 kB With provenance Details

Built distributions (wheels)

Table of built distributions (wheels) for imctermite3 3.0.0
File
imctermite3-3.0.0-cp313-cp313-win_amd64.whl CPython 3.13 CPython 3.13 Windows x86-64 Details
imctermite3-3.0.0-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl CPython 3.13 CPython 3.13 Linux glibc 2.28+ x86-64, Linux glibc 2.24+ x86-64 Details
imctermite3-3.0.0-cp312-cp312-win_amd64.whl CPython 3.12 CPython 3.12 Windows x86-64 Details
imctermite3-3.0.0-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl CPython 3.12 CPython 3.12 Linux glibc 2.24+ x86-64, Linux glibc 2.28+ x86-64 Details
imctermite3-3.0.0-cp311-cp311-win_amd64.whl CPython 3.11 CPython 3.11 Windows x86-64 Details
imctermite3-3.0.0-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl CPython 3.11 CPython 3.11 Linux glibc 2.28+ x86-64, Linux glibc 2.24+ x86-64 Details
imctermite3-3.0.0-cp310-cp310-win_amd64.whl CPython 3.10 CPython 3.10 Windows x86-64 Details
imctermite3-3.0.0-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl CPython 3.10 CPython 3.10 Linux glibc 2.28+ x86-64, Linux glibc 2.24+ x86-64 Details

Total release size: 13.0 MB

Release files / imctermite3-3.0.0.tar.gz

Download URL imctermite3-3.0.0.tar.gz
Size 283.4 kB
Tags Source
SHA-256 checksum
How to use checksums
ec70dcc0c18b00b6ee4363b3b6fc2a62ebc00fd197e1c387d63b4818f4caa7fc
BLAKE2b-256 checksum
How to use checksums
1e9c584bc8ea2d420ceab90f0a0c7014d23c3269b23fc586ce4f101cc8779048
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 30, 2026.

Transparency log

Release files / imctermite3-3.0.0-cp313-cp313-win_amd64.whl

Download URL imctermite3-3.0.0-cp313-cp313-win_amd64.whl
Size 412.2 kB
Tags CPython 3.13 Windows x86-64
SHA-256 checksum
How to use checksums
86cb313e546257fc4e7a5393ffd636f29a028ce33d3ab6c866e0cd862c61aae1
BLAKE2b-256 checksum
How to use checksums
8ba0b5e709b9370e6d3a57171c52eff7a6c3ff47e769b86f8e7598044338c470
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 30, 2026.

Transparency log

Release files / imctermite3-3.0.0-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl

Download URL imctermite3-3.0.0-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Size 2.7 MB
Tags CPython 3.13 Linux glibc 2.24+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
299da1e9cfeafa9f1b635fabb10066aa91bb8a8f62196fc3151625e86d8067ed
BLAKE2b-256 checksum
How to use checksums
a22e8ea3a2aa35e6df29a1607957997578036a6a652395d28c8cbfa04645b3c5
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 30, 2026.

Transparency log

Release files / imctermite3-3.0.0-cp312-cp312-win_amd64.whl

Download URL imctermite3-3.0.0-cp312-cp312-win_amd64.whl
Size 412.9 kB
Tags CPython 3.12 Windows x86-64
SHA-256 checksum
How to use checksums
b17057b20847f119d96ca1980d3b2aa0a63b51d2194653445537ab5689306fc9
BLAKE2b-256 checksum
How to use checksums
4ebd85351767f3f293a7a3a2d6864f0ccd47192b6045f3c0197b0728748c316b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 30, 2026.

Transparency log

Release files / imctermite3-3.0.0-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl

Download URL imctermite3-3.0.0-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Size 2.7 MB
Tags CPython 3.12 Linux glibc 2.24+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
6796acf9183b759ac81bb17723fecf13cbdce24902ee43d157cdaf2bb58604a1
BLAKE2b-256 checksum
How to use checksums
8d926f4e33b87a57d8b628e1d87703de2c79bda0d75e561302a7ffafd4469027
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 30, 2026.

Transparency log

Release files / imctermite3-3.0.0-cp311-cp311-win_amd64.whl

Download URL imctermite3-3.0.0-cp311-cp311-win_amd64.whl
Size 414.5 kB
Tags CPython 3.11 Windows x86-64
SHA-256 checksum
How to use checksums
7b64a1982b4fc46ebbf26ff7c466bd49b138542114eba80e6db810c91b5c2dc3
BLAKE2b-256 checksum
How to use checksums
0a6f6c7a85b921774df000340367d933386106048ba9cbbeadeaa8535fbdea6d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 30, 2026.

Transparency log

Release files / imctermite3-3.0.0-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl

Download URL imctermite3-3.0.0-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Size 2.8 MB
Tags CPython 3.11 Linux glibc 2.24+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
d78b9cad68d8f539a968fb09941253ec7a7834120c1d145b77c39a1babaa4755
BLAKE2b-256 checksum
How to use checksums
272485e9c66f0fe0ed7c7401cb532a36253aaedff1817e3017911ac7fecfee2a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 30, 2026.

Transparency log

Release files / imctermite3-3.0.0-cp310-cp310-win_amd64.whl

Download URL imctermite3-3.0.0-cp310-cp310-win_amd64.whl
Size 414.5 kB
Tags CPython 3.10 Windows x86-64
SHA-256 checksum
How to use checksums
d66b38b31054332b96d9153c4fd37ee22b59c0bdab3c5dc8d50bdeca6fb2d562
BLAKE2b-256 checksum
How to use checksums
d33bb219360bcb5b34ff3675c24ac82c75f45090e55a75ea5468a54c09c8f208
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 30, 2026.

Transparency log

Release files / imctermite3-3.0.0-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl

Download URL imctermite3-3.0.0-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Size 2.8 MB
Tags CPython 3.10 Linux glibc 2.24+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
0fd7d908197c0352beb0cf418e17069eeec1229ea5ecd26ca32c63e00c8fd19a
BLAKE2b-256 checksum
How to use checksums
12069e9d0f95c9678dd52ee844a523704651ed2dc9eba6eee1696167d833ab47
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 30, 2026.

Transparency log

Security for imctermite3 3.0.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

Full provenance

All 9 files in this release have been uploaded with provenance metadata.

Select from 9 files

Attestation for imctermite3-3.0.0.tar.gz

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 30, 2026.

Transparency log

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

Release history Release notifications | RSS feed

This release

3.0.0 This release

9 release files Full provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page