Skip to main content

A vectorized implementation of the Coleman et al. (2020) Milky Way bulge density model.

Project description

Coleman Bulge Density Model

A JAX-based, differentiable implementation of the Coleman et al. (2020) Milky Way bulge density model.

Features

  • JAX Backend & Auto-Diff: Built on jax.numpy, allowing for gradient computations via jax.grad.
  • Hybrid Evaluation: Evaluates density using jax.scipy.ndimage.map_coordinates for coordinates within a pre-computed grid. It falls back to an analytical model for extrapolation outside the grid bounds.
  • Vectorized & JIT-Compiled: Vectorized and JIT-compiled (@jax.jit) to process large arrays of coordinates on CPU, GPU, or TPU.
  • Flexible Coordinates: Accepts inputs in either Sun-centered spherical coordinates (r, lat, lon) or Galactic Cartesian coordinates (x, y, z).

Requirements

  • Python >= 3.8
  • JAX >= 0.4.0
  • NumPy >= 1.20.0
  • SciPy >= 1.7.0

Installation

This package can be installed using pip:

pip install coleman-bulge-density-model

Usage

To use the model, import the pre-instantiated bulge_density_model.

The returned densities are in units of stars per pc^3, normalised to match the observed VVV star counts in the Ks band.

Basic Evaluation

import jax.numpy as jnp
from coleman_bulge_density import bulge_density_model

# 1. Using Galactic Cartesian coordinates (x, y, z)
density, in_bounds = bulge_density_model(x=8.0, y=0.0, z=0.0)

# 2. Processing large arrays
x_arr = jnp.linspace(0, 15, 100)
y_arr = jnp.zeros(100)
z_arr = jnp.zeros(100)
densities, bounds = bulge_density_model(x=x_arr, y=y_arr, z=z_arr)

Hexagonal bin plot showing the spatial distribution of Milky Way bulge density samples across the celestial sphere.

HMC & Gradients

The model is compatible with JAX operations, allowing for gradient calculations for use in physics simulations and HMC samplers.

import jax
import jax.numpy as jnp
from coleman_bulge_density import bulge_density_model

def log_prob(position_vector):
    """Calculates the log-probability for a given (x, y, z) position."""
    density, _ = bulge_density_model(
        x=position_vector[0], 
        y=position_vector[1], 
        z=position_vector[2]
    )
    return jnp.log(density)

# Generate the gradient function
grad_log_prob = jax.grad(log_prob)

# Evaluate the gradient at a given position
position = jnp.array([8.0, 0.0, 0.0])
gradient = grad_log_prob(position)

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

coleman_bulge_density_model-0.3.6.tar.gz (77.4 MB view details)

Uploaded Source

Built Distribution

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

coleman_bulge_density_model-0.3.6-py3-none-any.whl (74.1 MB view details)

Uploaded Python 3

File details

Details for the file coleman_bulge_density_model-0.3.6.tar.gz.

File metadata

File hashes

Hashes for coleman_bulge_density_model-0.3.6.tar.gz
Algorithm Hash digest
SHA256 45937fcabe2ba9a755fa4e8a1256914c211d04b73b75495ba1d1009158c5d1af
MD5 5e1153fda4784fa9117e80b4b2ff8282
BLAKE2b-256 7d18661d69355b2949946cfc7c4e163293e95a84a811e57bea2ab05641571676

See more details on using hashes here.

Provenance

The following attestation bundles were made for coleman_bulge_density_model-0.3.6.tar.gz:

Publisher: publish.yml on dylannpaterson/coleman_bulge_density_model

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file coleman_bulge_density_model-0.3.6-py3-none-any.whl.

File metadata

File hashes

Hashes for coleman_bulge_density_model-0.3.6-py3-none-any.whl
Algorithm Hash digest
SHA256 1e9227258da9991d735a7f38fa30c5d83e578f4d9062e6a9bd791f3ef031ff09
MD5 fe9ec715e681f7f6520ed85a5fd85bb0
BLAKE2b-256 6c3201c9861436da94d1f268d5aabadf7849e7c0235f7b81f343816b8f872ade

See more details on using hashes here.

Provenance

The following attestation bundles were made for coleman_bulge_density_model-0.3.6-py3-none-any.whl:

Publisher: publish.yml on dylannpaterson/coleman_bulge_density_model

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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