<<

The Astropy Project A Community Python Library for Astronomy

Thomas Robitaille Aperio Sofware Ltd. @astrofrog The Astropy Project is a community effort to develop a single core package for Astronomy in Python and foster interoperability between Python astronomy packages.

[AstroPy] PyAstronomy Stefan Czesla • [AstroPy] Proliferating py-astro-libs Marshall Perrin ◦ [AstroPy] Proliferating py-astro-libs Wolfgang Kerzendorf ■ [AstroPy] Proliferating py-astro-libs Stefan Czesla ■ [AstroPy] Proliferating py-astro-libs Erik Tollerud ■ [AstroPy] Proliferating py-astro-libs Erik Bray ◦ [AstroPy] Proliferating py-astro-libs Taro Sato ■ [AstroPy] Proliferating py-astro-libs Thomas Robitaille ◦ [AstroPy] Proliferating py-astro-libs Thomas Robitaille ■ [AstroPy] Proliferating py-astro-libs Perry Greenfield ■ [AstroPy] Proliferating py-astro-libs Erik Tollerud ■ [AstroPy] Proliferating py-astro-libs Perry Greenfield ■ [AstroPy] Proliferating py-astro-libs James Turner ■ [AstroPy] Proliferating py-astro-libs James Turner ■ [AstroPy] Proliferating py-astro-libs Perry Greenfield ■ [AstroPy] Proliferating py-astro-libs Kelle Cruz ■ [AstroPy] Proliferating py-astro-libs Tom Aldcroft ■ [AstroPy] Proliferating py-astro-libs Matthew Turk ■ [AstroPy] Proliferating py-astro-libs Mubdi Rahman ■ [AstroPy] Proliferating py-astro-libs Perry Greenfield ■ [AstroPy] Proliferating py-astro-libs Tommy Grav ■ [AstroPy] Proliferating py-astro-libs Perry Greenfield ■ [AstroPy] Proliferating py-astro-libs Tommy Grav ■ [AstroPy] Proliferating py-astro-libs Christoph Deil ■ [AstroPy] Proliferating py-astro-libs James Turner ■ [AstroPy] Proliferating py-astro-libs Kelle Cruz ■ [AstroPy] Proliferating py-astro-libs Thomas Robitaille ■ [AstroPy] Proliferating py-astro-libs Victoria G. Laidler ■ [AstroPy] Proliferating py-astro-libs James Turner ■ [AstroPy] Proliferating py-astro-libs Thomas Robitaille ■ [AstroPy] Proliferating py-astro-libs Perry Greenfield ■ [AstroPy] Proliferating py-astro-libs Erik Tollerud ■ [AstroPy] Proliferating py-astro-libs Marcel Haas ■ [AstroPy] Proliferating py-astro-libs Neil Crighton ■ [AstroPy] organizing meetings to organize astropy Marshall Perrin ■ [AstroPy] Proliferating py-astro-libs Mark Sienkiewicz ■ [AstroPy] Proliferating py-astro-libs Thomas Robitaille

etc ...

First Astropy Coordination Meeting - Center for Astrophysics, 2011 (followed by STScI in 2012, Yale in 2013) Project Coordinators: Tom Aldcrof, Kelle Cruz, Thomas Robitaille, and Erik Tollerud Developers/Contributors for core package (as of March 2019):

