A little over a year ago, I wrote about the Astropy project. The aim of the project is to co-ordinate the Python code development efforts in Astronomy so as to be able to present users with a coherent set of tools to perform their work.
On February 20th, we released the first public version, Astropy v0.2! This was the culmination of a year and a half of hard work, with contributions from over 30 developers. It was the biggest milestone of the project so far, and we are now looking forward to hearing from the community, fixing any issues, and adding new components and features.
The current release already contains the following functionality:
- Manipulation of scalar and array quantities with physical units
- Pre-defined physical and astronomical constants
- Celestial coordinate representation and transformations
- Reading/writing/editing of FITS files, VO tables, and many ASCII table formats
- Class for grid-based data with meta-data and units
- Powerful table creation/manipulation
- Common cosmological calculations
- World Coordinate System (WCS) transformations
- Representation/transformation of Times and Dates to very high accuracy
Astropy also includes a lot of infrastructure code that makes it very easy for users to develop their own Astronomy packages, using Astropy as a core dependency.
Astropy integrates PyFITS, PyWCS, asciitable, and vo.table as sub-packages. Each of these are being phased-out as standalone packages. We encourage users to migrate to using Astropy instead of these standalone packages as most development efforts are being concentrated on the integrated functionalities within Astropy: the project isn’t just about creating new code, but also avoiding duplicated efforts and ultimately reducing the number of packages that Astronomers have to search for and install.
One important aspect of the project is that it is intended to be developed by the community, which means all of us. There isn’t a well-defined boundary between users and developers, and you can contribute to the project in a number of different ways – you definitely don’t need to be a Python expert to help out. Astropy is not just about coding, it’s about striving to create user-friendly tools, good documentation, and advertising it to the community. Here are a few specific ways in which you can contribute:
- Use Astropy and report any trouble by starting a new issue on GitHub (free account needed), however small or easy the issue is to workaround. The more users report issues, the more stable the package will become in the long term. So please, report installation or usage issues!
- Let us know if parts of the documentation are incorrect or unclear. You can let us know by making a new issue or suggest the fix ‘Edit on Github’ link on each page, which will take you to that file on GitHub. Click on the ‘Edit’ button above the source file, and you will be presented with a visual editor where you can make the changes you want to suggest, enter a message describing the changes below, and submit the changes for review.
- Join and post to the astropy mailing list to get help or discuss any issues with other users. This list is newbie friendly.
- Join the astropy-dev mailing list to discuss the more technical aspects of the package development, advertising, documentation, and coordination.
- Familiarize yourself with the Astropy developer guidelines, and contribute code for features that you feel are missing.
- If you already maintain a Python package, consider making it into an Astropy-affiliated package by posting on the astropy-dev list.
Please let us know if you have any comments/suggestions, or if you run into any issues with this public release! Got questions about the package in general? Let us know in the comments.