Skip to main content

Foundational pure-function utilities for astronomy analysis

Project description

noobase

Foundational pure-function utilities for astronomy analysis. Rust core with Python bindings via PyO3.

Status: pre-1.0, API unstable. Breaking changes expected between minor versions.

Install

pip install noobase

Requires Python 3.12 or newer. Wheels are published for linux-x86_64, macos-arm64, and windows-x86_64; a source distribution is also available.

Quick start

import numpy as np
import noobase

wavelength = np.linspace(1.0, 5.0, 200)
flux = np.exp(-((wavelength - 3.0) ** 2) / 0.5)
error = 0.01 * np.ones_like(flux)

spectrum = noobase.spectroscopy.Spectrum(
    wavelength=wavelength,
    flux=flux,
    error=error,
    spacing="linear",
    kind="centers",
)

transmission_grid = np.linspace(2.5, 3.5, 50)
transmission_values = np.exp(-((transmission_grid - 3.0) ** 2) / 0.05)

band_flux, band_error, coverage = spectrum.synthetic_photometry(
    transmission_grid=transmission_grid,
    transmission_values=transmission_values,
    convention="photon_counting",
)

What's in the box

  • axis.Grid — 1-D monotonic axis (linear / log, centers / edges)
  • axis.overlap.{rebin, rebin_variance, coverage} — overlap-weighted rebin primitives between two axis grids
  • convolve.{gaussian1d, conv1d, conv_axis, conv2d, conv2d_renorm, conv_axis_renorm} — bare correlation kernels plus NaN-as-missing renormalized variants
  • spectroscopy.Spectrum — wavelength + flux + optional error + optional mask, with rebinning, flux density convention conversion, and noise-free-template LSF broadening via Spectrum.convolve_lsf
  • spectroscopy.synthetic_photometry.{synthetic, SyntheticOperator} — synthetic photometry through transmission curves; the cached operator is suited for MCMC hot loops
  • image.reproject_exact — surface-brightness-conserving image reprojection via planar polygon clipping (rayon-parallel; WCS handling stays in the caller's astropy / gwcs)
  • image.make_pixel_corners — turn a pair of pixel_to_world_values / world_to_pixel_values callables (astropy.wcs or gwcs) into the corner array consumed by reproject_exact, with optional coarse_step for expensive WCS chains
  • image.convolve_psf — true 2-D PSF convolution with NaN-as-missing edge / mask renormalization
  • image.convolve_gaussian_axis — 1-D Gaussian axis correlation for grism-style matched filtering
  • image.build_stamp — recenter a point-source cutout into a fixed stamp (sub-pixel centroid recorded, not applied)
  • image.psf.build_epsf — oversampled ePSF from a stack of under-sampled stamps via projected Landweber / Irani–Peleg super-resolution
  • image.psf.build_extended_psf — bright-star wing stacking + core↔wing stitch into an encircled-energy-normalised extended PSF, with robust_combine / solve_flux_background / stitch_psf exposed as leaves

Convolution examples

template = noobase.spectroscopy.Spectrum(
    wavelength=wavelength,
    flux=flux,
    spacing="linear",
    kind="centers",
)
broadened = template.convolve_lsf(spec="constant_r", resolving_power=3000.0)

psf = psf / psf.sum()
model_image = noobase.image.convolve_psf(image, psf)

line_response = noobase.image.convolve_gaussian_axis(
    image,
    sigma=2.5,
    axis=0,
    normalization="l2",
)

See the full project README on GitHub for the complete feature list, the workspace layout, and the development workflow.

License

MIT.

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

noobase-0.0.3.tar.gz (210.4 kB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

noobase-0.0.3-cp312-abi3-win_amd64.whl (480.4 kB view details)

Uploaded CPython 3.12+Windows x86-64

noobase-0.0.3-cp312-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (598.7 kB view details)

Uploaded CPython 3.12+manylinux: glibc 2.17+ x86-64

noobase-0.0.3-cp312-abi3-macosx_11_0_arm64.whl (527.2 kB view details)

Uploaded CPython 3.12+macOS 11.0+ ARM64

File details

Details for the file noobase-0.0.3.tar.gz.

File metadata

  • Download URL: noobase-0.0.3.tar.gz
  • Upload date:
  • Size: 210.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: maturin/1.13.3

File hashes

Hashes for noobase-0.0.3.tar.gz
Algorithm Hash digest
SHA256 3a404feb4092d7450a4cef9e65a8d8bb1feb3c941dd92ac767f865b159901a7c
MD5 57d7ef84bbd58e9a34140ce812f61558
BLAKE2b-256 6b44d394d5d60daab4f7e77950cd6a9717547a0512a766ddf36981393a3bca04

See more details on using hashes here.

File details

Details for the file noobase-0.0.3-cp312-abi3-win_amd64.whl.

File metadata

  • Download URL: noobase-0.0.3-cp312-abi3-win_amd64.whl
  • Upload date:
  • Size: 480.4 kB
  • Tags: CPython 3.12+, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: maturin/1.13.3

File hashes

Hashes for noobase-0.0.3-cp312-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 450e7d2bd037da3e94201f0b0f806a0c3f9fec51f721ac45e615bd978bf84dfe
MD5 fa9c1b904ce7101876ee6f827da18c7d
BLAKE2b-256 f49329b2274f0711cf3d8b9668ab3244884a15a6f2293c9dbacc367ef18c89ec

See more details on using hashes here.

File details

Details for the file noobase-0.0.3-cp312-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for noobase-0.0.3-cp312-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 337946e9d6ed06bab22d93d3ddaf705bc6e99d1dfe820670a3416c1db79adc72
MD5 b2071361b4adbcbd2ade2527c9ce602f
BLAKE2b-256 538cdeaeac67c0f9e2c62ab01f4a716149e1678a58abb0a5a48adadeed0def21

See more details on using hashes here.

File details

Details for the file noobase-0.0.3-cp312-abi3-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for noobase-0.0.3-cp312-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 8830d22f4a491349afbf20def336cfaa5d9a0c4c2a612b5441bb690f38b69f1a
MD5 97f3897f4558d394d5277b604124203b
BLAKE2b-256 0a2dbf96a3ccbc0141b918a2d5e5de5cca447b19564cae2ddc7e88943640d61d

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page