The Astropy Project

The Astropy Project

An overview of the Astropy project presented at Python in Astronomy 2018.

1bf4f559484a0203d68d9bf49e25d2fc?s=128

Adrian Price-Whelan

May 01, 2018
Tweet

Transcript

  1. An overview of Adrian Price-Whelan ! adrn " adrianprw

  2. source: ADS

  3. source: ADS Python IDL Matlab Perl

  4. source: ADS Python IDL Matlab Perl Python is the de

    facto language in astronomical sciences
  5. What is

  6. Core package What is

  7. Core package What is Community

  8. Core package What is Community Ecosystem

  9. Adrian Price-Whelan Lyman J. Spitzer, Jr. Fellow Princeton University Astropy

    user & maintainer ! adrn " adrianprw
  10. I work on stellar dynamics in the Milky Way

  11. I work on stellar dynamics in the Milky Way

  12. I work on stellar dynamics in the Milky Way

  13. I work on stellar dynamics in the Milky Way

  14. eek I work on stellar dynamics in the Milky Way

  15. eek I work on stellar dynamics in the Milky Way

  16. eek I work on stellar dynamics in the Milky Way

  17. eek I work on stellar dynamics in the Milky Way

  18. I like to write code

  19. I like to write code not recommended

  20. What I use Python for: Data analysis / statistical modeling

    Dynamical models and simulations Analyze survey data Visualization
  21. My roles in the Astropy project: Deputy maintainer of astropy.coordinates

    Deputy maintainer of astropy.units Infrastructure lead for Astropy tutorials Maintainer of affiliated package: Gala
  22. How did I get involved?

  23. My first contribution to Astropy: (core package)

  24. My first contribution to Astropy: (core package) 0 new lines

    of code, ~4 lines of code rearranged
  25. My first major contribution to Astropy: Following in-person meeting and

    discussion with core devs Erik T., Tom R., …
  26. My first major contribution to Astropy: Following in-person meeting and

    discussion with core devs Erik T., Tom R., …
  27. Now: Top contributors start small!

  28. Key functionality and common tools needed for doing astronomy and

    astrophysics with Python The Astropy Core Package
  29. Key functionality and common tools needed for doing astronomy and

    astrophysics with Python The Astropy Core Package For example: Unit conversion and representation in code Time manipulations and representations File I/O for astronomical data formats Coordinate transformations
  30. For example: Units and coordinates

  31. For example: Reading and writing tables

  32. & so much more! physical constants (astropy.constants) units and quantities

    (astropy.units) Data Tables (astropy.table) Time and Dates (astropy.time) Coordinate Systems (astropy.coordinates) World Coordinate System (astropy.wcs) Models and Fitting (astropy.modeling) FITS File handling (astropy.io.fits) Cosmology (astropy.cosmology) Data Visualization (astropy.visualization) Astrostatistics Tools (astropy.stats)
  33. & so much more! physical constants (astropy.constants) units and quantities

    (astropy.units) Data Tables (astropy.table) Time and Dates (astropy.time) Coordinate Systems (astropy.coordinates) World Coordinate System (astropy.wcs) Models and Fitting (astropy.modeling) FITS File handling (astropy.io.fits) Cosmology (astropy.cosmology) Data Visualization (astropy.visualization) Astrostatistics Tools (astropy.stats)
  34. A collaborative effort ~240 contributors ~20 package leads & maintainers

    Who develops the Astropy Core Package?
  35. A collaborative effort ~240 contributors ~20 package leads & maintainers

    Who develops the Astropy Core Package?
  36. A collaborative effort ~240 contributors ~20 package leads & maintainers

    Who develops the Astropy Core Package?
  37. Maintainers Deputies

  38. Maintainers Deputies

  39. Maintainers Deputies • Evaluating & merging new pull requests by

    sub-package • Feature development & issue tracking
  40. The Astropy Coordination Committee Erik Tollerud Kelle Cruz Tom Aldcroft

    Tom Robitaille • Overall coordination and management of the Astropy project • Evaluating new affiliated packages • Arbitrating disagreements in the core package • Managing finances for the project
  41. Open source The Astropy Core Package

  42. Open development The Astropy Core Package

  43. Open development The Astropy Core Package

  44. Open development The Astropy Core Package

  45. Workflow almost entirely on GitHub The Astropy Core Package

  46. Software testing & Continuous integration The Astropy Core Package

  47. Software testing & Continuous integration The Astropy Core Package the

    “Build matrix”
  48. The Astropy Papers hacking the attribution system 2013 2018

  49. The Astropy Community “Our goal is to keep ours a

    positive, inclusive, successful, and growing community” - the Astropy code of conduct!
  50. What is The Astropy Community? …us! — Users & developers

    Many entry points: - Mailing lists: users, developers - Slack - Regular telecons - New: Astropy event calendar Conferences: - AAS workshops - Python in Astronomy - Coordination meetings In all forums, venues, contexts, follow the Astropy code of conduct!
  51. Core package: General tools, long-term stable, longer release schedule Affiliated

    packages: More specialized tools, faster development and release cycle - Can also be Astropy-coordinated, managed by the Astropy project The Astropy Ecosystem Core package + affiliated packages http://affiliated.astropy.org/
  52. Astropy-coordinated: photutils: detect and perform photometry of sources astroquery: tools

    for querying astronomical databases The Astropy Ecosystem Example affiliated packages Affiliated: poliastro: astrodynamics and orbital mechanics astroML: Astronomical machine learning and data mining http://affiliated.astropy.org/
  53. The Astropy Ecosystem Making it easier for scientists to package

    their software https://github.com/astropy/package-template Astropy package template: Provides template setup, installation, and documentation infrastructure e.g., template setup.py and build structure, Sphinx documentation, Py.test testing, Travis CI config.
  54. Need detailed reference and examples? Check the documentation! Find a

    bug? Need more examples? Make a GitHub issue! Know how to fix it? Want to add examples? Submit a pull request! Want to add cool new things / features? Best to chat to developers first via mailing lists, slack How to Use Astropy
  55. New initiative: "Learn Astropy" Funding from STScI to develop educational

    resources, e.g., tutorials Speak to Lia Corrales (or me, Kelle) if interested in contributing! How to learn Astropy
  56. After rapid growth of the project, now in plateau, need

    for stabilization How do we get back on the growth curve? Many lead / maintainer roles unfilled How do we prevent burnout and support devs? User -> Contributor -> Maintainer? We have applied for serious funding (>$106) As the project grows (esp. w/ official funding), how do we preserve the development culture? Challenges & The Future
  57. Questions?