This is a collection of lessons for the course "Basic statistical analysis of Astronomical observations". See syllabus below...

Basic statistical analysis of Astronomical observations

Course description and objectives

Almost any scientific research is based on analysis of observational data and comparing it with theoretic predictions. In this course we focus on the first part. The main objective of this course is to provide hands-on experience working with real astronomical data. We will explore a few major data formats, public catalogs, libraries and ways to work with them. Basic statistical approaches will be studied for extracting useful information from data.

The goals of this course is to become familiar with workflow of data processing. It is a necessary knowledge for either those who are going to pursue experimental career path or those who are going to do purely theoretical work.

In addition some time will be spent on making figures (publication quality) and visualization of data.

The course is fully adapted to be taught online.


Knowledge of basic astronomy and cosmology required. Any ASTRO 101 should be sufficient. Experience with programming in any language. The language of choice in this course is Python, therefore all examples will be provided in it.


Students are supposed to complete tasks on their own laptops with installed distribution of Python, or use online free services like Wakari. The latter one is preferable since functioning of all examples is guaranteed. In case of online teaching Wakari is strongly recommended. Grading 15% – per project. Students are supposed to write short report with figures they plotted (5%). Also they have to provide working code (5% for reading the data; 5% for statistical analysis). The remaining percents go to the final project, which is graded in the same manner.

Lecture schedule

Class consists of series of projects (every two weeks) with one final project (3-4 weeks). Each project features three parts: a data type/format, an astrophysical effect, a statistical method. Optional projects are not necessary to complete the Final project, and can be included in case if more time available.

At the beginning of each project a lecture will be provided (or video, in case of online teaching), which will cover theory and new concepts. Then students will be required to follow the step-by-step instructions, which will help them to complete a significant amount of the project. Some part of the project will be left for their own research and only references to public resources will be provided, in order to facilitate self learning.

Week Project description
1 Introduction to Python and overview of other commonly used programming languages in astrophysics for statistical analysis: IDL, MatLab, R. No particular task.
2-3 Table data structures. Reading plain data from text files.
Using classic method of detecting Hubble expansion from Supernovas as an example.
Fitting theoretical predictions in order to match and estimate the errors.
4-5 FITC data format. Working with modules in Python. Installing pyfitc. Working with 2D data.
Using HI survey as a detection of Galaxy rotation curve.
Comparing the observed curve with naïve estimations.
6-7 Healpix format. Installing healpy. Working with data projected on a sphere.
Using CMB survey as an example.
Calculating spherical harmonics.
8-9 Time depended data. Working with time depended data. Technic of masking the source.
(optional) Using archrival data from XMM. Calculating time periodicity of a pulsar.
Fourier analysis of signal.
10-11 Large data sets. Filtering the data.
(optional) Using star catalogs to estimate Oort’s constants.
Exploring how selection bias might affect the result.
Final 3-4 weeks Final project. Working with databases.
Using SDSS galaxy redshift catalogs to determine Large Scale Structure of the universe.
Computationally expensive analysis. Calculating two point correlation function.