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()- 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)
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file precitec_data_parser-0.3.7.tar.gz.
File metadata
- Download URL: precitec_data_parser-0.3.7.tar.gz
- Upload date:
- Size: 14.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5c6d52f4b01651d2648af08b9bc0e5d060cde11897b32ca88d8c6b84f030863d
|
|
| MD5 |
2c17659bb0c17ffd44fb37274ea8cd7e
|
|
| BLAKE2b-256 |
45a812ee6fc4f40d1f04a3d642865889e41b52a04ae9227e2773570f2c53572e
|
Provenance
The following attestation bundles were made for precitec_data_parser-0.3.7.tar.gz:
Publisher:
publish-to-pypi.yml on MaxLeurquin-commscope/precitec_data_parser
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
precitec_data_parser-0.3.7.tar.gz -
Subject digest:
5c6d52f4b01651d2648af08b9bc0e5d060cde11897b32ca88d8c6b84f030863d - Sigstore transparency entry: 2601799937
- Sigstore integration time:
-
Permalink:
MaxLeurquin-commscope/precitec_data_parser@d187b81b36d139cc2e9bf14fc19abc80ba76ff4f -
Branch / Tag:
refs/tags/v0.3.7 - Owner: https://github.com/MaxLeurquin-commscope
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish-to-pypi.yml@d187b81b36d139cc2e9bf14fc19abc80ba76ff4f -
Trigger Event:
release
-
Statement type:
File details
Details for the file precitec_data_parser-0.3.7-py3-none-any.whl.
File metadata
- Download URL: precitec_data_parser-0.3.7-py3-none-any.whl
- Upload date:
- Size: 14.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8057c3b71ca4435cc5d06f88bd98b7fc56bba77b08859c2be67054e2c9ec1b4c
|
|
| MD5 |
5efa72a76023ab7a8fa8587f01505a9a
|
|
| BLAKE2b-256 |
02211c35b31798e5ffeec3af0a5a2212b9ec438540e9463412e398e67c16cde3
|
Provenance
The following attestation bundles were made for precitec_data_parser-0.3.7-py3-none-any.whl:
Publisher:
publish-to-pypi.yml on MaxLeurquin-commscope/precitec_data_parser
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
precitec_data_parser-0.3.7-py3-none-any.whl -
Subject digest:
8057c3b71ca4435cc5d06f88bd98b7fc56bba77b08859c2be67054e2c9ec1b4c - Sigstore transparency entry: 2601799996
- Sigstore integration time:
-
Permalink:
MaxLeurquin-commscope/precitec_data_parser@d187b81b36d139cc2e9bf14fc19abc80ba76ff4f -
Branch / Tag:
refs/tags/v0.3.7 - Owner: https://github.com/MaxLeurquin-commscope
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish-to-pypi.yml@d187b81b36d139cc2e9bf14fc19abc80ba76ff4f -
Trigger Event:
release
-
Statement type: