Science Score: 23.0%
This score indicates how likely this project is to be science-related based on various indicators:
-
○CITATION.cff file
-
✓codemeta.json file
Found codemeta.json file -
○.zenodo.json file
-
○DOI references
-
○Academic publication links
-
✓Committers with academic emails
7 of 30 committers (23.3%) from academic institutions -
○Institutional organization owner
-
○JOSS paper metadata
-
○Scientific vocabulary similarity
Low similarity (14.5%) to scientific vocabulary
Repository
EXOplanet Transit Interpretation Code
Basic Info
Statistics
- Stars: 98
- Watchers: 12
- Forks: 47
- Open Issues: 89
- Releases: 115
Metadata Files
README.md
EXOTIC (EXOplanet Transit Interpretation Code)
A Python 3 package for reducing and analyzing photometric data of exoplanetary transits. As an exoplanet passes in front of its host star, the observed brightness of the star drops by a small amount. This drop in brightness is known as a transit. Our software aids in creating lightcurves from images, enabling extraction of planetary parameters (e.g. Rp/Rs, Inclination, Mid-transit, etc.) through fitting astrophysical models to the data.
(NASA Ames)
Installation + Setup
To install EXOTIC, you need to have Python 3.10 or lower installed on your computer. You can then install EXOTIC by following these steps:
- Install Anaconda or Miniconda (a minimal version of Anaconda) on your computer.
- Create a new virtual environment and activate it:
conda create -n exotic python=3.10
conda activate exotic
3. Install EXOTIC and its dependencies:
pip install exotic
5. (Optional) Run EXOTIC's graphical user interface (GUI):
exotic-gui
After installing EXOTIC, you can verify the installation by running the following command in your terminal or command prompt:
python -c "import exotic"
If EXOTIC is installed correctly, you should not see any error messages. You can now start using EXOTIC by following the examples provided in the repository or by using our sample dataset. If you're a new user, we recommend starting with the beginner tutorial in Google Colab and then following our installation instructions for your operating system.
Google Colab Cloud
Google Colab is a free cloud service that allows you to run Python code in a Jupyter notebook environment without having to install any software on your computer. We have a series of tutorials that you can run in Google Colab to learn how to use EXOTIC. You can access these tutorials by clicking on the following links: - Beginner Tutorial for getting started with sample data - Standard Tutorial for people who use data from MicroObservatory robotic telescopes (we can give you data to convert to a light curve) - Advanced Tutorial for people who use observations from their own telescope
If those links are broken check our website for the latest.
New User Tutorials
The user community behind Exoplanet Watch has created extensive documentation to help you get started with EXOTIC. We recommend you start with the following resources:
- Installation instructions for Windows, Mac, and Linux.
- How to use EXOTIC on the Colab (video)
- How to use EXOTIC on the Colab
- EXOTIC Tutorial (video)
- Exoplanet Watch Observer's Manual
- AI Chatbot for Exoplanet Watch
- These documents in other languages
Sample Data
We recommend you test exotic with a sample dataset consisting of 142 fits files taken by a 6 telescope of the exoplanet HAT-P-32 b (V-mag = 11.44) observed on December 20, 2017. The telescope used to collect this dataset is part of the MicroObservatory Robotic Telescope Network operated by the Harvard-Smithsonian Center for Astrophysics.
A lightcurve from the sample dataset is shown below:

