GSOC has come to a close, after what have been some exciting couple of months!

The goal of my project was to develop a simulator for light curves and event lists, from different variability distributions and more complicated phenomemon based on the impulse responses of physical events. With the help of my mentor Matteo Bachetti and co-mentor Daniela Hupponkothen (who I would like to take a moment here to sincerely thank for all their guidance and support), I have been able to achieve the milestones I set out in my project proposal.

Project Introduction & Background

Understanding the uncertainty of time series methods used in X-ray astronomy is crucial to interpret the derived results in context of physical models. However, in many cases, the only realistic way to assess the uncertainty is to actually simulate time series and spectral data. This develops the need to implement a framework for doing these simulations where the end product is an event list containing arrival times of X-rays on the detectors (similar to those onboard X-ray and Gamma-ray satellites).

Simulating these event lists would have been a straight forward task if flux were constant. However, in practical cases, it is not and instead follows a certain variability distribution which makes simulation somewhat complicated. Fortunately, there is a technique in literatute to simulate light curves with given variability distribution (described in Timmer & Koenig, 1995), which was implemented in this project.

However, there are more complicated cases where emission spectra maybe different in different energy channels. In such cases, light curves can be simulated through the convolution of underlying variability signal with the impulse response (for example, the impulse response of accretion disks around black holes). The implementation of this approach, explained in Uttley et al. (2014), was a core part of this project.

Project Summary

1- I implemented a Simulator class, that does the following:

  • Simulates light curves using power law spectrum
  • Simulates light curves using user-provided spectrum
  • Simulates light curves using pre-defined model spectrums
  • Simulates light curves using a variability signal and impulse response

[Github, tutorial]

2- I defined lorenzian and smooth broken law power spectrums to simulate light curves. [Github, tutorial]

3- I wrote TransferFunction class to implement time and energy averaged impulse responses from 2-d transfer functions. [Github, tutorial]

4- I wrote EventList class for effective handling of photon arrival times. [Github, tutorial]

5- I worked on various IO operations and IO formats including hdf5, pickle and fits for saving and retreiving light curves and event lists.

6- I computed time lags of light curves generated from reverberation as well as lag-frequency spectra and analyzed them using literature. [tutorial]

Git Commits

Overall, I made 122 commits in the main stingray repository that were merged into master. Here is a list of all commits.

I also made 27 commits in stingray notebook repository which is independent of the main repository. Here is a list of those commits.

Project Notebooks (Tutorials)

In order to fully document the code, I prepared tutorials in form of ipython notebooks for all the modules of the project. Below are the links:

Merged Pull Requests

As a part of the project, I opened following pull requests which were subsequently merged. These are in chronological order, starting from most recent to least recent.

I opened a few pull requests in notebook repository, as follows:


A few thank you’s are in order:

1- To my project mentor Matteo Bachetti who has given me amazing guidance and support throughout this project. Not to mention his superb hospitality during my trip to Cagliari, Italy :)

2- To my co-mentor Daniela Huppenkothen who was also very involved throughout this project, and was very prompt in replying to any queries.

3- To Google, of course, for this amazing opportunity.