Python .e57 files reader/writer
Project description
pye57
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
On linux, Windows or Apple Silicon:
python -m pip install pye57
On macOS with Intel CPU you can try to build from source (advanced users):
Building from source (for developers)
Cloning the repository with required submodule
Clone a new repository along with the libe57Format submodule
git clone https://github.com/davidcaron/pye57.git --recursive
If the repository has already been previously cloned, but without the --recursive flag
cd pye57 # go to the cloned repository
git submodule init # this will initialise the submodules in the repository
git submodule update # this will update the submodules in the repository
Dependencies on Linux
Install libxerces-c-dev first.
sudo apt install libxerces-c-dev
Dependencies on Windows
To get xerces-c, you can either build from source or if you're using conda:
conda install -y xerces-c
Dependencies on MacOS
To get xerces-c, run:
bash ./scripts/install_xerces_c.sh
Run pip install
from the repo source
cd pye57
python -m pip install .
Uninstalling
Use pip again
python -m pip uninstall pye57
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distributions
Hashes for pye57-0.4.15-cp313-cp313-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 362d394b3dbac976be96b4dae0d94e4caee01e893757b3766415bb0ed9b32248 |
|
MD5 | 231d7a9cce7141389340e632d73bf47b |
|
BLAKE2b-256 | 1a561881d68cedf3940ca9a4dd71d0813e94d3c7e002ddba6ec98b356ce2e46d |
Hashes for pye57-0.4.15-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 304e15fc625f9106d093a0e82785cb994d59c07c68d50ac9d8ff91b2a364eac4 |
|
MD5 | e80949dead4d314fc298bb3ceed9487c |
|
BLAKE2b-256 | bf642ff710b0ca4db35cf6667282544db1d8adfee201aaa21afa62ba2b42015d |
Hashes for pye57-0.4.15-cp313-cp313-macosx_11_0_arm64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2a1d311b9d0971249b7a94b17de6beb8366d9a17502e8c777fe931aa62669e00 |
|
MD5 | 60b93915bc06259ae756909aba6ac275 |
|
BLAKE2b-256 | 8ca455f2574963995547baf81e4fab8947b5b31655c75b24ff2264a1ee669606 |
Hashes for pye57-0.4.15-cp312-cp312-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4454f03e1135c27c2f2d71c788cfde6955bf76de927cc4fc6b73961bcf01a8ff |
|
MD5 | d3e7c7db78cd4f32a6cfe38de80b31a9 |
|
BLAKE2b-256 | 0439e3ab5c6b2ba2b3aecc97cadf468617fd93231e279722808ba85885ab9715 |
Hashes for pye57-0.4.15-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 0bb6cedc89e305f0809d26e49405c19a3e21d0b5503adba9bbd575e5fe57bbcd |
|
MD5 | d873185a89bd1c9378d607c1563d7e29 |
|
BLAKE2b-256 | 04dc1fc6e273c4bd5273fafee4999a128e6eccffa080dc3b2ccf528d36452c6f |
Hashes for pye57-0.4.15-cp312-cp312-macosx_11_0_arm64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3bb43f6b102d29ce5a75969889e0fe4194fb365006f4363af69bec92bd0eeb14 |
|
MD5 | 9328937e8e6dbdc7e425e7c15bb5c4ff |
|
BLAKE2b-256 | 64ce14081d3a90dec834ede2175cb9065a9544970a082bd73d1eaa639820b397 |
Hashes for pye57-0.4.15-cp311-cp311-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | b50e6cb4fd48e95b72fe30675be311434d54e5a160fadf7f39bc387906cb4401 |
|
MD5 | 039d03a93edfbdd552a9e569f306dc8f |
|
BLAKE2b-256 | fa97f018bd3ee804b6f03330e9f10c49eecd4a3f73fd34be337dcd0e984b53c6 |
Hashes for pye57-0.4.15-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2cd75de438a8eedbd7b2eff52b6d64394e06afd32a3e57d838540e9fdfbe090e |
|
MD5 | 13af996ab665061698b4ba3cf3297294 |
|
BLAKE2b-256 | 6341bd1fc2e99925d254724bfc92e06c8def2daa30c3d3bf6a47456e59cf8478 |
Hashes for pye57-0.4.15-cp311-cp311-macosx_11_0_arm64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 5dc59441722614cb8093c71bce49cd518268e81ecf8316631ef0eb72ed6e2ee8 |
|
MD5 | 3d537ceaef6f07711c584f60ce292e4d |
|
BLAKE2b-256 | e70cb274929f12608b4d0bdbdf28f99562ca231fa6282e49e7a544933eece57e |
Hashes for pye57-0.4.15-cp310-cp310-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | d17cdbff79c0e37b81d921220501bf086a58c94b4f978cd6e7cd929397748971 |
|
MD5 | 30a585c5d0d30a31d222c3f018718f7b |
|
BLAKE2b-256 | 17bdca951a48997ebe74ff327ef9afc355a3c0d34d316bda7dba25c31a2a3c8d |
Hashes for pye57-0.4.15-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 84d3a0c200ec2190ef6bbb335b847b35f2e7b84f6a4b50c5a416361968c191e2 |
|
MD5 | 5a25d176e9811a77062da55edf4cd1f0 |
|
BLAKE2b-256 | b69b3b8f4da8d71a5fc6f59743521cabbd6049c8e31bf6629e9d9e6fb6662696 |
Hashes for pye57-0.4.15-cp310-cp310-macosx_11_0_arm64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8b2b1613420b8194a9e0c6b41234a4bc9571706ab1944e60fb45a0a171c09f12 |
|
MD5 | 7ac6f8127e91cea4672851967c71fb0b |
|
BLAKE2b-256 | f6ea6ba4938d5d13d462251f6fddf6658b1b468368dbc75fc72c1f71f9c44092 |
Hashes for pye57-0.4.15-cp39-cp39-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 044b38b1701481e12adf8a78b7fb1666089d6a75a2532be035b9d0f8222c7c1d |
|
MD5 | 29746840af4af618b6dc6e663557856a |
|
BLAKE2b-256 | a04dad5ff96707666bf6911a753c98d6592cf6279af7e78a432498a777442a95 |
Hashes for pye57-0.4.15-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | fe7d47c76cf0a5a26d6f536e9fad681c03ecc5216d0bbf558ed7fcce7e1224b2 |
|
MD5 | ee5b5e079a2606291937b6884f97f6cf |
|
BLAKE2b-256 | f3fbb86a4e1e349307073eed9a15b4b2a108c06ac34fec416cea07811c0893e8 |
Hashes for pye57-0.4.15-cp39-cp39-macosx_11_0_arm64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 6751869a42a5045384cc58cb02762578faa0444aef3503b7d4adb73e02ca7933 |
|
MD5 | c98ef895f0685d93c20d5f7b6e8c7a82 |
|
BLAKE2b-256 | 5762211e5e04a24d3bd377cbdac0c23e95fff120d284587bef1b59d9039e8e3f |
Hashes for pye57-0.4.15-cp38-cp38-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | a564039dc14da74222dd73039fbfb570976320ba4145389d39f4b5e6448ab9e3 |
|
MD5 | b094868edd7a5d7f50bd9829b463672c |
|
BLAKE2b-256 | 4c08d43d217bb3f5cb3b1b878e1b1ba4eced2e9d01d8e00c4b9856f39ee2cd3b |
Hashes for pye57-0.4.15-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 74abeb451e0ec2053b5df53267e8334f32482c8467b805ed4f6ba5e85d28a99b |
|
MD5 | 44c3ee9b3edea9f1320435e09cb6f32d |
|
BLAKE2b-256 | 56c6e7b9eb106fb173369934d46d95a4c52611cac7530f55740c76407a2d1264 |
Hashes for pye57-0.4.15-cp38-cp38-macosx_11_0_arm64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | d8f09ca42d49198ddd0dd084b3d73b98cf67446eef64943a9a402df929a31b0d |
|
MD5 | 9d0e7e77725edda3330139aa7d0e892f |
|
BLAKE2b-256 | 9c577be6d00bb4d09cbe711d2f54e59f9481cf630f9546f49cac98f1ff8ea982 |