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

If you're on Windows and using python 3.5 or 3.6:

pip install pye57

Otherwise, you will have to build it yourself (working on linux and macos versions).

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.7-cp36-cp36m-win_amd64.whl (339.9 kB view details)

Uploaded CPython 3.6m Windows x86-64

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

Uploaded CPython 3.6m Windows x86

pye57-0.1.7-cp35-cp35m-win_amd64.whl (339.8 kB view details)

Uploaded CPython 3.5m Windows x86-64

pye57-0.1.7-cp35-cp35m-win32.whl (266.3 kB view details)

Uploaded CPython 3.5m Windows x86

File details

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

File metadata

File hashes

Hashes for pye57-0.1.7-cp36-cp36m-win_amd64.whl
Algorithm Hash digest
SHA256 41f2cc69ae749f624b8131cccee952cb434116faac75d09242982a83a1e7bcbc
MD5 cf60f3d9f11b293376a57acf0a917581
BLAKE2b-256 e8d33efed0c661bfb56ef18adbb6fbf33c1fc2c50a9902c221984982f8a1dad4

See more details on using hashes here.

Provenance

File details

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

File metadata

File hashes

Hashes for pye57-0.1.7-cp36-cp36m-win32.whl
Algorithm Hash digest
SHA256 ba6b8dec673baaadba8d1349b22bc2d65bd841d51c00d5a7d4ec4ccd027c9ad4
MD5 4a5b7656909090a545c8dc86fc1df6de
BLAKE2b-256 7078bd0e0ecdd83ab43353d4aaeb0816e741b3e7e3ccc08de424f173048075e1

See more details on using hashes here.

Provenance

File details

Details for the file pye57-0.1.7-cp35-cp35m-win_amd64.whl.

File metadata

File hashes

Hashes for pye57-0.1.7-cp35-cp35m-win_amd64.whl
Algorithm Hash digest
SHA256 f6f69e3a68d31347d5353557108da14c838e6fff8fb5f82afa8f8c50eacee931
MD5 76e2284644177da8e03f96ea9807bba1
BLAKE2b-256 1b792b6094d73b2d1eacb36e91b536174a1c1937a75c015bc648b61a43ab4432

See more details on using hashes here.

Provenance

File details

Details for the file pye57-0.1.7-cp35-cp35m-win32.whl.

File metadata

File hashes

Hashes for pye57-0.1.7-cp35-cp35m-win32.whl
Algorithm Hash digest
SHA256 c2b1e6e03d4fc3a773feb9479a27b530b15d22e2943a20587a697d124d28bfa9
MD5 ce31dc1496046bb1796176c8814455c0
BLAKE2b-256 5ca916c23c08694c514568f0342f03f0c5ecb03881ab4e997d01f75b0f0bdb38

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