Transits

Flexible photometric transit curves with limb darkening

https://github.com/juliaastro/transits.jl

Science Score: 77.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
    Found CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
    Found 5 DOI reference(s) in README
  • Academic publication links
    Links to: zenodo.org
  • Committers with academic emails
    2 of 8 committers (25.0%) from academic institutions
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (15.5%) to scientific vocabulary

Keywords

companion exoplanet lightcurve limbdark secondary starry transit

Keywords from Contributors

numerics programming-language julialang astronomy interpolation interface matrix-exponential bayesian-statistics mcmc graphics
Last synced: 6 months ago · JSON representation ·

Repository

Flexible photometric transit curves with limb darkening

Basic Info
Statistics
  • Stars: 21
  • Watchers: 5
  • Forks: 6
  • Open Issues: 2
  • Releases: 15
Topics
companion exoplanet lightcurve limbdark secondary starry transit
Created about 5 years ago · Last pushed 6 months ago
Metadata Files
Readme License Citation

README.md

Transits.jl

Stable Dev

CI PkgEval codecov License DOI

Flexible photometric transit curves with limb darkening. The goals of this package are, in this order

  • have a simple interface with high composability
  • be flexible with respect to numeric types and application
  • be fully compatible with ChainRules.jl automatic differentiation (AD) system to leverage the derived analytical gradients
  • provide a codebase that is well-organized, instructive, and easy to extend
  • maintain high performance: at least as fast as similar tools

WIP: Currently under progress by @mileslucas

Current TODO list

in some order of importance

  • [x] ~Finish writing KeplerOrbit (help wanted)~
  • [x] ~Gradients using ChainRulesCore~
  • [x] ~Gradient tests using ChainRulesTestUtils~
  • [x] ~Kipping prior distributions (with gradients) (help wanted)~
  • [x] ~documenation section "Introduction" describing transits and talking about science, very expository (help wanted)~
  • [ ] Plotting functions (recreate ALFM 20 plots)
    • recipe for lightcurve which automatically makes a simple orbit and shows features
    • similar as above but special one for SecondaryLimbDark to side-by-side plot secondary
    • figure 3 and 6 can be written with recipe
  • [ ] examples (show rich composability of julia)
    • We can use Pluto notebooks for examples that are learning-oriented
    • For tutorials and problem-oriented examples prefer a Julia script that can be weaved into the docs (with Literate.jl e.g.) (or just as easily weaved into a jupyter notebook!)
  • [ ] benchmarks (recreate ALFM 20 plots)
    • I have some code in bench/speed.jl. This needs modularized- the benchmark function can be rewritten like benchmark(f, Nu, Npts) and abstracted for f as types.
    • once the code is reorganized (maybe even put the new benchmark in a module for future thinking) decide whether to save data or save images, then build the link with the documentation
    • need to add benchmarks for the python code. PyCall has worked fine for benchmarking for me in the past, so lets write the driver in Julia. here is a link to the plotting code from ALFM
    • in general, the more this can be automated the better (including CI!)
  • [ ] look at simpson integrated light curve (ALFM 20)

If you would like to contribute, feel free to open a pull request. If you want to discuss something before contributing, head over to discussions and join or open a new topic.

Installation

To install use Pkg. From the REPL, press ] to enter Pkg-mode

julia pkg> add Transits If you want to use the most up-to-date version of the code, check it out from main

julia pkg> add Transits#main

Usage

```julia using Transits

orbit = SimpleOrbit(period=3, duration=1) u = [0.4, 0.26] # quad limb dark ld = PolynomialLimbDark(u)

t = range(-1, 1, length=1000) # days from t0 rs = range(0, 0.2, length=10) # radius ratio

fluxes = @. ld(orbit, t, rs') ```

Integrated and Secondary Curves

IntegratedLimbDark can be used to numerically integrate each light curve exposure in time

```julia ld = IntegratedLimbDark([0.4, 0.26]) orbit = SimpleOrbit(period=3, duration=1) t = range(-1, 1, length=1000) texp = [0.1 0.2 0.3]

no extra calculations made

flux = @. ld(orbit, t, 0.2)

use quadrature to find time-averaged flux for each t

flux_int = @. ld(orbit, t, 0.2, texp) ```

