napari-broadcastable-points


Namenapari-broadcastable-points JSON
Version 0.5.1.post1 PyPI version JSON
download
home_pageNone
SummaryNone
upload_time2024-10-02 16:57:11
maintainerNone
docs_urlNone
authorNone
requires_python>=3.8
licenseBSD 3-Clause License
keywords
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # napari-broadcastable-points

[![License](https://img.shields.io/pypi/l/napari-broadcastable-points.svg?color=green)](https://github.com/ianhi/napari-broadcastable-points/raw/main/LICENSE)
[![PyPI](https://img.shields.io/pypi/v/napari-broadcastable-points.svg?color=green)](https://pypi.org/project/napari-broadcastable-points)
[![Python Version](https://img.shields.io/pypi/pyversions/napari-broadcastable-points.svg?color=green)](https://python.org)

Points layer that can broadcast over arbitrary dimensions. Available here as a workaround until something more complete is implemented in napari core (https://github.com/napari/napari/issues/2343).

**Warning!** This is likely to be very brittle for all the reasons discussed in the napari issue - so while it is useful it should also be used with caution. So don't muck around much with the viewer dims after creating, because who knows what will happen.

### Installation
```bash
pip install napari-broadcastable-points
```


### Usage
Here is an example where we have an  image sequence of (TPCZYX) and we broadcast points over the `C` and `Z` axes.

```python
import napari
from napari_broadcastable_points import BroadcastablePoints
import numpy as np

v = napari.Viewer()

# create a fake timelapse
T = 5
P = 4
C = 3
Z = 2
Y, X = 512, 512
images = np.zeros([T, P, C, Z, Y, X])
v.add_image(images)

# Add the relevant components of points data
# fmt: off
dat = np.array([
       # T,  P,       Y,              X
       [ 0,  0., 340.25071184, 284.13186557],
       [ 0,  0., 312.66551847, 309.95630191],
       [ 0,  0., 240.76794003, 266.81775485],
       [ 0,  0., 240.47448053, 239.81948049],
       [ 0,  1., 261.60356481, 260.36164576],
       [ 0,  1., 309.43746393, 215.16888217],
       [ 0,  1., 371.06395974, 235.12412843]])
# fmt: on

v.dims.axis_labels = ('T', 'P', 'C', 'Z', 'Y', 'X')

points = BroadcastablePoints(dat, broadcast_dims = (2, 3))
v.add_layer(points)
napari.run()
```

![example usage](images/points-broadcasting.gif)


**Creating an empty layer**

You can also create an empty layer - but be sure to specify `ndim` otherwise you may run into an error.

```python
points = BroadcastablePoints(None, broadcast_dims = (2, 3), ndim=6)
```



<!-- [![CI](https://github.com/ianhi/napari-broadcastable-points/actions/workflows/ci/badge.svg)](https://github.com/ianhi/napari-broadcastable-points/actions) -->
<!-- [![codecov](https://codecov.io/gh/ianhi/napari-broadcastable-points/branch/master/graph/badge.svg)](https://codecov.io/gh/ianhi/napari-broadcastable-points) -->

            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "napari-broadcastable-points",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.8",
    "maintainer_email": null,
    "keywords": null,
    "author": null,
    "author_email": "Ian Hunt-Isaak <ianhuntisaak@gmail.com>",
    "download_url": "https://files.pythonhosted.org/packages/03/22/6448403791c209ad75f35b190cf91318ff76082d917e4e1d66bc4f09907d/napari_broadcastable_points-0.5.1.post1.tar.gz",
    "platform": null,
    "description": "# napari-broadcastable-points\n\n[![License](https://img.shields.io/pypi/l/napari-broadcastable-points.svg?color=green)](https://github.com/ianhi/napari-broadcastable-points/raw/main/LICENSE)\n[![PyPI](https://img.shields.io/pypi/v/napari-broadcastable-points.svg?color=green)](https://pypi.org/project/napari-broadcastable-points)\n[![Python Version](https://img.shields.io/pypi/pyversions/napari-broadcastable-points.svg?color=green)](https://python.org)\n\nPoints layer that can broadcast over arbitrary dimensions. Available here as a workaround until something more complete is implemented in napari core (https://github.com/napari/napari/issues/2343).\n\n**Warning!** This is likely to be very brittle for all the reasons discussed in the napari issue - so while it is useful it should also be used with caution. So don't muck around much with the viewer dims after creating, because who knows what will happen.\n\n### Installation\n```bash\npip install napari-broadcastable-points\n```\n\n\n### Usage\nHere is an example where we have an  image sequence of (TPCZYX) and we broadcast points over the `C` and `Z` axes.\n\n```python\nimport napari\nfrom napari_broadcastable_points import BroadcastablePoints\nimport numpy as np\n\nv = napari.Viewer()\n\n# create a fake timelapse\nT = 5\nP = 4\nC = 3\nZ = 2\nY, X = 512, 512\nimages = np.zeros([T, P, C, Z, Y, X])\nv.add_image(images)\n\n# Add the relevant components of points data\n# fmt: off\ndat = np.array([\n       # T,  P,       Y,              X\n       [ 0,  0., 340.25071184, 284.13186557],\n       [ 0,  0., 312.66551847, 309.95630191],\n       [ 0,  0., 240.76794003, 266.81775485],\n       [ 0,  0., 240.47448053, 239.81948049],\n       [ 0,  1., 261.60356481, 260.36164576],\n       [ 0,  1., 309.43746393, 215.16888217],\n       [ 0,  1., 371.06395974, 235.12412843]])\n# fmt: on\n\nv.dims.axis_labels = ('T', 'P', 'C', 'Z', 'Y', 'X')\n\npoints = BroadcastablePoints(dat, broadcast_dims = (2, 3))\nv.add_layer(points)\nnapari.run()\n```\n\n![example usage](images/points-broadcasting.gif)\n\n\n**Creating an empty layer**\n\nYou can also create an empty layer - but be sure to specify `ndim` otherwise you may run into an error.\n\n```python\npoints = BroadcastablePoints(None, broadcast_dims = (2, 3), ndim=6)\n```\n\n\n\n<!-- [![CI](https://github.com/ianhi/napari-broadcastable-points/actions/workflows/ci/badge.svg)](https://github.com/ianhi/napari-broadcastable-points/actions) -->\n<!-- [![codecov](https://codecov.io/gh/ianhi/napari-broadcastable-points/branch/master/graph/badge.svg)](https://codecov.io/gh/ianhi/napari-broadcastable-points) -->\n",
    "bugtrack_url": null,
    "license": "BSD 3-Clause License",
    "summary": null,
    "version": "0.5.1.post1",
    "project_urls": {
        "Documentation": "https://github.com/ianhi/napari-broadcastable-points#napari-broadcastable-points",
        "Homepage": "https://github.com/ianhi/napari-broadcastable-points#napari-broadcastable-points",
        "Repository": "https://github.com/ianhi/napari-broadcastable-ponts.git"
    },
    "split_keywords": [],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "f4c9419debb43f406467e3478baf4b448ed0fd08fa22bd3fe680e0cdac9f4f63",
                "md5": "b049e5dab95a2b8917b838195fcf08d9",
                "sha256": "920832b5b2db416025d0a07852f21fb6d15137202a96fee8d0d41384c6b37ea4"
            },
            "downloads": -1,
            "filename": "napari_broadcastable_points-0.5.1.post1-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "b049e5dab95a2b8917b838195fcf08d9",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.8",
            "size": 6981,
            "upload_time": "2024-10-02T16:57:10",
            "upload_time_iso_8601": "2024-10-02T16:57:10.373390Z",
            "url": "https://files.pythonhosted.org/packages/f4/c9/419debb43f406467e3478baf4b448ed0fd08fa22bd3fe680e0cdac9f4f63/napari_broadcastable_points-0.5.1.post1-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "03226448403791c209ad75f35b190cf91318ff76082d917e4e1d66bc4f09907d",
                "md5": "8d413fc39856333db6b39da62fccce04",
                "sha256": "06221541de9cc1ccdcea7c9c56f11e7ff4159e74c858d2c2c4d7f32a4a2a356d"
            },
            "downloads": -1,
            "filename": "napari_broadcastable_points-0.5.1.post1.tar.gz",
            "has_sig": false,
            "md5_digest": "8d413fc39856333db6b39da62fccce04",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.8",
            "size": 74986,
            "upload_time": "2024-10-02T16:57:11",
            "upload_time_iso_8601": "2024-10-02T16:57:11.361589Z",
            "url": "https://files.pythonhosted.org/packages/03/22/6448403791c209ad75f35b190cf91318ff76082d917e4e1d66bc4f09907d/napari_broadcastable_points-0.5.1.post1.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-10-02 16:57:11",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "ianhi",
    "github_project": "napari-broadcastable-points#napari-broadcastable-points",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "lcname": "napari-broadcastable-points"
}
        
Elapsed time: 5.80417s