Skip to content

Case studies #103

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 19 commits into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
35 changes: 33 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@ The rendered JuliaAstro site is published online using GitHub Pages at <https://
```julia
JuliaAstro.github.io
├── docs/
│   ├── case_studies/
│   ├── clones/
│   ├── make.jl
│   └── src/
Expand All @@ -39,7 +40,7 @@ The rendered JuliaAstro site is published online using GitHub Pages at <https://

## Contributing

Below we walk through two main ways to contribute to the JuliaAstro site:
Below we walk through three main ways to contribute to the JuliaAstro site:

### 1. Editing existing markdown content

Expand Down Expand Up @@ -67,6 +68,36 @@ Our Ecosystem page and Comparison page are integrated with the rest of the site,

If appropriate, we appreciate a quick entry for your package in the `astropy` field that relates it to a similar package in the [Astropy ecosystem](https://www.astropy.org/). This helps new users who may be more familiar with Python get more easily oriented in the Julia ecosystem. See our [Comparison page](https://juliaastro.org/home/comparison/) for examples. If you feel that there is not a good match for your package, you can just leave the `astropy` field blank (i.e., as an empty array `[]`) and it will not appear in this page.

### 3. Adding a new entry to our [Case studies page](https://juliaastro.org/home/case_studies/)

This is a great way to showcase how packages in the JuliaAstro and wider aero/astro ecosystem are used in real world use cases. Each case study is organized in the following way within the `docs/case_studies` directory:

```julia
JuliaAstro.github.io/docs/case_studies/
├── config.json
├── exoplanets
│   ├── config.json
│   ├── <author username>-<package name>.md
│   └── sefffal-octofitter.md
├── index.md
└── ...
```

Above is an example entry in the `exoplanets` section of the case studies page, which follows the same structure recommended in the [DemoCards.jl documentation](https://democards.juliadocs.org/stable/quickstart/). To summarize:

* `index.md` is the main case-study page that all case study cards are displayed in
* The top-level `config.json` sets the card theme and order that each case study category (e.g., solar system, exoplanets, etc.) appears.
* The second-level `config.json` sets the order that each case study within a given category will appear in
* `<author username>-<package name>.md` is the main entry point to adding a new case study and follows the same naming convention used in the rest of this site. You can follow other case study markdown files in this directory (e.g., `sefffal-octofitter.md`) as a template.


All in all, to add a new case study:

1. Navigate to the appropriate case study category, e.g., `exoplanets`
1. Copy one of the existing case study markdown files, e.g., `sefffal-octofitter.md` into your own case study file following the same naming convention, i.e., `<author username>-<package>`
1. Update the content in the new file with your case study text.
1. Add an entry to `JuliaAstro.github.io/docs/case_studies/<case study category>/config.json` with your new case study filename. Note that trailing commas are not supported in the JSON spec.

## Testing locally / developer docs

Add [LiveServer.jl](https://github.com/JuliaDocs/LiveServer.jl) to your global env and then run the following in the `JuliaAstro.github.io/` folder:
Expand All @@ -76,7 +107,7 @@ Add [LiveServer.jl](https://github.com/JuliaDocs/LiveServer.jl) to your global e

julia> using LiveServer

julia> servedocs(; include_dirs=["src/"], skip_files=["docs/src/comparison.md", "docs/src/ecosystem.md"], launch_browser=true)
julia> servedocs(; include_dirs=["src/", "docs/case_studies/"], skip_files=["docs/src/comparison.md", "docs/src/ecosystem.md"], launch_browser=true)
```

