Skip to content

Commit bb3f00e

Browse files
authored
Merge pull request #103 from JuliaAstro/case-studies
Case studies
2 parents 04b82d9 + f8d5ed6 commit bb3f00e

15 files changed

Lines changed: 252 additions & 4 deletions

README.md

Lines changed: 33 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ The rendered JuliaAstro site is published online using GitHub Pages at <https://
2020
```julia
2121
JuliaAstro.github.io
2222
├── docs/
23+
│   ├── case_studies/
2324
│   ├── clones/
2425
│   ├── make.jl
2526
│   └── src/
@@ -39,7 +40,7 @@ The rendered JuliaAstro site is published online using GitHub Pages at <https://
3940

4041
## Contributing
4142

42-
Below we walk through two main ways to contribute to the JuliaAstro site:
43+
Below we walk through three main ways to contribute to the JuliaAstro site:
4344

4445
### 1. Editing existing markdown content
4546

@@ -67,6 +68,36 @@ Our Ecosystem page and Comparison page are integrated with the rest of the site,
6768
6869
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.
6970

71+
### 3. Adding a new entry to our [Case studies page](https://juliaastro.org/home/case_studies/)
72+
73+
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:
74+
75+
```julia
76+
JuliaAstro.github.io/docs/case_studies/
77+
├── config.json
78+
├── exoplanets
79+
│   ├── config.json
80+
│   ├── <author username>-<package name>.md
81+
│   └── sefffal-octofitter.md
82+
├── index.md
83+
└── ...
84+
```
85+
86+
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:
87+
88+
* `index.md` is the main case-study page that all case study cards are displayed in
89+
* The top-level `config.json` sets the card theme and order that each case study category (e.g., solar system, exoplanets, etc.) appears.
90+
* The second-level `config.json` sets the order that each case study within a given category will appear in
91+
* `<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.
92+
93+
94+
All in all, to add a new case study:
95+
96+
1. Navigate to the appropriate case study category, e.g., `exoplanets`
97+
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>`
98+
1. Update the content in the new file with your case study text.
99+
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.
100+
70101
## Testing locally / developer docs
71102

72103
Add [LiveServer.jl](https://github.com/JuliaDocs/LiveServer.jl) to your global env and then run the following in the `JuliaAstro.github.io/` folder:
@@ -76,7 +107,7 @@ Add [LiveServer.jl](https://github.com/JuliaDocs/LiveServer.jl) to your global e
76107
77108
julia> using LiveServer
78109
79-
julia> servedocs(; include_dirs=["src/"], skip_files=["docs/src/comparison.md", "docs/src/ecosystem.md"], launch_browser=true)
110+
julia> servedocs(; include_dirs=["src/", "docs/case_studies/"], skip_files=["docs/src/comparison.md", "docs/src/ecosystem.md"], launch_browser=true)
80111
```
81112

82113
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.

docs/Project.toml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
[deps]
2+
DemoCards = "311a05b2-6137-4a5a-b473-18580a3d38b5"
23
Documenter = "e30172f5-a6a5-5a46-863b-614d45cd2de4"
34
DocumenterInterLinks = "d12716ef-a0f6-4df4-a9f1-a5a34e75c656"
45
Glob = "c27321d9-0574-5035-807b-f59d2c89b15c"

