Skip to main content

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

  1. Install both tools with pip install commitizen pre-commit.
  2. cd into the megham repository it you aren't already in it.
  3. (Optional) Setup commitizen to automatically run when you run git commit. Follow instruction here.
  4. Make sure the pre-commit hook is installed by running pre-commit install.

Example Workflow

  1. Make a branch for the edits you want to make.
  2. Code.
  3. 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 then git commit will also do this (but not git commit -m).
  4. Repeat steps 2 and 3 until the goal if your branch has been completed.
  5. Put in a PR.
  6. Once the PR is merged the repo version and tag will update automatically.

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

megham-1.3.1.tar.gz (24.3 kB view details)

Uploaded Source

Built Distribution

megham-1.3.1-py3-none-any.whl (23.5 kB view details)

Uploaded Python 3

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

Hashes for megham-1.3.1.tar.gz
Algorithm Hash digest
SHA256 d3daedc83e7c7c5375551704073a91c44e9189f460ef1bc459e2fd19bfc2632a
MD5 3fa6e47c0d32c4bfc44d7c7f7ae392d8
BLAKE2b-256 2a3182c20f73674912fd3740ef7a6eff916ff024df5643fa16818542706763f2

See more details on using hashes here.

Provenance

The following attestation bundles were made for megham-1.3.1.tar.gz:

Publisher: release.yml on skhrg/megham

Attestations:

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

Hashes for megham-1.3.1-py3-none-any.whl
Algorithm Hash digest
SHA256 32f93fa146c6a266524e3584310a5a653e33c1a44aeb788848dc635fab76f2a9
MD5 a51691ca76ed6668e51b3e5c66a37a5c
BLAKE2b-256 735977768a4b72fc32715cf39dca102be89a5beee645e4448557e116e60b33b4

See more details on using hashes here.

Provenance

The following attestation bundles were made for megham-1.3.1-py3-none-any.whl:

Publisher: release.yml on skhrg/megham

Attestations:

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