Skip to main content

A Package for Mock Observations in optical bands

Project description

README

PyMGal is a package that uses simple stellar synthesis models to generate mock observations of galaxies from hydrodynamical simulations. If you want a more detailed explanation of PyMGal than can be provided in a short readme file, see the documentation at https://pymgal.readthedocs.io.

If you're viewing this from the Github page, you may wish to view PyMGal's official page at the Python Package Index (PyPI).

If you're viewing this from the PyPI page, you may want to see the full Github repository.

pymgal_demo

Installation

Since PyMGal is registered with PyPI, you can simply pip install the latest stable version. Make sure you have all the necessary prerequisites from the requirements.txt file beforehand.

pip install pymgal

Usage

In most cases, the only API needed for PyMGal is the MockObservation object. MockObservation objects require two mandatory parameters: the path to your snapshot file and the coordinates and radius of the region you want to consider. If you don't know the coordinates of your object, you'll probably need to obtain some catalogue data.

Once you initialize the object, you can calculate magnitudes of particles in your preferred output unit using the get_mags() function. You can also save projection files using the project() function. If you call project() before calling get_mags(), the magnitudes will automatically be calculated.

Here is a sample to get you started.

from pymgal import MockObservation

obs = MockObservation("/path/to/snapshot", [x_c, y_c, z_c, r])   
obs.params["out_val"] = "luminosity"
obs.get_mags()
obs.project("/path/to/output")

If all goes well, you should see at least one newly formed snap_{XYZ}-{proj_angle}-{filter}.fits file in your output directory.

Modifiable parameters

There are many different parameters you can modify for your magnitude calculations and your projections. Here is a list of them. For more information, see the documentation website.

class MockObservation(object):
   def __init__(self, sim_file, coords, args=None):
           # Default parameter values
           defaults = {
               "model": SSP_models('bc03', IMF='chab', has_masses=True),
               "dustf": None,
               "filters": ["sdss_r"],
               "out_val": "flux",
               "mag_type": "AB",
               "proj_vecs": "z",
               "proj_angs": None,
               "proj_rand": 0,
               "rest_frame": True,
               "AR": 1.2,
               "npx": 512,
               "z_obs": 0.1,
               "ksmooth": 100,
               "g_soft": None,
               "p_thick": None,
               "add_spec": False,
               "spec_res": None,
               "ncpu": 16,
               "noise": None,
               "outmas": True,
               "outage": False,
               "outmet": False
               "quiet": False
           }
  • Note: If you're working with data from The Three Hundred Project, we've included a script called pymgal/doc/the300_helper.py which helps you get positions from AHF halos. Open it and read the comments at the top for instructions. Fair warning: PyMGal has been modified quite a bit since this script was written, so you may need to make some modifications.

Who do I talk to?

Acknowledgement

  • This package borrowed a lot things from ezgal (http://www.baryons.org/ezgal/). Please make your acknowledgement to their work when you use this package.

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

pymgal-1.1.tar.gz (67.1 MB view details)

Uploaded Source

File details

Details for the file pymgal-1.1.tar.gz.

File metadata

  • Download URL: pymgal-1.1.tar.gz
  • Upload date:
  • Size: 67.1 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.10.9

File hashes

Hashes for pymgal-1.1.tar.gz
Algorithm Hash digest
SHA256 51d062b463f62f9175ec8e7374c0cb2e412b8a81b9dfc541fcbcc72c2c8ca7c6
MD5 f4125a26710d80db5c9d1b5752d7e1f7
BLAKE2b-256 55bcd06f5b38aadfe97149ec4146ac877301a10ca7fa5e9ff7f9121723f06e22

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page