Metadata-Version: 2.4
Name: rlpc-lidar
Version: 0.1.0
Summary: Lossless compressed file-format utilities for roadside LiDAR point-cloud CSV data.
Author: Rohit Rajput
License: MIT
Project-URL: Homepage, https://github.com/rohit2809/rlpc-lidar
Project-URL: Repository, https://github.com/rohit2809/rlpc-lidar
Project-URL: Issues, https://github.com/rohit2809/rlpc-lidar/issues
Keywords: lidar,point-cloud,compression,roadside-lidar,rlpc,rlpcz
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Science/Research
Classifier: Intended Audience :: Developers
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Topic :: Scientific/Engineering
Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
Requires-Python: >=3.9
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: numpy>=1.23
Requires-Dist: pandas>=1.5
Requires-Dist: zstandard>=0.22
Requires-Dist: tqdm>=4.64
Provides-Extra: dev
Requires-Dist: pytest>=7; extra == "dev"
Requires-Dist: build>=1.0; extra == "dev"
Requires-Dist: twine>=4.0; extra == "dev"
Dynamic: license-file

# RLPC LiDAR

RLPC/RLPCZ is a lossless compressed file-format utility for frame-wise roadside LiDAR point-cloud CSV data.

It is designed for LiDAR CSV files with columns such as:

X, Y, Z, Intensity, Laser_ID, Azimuth, Timestamp, Azimuth_Category, Frame_Number, Distance

Unlike common .bin formats that usually keep only X, Y, Z, Intensity, RLPCZ preserves all LiDAR columns needed for downstream perception, trajectory analysis, and static-scene processing.

## Installation

pip install rlpc-lidar

Or install from source:

git clone https://github.com/rohit2809/rlpc-lidar.git
cd rlpc-lidar
pip install -e .

## Python API

from rlpc import save_csv_to_rlpcz, load_xyzi, load_columns, read_metadata

save_csv_to_rlpcz(input_csv='000001.csv', output_file='000001.rlpcz', mode='fast')

xyzi = load_xyzi('000001.rlpcz', dtype='float32')

cols = load_columns('000001.rlpcz', columns=['X', 'Y', 'Z', 'Laser_ID', 'Azimuth_Category', 'Distance'], dtype='float64')

meta = read_metadata('000001.rlpcz')
print(meta['num_points'])

## Lossless definition

RLPCZ is numerically lossless with respect to the CSV values and preserves rows, columns, and column order.

It does not aim to preserve byte-for-byte CSV text formatting such as trailing zeros.
