https://github.com/ppp-one/cabaret
cabaret is a Python package to simulate astronomical images using the Gaia catalog of stars.
https://github.com/ppp-one/cabaret
2mass astronomy gaia images modelling simulation
Last synced: 3 months ago
JSON representation
cabaret is a Python package to simulate astronomical images using the Gaia catalog of stars.
- Host: GitHub
- URL: https://github.com/ppp-one/cabaret
- Owner: ppp-one
- License: mit
- Created: 2024-05-13T13:41:45.000Z (about 2 years ago)
- Default Branch: main
- Last Pushed: 2025-12-20T17:54:45.000Z (6 months ago)
- Last Synced: 2026-03-10T22:18:54.988Z (3 months ago)
- Topics: 2mass, astronomy, gaia, images, modelling, simulation
- Language: Python
- Homepage: https://cabaret.readthedocs.io/
- Size: 7.73 MB
- Stars: 11
- Watchers: 2
- Forks: 2
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# cabaret

*cabaret* is a Python package to simulate astronomical images using the [Gaia catalog](https://en.wikipedia.org/wiki/Gaia_catalogues) of stars.
Documentation can be found at [cabaret.readthedocs.io](https://cabaret.readthedocs.io/).
## Installation
You can install *cabaret* in a Python (`>=3.11`) environment with
```bash
pip install cabaret
```
or from a local clone
```bash
git clone https://github.com/ppp-one/cabaret
pip install -e cabaret
```
You can test the package has been properly installed with
```bash
python -c "import cabaret"
```
## Quick Start
### Basic image
To generate an image from RA/DEC coordinates, run:
```python
import cabaret
image = cabaret.Observatory().generate_image(
ra=12.33230, # right ascension in degrees
dec=30.4343, # declination in degrees
exp_time=10, # exposure time in seconds
)
```
To display the image:
```python
from cabaret.plot import plot_image
plot_image(image, contrast=0.25)
```
### Custom Observatory Configuration
Create a fully customized observatory by defining each component:
```python
from datetime import UTC, datetime
import cabaret
# Define observatory components
site = cabaret.Site(
sky_background=150, # e-/m^2/arcsec^2/s
seeing=1.5, # arcseconds
elevation=2500, # meters
)
telescope = cabaret.Telescope(
focal_length=8, # meters
diameter=1.0, # meters
)
camera = cabaret.Camera(
name="Example Camera",
width=2048, # pixels
height=2048, # pixels
pitch=10, # microns
gain=1, # electrons per ADU
read_noise=6.2, # electrons
)
# Create the observatory
observatory = cabaret.Observatory(
name="My Observatory",
site=site,
telescope=telescope,
camera=camera,
)
# Generate a FITS image with metadata
hdu = observatory.generate_fits_image(
ra=323.362583,
dec=-0.82325,
exp_time=0.5,
dateobs=datetime.now(UTC),
filter_band=cabaret.Filters.G,
seed=42,
)
# Save as FITS file
hdu.writeto("simulated_image.fits", overwrite=True)
```
### Custom Source Lists
You can manipulate the source catalog before generating images:
```python
from astropy.coordinates import SkyCoord
import numpy as np
# Query Gaia catalog
center = SkyCoord(ra=323.362583, dec=-0.82325, unit="deg")
table = cabaret.GaiaQuery.query(
center=center,
radius=camera.get_fov_radius() * 1.5,
filter_band=cabaret.Filters.G,
)
# Filter out bright sources
fluxes = table[cabaret.Filters.G.value].value.data
mask = fluxes < 1e4
filtered_table = table[mask]
# Create custom source list
sources = cabaret.Sources.from_arrays(
ra=filtered_table["ra"].value.data,
dec=filtered_table["dec"].value.data,
fluxes=filtered_table[cabaret.Filters.G.value].value.data,
)
# Generate image with custom sources
image = observatory.generate_image(
ra=center.ra.deg,
dec=center.dec.deg,
exp_time=0.5,
sources=sources,
)
```
## Documentation
Explore the full documentation, API reference, and advanced usage examples at [cabaret.readthedocs.io](https://cabaret.readthedocs.io/).