The `include_dirs` arg allows our internal Revise worklow to pick up changes in `src/JuliaAstro.jl` automatically, and the `skip_files` arg keeps Documenter.jl from falling into an infinite loop as `docs/make.jl` watches for changes to our markdown files.
Expand Down
1 change: 1 addition & 0 deletions docs/Project.toml
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
[deps]
DemoCards = "311a05b2-6137-4a5a-b473-18580a3d38b5"
Documenter = "e30172f5-a6a5-5a46-863b-614d45cd2de4"
DocumenterInterLinks = "d12716ef-a0f6-4df4-a9f1-a5a34e75c656"
JuliaAstroDocs = "5ba9df79-bc07-467f-bade-66a1d49082bd"
Expand Down
9 changes: 9 additions & 0 deletions docs/case_studies/config.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
{
"template": "index.md",
"theme": "transitiongrid",
"order": [
"solar_system",
"exoplanets",
"stars_and_galaxies"
]
}
8 changes: 8 additions & 0 deletions docs/case_studies/exoplanets/config.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
{
"order": [
"langfzac-photodynamics.md",
"ericagol-nbodygradient.md",
"rodluger-limbdark.md",
"sefffal-octofitter.md"
]
}
19 changes: 19 additions & 0 deletions docs/case_studies/exoplanets/ericagol-nbodygradient.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
---
title: "A differentiable N-body code for transit timing and dynamical modelling - I. Algorithm and derivatives"
id: "ericagol-nbodygradient"
description: "Computes derivatives with respect to initial conditions for TTVs, RV, Photodynamics & more."
author: "[Eric Agol](https://github.com/ericagol); [David M. Hernandez](https://www.davidmhernandez.com/); [Zachary Langford](https://github.com/langfzac)"
date: "2021-07-19"
---

