A Python package for point cloud classification using color and curvature
Project description
pymccrgb
pymccrgb is a Python package for multiscale curvature classification of point clouds with color attributes.
It extends a popular classification method (MCC lidar) [0] to point cloud datasets with multiple color channels, such as those commonly produced in surveys using drone photography or other platforms. It can be used to distinguish points from the ground surface and low vegetation in data produced by structure from motion photogrammetry, stereo photogrammetry, or multi-spectral lidar scanning, or to filter colorized lidar point clouds.
The intended users are scientists in geomorphology, ecology, or planetary science who want to classify point clouds for topographic analysis, canopy height measurements, or other spectral classification.
Installation
This package is developed for Linux/OS X and Python 3.6+. It depends on common Python packages like sklearn, numpy, the LibLAS C API, and MCC Python bindings.
If LibLAS is installed, you can create a virtual environment with conda
or venv
to install the package and its dependencies:
git clone https://github.com/rmsare/pymccrgb
cd pymccrgb
conda env create -f environment.yml
conda activate pymcc
pip install pymccrgb
py.test pymccrgb/tests
Requirements
The LibLAS C library is required for MCC and pymccrgb
. The MCC wrapper also
requires Boost and the C++11 standard library, which are likely installed as
system libraries.
On Ubuntu/Debian, you can install LibLAS via apt
:
sudo apt-get install liblas-c-dev
On OS X, it is available through Homebrew:
brew install liblas
Refer to the documentation and the LibLAS install guide for instructions for installing LibLAS from source.
Examples
Example notebooks are available in the docs or at docs/source/examples.
Topography under tree cover
from pymccrgb import mcc, mcc_rgb
from pymccrgb.datasets import load_mammoth_lidar
from pymccrgb.plotting import plot_results
# Load sample data (Mammoth Mountain, CA)
data = load_mammoth_lidar(npoints=1e6)
# MCC algorithm
ground_mcc, labels_mcc = mcc(data)
# MCC-RGB algorithm
ground_mccrgb, labels_mccrgb = mcc_rgb(data)
plot_results(data, labels_mcc, labels_mccrgb)
Results of MCC and MCC-RGB on a forested area near Mammoth Mountain, CA.
Documentation
Read the documentation for example use cases, an API reference, and more at pymccrgb.readthedocs.io.
Contributing
Bug reports
Bug reports are much appreciated. Please open an issue with the bug
label,
and provide a minimal example illustrating the problem.
Suggestions
Feel free to suggest new features in an issue with the new-feature
label.
Pull requests
If you would like to add a feature or fix a bug, please fork the repository, create a feature branch, and submit a PR and reference any relevant issues. There are nice guides to contributing with GitHub here and here. Please include tests where appropriate and check that the test suite passes (a Travis build or pytest pymccrgb/tests
) before submitting.
Support and questions
Please open an issue with your question.
References
[0] Evans, J. S., & Hudak, A. T. 2007. A multiscale curvature algorithm for classifying discrete return LiDAR in forested environments. IEEE Transactions on Geoscience and Remote Sensing, 45(4), 1029-1038 doi
License
This work is licensed under the MIT License (see LICENSE). It also
incorporates a wrapper for the mcc-lidar
implementation,
which is distributed under the Apache license (see LICENSE.txt).
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file pymccrgb-0.1.5.tar.gz
.
File metadata
- Download URL: pymccrgb-0.1.5.tar.gz
- Upload date:
- Size: 285.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/1.12.1 pkginfo/1.4.2 requests/2.20.1 setuptools/38.2.5 requests-toolbelt/0.8.0 tqdm/4.25.0 CPython/3.5.2
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 17119579f934016e4561b032186d7c834a2ae9e61e26accbb94313cc92b3f39e |
|
MD5 | 9e1db5576da84a9bcb00f1c0f9c38f9d |
|
BLAKE2b-256 | 97b9d962b2218c2f8d52cf9c10f0052e1342b82f75762fd838bf08e631c9325e |
File details
Details for the file pymccrgb-0.1.5-py3-none-any.whl
.
File metadata
- Download URL: pymccrgb-0.1.5-py3-none-any.whl
- Upload date:
- Size: 285.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/1.12.1 pkginfo/1.4.2 requests/2.20.1 setuptools/38.2.5 requests-toolbelt/0.8.0 tqdm/4.25.0 CPython/3.5.2
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 86a981a435e17dabe84733e595bc8e08ce4c11ffdad463745482077ce78073d4 |
|
MD5 | 666ec9afc83d526297013174a94be826 |
|
BLAKE2b-256 | ff9320cbbdb8071113be2b747c0db5d899d445d6120bcb44dccca8173c18333f |