Skip to main content

Gaspery (/gas.pər.ee/)

Pronunciation Guide

Gaspery is a package that uses the Fisher Information Matrix (FIM) to evaluate different radial velocity (RV) observing strategies. A paper (Lam, Bedell, Zhao, Gupta & Ballard, submitted) will also follow this work.

The Fisher Information Matrix describes the amount of information a time series contains on each free parameter input in a model. For exoplanet observers, the free parameter of interest is often the RV semi-amplitude, K. Gaspery is intended to help observational exoplanet astronomers construct the observing strategy that maximizes information (or minimizes uncertainty) on K. However, one can maximize information on any free parameter from any model, given a time series support (x-axis). So, whether you want to extend gaspery to deal with more complex models and problems or want integration with different covariance kernels (we are fully integrated with tinygp), we are happy to field your suggestions on this repo's Git Issues!

Installation

To install locally, run

pip install .

at the root gaspery/ directory.

To install the latest PyPI distribution of gaspery, on Mac OS or Linux:

python3 -m venv some-env
source some-env/bin/activate
python3 -m pip install --index-url https://pypi.org/simple/ --no-deps gaspery

And on Windows:

py -m venv env
.\env\Scripts\activate
python3 -m pip install --index-url https://pypi.org/simple/ --no-deps gaspery

Tutorials

Start here for usecases!

  • min_observations.ipynb: Given a target, I want to find the minimum number of observations required to reach some threshold for the uncertainty on the RV semi-amplitude, K.

  • fixed_budget.ipynb: Given a target AND a fixed allocation of observations, how do I best spend these observing nights to minimize the uncertainty on K?

  • beat_frequencies.ipynb: Given a host star, how do various combinations of planet orbital period and observing cadence interact to produce "beat frequencies" (contours of low information content due to aliasing)?

  • companions.ipynb: Fixed budget, but with more than one planet in a system!

  • custom_kernels.ipynb: What if I want to swap out the quasi-periodic Gaussian Process kernel for something more specific to my science case?

  • comparison_to_fits.ipynb: Demonstrate how well gaspery does compared to a fit on synthetic RV data, using AU Mic b.

Src/gaspery

Source code for the gaspery package.

Notebooks

These are where the functions in src/gaspery/ were developed and tested, as well as where figures were made for proposals, presentations, and the paper.

Notebooks are listed in order of chronological development. This is loosely what the paper follows, as well.

  • calculate_fim.ipynb: initial development of the FIM calculation machinery (white noise)

  • example.ipynb and example-correlated-noise.ipynb are deep dives into what a strategy looks like over a model planetary signal

  • strategies.ipynb: enable convenient input of n_obs and cadence, with n_obs vs sigma_K as output

  • regimes.ipynb: explore the new 'gappy' regime, in which we introduce dropout and off periods; also codify JAX implementation of FI calculation

  • explore-gappy.ipynb: re-imagine new ways of doing 'gappy' (ie. balanced distribution of off nights) and sensitivity map (on nights vs baseline)

  • au-mic.ipynb: real life example for the AU Mic system

  • eprv-abstract.ipynb: make cadences vs orbital period sensitivity map, but using latest JAX-enabled FI calculation

A note on the name

Gaspery is a character from Emily St. John Mandel's Sea of Tranquility who travels throughout time, sampling different points in order to investigate the universe.

There is a song about gaspery

Natalia Guerrero (art and code) and I wondered how one might represent the process of using gaspery in song. We produced the planet and star beats and then alternated between observing (machine-like as the telescope slews, panning from ear to ear as the stars go from horizon to horizon) and not observing (noodling on the piano, synthesizing, resting, creating).

Song

Metadata

Release files for gaspery 0.3.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for gaspery 0.3.0
File Size Uploaded
gaspery-0.3.0.tar.gz 51.6 MB Details

Built distribution (wheel)

Table of built distributions (wheels) for gaspery 0.3.0
File Interpreter ABI Platform
gaspery-0.3.0-py3-none-any.whl Python 3 none any Details

Total release size: 51.7 MB

Release files / gaspery-0.3.0.tar.gz

Download URL gaspery-0.3.0.tar.gz
Size 51.6 MB
Tags Source
SHA-256 checksum
How to use checksums
8d4be99f1c730cd616afc51cea9a267516134d4e21efd5006291ab97919b625b
BLAKE2b-256 checksum
How to use checksums
b61d0ed423dbc086b86bc2b7eb53d15f13f684f17e526e1bf9e20e6cb69c51b6
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.1.1 CPython/3.12.1

Release files / gaspery-0.3.0-py3-none-any.whl

Download URL gaspery-0.3.0-py3-none-any.whl
Size 11.7 kB
Tags Python 3
SHA-256 checksum
How to use checksums
8c37c4af937a6d7f34e4ca6ae1a4af801b1f0a3358b8f85cdf0eb99a7a24a441
BLAKE2b-256 checksum
How to use checksums
a1b779cbbc6a8e385230fe58d9ec91a39ffb650ebb42b0e977220a926b3c0a9a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.1.1 CPython/3.12.1

Release history Release notifications | RSS feed

This release

0.3.0 This release

2 release files

0.2.2

2 release files

0.2.1

2 release files

0.2.0

2 release files

0.1.1

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page