User Tools

Site Tools


ideas_page

StarKit GSoC 2019 Ideas Page

A bit of astronomy and astrophysics background information

Stars come in a variety of forms. For example, they have different temperatures at their surfaces, which affect their appearance and color. Stars also spin at different speeds. They are born in different environments. As stars live out their lives, they evolve and physically change in dramatic ways.

Each star emits a spectrum of light. This spectrum depends on the properties of the star, so studying a star’s spectrum reveals great information about the star itself. For example, the star’s temperature and atmospheric chemical composition determine which elemental features (known as absorption lines) are seen in the spectrum, as shown in the image below. The density and rotation of a star affect the shape of these lines as well. A star’s motion toward or away from us (known as radial velocity) shifts the positions of these lines.

Stellar spectroscopy has been a vital part of astronomy for over a century, and there continues to be extensive research in this field. Extensive simulations and observations of stars have improved astronomers’ understanding of how stars’ physical properties affect their spectra. By better characterizing a star’s observed spectrum, astronomers can improve their understanding of stellar astrophysics, formation, populations and evolution.

The StarKit project

Starkit is a software package that fits stellar spectra and helps astronomers determine the physical properties of the star. It was developed to fit spectroscopic and photometric observations of stars to models of stellar structure, from which the important characteristics of the star can be found.

Starkit is made up of a series of modules, each of which contains a variety of different tools and functions that can be used by astronomers for their science. The primary modules included with the Starkit package are the base module, fitkit, gridkit, and utils.

The base module consists of the primary functions used in manipulating the given model to given characteristics. This includes things such as reshaping and resizing a model to the resolution and sampling of a particular instrument, adjusting the model to show effects of things such as doppler shifting of the starlight, and the effects of interstellar dust.

Fitkit contains the tools for the spectral fitting itself. Functions for fitting, saving the results of the fit, and recording and plotting the likelihood of fits are within Fitkit. In addition, functions for configuring the assumed ranges of the model parameters are included.

Next, is Gridkit. It holds the tools for loading, saving, and modifying various types of input models, or grids, that have been used with Starkit. In addition, Gridkit contains functions for fitting effects produced by the Earth’s atmosphere.

The final of the primary modules is utils, which has basic tools that are useful in observational astronomy, such as converting wavelengths in air to wavelengths in a vacuum.

List of GSoC 2019 project ideas

In the TARDIS collaboration we first establish a detailed plan on implementing new features before starting the actual work. This is an important step that ensures that the entire TARDIS collaboration is informed about the development efforts and that the team members can help shape the ideas during the discussion phase. We call these documents TEP - TARDIS Enhancement Proposals. We already have a great list of ideas at https://github.com/tardis-sn/tep that we need help with. Some of these we have specially selected for GSoC 2019 and are listed with specific “warm-up” tasks below. But feel free to propose your own TEP and make a PR on that.

If you use one of our TEPs, you can definitely add more detail to the implementation, but what we really want to see is a detailed timeline with milestones that shows us that you have thought about how to implement the feature in three months. For any questions about the projects, please ask on Gitter.

Putting in a Pull Request with the First objective is essential for each proposal to allow to see how you work.


Building a Testing Framework

Difficulty: Easy

Astronomy knowledge needed: Some

Mentors: Wolfgang Kerzendorf (@werzendorf), Tuan Do (@followthesheep)

Programming skills: Python

GSoC Application Tag:

Description: While StarKit has been successfully used in multiple publications, development is currently limited by the fact that there are no unit tests and lack of a standard for testing. This project aims to develop a testing framework that will be used to validate code commits as well as improve the reproducibility of the science from using this software. Goals of this work include: (1) a testing framework such as pytest that can be automatically run to test new commits, (2) unit tests, (3) an example end-to-end fit of a stellar spectrum. This testing framework should also be well documented so that it is clear how to create new tests in the future.

Your first objective if you choose to accept the mission: StarKit is based on the Astropy package-template and uses the testing framework of py.test. Write a very simple test and see if it runs with python setup.py test.


