Tools for working with point clouds
Project description
megham
A library for working with point clouds and related concepts.
Introduction
Over the last few years I have written a fair bit of code for both the Simons Observatory and CLASS that involves point clouds. When writing that code I have found myself wanting for a cohesive library that handles all my point cloud related tasks. There are things that exist in bits and pieces (numpy, scipy, sklearn's manifold module, pycpd, etc.) but none of them had all of the features I wanted or were implemented in ways that weren't ideal for my usecase.
Megham exists to help me bridge that gap. Currently I am targeting only a small set of features that are relevant to my work:
- Fitting transforms between point clouds
- Point set registration (without known correspondence)
- Outlier detection
- Multi dimensional scaling
But other features may exist down the line (and PRs are welcome).
Getting Started
To install this repository run:
pip install megham
If you will be actively developing the code may want to instead clone this repository and run:
pip install -e .
Documentation can be found here
Contributing
All are welcome to contribute to this repository as long as long as the code is relevant. In general contributions other than minor changes should follow the branch/fork -> PR -> merge workflow. If you are going to contribute regularly, contact me to get push access to the repository.
Style and Standards
In general contributions should be PEP8 with commits in the conventional commits format. This library follows semantic versioning but the version bumping is done automatically and should usually not have be done manually.
In order to make following these rules easier this repository is setup to work with commitizen and pre-commit. It is recommended that you make use of these tools to save time.
Docstrings should follow the numpy style. API reference docs are automatically built, but any additional narrative documentation or tutorials should go in the docs
folder. This project uses mkdocs
to generate documentation.
Tool Setup
- Install both tools with
pip install commitizen pre-commit
. cd
into themegham
repository it you aren't already in it.- (Optional) Setup
commitizen
to automatically run when you rungit commit
. Follow instruction here. - Make sure the
pre-commit
hook is installed by runningpre-commit install
.
Example Workflow
- Make a branch for the edits you want to make.
- Code.
- Commit your code with a conventional commit message.
cz c
gives you a wizard that will do this for you, if you followed Step 3 above thengit commit
will also do this (but notgit commit -m
). - Repeat steps 2 and 3 until the goal if your branch has been completed.
- Put in a PR.
- Once the PR is merged the repo version and tag will update automatically.
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 Distribution
File details
Details for the file megham-1.3.1.tar.gz
.
File metadata
- Download URL: megham-1.3.1.tar.gz
- Upload date:
- Size: 24.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/5.1.1 CPython/3.12.7
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | d3daedc83e7c7c5375551704073a91c44e9189f460ef1bc459e2fd19bfc2632a |
|
MD5 | 3fa6e47c0d32c4bfc44d7c7f7ae392d8 |
|
BLAKE2b-256 | 2a3182c20f73674912fd3740ef7a6eff916ff024df5643fa16818542706763f2 |
Provenance
The following attestation bundles were made for megham-1.3.1.tar.gz
:
Publisher:
release.yml
on skhrg/megham
-
Statement type:
https://in-toto.io/Statement/v1
- Predicate type:
https://docs.pypi.org/attestations/publish/v1
- Subject name:
megham-1.3.1.tar.gz
- Subject digest:
d3daedc83e7c7c5375551704073a91c44e9189f460ef1bc459e2fd19bfc2632a
- Sigstore transparency entry: 149616378
- Sigstore integration time:
- Predicate type:
File details
Details for the file megham-1.3.1-py3-none-any.whl
.
File metadata
- Download URL: megham-1.3.1-py3-none-any.whl
- Upload date:
- Size: 23.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/5.1.1 CPython/3.12.7
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 32f93fa146c6a266524e3584310a5a653e33c1a44aeb788848dc635fab76f2a9 |
|
MD5 | a51691ca76ed6668e51b3e5c66a37a5c |
|
BLAKE2b-256 | 735977768a4b72fc32715cf39dca102be89a5beee645e4448557e116e60b33b4 |
Provenance
The following attestation bundles were made for megham-1.3.1-py3-none-any.whl
:
Publisher:
release.yml
on skhrg/megham
-
Statement type:
https://in-toto.io/Statement/v1
- Predicate type:
https://docs.pypi.org/attestations/publish/v1
- Subject name:
megham-1.3.1-py3-none-any.whl
- Subject digest:
32f93fa146c6a266524e3584310a5a653e33c1a44aeb788848dc635fab76f2a9
- Sigstore transparency entry: 149616379
- Sigstore integration time:
- Predicate type: