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 clone it and from within run:

pip install .

If you will be actively developing the code you will want to add the -e flag.

Eventually narrative docs with tutorials will exist..., but for now every function includes a docstring which should be enough to get started.

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, so changes that bump the version should do so by editing pyproject.toml.

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.

Tool Setup

  1. Install both tools with pip install commitizen pre-commit.
  2. cd into the minkasi_jax 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).
  1. Repeat step 3 and 4 until the goal if your branch has been completed.
  2. Put in a PR.
  3. 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-0.3.0.tar.gz (24.7 kB view hashes)

Uploaded Source

Built Distribution

megham-0.3.0-py3-none-any.whl (24.2 kB view hashes)

Uploaded Python 3

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