Skip to main content

Python bindings for Rust Planetarium rendering library

Project description

PyPlanetarium

Python bindings for Planetarium sub-pixel precision light spot rendering library for astronomy and video tracking applications.

Example usage

from pyplanetarium import Canvas, SpotShape, ImageFormat, Window

# Draw on a square 256x256 pixel canvas.
c = Canvas.new(256, 256)

# Define a round spot shape with diffraction radius of 2.5 pixels.
shape = SpotShape().scale(2.5)

# Add some spots at random positions with varying shape size
# and peak intensity.
spot1 = c.add_spot((100.3, 130.8), shape, 0.5)
spot2 = c.add_spot((80.6, 200.2), shape.scale(0.5), 0.9)

# Note: Out of range position coordinates and peak intensities are fine.
#       The resulting spot image is clipped into the canvas rectangle.
#       Peak intensity > 1.0 leads to saturation to the maximum pixel value.
spot3 = c.add_spot((256.1, 3.5), shape.scale(10.0), 1.1)

# Set the canvas background pixel value.
c.set_background(int(0.05 * Canvas.PIXEL_MAX))

# Clear the canvas and paint the light spots.
c.draw()

# Export to a 8-bit gamma-compressed grayscale PNG image.
png_8bpp_bytes = c.export_image(ImageFormat.PngGamma8Bpp)

# Export to a 16-bit linear light grayscale PNG image.
png_16bpp_bytes = c.export_image(ImageFormat.PngLinear16Bpp)

# Export a rectangular canvas window to a 8-bit gamma-compressed RAW image.
wnd = Window.new(64, 32).at(90, 120)
raw_window_8bpp_bytes = c.export_window_image(wnd, ImageFormat.RawGamma8Bpp)

# Export the 2x2 subsampled canvas frame to a 10-bit linear light RAW image.
factors = (2, 2)
raw_subsampled_10bpp_bytes = c.export_subsampled_image(factors, ImageFormat.RawLinear10BppLE)

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

pyplanetarium-0.1.5.tar.gz (20.0 kB view details)

Uploaded Source

Built Distributions

pyplanetarium-0.1.5-cp37-abi3-win_amd64.whl (291.2 kB view details)

Uploaded CPython 3.7+ Windows x86-64

pyplanetarium-0.1.5-cp37-abi3-manylinux_2_12_x86_64.manylinux2010_x86_64.whl (299.9 kB view details)

Uploaded CPython 3.7+ manylinux: glibc 2.12+ x86-64

File details

Details for the file pyplanetarium-0.1.5.tar.gz.

File metadata

  • Download URL: pyplanetarium-0.1.5.tar.gz
  • Upload date:
  • Size: 20.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: maturin/0.12.15

File hashes

Hashes for pyplanetarium-0.1.5.tar.gz
Algorithm Hash digest
SHA256 16dbc72fca0616b7316396f53578433320f29911bc259918e28cf18c2bff5251
MD5 0cdd252d33b640b175f72a0359615ec3
BLAKE2b-256 b72e9703bc624a7d13556e012e8e50246c76caba3cc9fccc16545eee65272991

See more details on using hashes here.

File details

Details for the file pyplanetarium-0.1.5-cp37-abi3-win_amd64.whl.

File metadata

File hashes

Hashes for pyplanetarium-0.1.5-cp37-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 6e8e82bd4972949c5649ce5752577dd711943215de40f2da328131ca99653821
MD5 eb3f5d8fc13eb3127e50e9805ecf9be9
BLAKE2b-256 3e873833156f5f34bc74bedb9a1a0ef70ec9ead18e058c83d5920b5759f598f2

See more details on using hashes here.

File details

Details for the file pyplanetarium-0.1.5-cp37-abi3-manylinux_2_12_x86_64.manylinux2010_x86_64.whl.

File metadata

File hashes

Hashes for pyplanetarium-0.1.5-cp37-abi3-manylinux_2_12_x86_64.manylinux2010_x86_64.whl
Algorithm Hash digest
SHA256 b939896df46a3e9610a7d9dda857f7eed549957d1defb9a1e7b4b4c52a6f60c5
MD5 ad8a64932535bd58a44fc52439474bf8
BLAKE2b-256 9c96a4c079679dd19a3a7b00d1c48b4da8412f446ab66fd6c8ab0c820dcaa920

See more details on using hashes here.

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