Package: astromartini
OverviewMARTINI is a modular package for the creation of synthetic resolved HI line observations (data cubes) of smoothed-particle hydrodynamics simulations of galaxies. The various aspects of the mock-observing process are divided logically into sub-modules handling the data cube, source, beam, noise, spectral model and SPH kernel. MARTINI is object-oriented: each sub-module provides a class (or classes) which can be configured as desired. For most sub-modules, base classes are provided to allow for straightforward customization. Instances of each sub-module class are given as parameters to the Martini class; a mock observation is then constructed by calling a handful of functions to execute the desired steps in the mock-observing process.Citing MARTINIIf your use of MARTINI leads to a publication, please acknowledge this and link to the github page, ideally specifying the version used (git commit ID or version number). Please cite theMARTINI entryin theASCL(indexed on ADS), and theoriginal paper:@MISC{2019ascl.soft11005O,author={{Oman}, Kyle A.},title="{MARTINI: Mock spatially resolved spectral line observations of simulated galaxies}",keywords={Software},howpublished={Astrophysics Source Code Library, record ascl:1911.005},year=2019,month=nov,eid={ascl:1911.005},pages={ascl:1911.005},archivePrefix={ascl},eprint={1911.005},adsurl={https://ui.adsabs.harvard.edu/abs/2019ascl.soft11005O},adsnote={Provided by the SAO/NASA Astrophysics Data System}}@ARTICLE{2019MNRAS.482..821O,author={{Oman}, Kyle A. and {Marasco}, Antonino and {Navarro}, Julio F. and {Frenk}, Carlos S. and {Schaye}, Joop and {Ben{\'\i}tez-Llambay}, Alejandro},title="{Non-circular motions and the diversity of dwarf galaxy rotation curves}",journal={\mnras},keywords={ISM: kinematics and dynamics, galaxies: haloes, galaxies: structure, dark matter, Astrophysics - Astrophysics of Galaxies, Astrophysics - Cosmology and Nongalactic Astrophysics},year=2019,month=jan,volume={482},number={1},pages={821-847},doi={10.1093/mnras/sty2687},archivePrefix={arXiv},eprint={1706.07478},primaryClass={astro-ph.GA},adsurl={https://ui.adsabs.harvard.edu/abs/2019MNRAS.482..821O},adsnote={Provided by the SAO/NASA Astrophysics Data System}}Installation NotesMARTINI works withpython3(version3.7or higher), and does not supportpython2.Stable releases are available viaPyPI(pip install astromartini) and the numbered releases (starting from 2.0.0) on github. The github main branch is actively developed: things will change, bugs will happen. Any feedback is greatly appreciated via github orkyle.a.oman@durham.ac.uk.The easiest way to install martini is from PyPI by doingpython3-mpip install astromartini. Output to.fitsfiles is supported by default; if output to.hdf5format is desired usepython3-mpip install astromartini[hdf5_output]instead. This will also handle the installation of the required dependencies. Other optional features require additional dependencies hosted on PyPI. In particular, EAGLE, Illustris/TNG and Simba users who wish to use the custom source modules for those simulations in MARTINI can automatically install the optional dependencies withpython3-mpip install astromartini[eaglesource], or[simbasource]or[tngsource].Installing from githubChoose abranch. Unless you want to install the latest (possibly buggy) main branch, installing with PyPI should usually be preferred. From the branch page (e.g.https://github.com/kyleaoman/martini/tree/2.0.X), click the green ‘Code’ button and follow instructions to obtain the files. Unpack the zip file if necessary. You should then be able to dopython3-mpip installmartini/[optional], whereoptionalshould be replaced by a comma separated list of optional dependencies. If this fails check thatmartini/is a path pointing to the directory containing thepyproject.tomlfile for MARTINI. The currently available options are:hdf5_output: Supports output to hdf5 files via the h5py package. Since h5py is hosted on PyPI, this option may be used when installing via PyPI.eaglesource: Dependencies for themartini.sources.EAGLESourcemodule, which greatly simplifies reading input from EAGLE simulation snapshots. Installs myHdecomposepackage, providing implementations of theRahmati et al. (2013)method for computing netural hydrogen fractions and theBlitz & Rosolowsky (2006)method for atomic/molecular fractions. Also installsmy python-only versionof John Helly’sread_eaglepackage for quick extraction of particles in a simulation sub-volume. h5py is also required.tngsource: Dependencies for themartini.sources.TNGSourcemodule, which greatly simplifies reading input from IllustrisTNG (and original Illustris) snapshots. Installs myHdecomposepackage, providing implementations of theRahmati et al. (2013)method for computing netural hydrogen fractions and theBlitz & Rosolowsky (2006)method for atomic/molecular fractions.magneticumsource: Dependencies for themartini.sources.MagneticumSourcemodule, which supports the Magneticum simulations viamy forkof theg3tpackage by Antonio Ragagnin.sosource: Dependencies for themartini.sources.SOSourcemodule, which provides unofficial support for several simulation datasets hosted on specific systems. This is intended mostly for my own use, but APOSTLE, C-EAGLE/Hydrangea and Auriga users maycontactme for further information.Getting startedSee the help formartini.Martinifor an example script to configure MARTINI and create a datacube. This example can be run by doing:python-c"from martini import demo; demo()"MARTINI has (so far) been successfully run on the output of these simulations:EAGLEAPOSTLEC-EAGLE/HydrangeaIllustrisIllustrisTNGAurigaMaGICC (and therefore in principle NIHAO)MagneticumSimbaI attempt to support publicly available simulations with a customized source module. If your simulation is public and not supported, pleasecontact me. Currently custom source modules exist for:EAGLE (martini.sources.EAGLESource)IllustrisTNG (martini.sources.TNGSource; also works with Illustris)Magneticum (martini.sources.MagneticumSource)Simba (martini.sources.SimbaSource)Examplenotebooksare available for supported simulations.