megham


Namemegham JSON
Version 1.1.0 PyPI version JSON
download
home_pageNone
SummaryTools for working with point clouds
upload_time2024-04-02 23:47:52
maintainerNone
docs_urlNone
authorSaianeesh Keshav Haridas
requires_python>=3.8
licenseGPLv3
keywords point cloud affine rotations mds multidimensional scaling point set registration cpd coherent point drift mpd guassian mixture model
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # 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](https://simonsobservatory.org/) and [CLASS](https://sites.krieger.jhu.edu/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](https://numpy.org/), [scipy](https://scipy.org/), [sklearn's manifold module](https://scikit-learn.org/stable/modules/classes.html#module-sklearn.manifold), [pycpd](https://github.com/siavashk/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](https://skhrg.github.io/megham/)

## 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](https://peps.python.org/pep-0008/) with commits in the [conventional commits](https://www.conventionalcommits.org/en/v1.0.0/) format.
This library follows [semantic versioning](https://semver.org/) 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](https://commitizen-tools.github.io/commitizen/) and [pre-commit](https://pre-commit.com/).
It is recommended that you make use of these tools to save time.

Docstrings should follow the [numpy style](https://numpydoc.readthedocs.io/en/latest/format.html). API reference docs are automatically built, but any additional narrative documentation or tutorials should go in the `docs` folder. This project uses [`mkdocs`](https://www.mkdocs.org/) 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](https://commitizen-tools.github.io/commitizen/tutorials/auto_prepare_commit_message/).
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](https://www.conventionalcommits.org/en/v1.0.0/#summary). `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.
5. Once the PR is merged the repo version and tag will update [automatically](https://commitizen-tools.github.io/commitizen/tutorials/github_actions/).

            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "megham",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.8",
    "maintainer_email": null,
    "keywords": "point cloud, affine, rotations, mds, multidimensional scaling, point set registration, cpd, coherent point drift, mpd, guassian mixture model",
    "author": "Saianeesh Keshav Haridas",
    "author_email": null,
    "download_url": "https://files.pythonhosted.org/packages/2f/ab/1da84a56b717a39470329efaf72c88ec9b3b55011b2e0a2ea36eeb1a7f4f/megham-1.1.0.tar.gz",
    "platform": null,
    "description": "# megham\n\nA library for working with point clouds and related concepts.\n\n## Introduction \nOver the last few years I have written a fair bit of code for both\nthe [Simons Observatory](https://simonsobservatory.org/) and [CLASS](https://sites.krieger.jhu.edu/class/)\nthat involves point clouds.\nWhen writing that code I have found myself wanting for a cohesive library that handles all my point cloud\nrelated tasks.\nThere are things that exist in bits and pieces\n([numpy](https://numpy.org/), [scipy](https://scipy.org/), [sklearn's manifold module](https://scikit-learn.org/stable/modules/classes.html#module-sklearn.manifold), [pycpd](https://github.com/siavashk/pycpd), etc.)\nbut none of them had all of the features I wanted or were implemented in ways that weren't ideal for my usecase.\n\nMegham exists to help me bridge that gap.\nCurrently I am targeting only a small set of features that are relevant to my work:\n\n* Fitting transforms between point clouds\n* Point set registration (without known correspondence)\n* Outlier detection\n* Multi dimensional scaling\n\nBut other features may exist down the line (and PRs are welcome).\n\n## Getting Started\nTo install this repository run:\n```\npip install megham \n```\nIf you will be actively developing the code may want to instead clone this repository and run:\n```\npip install -e .\n```\n\nDocumentation can be found [here](https://skhrg.github.io/megham/)\n\n## Contributing\n\nAll are welcome to contribute to this repository as long as long as the code is relevant.\nIn general contributions other than minor changes should follow the branch/fork -> PR -> merge workflow.\nIf you are going to contribute regularly, contact me to get push access to the repository.\n\n### Style and Standards\nIn general contributions should be [PEP8](https://peps.python.org/pep-0008/) with commits in the [conventional commits](https://www.conventionalcommits.org/en/v1.0.0/) format.\nThis library follows [semantic versioning](https://semver.org/) but the version bumping is done automatically and should usually not have be done manually.\n\nIn order to make following these rules easier this repository is setup to work with [commitizen](https://commitizen-tools.github.io/commitizen/) and [pre-commit](https://pre-commit.com/).\nIt is recommended that you make use of these tools to save time.\n\nDocstrings should follow the [numpy style](https://numpydoc.readthedocs.io/en/latest/format.html). API reference docs are automatically built, but any additional narrative documentation or tutorials should go in the `docs` folder. This project uses [`mkdocs`](https://www.mkdocs.org/) to generate documentation.\n\n#### Tool Setup\n1. Install both tools with `pip install commitizen pre-commit`.\n2. `cd` into the `megham` repository it you aren't already in it.\n3. (Optional) Setup `commitizen` to automatically run when you run `git commit`. Follow instruction [here](https://commitizen-tools.github.io/commitizen/tutorials/auto_prepare_commit_message/).\n4. Make sure the `pre-commit` hook is installed by running `pre-commit install`.\n\n#### Example Workflow\n1. Make a branch for the edits you want to make.\n2. Code.\n3. Commit your code with a [conventional commit message](https://www.conventionalcommits.org/en/v1.0.0/#summary). `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`).\n4. Repeat steps 2 and 3 until the goal if your branch has been completed.\n5. Put in a PR.\n5. Once the PR is merged the repo version and tag will update [automatically](https://commitizen-tools.github.io/commitizen/tutorials/github_actions/).\n",
    "bugtrack_url": null,
    "license": "GPLv3",
    "summary": "Tools for working with point clouds",
    "version": "1.1.0",
    "project_urls": null,
    "split_keywords": [
        "point cloud",
        " affine",
        " rotations",
        " mds",
        " multidimensional scaling",
        " point set registration",
        " cpd",
        " coherent point drift",
        " mpd",
        " guassian mixture model"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "5c800cd2e6549a7072bbad1718ce07ab0967ee5b26b6379e73742671d0f78a25",
                "md5": "867e76372213d183e4ab4aea747fe040",
                "sha256": "5da2c40de5fd51462ad864a5bb725401fa07a78ed8118d120db4db543fc7f095"
            },
            "downloads": -1,
            "filename": "megham-1.1.0-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "867e76372213d183e4ab4aea747fe040",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.8",
            "size": 22687,
            "upload_time": "2024-04-02T23:47:48",
            "upload_time_iso_8601": "2024-04-02T23:47:48.494320Z",
            "url": "https://files.pythonhosted.org/packages/5c/80/0cd2e6549a7072bbad1718ce07ab0967ee5b26b6379e73742671d0f78a25/megham-1.1.0-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "2fab1da84a56b717a39470329efaf72c88ec9b3b55011b2e0a2ea36eeb1a7f4f",
                "md5": "45a4e26d26d52b0a30cd36308f5c31ff",
                "sha256": "03a508e850e5e86353df47c3686776f690005af99621eedb3ab924094d4fe164"
            },
            "downloads": -1,
            "filename": "megham-1.1.0.tar.gz",
            "has_sig": false,
            "md5_digest": "45a4e26d26d52b0a30cd36308f5c31ff",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.8",
            "size": 23589,
            "upload_time": "2024-04-02T23:47:52",
            "upload_time_iso_8601": "2024-04-02T23:47:52.075034Z",
            "url": "https://files.pythonhosted.org/packages/2f/ab/1da84a56b717a39470329efaf72c88ec9b3b55011b2e0a2ea36eeb1a7f4f/megham-1.1.0.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-04-02 23:47:52",
    "github": false,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "lcname": "megham"
}
        
Elapsed time: 0.24970s