Exotic will output the final parameters in a text file and a plot of the light curve. The output will look similar to the following:
```
FINAL PLANETARY PARAMETERS
Mid-Transit Time [BJD_TDB]: 2458107.71406 +/- 0.00097
Radius Ratio (Planet/Star) [Rp/Rs]: 0.1541 +/- 0.0033 Transit depth [(Rp/Rs)^2]: 2.37 +/- 0.1 [%] Semi Major Axis/ Star Radius [a/Rs]: 5.213 +/- 0.061 Airmass coefficient 1: 1.1626 +/- 0.0037 Airmass coefficient 2: -0.1184 +/- 0.0024 Residual scatter: 0.55 % Best Comparison Star: None Optimal Aperture: 4.09 Optimal Annulus: 10.74 Transit Duration [day]: 0.13 +/- 0.0017
```
Initializaton File
Get EXOTIC up and running faster with a json file. Please see the included file (inits.json) meant for the sample data. The initialization file has the following fields:
```json { "user_info": { "Directory with FITS files": "sample-data/HatP32Dec202017", "Directory to Save Plots": "sample-data/", "Directory of Flats": null, "Directory of Darks": null, "Directory of Biases": null,
"AAVSO Observer Code (blank if none)": "RTZ",
"Secondary Observer Codes (blank if none)": "",
"Observation date": "17-December-2017",
"Obs. Latitude": "+32.41638889",
"Obs. Longitude": "-110.73444444",
"Obs. Elevation (meters)": 2616,
"Camera Type (CCD or DSLR)": "CCD",
"Pixel Binning": "1x1",
"Filter Name (aavso.org/filters)": "V",
"Observing Notes": "Weather, seeing was nice.",
"Plate Solution? (y/n)": "y",
"Target Star X & Y Pixel": [424, 286],
"Comparison Star(s) X & Y Pixel": [[465, 183], [512, 263], [], [], [], [], [], [], [], []]
},
"planetary_parameters": {
"Target Star RA": "02:04:10",
"Target Star Dec": "+46:41:23",
"Planet Name": "HAT-P-32 b",
"Host Star Name": "HAT-P-32",
"Orbital Period (days)": 2.1500082,
"Orbital Period Uncertainty": 1.3e-07,
"Published Mid-Transit Time (BJD-UTC)": 2455867.402743,
"Mid-Transit Time Uncertainty": 4.9e-05,
"Ratio of Planet to Stellar Radius (Rp/Rs)": 0.14886235252742716,
"Ratio of Planet to Stellar Radius (Rp/Rs) Uncertainty": 0.0005539487393037134,
"Ratio of Distance to Stellar Radius (a/Rs)": 5.344,
"Ratio of Distance to Stellar Radius (a/Rs) Uncertainty": 0.039496835316262996,
"Orbital Inclination (deg)": 88.98,
"Orbital Inclination (deg) Uncertainty": 0.7602631123499285,
"Orbital Eccentricity (0 if null)": 0.159,
"Star Effective Temperature (K)": 6001.0,
"Star Effective Temperature (+) Uncertainty": 88.0,
"Star Effective Temperature (-) Uncertainty": -88.0,
"Star Metallicity ([FE/H])": -0.16,
"Star Metallicity (+) Uncertainty": 0.08,
"Star Metallicity (-) Uncertainty": -0.08,
"Star Surface Gravity (log(g))": 4.22,
"Star Surface Gravity (+) Uncertainty": 0.04,
"Star Surface Gravity (-) Uncertainty": -0.04
},
"optional_info": {
"Pre-reduced File:": "/sample-data/NormalizedFlux_HAT-P-32 b_December 17, 2017.txt",
"Pre-reduced File Time Format (BJD_TDB, JD_UTC, MJD_UTC)": "BJD_TDB",
"Pre-reduced File Units of Flux (flux, magnitude, millimagnitude)": "flux",
"Filter Minimum Wavelength (nm)": null,
"Filter Maximum Wavelength (nm)": null,
"Pixel Scale (Ex: 5.21 arcsecs/pixel)": null,
"Exposure Time (s)": 60.0
}
} ```
Features and Pipeline Architecture
Automatic Plate Solution from http://nova.astrometry.net
Resolve targets with NASA Exoplanet Archive + retrieve light curve priors
Hot Pixel Masking
Image to image alignment for centroid tracking
Optimal Aperture Photometry
PSF Photometry

- Stellar masking in background estimate

Multiple comparison star + aperture size optimization
Non-linear 4 parameter limb darkening with LDTK. For a list of compatible filters please see: filters.py
Light curve parameter optimization with Nested Sampling

