-
-
Notifications
You must be signed in to change notification settings - Fork 2.1k
Google Summer of Code 2013 Project Ideas
(Astropy developers - please note: new ideas should be discussed with the co-ordination committee before being added to this page)
Welcome to the project ideas page for the Astropy project! Astropy is a community effort to develop a single core package for Astronomy in Python and foster interoperability between Python astronomy packages. The project was started in 2011, and we had our first core package public release in February this year. Because it is a young project, there are many opportunities to make a big impact on the package by developing new features that will be used in day-to-day work by professional Astronomers.
Astropy is participating in the Google Summer of Code 2013 under the Python organization. See here for information about participating as part of the Python organization, in particular the guidelines for prospective students. In particular, please note the following requirements:
All prospective students are required to have completed the following to pass final screening:
- Demonstrate to your prospective mentor(s) that you are able to complete the project you've proposed
- Blog for their GSoC project. Free blogs are available at http://www.blogger.com/
- Contribute at least one patch to the project(s) you're applying to work with
Students are expected to work (remotely) on the project full time this summer, and receive a $5,000 stipend! More information is available via the Python organization page on expectations from students, as well as the application process.
If you are interested in participating, please join our mailing list, astropy-dev, and let us know of your interest, so that we can pair you up with a prospective mentor to help you prepare your application.
Below are ideas of projects for students. For any questions about the projects, please ask on our mailing list astropy-dev. If you have ideas of other projects, please also feel free to suggest these!
-
Work on a new framework for plotting Astronomical images for integration in Astropy. Astronomical images can be plotted using special curvilinear coordinate systems in different spherical projections, which makes this non-trivial. Examples of previous packages that have done this include APLpy, and we are converging on a proposed API for implementing this into Astropy in a general way (see here). This project would involve implementing a large part of this proposed functionality. In addition, this project could involve working on plotting functionality in the rest of Astropy.
-
Work on a new framework for photometry, which is the process of measuring the brightness of stars. It is a fundamental aspect of Astronomy, and we are converging on a proposed API for implementation in Astropy (see here). This project would involve implementing a large part of this functionality.
-
Work on functionality to combine catalogs of Astronomy data. A common task Astronomers need to do is given two catalogs of positions on the sky, combining this using various criteria, which is non-trivial due to the fact that this needs to be done on the surface of a sphere.
-
Work on functionality to re-project images from one spherical projection to another, which is essential for combining Astronomical images into large mosaics/images. This would involve writing C/Cython code for the computationally expensive parts, and creating a high-level Python interface on top of this.
-
Work on improving performance across the board. Astropy was designed with functionality in mind, but performance is also important. The size of datasets that Astronomers are using is increasing rapidly, and typical datasets already include millions to billions of stars/galaxies. Typical datasets are now moving from the Gb to the Tb regime. This project would involve identifying parts of Astropy where performance can be improved, and speeding up the code while maintaining readability and functionality.
-
Work on developing a general framework for propagating uncertainties in astropy's
nddatasub-package. Error propagation is crucial to nearly every type of astronomy, and laying the groundwork for this by developing python classes that implement common error propagation methods will be extremely valuable. This will likely involve a fair amount of statistics, although the mentor can provide the statistics background if that's not where the student's interests lie. -
Implement an affiliated package installer and improve the affiliated package infrastructure. The Astropy project includes both the
astropycore package and a variety of community-contributed tools called "affiliated packages." These affiliated packages are registered online, and it would be useful to have an install tool that allows anyone withastropyto also install affiliated packages quickly and easily. This project could also involve improving the affiliated package web site to better advertise quality affiliated packages. Hence, it is well-suited to a student that would like to do a mix of Python coding and web page work. -
Develop the
astroquerytoolkit into a coherent package.astroqueryis growing fast, but it is very inhomogeneous in that there is no consistency in API, coding guidelines, test coverage, or documentation over the various components. This project would require refactoring the code base for consistency with API guidelines that are presently being developed.