SecondaryLimbDark can be used to generate secondary eclipses given a surface brightness ratio

```julia ld = SecondaryLimbDark([0.4, 0.26], brightnessratio=0.1) ldint = IntegratedLimbDark(ld) # composition works flawlessly

orbit = SimpleOrbit(period=4, duration=1) t = range(-1.25, 2.75, length=1000) rs = range(0.01, 0.1, length=6)

f = @. ld(orbit, t, rs') fint = @. ldint(orbit, t, rs', texp=0.3) ```

Using Units

Units from Unitful.jl are a drop-in substitution for numbers

julia using Unitful orbit = SimpleOrbit(period=10u"d", duration=5u"hr") t = range(-6, 6, length=1000)u"hr" flux = @. ld(orbit, t, 0.1)

Citations

If you use Transits.jl or a derivative of it in your work please consider citing it at the Zenodo DOI. If you use PolynomialLimbDark or QuadLimbDark please also cite Agol et al. (2020) and Luger et al. (2019). If you use Kipping13 please cite Kipping (2013). BibTeX for all those citations can be found in CITATIONS.bib.

Owner

  • Name: Julia Astro
  • Login: JuliaAstro
  • Kind: organization
  • Email: julia-astro@googlegroups.com

Citation (CITATIONS.bib)

