this is for holding javascript data
Adam Ginsburg added software chapter
about 11 years ago
Commit id: 8c540f0c69d5d39eef761eb644fc1c5cf0981096
deletions | additions
diff --git a/ch_software.tex b/ch_software.tex
new file mode 100644
index 0000000..d3a9ecf
--- /dev/null
+++ b/ch_software.tex
...
\input{preface}
\chapter{Software developed during this thesis}
\section{Preface}
Software development is severely underappreciated in astronomy. It is not
particularly difficult for expert developers to make production-level codes
useable by a large community, but that level of support is rarely provided to
astronomers. For the majority of major telescope facilities, data reduction is
left entirely to the user, which leads to major delays in science and prevents
re-use of archival data. The JCMT and STSCI have been exceptions to this rule
- they have supported significant groups of software developers with the goal
of producing useable archive data products. Similarly, the NRAO has recently
taken on a greater level of software support for ALMA and EVLA products,
producing fully pipeline-reduced data for observers. Unfortunately, the NOAO
has instead cut funding to their software developers, leaving IRAF as a
relatively unsupported hulk of a code that everyone still uses.
In this section, I summarize the codes I've written primarily for performing
reduction of data not supported by any standard reduction software. The text
is kept to brief summaries because, for most of these codes, there is extensive
documentation available at the links provided.
\section{The BGPS pipeline}
\label{sec:bgpspipeline}
\url{https://code.google.com/p/bgpspipeline/} \\
The BGPS pipeline is described in Chapter \ref{ch:v2} and \citet{Aguirre2011}.
It was created to deal with bright 1.1mm emission in ways not well-supported
by the original Bolocam pipeline. In the end, it did essentially the same
things, but implemented a few new features. A great deal of time and effort
went towards making the pipeline operate in memory instead of on disk; in
retrospect, that was not a particularly wise use of my time. However, it
allowed some signal-processing features to be added to the BGPS pipeline that
could not be included in the original Bolocam pipeline.
\section{PySpecKit}
\url{http://pyspeckit.readthedocs.org/} \\
PySpecKit was written in collaboration with Jordan Mirocha \citep{Ginsburg2012c}.
It grew from a need to perform interactive spectral plotting and fitting within python.
IRAF has very useful interactive plotting and fitting tools, specifically
\texttt{splot}, but it is not easy to extend the fitting code to use models
such as those generated from RADEX grids. It also does not readily yield
publication-quality plots.
PySpecKit has been used in one form or another in all of my papers except
\citep{Ginsburg2012a}. It provides a flexible interface for fitting
arbitrarily models to data and plotting the models and fits in a sensible way.
\section{TripleSpec Mapping Pipeline}
\url{https://code.google.com/p/agpy/source/browse/trunk/iraf/pipeline_jhk.cl} \\
IRAF is still the only software capable of efficiently fitting and performing
geometric transforms of images, which is necessary for both world coordinate
corrections and two-dimensional spectroscopy. These limitations will, hopefully,
be alleviated with new packages being build for astropy.
The standard TripleSpec pipeline is the SPEXTOOL data pipeline written by Michael
Cushing. This pipeline is useful for deep spectra of single objects, but not
for spatially-resolved spectroscopy.
I created a data pipeline to reduce TripleSpec data entirely within IRAF. It
produces a complete 2D spectrum that is wavelength and flux calibrated. It
includes sky-line subtraction capabilities, but these are not as effective as
in the IDL-based pipeline. This limitation is in part because the IRAF
pipeline does not take advantage of (or require) the fast-switching approach
typically used to acquire high-fidelity infrared data.
This approach is uniquely useful for mapping bright spectroscopic lines, in
particular from outflows, as demonstrated in \citet{Ginsburg2009}. Allison
Youngblood has begun using this pipeline in conjunction with my map-making
pipeline to make wide-field spectroscopic data cubes using the full NIR JHK
spectrum in the W51 and Orion OMC 1 fields.
\section{Arecibo and GBT mapping codes}
\url{https://code.google.com/p/casaradio/source/browse/branches/gbtidl/ginsburg/} \\
\url{https://code.google.com/p/casaradio/source/browse/branches/aoidl/ginsburg/} \\
\url{https://code.google.com/p/casaradio/source/browse/branches/python/ginsburg/} \\
Making maps with Arecibo and GBT was not natively supported, but neither was it
particularly difficult. The linked codes in this section are re-usable
pipeline-like functions for calibrating and combining GBT and Arecibo spectra.
\section{Image Registration}
\url{http://image-registration.rtfd.org}\\
The problem of image registration in astronomical imaging and spectroscopy is
well-studied, but the existing solutions are not all good. If you want to know
the offset between two images that contain no point sources, it is
straightforward to determine the peak of the cross-correlation between those
images. However, if you need to know the offset to sub-pixel accuracy
\emph{and} you want to know the error on that measurement, existing methods are
either misleading or inaccurate.
A detailed demonstration of the different methods and their various
(dis)advantages using monte-carlo experiments as a baseline for what the true
errors on a measurement of a simulated map should be is shown at this URL:
\url{http://nbviewer.ipython.org/urls/raw.github.com/keflavich/image_registration/master/examples/Cross%2520Correlation.ipynb}.
The tests are not reproduced here for brevity.
\section{Power-Law fitting}
\url{https://plfit.readthedocs.org/en/latest/}\\
A maximum-likelihood approach to power-law distribution fitting for data with a
lower cut-off (e.g., a completeness limit) was implemented by
\citet{Clauset2007}. I wrote a translation of his code into python (and
fortran and c). It was used in most of the publications in this thesis.
\input{solobib}
\end{document}