Ryan Abernathey Eli Bressert Jonathan Eisenhamer Anany Shrey Jain Mike McCarty Sushobhana Patra Kevin Sooley Mohan Agrawal Matthew Brett Thomas Erben Anchit Jain Curtis McCully Molly Peeples Shivan Sornarajah Shailesh Ahuja Hannes Breytenbach Henry Ferguson Anany Shrey Jain Vinayak Mehta Matthew Petroff Megan Sosey Tom Aldcrof Hugo Buddelmeijer Vital Fernández VSN Reddy Janga Aaron Meisner Abhinuv Nitin Pitale Shantanu Srivastava Mike Alexandersen Doug Burke Leonardo Ferreira Grant Jenks Mikhail Minin Ray Plante David Stansby Anne Archibald Giorgio Calderone Tyler Finethy Tim Jenness Sashank Mishra Adele Plunkett Abigail Stevens Cristian Ardelean Daria Cara Dan Foreman-Mackey Eric Jeschke Serge Montagnac Orion Poplawski Ole Streicher Humna Awan Mihai Cara Jonathan Foster Graham Kanarek José Sabater Montes Stephen Portillo Matej Stuchlik Tomas Babej Patti Carroll Ryan Fox Anirudh Katipally Francesco Montesano Ana Posses Bernardo Sulzbach Matteo Bachetti Mabry Cervin Leah Fulmer Sarah Kendrew Brett Morris Joanna Power Jani Šumak Alexander Bakanov Pritish Chakraborty Lehman Garrison Marten van Kerkwijk Michael Mueller Paul Price Jonas Große Sundrup Steven Bamford Sourabh Cheedella Simon Gibbons Nicholas S. Kern Stuart Mumford Adrian Price-Whelan Vatsala Swaroop Kyle Barbary Christian Clauss Adam Ginsburg Wolfgang Kerzendorf Demitri Muna J. Xavier Prochaska Esteban Pardo Sánchez Geert Barentsen Alex Conley Martin Glatzle Lennard Kiehl Nick Murphy David Pérez-Suárez James Taylor Pauline Barmby Jean Connelly Christoph Gohlke Rashid Khan Prasanth Nair Tanuj Rastogi Jeff Taylor Paul Barrett Simon Conseil Danny Goldstein Aleh Khvalko Stefan Nelson Thomas Robitaille Mark Taylor Juanjo Bazán Ryan Cooke Ralf Gommers Rocio Kiman Giang Nguyen Juan Luis Cano Rodríguez Kirill Tchernyshyov Andreas Baumbach Yannick Copin Karl Gordon David Kirkby Bogdan Nicula Rohan Rajpal Régis Terrier Chris Beaumont Michele Costa J. Goutin Dominik Klaes Al Niessner Patricio Rojo Víctor Terrón Stefan Becker Matthew Craig Johnny Greco Eric Koch Joe Philip Ninan Evert Rol Peter Teuben Manas Satish Bedmutha Steve Crawford Perry Greenfield Tom Kooij Asra Nizami Alex Rudy Scott Thomas Alexandre Beelen Devin Crichton Dylan Gregersen Kacper Kowalik Bryce Nordgren Joseph Ryan Erik Tollerud Daniel Bell Neil Crighton Austen Groener Roban Hultman Kramer James Noss Saurav Sachidanand Matthew Turk Elijah Bernstein-Cooper Robert Cross Frédéric Grollier Mangala Gowri Sigurd Næss Eloy Salinas James Turner Kristin Berry Kelle Cruz Karan Grover Krishnamoorthy Maximilian Nöthe Gerrit Schellenberger Miguel de Val-Borro Edward Betts Dan P. Cunningham Kevin Gullikson Aniket Kulkarni Ricardo Ogando Joseph Schlitz Jake VanderPlas Mavani Bhautik Daniel D'Avella Hans Moritz Günther Amit Kumar Sara Ogaz Michael Seifert Alex de la Vega Nimit Bhardwaj Ritwick DSouza Chris Hanley Arie Kurniawan Georgiana Ogrean Srikrishna Sekhar Shresth Verma Mavani Bhautik Daniel Datsev Alex Hagen Arne de Laat Semyeong Oh Mathieu Servillat Sam Verstocken Francesco Biscani James Davies Andrew Hearin Antony Lee Bruno Oliveira Aditya Sharma Zé Vinicius Manish Biswas Matt Davis Christian Hettlage Katrin Leinweber Kyle Oman Swapnil Sharma Karl Vyhmeister Thompson Le Blanc James Dearman Paul Hirst Daniel Lenz Miruna Oprescu Helen Sherwood-Taylor Lisa Walter Christopher Bonnett Emily Deibert Moataz Hisham Kieran Leschinski Carl Osterwisch David Shiga Laura Watkins Joseph Jon Booker Christoph Deil Michael Hoenig Simon Liedtke Luigi Paioro Albert Y. Shih Benjamin Alan Weaver Médéric Boquien Nadia Dencheva Emma Hogan Pey Lian Lim David M. Palmer David Shupe Jonathan Whitmore Azalee Bostroem Eric Depagne Derek Homeier Stuart Littlefair Asish Panda Jonathan Sick Julien Woillez Luke G. Bouma Akash Deshpande Anthony Horton Joseph Long John Parejko Max Silbiger Michael Wood-Vasey Matthew Bourque Jörg Dietrich JC Hsu Joe Lyman Madhura Parikh Bernie Simon Maneesh Yadav Larry Bradley Axel Donath Griffin Hosseinzadeh Jerry Ma Neil Parley Sudheesh Singanamalla Felix Yan Gustavo Bragança Bili Dong Lingyi Hu Duncan Macleod Sergio Pascual Leo Singer Víctor Zabalza Gabriel Brammer Michael Droettboom Jurien Huisman Ritiek Malhotra Pratik Patel Brigitta Sipocz Michael Zhang Clara Brasseur Sanjeev Dubey Joe Hunkeler Michele Mastropietro Aarya Patil Paul Sladen Erik M. Bray Zach Edwards Zeljko Ivezic Jeffrey McBeth Rohit Patil Arfon Smith � Core and affiliated packages

� Educational materials

� Developer and user community

� Infrastructure packages and tools � Core and affiliated packages

