README.md 2.29 KB
Newer Older
1
# Exoplanet ML
2

3
Machine learning models and utilities for exoplanet science.
4

5
## Code Author
6

Christopher Shallue's avatar
Christopher Shallue committed
7
Chris Shallue: [@cshallue](https://github.com/cshallue)
8

9
## Quick Start
10

11
Jump to the [AstroNet walkthrough](astronet/README.md#walkthrough).
Christopher Shallue's avatar
Christopher Shallue committed
12
13
14
15
16
17
18
19
20
21
22

## Citation

If you find this code useful, please cite our paper:

Shallue, C. J., & Vanderburg, A. (2018). Identifying Exoplanets with Deep
Learning: A Five-planet Resonant Chain around Kepler-80 and an Eighth Planet
around Kepler-90. *The Astronomical Journal*, 155(2), 94.

Full text available at [*The Astronomical Journal*](http://iopscience.iop.org/article/10.3847/1538-3881/aa9e09/meta).

23
## Directories
Christopher Shallue's avatar
Christopher Shallue committed
24
25
26

[astronet/](astronet/)

27
28
* A neural network for identifying exoplanets in light curves. Contains code for:
  * Downloading and preprocessing Kepler light curves.
Christopher Shallue's avatar
Christopher Shallue committed
29
30
31
32
  * Building different types of neural network classification models.
  * Training and evaluating a new model.
  * Using a trained model to generate new predictions.

33
34
35
36
[astrowavenet/](astrowavenet/)

* A generative model for light curves.

37
[light_curve/](light_curve)
Christopher Shallue's avatar
Christopher Shallue committed
38
39
40
41
42

* Utilities for operating on light curves. These include:
  * Reading Kepler data from `.fits` files.
  * Applying a median filter to smooth and normalize a light curve.
  * Phase folding, splitting, removing periodic events, etc.
43
44
45
* [light_curve/fast_ops/](light_curve/fast_ops) contains optimized C++ light
curve operations.

Chris Shallue's avatar
Chris Shallue committed
46
[tf_util/](tf_util)
47
48

* Shared TensorFlow utilities.
Christopher Shallue's avatar
Christopher Shallue committed
49
50
51
52
53
54

[third_party/](third_party/)

* Utilities derived from third party code.


55
# Setup
Christopher Shallue's avatar
Christopher Shallue committed
56

57
## Required Packages
Christopher Shallue's avatar
Christopher Shallue committed
58
59
60

* **TensorFlow** ([instructions](https://www.tensorflow.org/install/))
* **Pandas** ([instructions](http://pandas.pydata.org/pandas-docs/stable/install.html))
61
* **NumPy** ([instructions](https://docs.scipy.org/doc/numpy/user/install.html))
62
* **SciPy** ([instructions](https://scipy.org/install.html))
Christopher Shallue's avatar
Christopher Shallue committed
63
64
65
66
67
* **AstroPy** ([instructions](http://www.astropy.org/))
* **PyDl** ([instructions](https://pypi.python.org/pypi/pydl))
* **Bazel** ([instructions](https://docs.bazel.build/versions/master/install.html))
* **Abseil Python Common Libraries** ([instructions](https://github.com/abseil/abseil-py))

68
## Run Unit Tests
Christopher Shallue's avatar
Christopher Shallue committed
69
70
71
72

Verify that all dependencies are satisfied by running the unit tests:

```bash
73
bazel test astronet/... astrowavenet/... light_curve/... tf_util/... third_party/...
Christopher Shallue's avatar
Christopher Shallue committed
74
75
```