Skip to main content

Fisher Information-based radial velocity observation scheduling

Project description

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

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

gaspery-0.3.0.tar.gz (51.6 MB view details)

Uploaded Source

Built Distribution

gaspery-0.3.0-py3-none-any.whl (11.7 kB view details)

Uploaded Python 3

File details

Details for the file gaspery-0.3.0.tar.gz.

File metadata

  • Download URL: gaspery-0.3.0.tar.gz
  • Upload date:
  • Size: 51.6 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.12.1

File hashes

Hashes for gaspery-0.3.0.tar.gz
Algorithm Hash digest
SHA256 8d4be99f1c730cd616afc51cea9a267516134d4e21efd5006291ab97919b625b
MD5 72576e26d84d7977fe32289a25c2beb5
BLAKE2b-256 b61d0ed423dbc086b86bc2b7eb53d15f13f684f17e526e1bf9e20e6cb69c51b6

See more details on using hashes here.

File details

Details for the file gaspery-0.3.0-py3-none-any.whl.

File metadata

  • Download URL: gaspery-0.3.0-py3-none-any.whl
  • Upload date:
  • Size: 11.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.12.1

File hashes

Hashes for gaspery-0.3.0-py3-none-any.whl
Algorithm Hash digest
SHA256 8c37c4af937a6d7f34e4ca6ae1a4af801b1f0a3358b8f85cdf0eb99a7a24a441
MD5 1d8ec654a16b7e5706a37ba783b07ec7
BLAKE2b-256 a1b779cbbc6a8e385230fe58d9ec91a39ffb650ebb42b0e977220a926b3c0a9a

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