Skip to main content

CROISSANT: Rapid spherical harmonics-based simulator of visibilities

Project description

# CROISSANT: spheriCal haRmOnics vISibility SimulAtor iN pyThon

[![codecov](https://codecov.io/gh/christianhbye/croissant/branch/main/graph/badge.svg?token=pj1hkgcazd)](https://codecov.io/gh/christianhbye/croissant)

CROISSANT is a rapid visiblity simulator in python based on spherical harmonics. Given an antenna design and a sky model, CROISSANT simulates the visbilities - that is, the perceived sky temperature.

CROISSANT uses spherical harmonics to decompose the sky and antenna beam to a set of coefficients. Since the spherical harmonics represents a complete, orthormal basis on the sphere, the visibility computation reduces nicely from a convolution to a dot product.

In frequency domain, CROISSANT uses Discrete Prolate Spheroidal Sequences as a rapid linear interpolation scheme. Being linear, this interpolation can be done directly on the spherical harmonics coefficients, avoiding redoing the most expensive part of the computation.

Moreover, the time evolution of the simulation is very natural in this representation. In the antenna reference frame, the sky rotates overhead with time. To account for this rotation, it is enough to rotate the spherical harmonics coefficients. In the right choice of coordinates (that is, one where the z-axis is aligned with the rotation axis of the earth or the moon), this rotation is simply achieved by multiplying the spherical coefficient by a phase.

Overall, this makes CROISSANT a very fast visibility simulator. CROISSANT can therefore be used to simulate a large combination of antenna models and sky models - allowing for the exploration of a range of propsed designs before choosing an antenna for an experiment.

## Installation For the latest release, do pip install croissant-sim (see https://pypi.org/project/croissant-sim). Git clone this repository for the newest changes (this is under activate development, do so at your own risk!).

CROISSANT depends on the package pygdsm which is not uploaded to PyPI. This package will therefore not automatically be installed with CROISSANT, but is available on GitHub at https://github.com/telegraphic/pygdsm.

## Demo Jupyter Notebook: https://nbviewer.org/github/christianhbye/croissant/blob/main/notebooks/example_sim.ipynb

## Contributing Contributions are welcome - please see the [contribution guidelines](https://github.com/christianhbye/croissant/blob/add_contributing/CONTRIBUTING.md).

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

croissant-sim-3.0.0.tar.gz (37.5 kB view details)

Uploaded Source

Built Distribution

croissant_sim-3.0.0-py3-none-any.whl (33.8 kB view details)

Uploaded Python 3

File details

Details for the file croissant-sim-3.0.0.tar.gz.

File metadata

  • Download URL: croissant-sim-3.0.0.tar.gz
  • Upload date:
  • Size: 37.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.10.6

File hashes

Hashes for croissant-sim-3.0.0.tar.gz
Algorithm Hash digest
SHA256 35676ebb37ec0f628b1950fe9ead5662e49e23f7318bcad46942ce09df20c696
MD5 80804d52da7f4be62d80bbd98b9cf189
BLAKE2b-256 53f8a240056211056807ed038167de5d29735164887028ab544cddc3891f85e9

See more details on using hashes here.

File details

Details for the file croissant_sim-3.0.0-py3-none-any.whl.

File metadata

File hashes

Hashes for croissant_sim-3.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 7c140a9166bf6a4d7109e3b7cb7efbc7bc4fc4fc9628a6da05d1c4d1ec195f78
MD5 202cb3202d8d295df2420448609c566f
BLAKE2b-256 0ad32b1bc3d47527b9fa41cb106dda060ef2c645e8d82cc6a693892b2e70a893

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