� Educational materials

� Developer and user community

� Infrastructure packages and tools Core astropy package

Community consensus for adding features

Well tested, documented, and stable code

Easy to install

Works on , MacOS X, and Windows Latest: v3.1.2 (24th February 2019) In [1]: from astropy import units as u

In [2]: (3 * u.Jy).to(u.erg / u.cm**2 / u.s / u.Hz) Out[2]:

In [3]: (4 * u.km / u.s).to(u.AA, u.doppler_optical(5654 * u.AA)) Out[3]: Latest: v3.1.2 (24th February 2019) In [1]: from astropy.table import Table

In [2]: t = Table.read('w5_psc.vot')

In [3]: t.sort('Jmag')

In [4]: t.write('w5_psc.tex') Latest: v3.1.2 (24th February 2019) In [1]: from astropy.cosmology import Planck15

Latest: v3.1.2 In [2]: Planck15.lookback_time(3) (24th February 2019) Out[2]: In [3]: Planck15.kpc_proper_per_arcmin(2.2) Out[3]:

In [4]: Planck15.luminosity_distance(1.1) Out[4]: Major releases every ~6 months 10 major public releases (first release February 2013) Latest stable version: v3.1.2 (released 24th February 2019) Over 280 individual contributors so far Almost 24,000 commits (as of March 2019) Long Term Support (LTS) releases

Supported with bug fixes for 2 years (exception: 2.0.x will be supported for 3 years)

Guarantee no changes apart from bug fixes

Ideal for pipelines and other applications where stability is essential

We continue to release new major releases (1.1, 1.2, etc.) in the mean time. Release Calendar

2.0 LTS (June 2017) 3.2 (April 2019) Last to support Python 2.7 4.0 LTS (October 2019) 3.0 (February 2018) End of 2019: end of support for 2.0 Will support only Python 3.5+

3.1 (December 2018) Planned/upcoming features

Improving performance

Spectroscopic representation and analysis

Time series representation and analysis

… and much more! Developed on GitHub - http://github.com/astropy/astropy Testing

def test_constellations():

sc = SkyCoord(135*u.deg, 65*u.deg) assert sc.get_constellation() == 'Ursa Major' assert sc.get_constellation(short_name=True) == 'UMa'

scs = SkyCoord([135]*2*u.deg, [65]*2*u.deg) npt.assert_equal(scs.get_constellation(), ['Ursa Major']*2) npt.assert_equal(scs.get_constellation(short_name=True), ['UMa']*2)

(x 12,000) travis-ci.org (Linux and OSX testing)

Style

MacOS X

Documentation appveyor.com (Windows testing)

circleci.com (Linux testing) Astropy affiliated packages

These can be: • Functionality under development • More specialized functionality • Packages with incompatible licenses

Adhere to Astropy coding, testing, and docs guidelines

Use Astropy wherever possible (avoid duplication) Currently 42 affiliated packages

Image reprojection Observation planning Publication-quality image plotting Interface to many web services/archives Gamma-ray data analysis CCD image reduction Interfaces to ds9 Spectroscopic analysis ‘Big’ spectral cube analysis (e.g. ALMA, etc.) Spectral cube slicing etc. Coordinated Packages (new)

Packages that are actually managed by the project:

astropy-healpix astroplan astroquery ccdproc photutils regions reproject specutils � Core and affiliated packages

� Educational materials

� Developer and user community

� Infrastructure packages and tools Documentation hosted on ReadTheDocs - http://docs.astropy.org Documentation hosted on ReadTheDocs - http://photutils.readthedocs.io learn.astropy.org

Tutorials in Jupyter notebook form and more � Core and affiliated packages

� Educational materials

� Developer and user community

� Infrastructure packages and tools Who are the astropy developers?

Researchers and sofware developers volunteering time

Sofware developers assigned by their organizations

Students (e.g. Google Summer of Code)

… and more!

Communication

Developers: astropy-dev, GitHub, and recently Slack (with Matrix option)

Users: [email protected], Facebook, Twitter, Slack Code of Conduct Astropy Proposal for Enhancements Official project roles � Core and affiliated packages

� Educational materials

� Developer and user community

� Infrastructure packages and tools package-template astropy-helpers

Provides helpers that are specific to setup.py tasks

Provide customizations that make it easier to work with /Cython extensions, determining developer version numbers, building documentation, etc. Documentation helpers pytest-astropy and plugins Continuous integration

Centralized way of setting up conda and dependencies astropy-bot Getting involved in Astropy

Report any issues

Contribute bug fixes or features

Improve documentation

Write a tutorial

http://www.astropy.org/contribute.html Web: http://www.astropy.org

Docs: http://docs.astropy.org

Code: http://github.com/astropy/astropy

Twitter: @astropy