Spectral Grid generation & visualization

Difficulty: Medium

Astronomy knowledge needed: None

Mentors: Devin Chu (@dchu808), Rory Bentley (@rbentl)

Programming skills: Python

GSoC Application Tag:

Description: In order to model the spectra of stars, StarKit uses a pre-computed grid consisting of model theoretical spectra that are generated a specific intervals in the different physical parameters. For example, a typical grid has thousands of spectra that are generated over a range of values in effective temperature, surface gravity, and composition. This grid has N-dimensions corresponding to N parameters. At each grid point is a spectrum generated a specific wavelengths and with a particular spectral resolution.

Your first objective if you choose to accept the mission: Using Jupyter Widget and matplotlib, program a widget that carries out box 2 in the getting started page. Program a sliding bar that corresponds to the variable grid.teff and plots the spectrum.


Dust Maps

Difficulty: Medium

Astronomy knowledge needed: Some

Mentors: Tuan Do (@followthesheep), Devin Chu (@dchu808)

Programming skills: Python

GSoC Application Tag:

Description: Dust in space absorbs the light that is emitted from a star when it reaches Earth. This effect is called extinction. If a star is farther away, the star light passes through more dust, which in turn increases the extinction. Starkit wants to incorporate Dustmaps, a software package that determines the amount of extinction based on the distance of the star.

Your first objective if you choose to accept the mission: Go to Dustmaps (https://dustmaps.readthedocs.io/en/latest/) and install the software. Make a function that takes the inputs: sky coordinates in Right Ascension (RA) and Declination (Dec), and distance. The function should return a value for extinction, E(B-V). There are several examples that will help you here: https://dustmaps.readthedocs.io/en/latest/examples.html#getting-started


Auto-generate Filter Curves

Difficulty: Easy

Astronomy knowledge needed: Some

Mentors: Tuan Do (@followthesheep), Rory Bentley (@rbentl)

Programming skills: Python

GSoC Application Tag:

Description: Imaging of stars are typically done using different filters which is used to collect the light from the star over a certain wavelength range. The filter curve is a function that determines the fraction of light that is transmitted at each wavelength of the filter. This curve depends on the material that the filter is made of. Starkit uses a set of filters defined by the wsynphot package https://github.com/starkit/wsynphot (Documentation at https://wsynphot.readthedocs.io) so that it can model how bright stars are using different filters. This project is about developing some visualizations and plots of this library of filter curves so that people will have an easier time searching for filters.

Your first objective if you choose to accept the mission: Install the wsynphot package and plot the filter curve for the filter named 'Keck/NIRC2/H'


Include information about ages of stars

Difficulty: Medium

Astronomy knowledge needed: Some

Mentors: Wolfgang Kerzendorf (@werzendorf), Rory Bentley (@rbentl)

Programming skills: Python

GSoC Application Tag:

Description: A star’s age will tell a lot about its temperature and size. We want to use this information to analyze our stars. There is a package that will translate a stars age to its size and temperature called isochrones (https://github.com/timothydmorton/isochrones/). The goal of this project is to link this code to allow StarKit to use the information about a star’s age.

Your first objective if you choose to accept the mission: Install the ‘eep’ branch from https://github.com/timothydmorton/isochrones/ and run this notebook https://github.com/timothydmorton/isochrones/blob/eep/notebooks/demo.ipynb.


Auto-generating documentation with complex data

Difficulty: Medium

Astronomy knowledge needed: None

Mentors: Wolfgang Kerzendorf (@werzendorf), Devin Chu (@dchu808)

Programming skills: Python

GSoC Application Tag:

Description: Documentation is an important for research software. It ensures that external users doing analysis with the Code understand what the code currently does. We want to make sure that the documentation (consisting of Jupyter notebooks) automatically updates itself. TRAVIS is often used for continuous integration but can also be used to generate documentation.

Your first objective if you choose to accept the mission: Build a simple .travis.yml file that in the before_install step automatically downloads a grid from the documentation.


ideas_page.txt · Last modified: 2019/02/06 00:43 by rbentley