Skip to main content

Python .e57 files reader/writer

Project description

pye57

PyPI PyPI - Python Version AppVeyor

Python wrapper of LibE57Format to read and write .e57 point cloud files

Example usage

import numpy as np
import pye57

e57 = pye57.E57("e57_file.e57")

# read scan at index 0
data = e57.read_scan(0)

# 'data' is a dictionary with the point types as keys
assert isinstance(data["cartesianX"], np.ndarray)
assert isinstance(data["cartesianY"], np.ndarray)
assert isinstance(data["cartesianZ"], np.ndarray)

# other attributes can be read using:
data = e57.read_scan(0, intensity=True, colors=True, row_column=True)
assert isinstance(data["cartesianX"], np.ndarray)
assert isinstance(data["cartesianY"], np.ndarray)
assert isinstance(data["cartesianZ"], np.ndarray)
assert isinstance(data["intensity"], np.ndarray)
assert isinstance(data["colorRed"], np.ndarray)
assert isinstance(data["colorGreen"], np.ndarray)
assert isinstance(data["colorBlue"], np.ndarray)
assert isinstance(data["rowIndex"], np.ndarray)
assert isinstance(data["columnIndex"], np.ndarray)

# the 'read_scan' method filters points using the 'cartesianInvalidState' field
# if you want to get everything as raw, untransformed data, use:
data_raw = e57.read_scan_raw(0)

# writing is also possible, but only using raw data for now
e57_write = pye57.E57("e57_file_write.e57", mode='w')
e57_write.write_scan_raw(data_raw)
# you can specify a header to copy information from
e57_write.write_scan_raw(data_raw, scan_header=e57.get_header(0))

# the ScanHeader object wraps most of the scan information:
header = e57.get_header(0)
print(header.point_count)
print(header.rotation_matrix)
print(header.translation)

# all the header information can be printed using:
for line in header.pretty_print():
    print(line)

# the scan position can be accessed with:
position_scan_0 = e57.scan_position(0)

# the binding is very close to the E57Foundation API
# you can modify the nodes easily from python
imf = e57.image_file
root = imf.root()
data3d = root["data3D"]
scan_0 = data3d[0]
translation_x = scan_0["pose"]["translation"]["x"]

Installation

Available on pypi for Windows and python 3.6:

pip install pye57

Otherwise, you will have to build it yourself (working on releasing more wheels).

Building notes

You need xerces-c to compile. Binaries can be obtained from conda using: conda install xerces-c

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distributions

pye57-0.1.5-cp36-cp36m-win_amd64.whl (339.9 kB view details)

Uploaded CPython 3.6m Windows x86-64

pye57-0.1.5-cp36-cp36m-win32.whl (266.3 kB view details)

Uploaded CPython 3.6m Windows x86

File details

Details for the file pye57-0.1.5-cp36-cp36m-win_amd64.whl.

File metadata

File hashes

Hashes for pye57-0.1.5-cp36-cp36m-win_amd64.whl
Algorithm Hash digest
SHA256 27a493537f1673c48a913cb56c74e2d1934fcdaca5a741b734f229eda3e47e09
MD5 e8a45e48f813559a0c2b7114ace8d8b6
BLAKE2b-256 ed4a860d90354a3b340b1a1c270a521f4354136c00ccd841969f30e027758022

See more details on using hashes here.

Provenance

File details

Details for the file pye57-0.1.5-cp36-cp36m-win32.whl.

File metadata

File hashes

Hashes for pye57-0.1.5-cp36-cp36m-win32.whl
Algorithm Hash digest
SHA256 d06d880065aceed53776852fed10d22344993276ccdda639c0ab743480363180
MD5 06e11833a454b5591306067ad3836637
BLAKE2b-256 b932d09823772d8e42dd21a0ea30e187b842295b7570de779c8e0fac5aec20da

See more details on using hashes here.

Provenance

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page