Contributing to EXOTIC
EXOTIC is an open source project that welcomes contributions. Please fork the repository and submit a pull request to the develop branch and join our slack channel to get ahold of our team. We are always looking for new contributors to help us improve the software and documentation.
Citation
If you use any of these algorithms in your work, please cite our 2020 paper: Zellem, Pearson, Blaser, et al. 2020
Please also include the following statement in your paper's Acknowledgements section:
This publication makes use of data products from Exoplanet Watch, a citizen science project managed by NASAs Jet Propulsion Laboratory on behalf of NASAs Universe of Learning. This work is supported by NASA under award number NNX16AC65A to the Space Telescope Science Institute.
Exoplanet Watch
Contribute to Exoplanet Watch, a citizen science project that improves the properties of exoplanets and their orbits using observations processed with EXOTIC. Register with AAVSO and input your Observer Code to help track your contributions allowing for proper credit on future publications using those measurements. Ask about our Exoplanet Watch Slack Channel!
Acknowledgements
Exoplanet Watch is a project by NASA's Universe of Learning. NASA's Universe of Learning materials are based upon work supported by NASA under award number NNX16AC65A to the Space Telescope Science Institute, working in partnership with Caltech/IPAC, Center for Astrophysics | Harvard & Smithsonian, and the Jet Propulsion Laboratory.
Owner
- Login: rzellem
- Kind: user
- Repositories: 2
- Profile: https://github.com/rzellem
GitHub Events
Total
- Create event: 16
- Commit comment event: 2
- Release event: 9
- Issues event: 47
- Watch event: 19
- Delete event: 6
- Issue comment event: 121
- Push event: 40
- Pull request event: 50
- Pull request review event: 47
- Pull request review comment event: 21
- Fork event: 2
Last Year
- Create event: 16
- Commit comment event: 2
- Release event: 9
- Issues event: 47
- Watch event: 19
- Delete event: 6
- Issue comment event: 121
- Push event: 40
- Pull request event: 50
- Pull request review event: 47
- Pull request review comment event: 21
- Fork event: 2
Committers
Last synced: over 3 years ago
All Time
- Total Commits: 1,271
- Total Committers: 30
- Avg Commits per committer: 42.367
- Development Distribution Score (DDS): 0.681
Top Committers
| Name | Commits | |
|---|---|---|
| Tamim Fatahi | t****i@g****m | 405 |
| Rob Zellem | r****m@j****v | 363 |
| Kyle A Pearson | k****n@j****v | 165 |
| mjs2369 | m****9@c****u | 85 |
| jpl-jengelke | j****e@j****v | 68 |
| Kyle A Pearson | k****e@g****o | 31 |
| John Engelke | 5****e@u****m | 25 |
| actran | a****n@c****u | 22 |
| blaserethan | b****n@g****m | 14 |
| Zorba256 | 8****6@u****m | 13 |
| Kaio Duarte Costa | k****e@e****m | 12 |
| Bryce McDonnell | b****e@b****m | 12 |
| dependabot[bot] | 4****]@u****m | 12 |
| Tiana James | 5****s@u****m | 10 |
| Kaio Duarte Costa | k****1@g****m | 7 |
| Daly Gutierrez | d****z@g****m | 5 |
| blaserethan | e****r@D****n | 4 |
| ihuckabee | i****e@a****u | 3 |
| Tamim Fatahi | 3****i@u****m | 2 |
| Daniel Sánchez | m****6@h****m | 2 |
| Leon Bewersdorff | 6****w@u****m | 2 |
| Ayush Nayak | a****k@g****m | 1 |
| Leon Bewersdorff | l****w@p****e | 1 |
| Matthew Plough | m****h@g****m | 1 |
| Joewie J. Koh | j****e@e****m | 1 |
| Bergen | b****n@m****m | 1 |
| Ethan Blaser | e****1@g****m | 1 |
| Ethan Blaser | e****r@j****v | 1 |
| Matt Davis | m****s@g****m | 1 |
| Max Gribov | m****x@n****g | 1 |
Committer Domains (Top 20 + Academic)
Issues and Pull Requests
Last synced: 11 months ago
All Time
- Total issues: 92
- Total pull requests: 150
- Average time to close issues: 5 months
- Average time to close pull requests: 11 days
- Total issue authors: 18
- Total pull request authors: 16
- Average comments per issue: 0.95
- Average comments per pull request: 0.71
- Merged pull requests: 125
- Bot issues: 0
- Bot pull requests: 10
Past Year
- Issues: 7
- Pull requests: 10
- Average time to close issues: about 1 month
- Average time to close pull requests: about 3 hours
- Issue authors: 3
- Pull request authors: 3
- Average comments per issue: 1.71
- Average comments per pull request: 0.5
- Merged pull requests: 8
- Bot issues: 0
- Bot pull requests: 0
Top Authors
Issue Authors
- rzellem (29)
- jpl-jengelke (23)
- tamimfatahi (15)
- ivenzor (11)
- pearsonkyle (8)
- noguerfederico (5)
- IraLeeBell (5)
- gasilvis (2)
- sdcorle1 (1)
- HannimalCrackers (1)
- OssifBaigel (1)
- DrDanZZ (1)
- kennethcarrell (1)
- jslash1-abc (1)
- JasonInRVA (1)
Pull Request Authors
- jpl-jengelke (66)
- tamimfatahi (26)
- mikeprimm (22)
- rzellem (19)
- pearsonkyle (18)
- ivenzor (16)
- noguerfederico (16)
- dependabot[bot] (9)
- sdcorle1 (6)
- IraLeeBell (4)
- alienlifeform (3)
- mikeprimm-mirific (1)
- marcocesari (1)
- chandrunarayan (1)
- ihuckabee (1)
Top Labels
Issue Labels
Pull Request Labels
Packages
- Total packages: 1
-
Total downloads:
- pypi 1,712 last-month
- Total dependent packages: 0
- Total dependent repositories: 1
- Total versions: 115
- Total maintainers: 3
pypi.org: exotic
EXOTIC: EXOplanet Transit Interpretation Code
- Homepage: https://github.com/rzellem/EXOTIC
- Documentation: https://github.com/rzellem/EXOTIC/wiki
- License: Proprietary -- Copyright (c) 2019-present, California Institute of Technology.
-
Latest release: 4.3.1
published over 1 year ago
Rankings
Maintainers (3)
Dependencies
- actions/checkout v3 composite
- actions/setup-python v4 composite
- LDTk *
- astroalign *
- astropy >=4.3
- astroquery *
- barycorrpy *
- dynesty *
- holoviews *
- importlib-metadata >=3.6
- imreg_dft *
- lmfit *
- matplotlib >=3.4
- numpy *
- pandas *
- panel *
- photutils >=0.7
- pylightcurve *
- python_dateutil *
- python_version *
- pyvo *
- requests *
- scikit-image *
- scipy *
- tenacity *
- ultranest *