docs/case_studies/config.json

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
{
2+
"template": "index.md",
3+
"theme": "transitiongrid",
4+
"order": [
5+
"solar_system",
6+
"exoplanets",
7+
"stars_and_galaxies"
8+
]
9+
}
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
{
2+
"order": [
3+
"langfzac-photodynamics.md",
4+
"ericagol-nbodygradient.md",
5+
"rodluger-limbdark.md",
6+
"sefffal-octofitter.md"
7+
]
8+
}
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
---
2+
title: "A differentiable N-body code for transit timing and dynamical modelling - I. Algorithm and derivatives"
3+
id: "ericagol-nbodygradient"
4+
description: "Computes derivatives with respect to initial conditions for TTVs, RV, Photodynamics & more."
5+
author: "[Eric Agol](https://github.com/ericagol); [David M. Hernandez](https://www.davidmhernandez.com/); [Zachary Langford](https://github.com/langfzac)"
6+
date: "2021-07-19"
7+
---
8+
9+
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).
10+
11+
**Package: [ericagol/NbodyGradient.jl](https://github.com/ericagol/NbodyGradient.jl)**
12+
13+
![image](https://s3.amazonaws.com/adsabs-thumbnails/seri/MNRAS/0507/stab2044/stab2044fig7.jpeg)
14+
15+
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.
16+
17+
See their paper published in _MNRAS_ below and follow-up code, [langfzac/Photodynamics.jl](@ref langfzac-photodynamics), for more:
18+
19+
> 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)
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
---
2+
title: "A differentiable N-body code for transit timing and dynamical modelling - II. Photodynamics"
3+
id: "langfzac-photodynamics"
4+
description: "Differentiable transit light curves in Julia."
5+
author: "[Eric Agol](https://github.com/ericagol); [Zachary Langford](https://github.com/langfzac)"
6+
date: "2025-05-05"
7+
---
8+
9+
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.
10+
11+
**Package: [langfzac/Photodynamics.jl](https://github.com/langfzac/Photodynamics.jl)**
12+
13+
![image](https://github.com/langfzac/Photodynamics.jl/blob/main/docs/src/assets/fig_langford.png?raw=true)
14+
15+
These models can then be used to model multi-planetary transit light curves. See their paper published in _MNRAS_ below for more:
16+
17+
> 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)
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
---
2+
title: "Analytic Planetary Transit Light Curves and Derivatives for Stars with Polynomial Limb Darkening"
3+
id: "rodluger-limbdark"
4+
description: "Analytical transit light curves for limb darkened stars."
5+
author: "[Eric Agol](https://github.com/ericagol); [Rodrigo Luger](https://github.com/rodluger); [Dan Foreman–Mackey](https://github.com/dfm)"
6+
date: "2025-05-05"
7+
---
8+
9+
This team provides analytic light curve models incorporating polynomial limb-darkening.
10+
11+
**Package: [rodluger/Limbdark.jl](https://github.com/rodluger/Limbdark.jl)**
12+
13+
![image](https://content.cld.iop.org/journals/1538-3881/159/3/123/revision1/ajab4feef7_hr.jpg)
14+
15+
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:
16+
17+
> 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)
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
---
2+
title: "Octofitter: Fast, Flexible, and Accurate Orbit Modeling to Detect Exoplanets"
3+
id: "sefffal-octofitter"
4+
description: "See how this team uses Julia to characterize exoplanets and their orbits with state-of-the-art Bayesian inference techniques."
5+
author: "[William Thompson](https://github.com/sefffal)"
6+
date: "2023-09-20"
7+
---
8+
9+
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.
10+
11+
**Package: [sefffal/Octofitter.jl](https://github.com/sefffal/Octofitter.jl)**
12+
13+
![image](https://sefffal.github.io/Octofitter.jl/stable/assets/gallery.png)
14+
15+
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.
16+
17+
> 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)
18+
> 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)
19+
> 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)
20+
> 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)

docs/case_studies/index.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
# Case studies
2+
3+
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!
4+
5+
{{{democards}}}
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
---
2+
title: "Julia in the Brazilian space program"
3+
description: "See how Julia is used for current and future satellite missions."
4+
author: "[Ronan Arraes Jardim Chagas](https://github.com/ronisbr)"
5+
date: "2021-03-19"
6+
---
7+
8+
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.
9+
10+
![image](https://global.discourse-cdn.com/julialang/original/3X/e/5/e59846ff7eaf27725ccb8f0555b7c7e8600a32c0.jpeg)
11+
12+
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:
13+
14+
* General mission analysis such as fuel budget computation, orbit planning, ground station visibility analysis, etc.
15+
* Attitude and Orbit Control Subsystem (AOCS) simulations
16+
* AOCS telemetry analysis
17+
* In-orbit sensor calibration
18+
19+
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.

0 commit comments

Comments
 (0)