=============================
Making point clouds fun again
=============================
.. image:: https://img.shields.io/lgtm/grade/python/g/daavoo/pyntcloud.svg?logo=lgtm&logoWidth=18)
:target: https://lgtm.com/projects/g/daavoo/pyntcloud/context:python
:alt: LGTM Code quality
.. image:: https://github.com/daavoo/pyntcloud/workflows/pyncloud%20C.I./badge.svg
:target: https://github.com/daavoo/pyntcloud/actions
:alt: Github Actions C.I.
.. image:: https://readthedocs.org/projects/pyntcloud/badge/?version=latest
:target: https://pyntcloud.readthedocs.io/en/latest/?badge=latest
:alt: Documentation Status
.. image:: https://anaconda.org/conda-forge/pyntcloud/badges/version.svg
:target: https://anaconda.org/conda-forge/pyntcloud
.. image:: https://mybinder.org/badge.svg
:target: https://mybinder.org/v2/gh/daavoo/pyntcloud/master
:alt: Launch Binder
.. image:: https://zenodo.org/badge/69888255.svg
:target: https://zenodo.org/badge/latestdoi/69888255
.. image:: https://raw.githubusercontent.com/daavoo/pyntcloud/master/docs/images/pyntcloud_logo.png
:alt: pyntcloud logo
**pyntcloud** is a Python **3** library for working with 3D point clouds leveraging the power of the Python scientific stack.
- Examples_ (We encourage you to try out the examples by launching `Binder <https://mybinder.org/v2/gh/daavoo/pyntcloud/master>`_.)
- Documentation_
.. _Examples: https://github.com/daavoo/pyntcloud/tree/master/examples
.. _Documentation: http://pyntcloud.readthedocs.io/en/latest/
Installation
============
.. code-block:: bash
conda install pyntcloud -c conda-forge
Or:
.. code-block:: bash
pip install pyntcloud
Quick Overview
==============
You can access most of pyntcloud's functionality from its core class: PyntCloud.
With PyntCloud you can perform complex 3D processing operations with minimum lines of
code. For example you can:
- Load a PLY point cloud from disk.
- Add 3 new scalar fields by converting RGB to HSV.
- Build a grid of voxels from the point cloud.
- Build a new point cloud keeping only the nearest point to each occupied voxel center.
- Save the new point cloud in numpy's NPZ format.
With the following concise code:
.. code-block:: python
from pyntcloud import PyntCloud
cloud = PyntCloud.from_file("some_file.ply")
cloud.add_scalar_field("hsv")
voxelgrid_id = cloud.add_structure("voxelgrid", n_x=32, n_y=32, n_z=32)
new_cloud = cloud.get_sample("voxelgrid_nearest", voxelgrid_id=voxelgrid_id, as_PyntCloud=True)
new_cloud.to_file("out_file.npz")
Integration with other libraries
================================
pyntcloud offers seamless integration with other 3D processing libraries.
You can create / convert PyntCloud instances from / to many 3D processing libraries using the `from_instance` / `to_instance` methods:
- `Open3D <https://www.open3d.org>`_
.. code-block:: python
import open3d as o3d
from pyntcloud import PyntCloud
# FROM Open3D
original_triangle_mesh = o3d.io.read_triangle_mesh("diamond.ply")
cloud = PyntCloud.from_instance("open3d", original_triangle_mesh)
# TO Open3D
cloud = PyntCloud.from_file("diamond.ply")
converted_triangle_mesh = cloud.to_instance("open3d", mesh=True) # mesh=True by default
- `PyVista <https://docs.pyvista.org>`_
.. code-block:: python
import pyvista as pv
from pyntcloud import PyntCloud
# FROM PyVista
original_point_cloud = pv.read("diamond.ply")
cloud = PyntCloud.from_instance("pyvista", original_point_cloud)
# TO PyVista
cloud = PyntCloud.from_file("diamond.ply")
converted_triangle_mesh = cloud.to_instance("pyvista", mesh=True)
Raw data
{
"_id": null,
"home_page": "https://github.com/daavoo/pyntcloud",
"name": "pyntcloud",
"maintainer": "",
"docs_url": null,
"requires_python": ">3.7",
"maintainer_email": "",
"keywords": "",
"author": "David de la Iglesia Castro",
"author_email": "daviddelaiglesiacastro@gmail.com",
"download_url": "https://files.pythonhosted.org/packages/a8/9d/1490a0fbfdbbd43682194533cd52fbbe14e0fbee2701f1b3e04888b200ed/pyntcloud-0.3.1.tar.gz",
"platform": null,
"description": "=============================\nMaking point clouds fun again\n=============================\n\n.. image:: https://img.shields.io/lgtm/grade/python/g/daavoo/pyntcloud.svg?logo=lgtm&logoWidth=18)\n :target: https://lgtm.com/projects/g/daavoo/pyntcloud/context:python\n :alt: LGTM Code quality\n\n.. image:: https://github.com/daavoo/pyntcloud/workflows/pyncloud%20C.I./badge.svg\n :target: https://github.com/daavoo/pyntcloud/actions\n :alt: Github Actions C.I.\n \n.. image:: https://readthedocs.org/projects/pyntcloud/badge/?version=latest\n :target: https://pyntcloud.readthedocs.io/en/latest/?badge=latest\n :alt: Documentation Status\n\n.. image:: https://anaconda.org/conda-forge/pyntcloud/badges/version.svg \n :target: https://anaconda.org/conda-forge/pyntcloud\n\n.. image:: https://mybinder.org/badge.svg\n :target: https://mybinder.org/v2/gh/daavoo/pyntcloud/master\n :alt: Launch Binder\n \n.. image:: https://zenodo.org/badge/69888255.svg\n :target: https://zenodo.org/badge/latestdoi/69888255\n \n.. image:: https://raw.githubusercontent.com/daavoo/pyntcloud/master/docs/images/pyntcloud_logo.png\n :alt: pyntcloud logo\n\n\n\n\n**pyntcloud** is a Python **3** library for working with 3D point clouds leveraging the power of the Python scientific stack.\n\n- Examples_ (We encourage you to try out the examples by launching `Binder <https://mybinder.org/v2/gh/daavoo/pyntcloud/master>`_.)\n- Documentation_\n\n.. _Examples: https://github.com/daavoo/pyntcloud/tree/master/examples\n.. _Documentation: http://pyntcloud.readthedocs.io/en/latest/\n\nInstallation\n============\n\n.. code-block:: bash\n\n conda install pyntcloud -c conda-forge\n\nOr:\n\n.. code-block:: bash\n\n pip install pyntcloud\n\nQuick Overview\n==============\n\nYou can access most of pyntcloud's functionality from its core class: PyntCloud.\n\nWith PyntCloud you can perform complex 3D processing operations with minimum lines of\ncode. For example you can:\n\n- Load a PLY point cloud from disk.\n- Add 3 new scalar fields by converting RGB to HSV.\n- Build a grid of voxels from the point cloud.\n- Build a new point cloud keeping only the nearest point to each occupied voxel center.\n- Save the new point cloud in numpy's NPZ format.\n\nWith the following concise code:\n\n.. code-block:: python\n\n from pyntcloud import PyntCloud\n\n cloud = PyntCloud.from_file(\"some_file.ply\")\n\n cloud.add_scalar_field(\"hsv\")\n\n voxelgrid_id = cloud.add_structure(\"voxelgrid\", n_x=32, n_y=32, n_z=32)\n\n new_cloud = cloud.get_sample(\"voxelgrid_nearest\", voxelgrid_id=voxelgrid_id, as_PyntCloud=True)\n\n new_cloud.to_file(\"out_file.npz\")\n\nIntegration with other libraries\n================================\n\npyntcloud offers seamless integration with other 3D processing libraries.\n\nYou can create / convert PyntCloud instances from / to many 3D processing libraries using the `from_instance` / `to_instance` methods:\n\n- `Open3D <https://www.open3d.org>`_\n\n.. code-block:: python\n\n import open3d as o3d\n from pyntcloud import PyntCloud\n\n # FROM Open3D\n original_triangle_mesh = o3d.io.read_triangle_mesh(\"diamond.ply\")\n cloud = PyntCloud.from_instance(\"open3d\", original_triangle_mesh)\n \n # TO Open3D\n cloud = PyntCloud.from_file(\"diamond.ply\")\n converted_triangle_mesh = cloud.to_instance(\"open3d\", mesh=True) # mesh=True by default\n \n- `PyVista <https://docs.pyvista.org>`_\n\n.. code-block:: python\n\n import pyvista as pv\n from pyntcloud import PyntCloud\n\n # FROM PyVista\n original_point_cloud = pv.read(\"diamond.ply\")\n cloud = PyntCloud.from_instance(\"pyvista\", original_point_cloud)\n \n # TO PyVista\n cloud = PyntCloud.from_file(\"diamond.ply\")\n converted_triangle_mesh = cloud.to_instance(\"pyvista\", mesh=True)\n",
"bugtrack_url": null,
"license": "The MIT License",
"summary": "Python library for working with 3D point clouds.",
"version": "0.3.1",
"project_urls": {
"Homepage": "https://github.com/daavoo/pyntcloud"
},
"split_keywords": [],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "93388e67f280c571d256fa168cac1dfeec190659cf415dfea0e0771667d22b54",
"md5": "248fcdc41069b60d9911c421004dadc3",
"sha256": "2c064f53ae75175e8a9b8fe9f59d430b02b203a4e7ef8620af01d5e247d4df88"
},
"downloads": -1,
"filename": "pyntcloud-0.3.1-py2.py3-none-any.whl",
"has_sig": false,
"md5_digest": "248fcdc41069b60d9911c421004dadc3",
"packagetype": "bdist_wheel",
"python_version": "py2.py3",
"requires_python": ">3.7",
"size": 346340,
"upload_time": "2022-07-31T09:53:15",
"upload_time_iso_8601": "2022-07-31T09:53:15.138764Z",
"url": "https://files.pythonhosted.org/packages/93/38/8e67f280c571d256fa168cac1dfeec190659cf415dfea0e0771667d22b54/pyntcloud-0.3.1-py2.py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "a89d1490a0fbfdbbd43682194533cd52fbbe14e0fbee2701f1b3e04888b200ed",
"md5": "ac9abe324601e53d1951dea4ecf3dfb0",
"sha256": "628b45967e1c97a947df0637267197a6b38a36cb04173f9837f05bc3180348b8"
},
"downloads": -1,
"filename": "pyntcloud-0.3.1.tar.gz",
"has_sig": false,
"md5_digest": "ac9abe324601e53d1951dea4ecf3dfb0",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">3.7",
"size": 1822362,
"upload_time": "2022-07-31T09:53:17",
"upload_time_iso_8601": "2022-07-31T09:53:17.184236Z",
"url": "https://files.pythonhosted.org/packages/a8/9d/1490a0fbfdbbd43682194533cd52fbbe14e0fbee2701f1b3e04888b200ed/pyntcloud-0.3.1.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2022-07-31 09:53:17",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "daavoo",
"github_project": "pyntcloud",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"requirements": [
{
"name": "numpy",
"specs": []
},
{
"name": "scipy",
"specs": [
[
">=",
"1.6.0"
]
]
},
{
"name": "pandas",
"specs": []
},
{
"name": "laspy",
"specs": []
},
{
"name": "lazrs",
"specs": []
},
{
"name": "ipython",
"specs": []
},
{
"name": "matplotlib",
"specs": []
},
{
"name": "numba",
"specs": []
},
{
"name": "pytest",
"specs": []
},
{
"name": "pyvista",
"specs": [
[
">=",
"0.32.0"
]
]
},
{
"name": "open3d",
"specs": []
}
],
"lcname": "pyntcloud"
}