This team uses Julia to develop a fast and accurate N-body code to study the multi-planetary [TRAPPIST-1 system](https://en.wikipedia.org/wiki/TRAPPIST-1).

**Package: [ericagol/NbodyGradient.jl](https://github.com/ericagol/NbodyGradient.jl)**

![image](https://s3.amazonaws.com/adsabs-thumbnails/seri/MNRAS/0507/stab2044/stab2044fig7.jpeg)

This is accomplished by using a novel method to obtain the derivatives of the transit times with respect to the initial conditions and masses using the chain rule, which is quicker and more accurate than using finite differences or automatic differentiation.

See their paper published in _MNRAS_ below and follow-up code, [langfzac/Photodynamics.jl](@ref langfzac-photodynamics), for more:

> Agol, E., Hernandez, D., & Langford, Z. (2021). A differentiable N-body code for transit timing and dynamical modelling – I. Algorithm and derivatives. [Monthly Notices of the Royal Astronomical Society, 507(2), 1582-1605](https://academic.oup.com/mnras/article/507/2/1582/6324024). [[ADS]](https://ui.adsabs.harvard.edu/abs/2021MNRAS.507.1582A/abstract)
17 changes: 17 additions & 0 deletions docs/case_studies/exoplanets/langfzac-photodynamics.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
---
title: "A differentiable N-body code for transit timing and dynamical modelling - II. Photodynamics"
id: "langfzac-photodynamics"
description: "Differentiable transit light curves in Julia."
author: "[Eric Agol](https://github.com/ericagol); [Zachary Langford](https://github.com/langfzac)"
date: "2025-05-05"
---

Building on [ericagol/NbodyGradient.jl](@ref ericagol-nbodygradient), this team combines transit models from [rodluger/Limbdark.jl](@ref rodluger-limbdark) to create full photodynamic models.

**Package: [langfzac/Photodynamics.jl](https://github.com/langfzac/Photodynamics.jl)**

![image](https://github.com/langfzac/Photodynamics.jl/blob/main/docs/src/assets/fig_langford.png?raw=true)

These models can then be used to model multi-planetary transit light curves. See their paper published in _MNRAS_ below for more:

> Langford, Z., & Agol, E. (2025). A differentiable N-body code for transit timing and dynamical modelling - II. Photodynamics. [Monthly Notices of the Royal Astronomical Society, 540(1), 106-127](https://academic.oup.com/mnras/article/540/1/106/8125473). [[ADS]](https://ui.adsabs.harvard.edu/abs/2025MNRAS.540..106L/abstract)
17 changes: 17 additions & 0 deletions docs/case_studies/exoplanets/rodluger-limbdark.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
---
title: "Analytic Planetary Transit Light Curves and Derivatives for Stars with Polynomial Limb Darkening"
id: "rodluger-limbdark"
description: "Analytical transit light curves for limb darkened stars."
author: "[Eric Agol](https://github.com/ericagol); [Rodrigo Luger](https://github.com/rodluger); [Dan Foreman–Mackey](https://github.com/dfm)"
date: "2025-05-05"
---

This team provides analytic light curve models incorporating polynomial limb-darkening.

**Package: [rodluger/Limbdark.jl](https://github.com/rodluger/Limbdark.jl)**

![image](https://content.cld.iop.org/journals/1538-3881/159/3/123/revision1/ajab4feef7_hr.jpg)

These models can be used to rapidly model multi-planetary transit and eclipse light curves. See their paper published in _The Astronomical Journal_ below, along with their follow-up work in [ericagol/NBodyGradient.jl](@ref ericagol-nbodygradient) and [langfzac/Photodynamics.jl](@ref langfzac-photodynamics), for more:

> Agol, E., Luger, R., & Foreman-Mackey, D. (2020). Analytic Planetary Transit Light Curves and Derivatives for Stars with Polynomial Limb Darkening. [The Astronomical Journal, 159(3), 123](https://iopscience.iop.org/article/10.3847/1538-3881/ab4fee). [[ADS]](https://ui.adsabs.harvard.edu/abs/2020AJ....159..123A/abstract)
20 changes: 20 additions & 0 deletions docs/case_studies/exoplanets/sefffal-octofitter.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
---
title: "Octofitter: Fast, Flexible, and Accurate Orbit Modeling to Detect Exoplanets"
id: "sefffal-octofitter"
description: "See how this team uses Julia to characterize exoplanets and their orbits with state-of-the-art Bayesian inference techniques."
author: "[William Thompson](https://github.com/sefffal)"
date: "2023-09-20"
---

This team has developed a fast and differentiable multimethod orbit-modeling and planet detection code to handle the next-generation of exoplanet detection and characterization.

**Package: [sefffal/Octofitter.jl](https://github.com/sefffal/Octofitter.jl)**

![image](https://sefffal.github.io/Octofitter.jl/stable/assets/gallery.png)

Their techniques include state-of-the-art Bayesian inference techniques to combine direct imaging, radial velocity, and interferometry data of exoplanets close to their host stars. Check out their series of papers below to see it in action on real exoplanetary systems.

> 1. Thompson, W., Lawrence, J., Blakely, D., Marois, C., Wang, J., Giordano, M., Brandt, T., Johnstone, D., Ruffio, J.B., Ammons, S., Crotts, K., Do \'O, C., Gonzales, E., & Rice, M. (2023). Octofitter: Fast, Flexible, and Accurate Orbit Modeling to Detect Exoplanets. [The Astronomical Journal, 166(4), 164](https://iopscience.iop.org/article/10.3847/1538-3881/acf5cc). [[ADS]](https://ui.adsabs.harvard.edu/abs/2023AJ....166..164T/abstract)
> 2. Hammond, I., Christiaens, V., Price, D., Blakely, D., Trevascus, D., Bonse, M., Cantalloube, F., Marleau, G.D., Pinte, C., Juillard, S., Samland, M., Thompson, W., & Wallace, A. (2025). Keplerian motion of a compact source orbiting the inner disc of PDS 70: a third protoplanet in resonance with b and c?. [Monthly Notices of the Royal Astronomical Society, 539(2), 1613-1627](https://academic.oup.com/mnras/article/539/2/1613/8110708). [[ADS]](https://ui.adsabs.harvard.edu/abs/2025MNRAS.539.1613H/abstract)
> 3. Thompson, W., Blakely, D., Xuan, J., Bouchard-Cote, A., Bourdarot, G., Biron-Lattes, M., Campbell, T., Eisenhauer, F., Henning, T., Janson, M., Johnstone, D., Kammerer, J., Konopacky, Q., Lacour, S., Marois, C., Mawet, D., Mérand, A., Nguyen, J., Nielsen, E., Rickman, E., Ruffio, J.B., Surjanovic, N., Wang, J., & Winterhalder, T. (2025). On the Orbit of the Binary Brown Dwarf Companion GL229 Ba and Bb. [The Astronomical Journal, 169(4), 193](https://iopscience.iop.org/article/10.3847/1538-3881/adb4f2). [[ADS]](https://ui.adsabs.harvard.edu/abs/2025AJ....169..193T/abstract)
> 4. Thompson, W., Nielsen, E., Ruffio, J.B., Blunt, S., & Marois, C. (2025). Revised Mass and Orbit of ɛ Eridani b: A 1 Jupiter-Mass Planet on a Near-Circular Orbit. [arXiv e-prints, arXiv:2502.20561](https://arxiv.org/abs/2502.20561). [[ADS]](https://ui.adsabs.harvard.edu/abs/2025arXiv250220561T/abstract)
5 changes: 5 additions & 0 deletions docs/case_studies/index.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
# Case studies

This page includes some real world examples of JuliaAstro and other aero/astro packages being used. This is a constantly evolving document, PRs and issues are welcome!

{{{democards}}}
19 changes: 19 additions & 0 deletions docs/case_studies/solar_system/amazonia.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
---
title: "Julia in the Brazilian space program"
description: "See how Julia is used for current and future satellite missions."
author: "[Ronan Arraes Jardim Chagas](https://github.com/ronisbr)"
date: "2021-03-19"
---

The [Brazilian National Institute for Space Research (INPE)](https://www.gov.br/inpe/) uses [SatelliteToolbox.jl](https://github.com/JuliaSpace/SatelliteToolbox.jl) to plan its current and future Earth satellite missions.

![image](https://global.discourse-cdn.com/julialang/original/3X/e/5/e59846ff7eaf27725ccb8f0555b7c7e8600a32c0.jpeg)

Led by mission architect [Dr. Ronan Arraes Jardim Chagas](https://ronanarraes.com/), this team used this Julia to perform several mission critical tasks to launch and maintain their [Amazonia-1 satellite](https://www.gov.br/inpe/pt-br/programas/amazonia1), including:

* General mission analysis such as fuel budget computation, orbit planning, ground station visibility analysis, etc.
* Attitude and Orbit Control Subsystem (AOCS) simulations
* AOCS telemetry analysis
* In-orbit sensor calibration

Follow the [JuliaHub press release](https://juliahub.com/industries/case-studies/brazilnationalinstituteforspaceresearch) and [Julia Discourse announcement thread](https://discourse.julialang.org/t/julia-and-the-satellite-amazonia-1/57541) for more.
16 changes: 16 additions & 0 deletions docs/case_studies/solar_system/ephemeris_sources.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
---
title: "EphemerisSources.jl: Idiomatic Ephemeris Sourcing and Parsing in Julia"
description: "Access HORIZONS and SPICE ephemeris sources with idiomatic Julia."
author: "[Joseph D. Carpinelli](https://github.com/cadojo)"
date: "2024-04-21"
---

This meta-package makes performing common tasks in ephemeris fetching and parsing from a variety of different sources easy.

**Package: [EphemerisSources.jl](https://github.com/JuliaAstro/EphemerisSources.jl)**

![image](https://juliaastro.org/EphemerisSources.jl/docs/stable/examples/horizons/index-48804bae.svg)

See their paper in _JOSS_ below for more:

> Carpinelli, J. D., (2024). EphemerisSources.jl: Idiomatic Ephemeris Sourcing and Parsing in Julia. Journal of Open Source Software, 9(102), 6914, <https://doi.org/10.21105/joss.06914>
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
---
title: "Measuring Resolved Star Formation Histories from High-precision Color–Magnitude Diagrams with StarFormationHistories.jl"
id: "cgarling-starformationhistories"
description: "See how this team from the University of Virginia, Space Telescope Science Institute (STScI), Rutgers, and Johns Hopkins University (JHU) uses Julia to measure star formation histories (SFHs)."
author: "[Christopher T. Garling](https://github.com/cgarling)"
date: 2025-04-07
---

This team has developed a modular, open-source code for measuring resolved SFHs with a focus on model flexibility for these types of population parameters.

**Package: [cgarling/StarFormationHistories.jl](https://github.com/cgarling/StarFormationHistories.jl)**

![image](https://content.cld.iop.org/journals/0067-0049/277/2/61/revision2/apjsadbb64f8_hr.jpg)

This paper demonstrates its application to JWST/NIRCAM data of a dwarf irregular galaxy in the Local Group, and to HST/ACS data of an ultrafaint Milky Way satellite dwarf galaxy.

See their paper below in _The Astrophysical Journal_ for more:

> Garling, C., Kallivayalil, N., McQuinn, K., Warfield, J., Gennaro, M., & Cohen, R. (2025). Measuring Resolved Star Formation Histories from High-precision Color–Magnitude Diagrams with StarFormationHistories.jl. [The Astrophysical Journal Supplement Series, 277(2), 61](https://iopscience.iop.org/article/10.3847/1538-4365/adbb64). [[ADS]](https://ui.adsabs.harvard.edu/abs/2025ApJS..277...61G/abstract)
27 changes: 27 additions & 0 deletions docs/case_studies/stars_and_galaxies/jeff-regier-celeste.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
---
title: "Achieving Petaflop Performance with Celeste.jl"
id: "jeff-regier-Celeste"
description: "See how this team used Julia to produce the most accurate catalog of 188 million astronomical objects in just 14.6 minutes with state-of-the-art point and uncertainty estimates."
date: 2019-04-10
---

As part of a multi-institution, multi-disciplinary team, including the National Energy Research Scientific Computing Center (NERSC), Princeton, Harvard, Intel, MIT, and JuliaHub, researchers develop a state-of-the-art parallel computing method to analyze massize astronomy datasets at petascale.

**Package: [jeff-regier/Celeste.jl](https://github.com/jeff-regier/Celeste.jl)**

![image](https://s3.amazonaws.com/adsabs-thumbnails/seri/arXiv/arXiv/1803/00113/arxiv1803.00113_f2.png)

The Celeste team set a number of new milestones, including:

* Loading an aggregate of ~178 terabytes of Sloan Digital Sky Survey (SDSS) image data
* Producing parameter estimates for 188 million stars and galaxies from this dataset in 14.6 minutes
* Achieving a peak performance of 1.54 petaflops using 1.3 million threads on 9,300 Knights Landing (KNL) nodes of the Cori supercomputer at NERSC
* Achieving a performance improvement of 1,000x in single-threaded execution
* Demonstrating conclusively that massive and complex datasets can be analyzed with Bayesian inference by applying variational inference (VI)
* Providing not only point estimates for light sources but, for the first time, a principled measure of the quality of inference for each light source (posterior uncertainty for source type, brightness, and colors)

See the team's series of papers below and [JuliaHub article](https://juliahub.com/industries/case-studies/celeste?_gl=1*1iaui43*_ga*MTk1NzU0MDA0NS4xNzQ2MDMxMzUz*_ga_8FC7JQQLXX*czE3NDgzODc5NTQkbzIkZzEkdDE3NDgzODkyMDUkajYwJGwwJGgw) for more:

> 1. Jeffrey Regier, Andrew C. Miller, David Schlegel, Ryan P. Adams, Jon D. McAuliffe, & Prabhat (2019). Approximate inference for constructing astronomical catalogs from images. [The Annals of Applied Statistics, 13(3), 1884 – 1926](https://projecteuclid.org/journals/annals-of-applied-statistics/volume-13/issue-3/Approximate-inference-for-constructing-astronomical-catalogs-from-images/10.1214/19-AOAS1258.full?tab=ArticleLink). [[ADS]](https://ui.adsabs.harvard.edu/abs/2018arXiv180300113R/abstract)
> 1. Regier, J., Pamnany, K., Fischer, K., Noack, A., Lam, M., Revels, J., Howard, S., Giordano, R., Schlegel, D., McAuliffe, J., Thomas, R., & Prabhat, .. (2018). Cataloging the Visible Universe Through Bayesian Inference at Petascale. [In 2018 IEEE International Parallel and Distributed Processing Symposium (IPDPS) (pp. 44-53)](https://ieeexplore.ieee.org/document/8425159). [[ADS]](https://ui.adsabs.harvard.edu/abs/2018arXiv180110277R/abstract)
> 1. Regier, J., Miller, A., McAuliffe, J., Adams, R., Hoffman, M., Lang, D., Schlegel, D., & Prabhat, M. (2015). Celeste: Variational inference for a generative model of astronomical images. [In Proceedings of the 32nd International Conference on Machine Learning (pp. 2095–2103). PMLR](https://proceedings.mlr.press/v37/regier15.html). [[ADS]](https://ui.adsabs.harvard.edu/abs/2015arXiv150601351R/abstract)
Loading
Loading