# starry - please cite both of these if you use PolynomialLimbDark or QuadLimbDark
@ARTICLE{2020AJ....159..123A,
       author = {{Agol}, Eric and {Luger}, Rodrigo and {Foreman-Mackey}, Daniel},
        title = "{Analytic Planetary Transit Light Curves and Derivatives for Stars with Polynomial Limb Darkening}",
      journal = {\aj},
     keywords = {486, 489, 1709, 293, 1855, 38, 1711, 918, 442, 922, Astrophysics - Earth and Planetary Astrophysics, Astrophysics - Instrumentation and Methods for Astrophysics},
         year = 2020,
        month = mar,
       volume = {159},
       number = {3},
          eid = {123},
        pages = {123},
          doi = {10.3847/1538-3881/ab4fee},
archivePrefix = {arXiv},
       eprint = {1908.03222},
 primaryClass = {astro-ph.EP},
       adsurl = {https://ui.adsabs.harvard.edu/abs/2020AJ....159..123A},
      adsnote = {Provided by the SAO/NASA Astrophysics Data System}
}
@ARTICLE{2019AJ....157...64L,
       author = {{Luger}, Rodrigo and {Agol}, Eric and {Foreman-Mackey}, Daniel and {Fleming}, David P. and {Lustig-Yaeger}, Jacob and {Deitrick}, Russell},
        title = "{starry: Analytic Occultation Light Curves}",
      journal = {\aj},
     keywords = {eclipses, methods: analytical, occultations, techniques: photometric, Astrophysics - Instrumentation and Methods for Astrophysics, Astrophysics - Earth and Planetary Astrophysics, Astrophysics - Solar and Stellar Astrophysics},
         year = 2019,
        month = feb,
       volume = {157},
       number = {2},
          eid = {64},
        pages = {64},
          doi = {10.3847/1538-3881/aae8e5},
archivePrefix = {arXiv},
       eprint = {1810.06559},
 primaryClass = {astro-ph.IM},
       adsurl = {https://ui.adsabs.harvard.edu/abs/2019AJ....157...64L},
      adsnote = {Provided by the SAO/NASA Astrophysics Data System}
}
# Kipping13 sampler
@ARTICLE{2013MNRAS.435.2152K,
       author = {{Kipping}, David M.},
        title = "{Efficient, uninformative sampling of limb darkening coefficients for two-parameter laws}",
      journal = {\mnras},
     keywords = {methods: analytical, stars: atmospheres, Astrophysics - Solar and Stellar Astrophysics, Astrophysics - Earth and Planetary Astrophysics},
         year = 2013,
        month = nov,
       volume = {435},
       number = {3},
        pages = {2152-2160},
          doi = {10.1093/mnras/stt1435},
archivePrefix = {arXiv},
       eprint = {1308.0009},
 primaryClass = {astro-ph.SR},
       adsurl = {https://ui.adsabs.harvard.edu/abs/2013MNRAS.435.2152K},
      adsnote = {Provided by the SAO/NASA Astrophysics Data System}
}

GitHub Events

Total
  • Create event: 12
  • Commit comment event: 2
  • Release event: 1
  • Issues event: 2
  • Watch event: 3
  • Delete event: 14
  • Issue comment event: 10
  • Push event: 32
  • Pull request event: 21
Last Year
  • Create event: 12
  • Commit comment event: 2
  • Release event: 1
  • Issues event: 2
  • Watch event: 3
  • Delete event: 14
  • Issue comment event: 10
  • Push event: 32
  • Pull request event: 21

Committers

Last synced: about 1 year ago

All Time
  • Total Commits: 411
  • Total Committers: 8
  • Avg Commits per committer: 51.375
  • Development Distribution Score (DDS): 0.526
Past Year
  • Commits: 11
  • Committers: 3
  • Avg Commits per committer: 3.667
  • Development Distribution Score (DDS): 0.273
Top Committers
Name Email Commits
icweaver i****r@c****u 195
Miles Lucas m****s@h****u 184
github-actions[bot] 4****] 17
Abhro R 5****o 8
CompatHelper Julia c****y@j****g 4
William Thompson w****n@o****m 1
Mosè Giordano g****o 1
Benoit Pasquier 4****c 1
Committer Domains (Top 20 + Academic)

Issues and Pull Requests

Last synced: 6 months ago

All Time
  • Total issues: 6
  • Total pull requests: 46
  • Average time to close issues: 4 months
  • Average time to close pull requests: about 2 months
  • Total issue authors: 5
  • Total pull request authors: 7
  • Average comments per issue: 6.33
  • Average comments per pull request: 3.43
  • Merged pull requests: 36
  • Bot issues: 0
  • Bot pull requests: 15
Past Year
  • Issues: 0
  • Pull requests: 10
  • Average time to close issues: N/A
  • Average time to close pull requests: about 14 hours
  • Issue authors: 0
  • Pull request authors: 3
  • Average comments per issue: 0
  • Average comments per pull request: 0.7
  • Merged pull requests: 10
  • Bot issues: 0
  • Bot pull requests: 4
Top Authors
Issue Authors
  • mileslucas (2)
  • cscherrer (1)
  • icweaver (1)
  • milen-prg (1)
  • JuliaTagBot (1)
Pull Request Authors
  • icweaver (15)
  • github-actions[bot] (14)
  • abhro (11)
  • dependabot[bot] (9)
  • mileslucas (9)
  • giordano (2)
  • briochemc (2)
Top Labels
Issue Labels
Pull Request Labels
dependencies (9) github_actions (9) hacktoberfest-accepted (1)

Packages

  • Total packages: 1
  • Total downloads:
    • julia 2 total
  • Total dependent packages: 0
  • Total dependent repositories: 0
  • Total versions: 15
juliahub.com: Transits

Flexible photometric transit curves with limb darkening

  • Versions: 15
  • Dependent Packages: 0
  • Dependent Repositories: 0
  • Downloads: 2 Total
Rankings
Dependent repos count: 9.9%
Forks count: 19.4%
Average: 22.9%
Stargazers count: 23.4%
Dependent packages count: 38.9%
Last synced: 6 months ago

Dependencies

.github/workflows/CompatHelper.yml actions
.github/workflows/TagBot.yml actions
  • JuliaRegistries/TagBot v1 composite
.github/workflows/ci.yml actions
  • actions/checkout v2 composite
  • codecov/codecov-action v1 composite
  • julia-actions/cache v1 composite
  • julia-actions/julia-buildpkg v1 composite
  • julia-actions/julia-processcoverage v1 composite
  • julia-actions/julia-runtest v1 composite
  • julia-actions/setup-julia v1 composite
.github/workflows/preview-cleanup.yml actions
  • actions/checkout v2 composite
.github/workflows/register.yml actions
  • julia-actions/RegisterAction latest composite