The data volume generated by astronomical surveys is growing rapidly.
Traditional analysis techniques in spectroscopy either demand intensive human
interaction or are computationally expensive. In this scenario, machine
learning, and unsupervised clustering algorithms in particular offer
interesting alternatives. The Apache Point Observatory Galactic Evolution
Experiment (APOGEE) offers a vast data set of near-infrared stellar spectra
which is perfect for testing such alternatives. Apply an unsupervised
classification scheme based on $K$-means to the massive APOGEE data set.
Explore whether the data are amenable to classification into discrete classes.
We apply the $K$-means algorithm to 153,847 high resolution spectra
($R\approx22,500$). We discuss the main virtues and weaknesses of the
algorithm, as well as our choice of parameters. We show that a classification
based on normalised spectra captures the variations in stellar atmospheric
parameters, chemical abundances, and rotational velocity, among other factors.
The algorithm is able to separate the bulge and halo populations, and
distinguish dwarfs, sub-giants, RC and RGB stars. However, a discrete
classification in flux space does not result in a neat organisation in the
parameters space. Furthermore, the lack of obvious groups in flux space causes
the results to be fairly sensitive to the initialisation, and disrupts the
efficiency of commonly-used methods to select the optimal number of clusters.
Our classification is publicly available, including extensive online material
associated with the APOGEE Data Release 12 (DR12). Our description of the
APOGEE database can enormously help with the identification of specific types
of targets for various applications. We find a lack of obvious groups in flux
space, and identify limitations of the $K$-means algorithm in dealing with this
kind of data.
The Astropy Project (http://astropy.org) is, in its own words, "a community
effort to develop a single core package for Astronomy in Python and foster
interoperability between Python astronomy packages." For five years this
project has been managed, written, and operated as a grassroots,
self-organized, almost entirely volunteer effort while the software is used by
the majority of the astronomical community. Despite this, the project has
always been and remains to this day effectively unfunded. Further, contributors
receive little or no formal recognition for creating and supporting what is now
critical software. This paper explores the problem in detail, outlines possible
solutions to correct this, and presents a few suggestions on how to address the
sustainability of general purpose astronomical software.