Precitec Data Parser
Parse and analyze height-map exports from Precitec CLS2 sensors (.csv and .bcrf), with tools for 3D surface and profile analysis.
⚠️ Disclaimer
This package is NOT officially supported by Precitec. It is an independent project. Please do not contact Precitec for support or questions about this library. For issues, feature requests, or questions, please use the GitHub Issues on this repository instead.
Features
PrecitecData- parses.csvand.bcrfexports into height (z) and coordinate (x,y) arrays plus metadata, transparently handling multi-line tile stitching and reversed sweep lines.plot_data()- 2D height-map plot with a colorbar.to_surface()- converts to asurfalize.Surface, filling non-measured points.
PrecitecSurfaceAnalyzer- 3D surface and profile analysis on top ofPrecitecData, backed bysurfalize.roughness_parameters()/height_parameters()- ISO 25178 areal parameters (Sa, Sq, Sz, Sdr, ...).horizontal_profile()/vertical_profile()/oblique_profile()- extract 1D profile cuts (with a bug fix for oblique profiles on anisotropic pixel grids) and their ISO 4287 parameters (Ra, Rq, Rz, ...).filter_profile()- Gaussian low/high/bandpass smoothing or Hampel outlier removal on a profile.plot_3d(),plot_2d(),plot_profile()- interactive (zoom/pan/hover) Plotly figures: shaded 3D rendering, top-down 2D map, and profile plots (with the cut line overlaid on the 2D map).
Installation
Install from PyPI:
pip install precitec-data-parser
Or from source:
git clone https://github.com/yourusername/precitec-data-parser.git
cd precitec-data-parser
pip install -e .
Requires Python >=3.13.
Quick Start
from precitec_data_parser import PrecitecData, PrecitecSurfaceAnalyzer
# Load and visualize a measurement
with PrecitecData("measurement.csv") as data:
data.plot_data(show=True)
# Analyze surface topology
analyzer = PrecitecSurfaceAnalyzer(data)
print(analyzer.height_parameters())
# Extract and filter profiles
profile = analyzer.horizontal_profile(y=data.y[len(data.y) // 2])
filtered = analyzer.filter_profile(profile, filter_args={"cutoff": 50})
analyzer.plot_profile(profile, filtered=filtered, show=True)
Examples
See tests/test_parser.py for a comprehensive demo of profile extraction, filtering, and 3D visualization.
Supported Formats
.csv- Precitec CLS2 CSV exports (text-based, supports multi-line stitching).bcrf- Precitec binary height-map format (faster parsing)
License
This project is licensed under the MIT License - see the LICENSE file for details.
Author
Maxime Leurquin (maxime.leurquin@gmail.com)
Release files for precitec-data-parser 0.3.12
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| precitec_data_parser-0.3.12.tar.gz | 16.2 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| precitec_data_parser-0.3.12-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 32.0 kB
Release files / precitec_data_parser-0.3.12.tar.gz
| Download URL | precitec_data_parser-0.3.12.tar.gz |
|---|---|
| Size | 16.2 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
ebed883a5e02a426111cf22bff502a99e09e2d09f2178a9dcc9dbc182cc14650
|
|
BLAKE2b-256 checksum How to use checksums |
cbb3c87b4cfedf0b39441a1289e8820136f3a69d49aa2751ef2efdfb4cb52ac1
|
| 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 25, 2026.
Transparency logRelease files / precitec_data_parser-0.3.12-py3-none-any.whl
| Download URL | precitec_data_parser-0.3.12-py3-none-any.whl |
|---|---|
| Size | 15.8 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
e2b2a8ed88a1b8052e4436d0a1cf83e152e26149bb686a187a1309d66b1413fc
|
|
BLAKE2b-256 checksum How to use checksums |
d798ec04f49080932a7cb7c9d91045a49539fd9892887ba57750f7d007e92e17
|
| 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 25, 2026.
Transparency log