---
# System prepended metadata

title: JuliaAstro tutorials

---

# JuliaAstro tutorials

We'd like to populate the JuliaAstro documentation page with tutorials to get people up and running with Julia in astronomy.
Ideally these should be pedagogical and intro-level.
They should include lots of links to package documentation for more advanced usage.
Target readers:
* upper year undergraduate
* incoming graduate student
* experienced with Python or IDL but new to Julia

Inspiration:
* https://learn.astropy.org/
* https://julia.quantecon.org/intro.html


@sefffal:
I propose we eventually follow the same structure as the SciML docs page:
https://docs.sciml.ai/dev/
They combine an ecosystem overview with package documentation and tutorials all in one page, grouped by topic. We could try to merge in the docs of packages under the JuliaAstro organization and link to docs of affiliated packages.
E.g. the sidebar could look like:
* The JuliaAstro ecosystem: overview page, getting started, etc.
* Topic 1 (e.g. Dates & Times)
    * Dates & Times Overview
    * AstroTime
        * Home
        * Examples/Tutorials
        * API

* Topic 2
    * Topic 2 overview

## Logistics

How do we want to deliver the tutorials? I think using Literate.jl is good, but we'll have to write some manual code
* I've got a relatively simple pre-process and post-process for Literate inside Documenter [here](https://github.com/JuliaAstro/BackgroundMeshes.jl/blob/main/docs/make.jl), any comments or other ideas?
* DemoCards.jl might actually be appropriate for this

WT: Literate looks promising! I did try DemoCards before but I found them quite slow to generate. 

## Topics

General:
* Reducing CCD data
    * dark, bias, flat field, etc.
    * Register images (can we do this easily at the moment?)
        * (Miles) - JuliaHCI/SubpixelRegistration.jl is a start
    * stack images
    * Plate solve (would be awesome if someone wrote a package to hit the https://nova.astrometry.net/ API)
* ~~Plot image (e.g. JWST nebula) with scale bar  (@sefffal)~~
* model/curve fit (basic followed bayesian with Turing)  (@sefffal)
* fit PSF model to image (@mileslucas?)
    * (Miles) happy to! Will mostly be a copy of what is already up at PSFModels.jl
* detect sources in an image
* Math with astronomical units (@sefffal)
* ~~Load data from a FITS table (@sefffal)~~
* platesolve image based on detected sources, e.g. using astroquery.astrometry_net or API directly
* accssing astroquery & gaia data through PythonCall (@icweaver)
* reproduce this tutorial (spectral cubes, astroquery, contours) https://learn.astropy.org/tutorials/FITS-cubes.html

Spectroscopy:
* deredden a spectrum

Exoplanets:
* Transit curve fitting
* Calculate a Lomb-Scargle periodogram  
* RV fitting
* Astrometry fitting (@sefffal)
* GAIA-Hipparcos proper motion anomaly (@sefffal)

Orbits etc.:
* Your first N-body simulation in Julia (@mbehrendt)
* Integrating GAIA stars in milky way potential
* Explore how the James Webb Space Telescope orbits in second Lagrange Point

Cosmology:
* FFT, spherical harmonics, power spectra
* background / perturbation calculations

Radio astronomy:
* Imaging a black hole and measuring its size: Reproducing 2017 EHT results (@ptiede)
* Joint Bayesian imaging and gain calibration (@ptiede)


Intrumentation:
* control equipment with LibSerialPort.jl (@sefffal)
* 