Papers
Topics
Authors
Recent
Search
2000 character limit reached

The Astropy Project: Building an inclusive, open-science project and status of the v2.0 core package

Published 8 Jan 2018 in astro-ph.IM | (1801.02634v2)

Abstract: The Astropy project supports and fosters the development of open-source and openly-developed Python packages that provide commonly-needed functionality to the astronomical community. A key element of the Astropy project is the core package Astropy, which serves as the foundation for more specialized projects and packages. In this article, we provide an overview of the organization of the Astropy project and summarize key features in the core package as of the recent major release, version 2.0. We then describe the project infrastructure designed to facilitate and support development for a broader ecosystem of inter-operable packages. We conclude with a future outlook of planned new features and directions for the broader Astropy project.

Citations (4,368)

Summary

  • The paper details the community-driven development of the Astropy Project, highlighting its collaborative approach to enhance astronomical data analysis.
  • It describes key v2.0 enhancements such as logarithmic unit support, advanced coordinate transformations, and optimized data I/O operations.
  • The release sets the stage for future improvements by discontinuing Python 2 support and expanding educational resources to engage a diverse user community.

Overview of "The Astropy Project: Building an Inclusive, Open-Science Project and Status of the v2.0 Core Package"

The paper "The Astropy Project: Building an Inclusive, Open-Science Project and Status of the v2.0 Core Package" offers an in-depth examination of the organizational structure, core functionalities, and future trajectory of the Astropy project. As a prominent open-source project, Astropy is essential for the astronomical community, providing a suite of Python tools tailored for astronomical data analysis.

Core Objectives and Features

The Astropy project is distinguished by its inclusive and collaborative approach to developing Python packages that meet the astronomical community's needs. A key component is the astropy core package, which has evolved to become a robust library that underpins specialized astronomical Python packages. The project's model is steeped in community participation, contrasting with institutional initiatives like IRAF, MIDAS, or Starlink, making Astropy a paradigm of how decentralized efforts can yield impactful outcomes.

Astropy v2.0 Key Components

The core package encompasses numerous modules pivotal for astronomical computations:

  • Units and Constants: These modules are integral for representing quantities with associated units and constants. In v2.0, enhancements include logarithmic units support and standardized physical and astronomical constants tailored to IAU and CODATA recommendations.
  • Coordinates and Time: This segment supports celestial coordinate transformations and time treatments, crucial for tasks like observation planning. It leverages the ERFA library, offering comprehensive functionalities for celestial mechanics and time conversions, including barycentric and heliocentric adjustments.
  • Data Handling: Astropy offers tools for table manipulations and NDData structures to handle multi-dimensional datasets with metadata and uncertainty comprehension. The latest version brings robust grouping operations and integration of complex data types.
  • I/O Operations: The project manages various data formats, including FITS and HDF5, and introduces ECSV for enhanced metadata preservation. The ASCII module has been optimized for speed and expanded format compatibility.
  • Modeling and Statistical Analysis: Astropy's modeling capabilities allow analytical model creation and fitting, supplemented by advanced statistical tools for robust and circular statistical computations, and the Lomb-Scargle periodograms for periodic data analysis.

Development Model and Community Guidelines

Astropy employs a federated development model where contributions are coordinated and vetted by a committee, eschewing a central figurehead approach. This ensures diverse input and alignment with project standards. Code changes are proposed as APEs (Astropy Proposals for Enhancement), a structure akin to Python's PEPs, fostering deliberate and community-driven development.

The affiliated package concept expands Astropy's reach, embedding specialized packages within its ecosystem without burdening the core package. This model promotes interoperability and quality across community initiatives.

Future Directions

Post v2.0, Astropy will discontinue Python 2 support, allowing the exploitation of more advanced Python 3 features. The project aims to optimize existing algorithms and expand documentation, addressing both performance and user education. Anticipated efforts, like Learn Astropy, are designed to provide a scaffold for users with varying expertise levels, ensuring that Astropy remains accessible while nurturing the next generation of contributors.

Astropy illustrates how open science and community collaboration can effectively develop and maintain scientific software. As it evolves, its practices and tools continue to be instrumental in the daily computational tasks of astronomers, ensuring that the project not only keeps pace with astronomical research requirements but also sets a standard for scientific software development.

Paper to Video (Beta)

No one has generated a video about this paper yet.

Whiteboard

No one has generated a whiteboard explanation for this paper yet.

Open Problems

We haven't generated a list of open problems mentioned in this paper yet.

Continue Learning

We haven't generated follow-up questions for this paper yet.

Collections

Sign up for free to add this paper to one or more collections.