## Please edit system and help pages ONLY in the master wiki! ## For more information, please see MoinMoin:MoinDev/Translation. ##master-page:FrontPage #format wiki #language en #pragma section-numbers off = Astronomical Interferometry in PYthon (AIPY) = This package collects together tools for radio astronomical interferometry. In addition to pure-python phasing, calibration, imaging, and deconvolution code, this package includes interfaces to MIRIAD (a Fortran interferometry package) and HEALPix (a package for representing spherical data sets), and some math/fitting routines from SciPy. The primary driver for this software is the [[http://astron.berkeley.edu/~dbacker/eor|Precision Array for Probing the Epoch of Reionization (PAPER)]], an experiment for detecting the first stars and galaxies that formed in the universe via the effect of their radiation on intergalactic hydrogen. This experiment presents many new challenges, including widefield imaging, non-tracking antennas, high data-rates, a large fractional bandwidth, and power-spectrum detection. For an overview of the latest changes to this package, see the [[../../CHANGELOG|CHANGELOG]]. You are invited to edit this wiki (see EditingThisWiki). <> --------------------- == Download == If you have [[http://peak.telecommunity.com/DevCenter/setuptools|setuptools]] and [[http://numpy.scipy.org|numpy]] is already installed, then with root permissions, you can just type: {{{ easy_install aipy }}} Otherwise, you may download from http://pypi.python.org/pypi/aipy. If you want the bleeding-edge source tree, or are interested in source development, you can checkout a copy from http://github.com/AaronParsons/aipy using [[http://git.or.cz|GIT]]. See GitAipy for more information about using GIT with AIPY. -------------------- == Installation == === Resolving Dependencies === This is primarily a *nix package. With some trouble it can install on intel-based Macs. It probably doesn't install on Windows. You need to have python >= 2.4. AIPY depends of the following Python packages: {{{ numpy >= 1.2 pyephem >= 3.7.2.3 pyfits >= 1.1 *matplotlib >= 0.98 *matplotlib-basemap >= 0.99 }}} (* installation can proceed without these, but some scripts will choke) To resolve these dependencies, your options are: * (safest) -- Manually install the dependencies. * (experimental) -- Open up the AIPY download, and with network connectivity and root access, type: {{{ install_required.sh }}} and then (if you want matplotlib/basemap): {{{ install_recommended.sh }}} === Installing with Root Permission === If you used easy_install, and everything worked, then you're set. Otherwise, download the AIPY package, open it up, and then run (with root permission): {{{ python setup.py install }}} If any of the dependencies fails to install, you should download the package source and build it manually. === Installing without Root Permission === To resolve dependencies using setuptools, but without root access, you'll need to follow the instructions at http://peak.telecommunity.com/DevCenter/setuptools, and apply them to each line in install_dependencies.sh. Once dependencies have been solved, run the following command: {{{ python setup.py install --install-lib "module_dir" --install-scripts "scripts_dir" }}} where "module_dir" and "scripts_dir" are 2 directories you define. "module_dir" will hold the python module for the package you install, and "scripts_dir" will hold any scripts associated with the package. If you take this second route, you should also run (for bash) {{{ export PYTHONPATH="module_dir" }}} so that python can find the modules. You should also add "scripts_dir" to your path: {{{ export PATH=$PATH:"scripts_dir" }}} To avoid having to type these lines every time you open a console, add them to your .bashrc file. === Additional Packages === Here's a short list of additional packages that I find generally useful when working in Python: * [[http://ipython.scipy.org|IPython]]: A slick interactive command-line interface. * [[http://www.scipy.org|SciPy]]: General-purpose math, signal processing, fitting, and science stuff. ---------------------- == Documentation == There are several options for obtaining information about the structure and usage of AIPY: * a [[../../aipy.pdf|tutorial]] that includes primers on various packages, code documentation, and some examples * [[../../../python/aipy.html|online code documentation]] generated automatically from docstrings in the source code * this wiki, which you are welcome to join and contribute to (see EditingThisWiki). Feel free to add and contribute to the list of topics below: * FrequentlyAskedQuestions - a place to post (and answer) questions * CookBook - a repository for example code snippets and explanations * a [[../../../papers/2008-08-10_LFSW_AIPY_Presentation.pdf|presentation]] I gave that highlights some of the philosophy and methodology of AIPY * you may also send emails to aparsons at astron berkeley edu (with dots between astron, berkeley, and edu). ---------------------- == Contributing Code == AIPY is open-source software released under the GNU Public License. It may be freely used and modified. That said, the interferometry community as a whole stands to benefit from cooperative, organized development. A general model for contributing to the AIPY code-base goes as follows: * If you find a bug, write a BugReport to help get it fixed. * Write an AipyEnhancementProposal that details what you're interested in changing, how it used to work, how it will work after your enhancment, and why the enhancement is better * Get a copy of the latest source code git (see GitAipy for instructions) * Make your edits (writing unit tests for any new features), and then check that you haven't broken any other unit tests. * Contact a primary developer (currently, Aaron Parsons: aparsons at astron berkeley edu) with an emailed patch. These patches, which may be produced automatically with git, will be merged into the primary source code branch. ---------------------------- == How to use this site == A Wiki is a collaborative site; anyone can create an account and contribute (see EditingThisWiki): * Edit any page by pressing '''<>''' at the top or the bottom of the page (you have to log in first). * Create a link to another page with joined capitalized words (like WikiSandBox) or with {{{[[words in brackets]]}}} * Search for page titles or text within pages using the search box at the top of any page * See HelpForBeginners to get you going, HelpContents for all help pages. Interesting starting points: * RecentChanges: see where people are currently working * WikiSandBox: feel free to change this page and experiment with editing * FindPage: search or browse the database in various ways * HelpOnMoinWikiSyntax: quick access to wiki markup * SiteNavigation: get an overview over this site and what it contains This wiki is powered by [[http://moinmo.in/|MoinMoin]].