Skip to main content

A python package for easily parsing and processing data from MilkyWay@home

Project description


Copyright Tom Donlon, 2020 RPI

github user: thomasdonlon

Requires Python v.>3.2.3

MilkyWay@home is a computational astrophysics project located at RPI and run by Dr. Heidi Newberg. The project contains two main components, (i) the Separation Application and (ii) the N-body Application. I have worked with both, and over a few years have developed several useful bits of python code to supplement analysis and usage of MilkyWay@home. This code has been cleaned and organized here, so that others can benefit from the work I did and not have to spend time rewriting thing's I've already done.

The purpose of the mwahpy package is to provide a collection of useful tools for people working with/on the MilkyWay@home project at RPI. Ideally, the package will contain tools for both Separation and N-body, although that might not initially be the case.

In practice it would be good for this package to be updated along with the MilkyWay@home project and/or python updates after I'm gone. No clue if that's going to happen, but I plan on maintaining support at least through the spring of 2022 (while I'm in graduate school).

Issues with the package can be directed to my github profile or on the MilkyWay@home forums at Improvements or additions are welcome, just send a pull request to the mwahpy github repository.


A non-exhaustive list of contents of the package is given below:

  • easy importing of data from N-body output
  • easy manipulation of data after reading in
  • A variety of coordinate transformations for typical coordinate systems used in Galactic astronomy
  • easy visualization of the imported data through plotting functionality
  • a tutorial .pdf document along with documentation for each function in the package



  1. Open your terminal, and run

python3 -m pip install mwahpy

  1. Insert import statements for the subpackages that you want to use in your .py files:

import mwahpy.{mwahpy subpackage}

import mwahpy.{other mwahpy subpackage}


  1. Do science


  1. Clone the mwahpy github repository

  2. Make the desired changes in the source code

  3. Navigate to the directory where you cloned the repo, and then run

python3 develop --user

(note, you will probably need to uninstall any previous versions of mwahpy you had on your machine before running this)

  1. To test your changes, insert import statements for the subpackages that you want to use in your .py files as you normally would:

import mwahpy.{mwahpy subpackage}

import mwahpy.{other mwahpy subpackage}


  1. Once you are done making changes to the source code, put in a pull request to master

  2. Navigate to the directory where you cloned the repo, and then run

python3 develop --uninstall

pip3 install mwahpy

Your changes will not be available in the main mwahpy build until a new release comes out.



  • Expand plot capabilities
  • Finish refactoring
  • Finish unit testing of coordinate transformations
  • Redo the orbit fitters in gala instead of galpy (galpy flips handedness and it's problematic)


  • Apparently there's a MW@h readout method with a different number of values or different values than normally used? Should probably support that.
  • Inverse (cut out within range) subset_circ() & subset_rect() options
  • Let subset_circ() and subset_rect() handle None as bounds
  • Implement better linear algebra to reduce the computation time of coords.get_rvpm()
  • Play around with turning off mwahpy_glob.verbose flag for some things to quiet unnecessary output
  • Add levels of verbosity, and make this changeable by running a command


  • output_handler.make_nbody_input() sometimes produces output that is unreadable by MilkyWay@home N-Body. N-Body can only read .in files that only contain dark matter (#ignore = 1) files. This is more of a bug in the N-Body client than mwahpy.

Project details

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

mwahpy-1.4.6.tar.gz (1.0 MB view hashes)

Uploaded source

Built Distribution

mwahpy-1.4.6-py3-none-any.whl (145.4 kB view hashes)

Uploaded py3

Supported by

AWS AWS Cloud computing Datadog Datadog Monitoring Facebook / Instagram Facebook / Instagram PSF Sponsor Fastly Fastly CDN Google Google Object Storage and Download Analytics Huawei Huawei PSF Sponsor Microsoft Microsoft PSF Sponsor NVIDIA NVIDIA PSF Sponsor Pingdom Pingdom Monitoring Salesforce Salesforce PSF Sponsor Sentry Sentry Error logging StatusPage StatusPage Status page