Astronomy Boot Camp
Resources and
Tutorials for Learning Astronomical Computing
by Gerard Williger
Update 2021 Spring: This page is from a series of astronomy
tutorial sessions c. 2015-17. It is supplanted by the
revived Physics 390 course by Dr. Benne Holwerda on Python.
ALL physics majors
should take it
by the end of their second year to become
ready for research or a job in industry.
For a good introduction to astronomical data and methods, see Pössel
(2020, Open J. of Astrophys., 3, 2).
------------------------------------------------------------------------------------------------------------------
In general, astronomical research does not use many commercial
packages which are commonly
used by the public. Astronomers have evolved their own
systems and conventions to suit their needs,
beginning in the 1980s or so. If you want to do research in
astronomy, learning the software
just comes with the territory.
This is a collection of tutorials and links to help with
getting up to speed in astronomical
computing. It is a must if you want to start research in
astronomy as a student or apply for
an REU. This site is a companion to the informal computer
tutoring sessions led by
Dr. Lutz Haberzettl, set in our computing lab in Nat Sci 207, and
started in November 2015.
The goal is to familiarize students with useful software to the
point that they can begin a
basic research project or apply for an REU and be competitive with
applications. This
site evolves continuously. Comments/suggestions are welcome.
All students are recommended to read/practice "10 minute Unix"
p1-2; 5-6
and the Surrey tutorials 1 and 2, at http://www.ee.surrey.ac.uk/Teaching/Unix/
to practice the material from Session 1 or to catch up (with a
classmate, preferably)
if you missed it.
UNIX/LINUX
Unix/Linux is the operating system most often used by
astronomers. It is powerful and
is the host system for lots of astronomy software packages.
Learn basic Unix/Linux first
before going on to any other software. If you have a Mac, it
has a Unix core. Just use the
terminal application to get started. If you have a PC with
Windows, you'll need to
partition your disk and install a dual-boot system. Unless
you know what you're doing, I
recommend that you get expert help to do this.
Unix/Linux tutorials
Basic Editors
The most common editors in
Unix/Linux are vi (most basic) and EMACS (more powerful).
simple
vi tutorial (one of many online)
simple
EMACS tutorial (one of many online)
You can use any editor you like, but it's worth learning the
basics of these two as you'll find
them everywhere, and if they're the only ones available
where you are, they can save your bacon.
Good Practices
I have written up
here
an ever-evolving list of my tips and good practices which help to
keep your files (and thoughts!) organized.
Also see some tips for managing your Linux computer here:
Linux cheat sheet
FITS Files
In addition to Unix/Linux, astronomers adopted a convention for
astronomical data files called
FITS: Flexible
Image Transport System. FITS files are used for both images
and spectra,
and have a basic structure of a "header" with information about
the history of the data, and
one or more data arrays. Modern FITS files come in a variety
of forms. Astronomical software
largely evolved to process and analyze FITS files.
Primer on the
FITS Data Format (from NASA/Goddard Space Flight Center)
IRAF
IRAF (Image Reduction and
Analysis Facility) was started by NOAO (National Optical
Astronomy Observatory) in the 1980s, and has evolved ever since.
IRAF tutorials
DS9
DS9 is an image display system commonly used in astronomy.
It can be used standalone or
in conjunction with IRAF.
DS9_tutorials
Other Software
There is much additional software which is useful in astronomy:
Python - growing in
popularity
See an excellent
page on learning Python from Adam Myers (U. Wyoming)
IDL
(Interactive Data Language) - licensed software which costs
money, but is very useful
Fortran - an
oldie but goodie, with millions of lines of code still in use
C
- another oldie but goodie
Latex - the standard
for publishing in journals, and a must if you have lots of math to
typeset
There are many packages and programs.