.. DO NOT EDIT. .. THIS FILE WAS AUTOMATICALLY GENERATED BY SPHINX-GALLERY. .. TO MAKE CHANGES, EDIT THE SOURCE PYTHON FILE: .. "examples/galaxies/plot_ellipticity.py" .. LINE NUMBERS ARE GIVEN BELOW. .. only:: html .. note:: :class: sphx-glr-download-link-note Click :ref:`here ` to download the full example code .. rst-class:: sphx-glr-example-title .. _sphx_glr_examples_galaxies_plot_ellipticity.py: Galaxy Ellipticity Distributions ================================ This example demonstrate how to sample ellipticity distributions in SkyPy. .. GENERATED FROM PYTHON SOURCE LINES 12-42 3D Ellipticity Distribution --------------------------- In Ryden 2004 [1]_, the ellipticity is sampled by randomly projecting a 3D ellipsoid with principal axes :math:`A > B > C`. The distribution of the axis ratio :math:`\gamma = C/A` is a truncated normal with mean :math:`\mu_\gamma` and standard deviation :math:`\sigma_\gamma`. The distribution of :math:`\epsilon = \log(1 - B/A)` is truncated normal with mean :math:`\mu` and standard deviation :math:`\sigma`. The func:`skypy.galaxies.morphology.ryden04_ellipticity()` model samples projected 2D axis ratios. Specifically, it samples the axis ratios of the 3D ellipsoid according to the description above [1] and then randomly projects them using :func:`skypy.utils.random.triaxial_axis_ratio()`. Validation plot with SDSS Data ------------------------------ Here we validate our function by comparing our ``SkyPy`` simulated galaxy ellipticities against observational data from SDSS DR1 in Figure 1 [1]. You can download the data file :download:`SDSS_ellipticity <../../../examples/galaxies/SDSS_ellipticity.npz>`, stored as a 2D array: :math:`e_1`, :math:`e_2`. .. GENERATED FROM PYTHON SOURCE LINES 42-54 .. code-block:: python3 import numpy as np # Load SDSS data from Fig. 1 in Ryden 2004 data = np.load('SDSS_ellipticity.npz') e1, e2 = data['sdss']['e1'], data['sdss']['e2'] Ngal = len(e1) e = np.hypot(e1, e2) q_amSDSS = np.sqrt((1 - e)/(1 + e)) .. GENERATED FROM PYTHON SOURCE LINES 55-63 In this example, we generate 100 galaxy ellipticity samples using the ``SkyPy`` function :func:`skypy.galaxies.morphology.ryden04_ellipticity()` and the best fit parameters given in Ryden 2004 [1]: :math:`\mu_\gamma =0.222`, :math:`\sigma_\gamma=0.057`, :math:`\mu =-1.85` and :math:`\sigma=0.89`. .. GENERATED FROM PYTHON SOURCE LINES 64-78 .. code-block:: python3 from skypy.galaxies.morphology import ryden04_ellipticity # Best fit parameters from Fig. 1 in Ryden 2004 mu_gamma, sigma_gamma, mu, sigma = 0.222, 0.057, -1.85, 0.89 # Binning scheme of Fig. 1 bins = np.linspace(0, 1, 41) mid = 0.5 * (bins[:-1] + bins[1:]) # Mean and variance of sampling mean = np.zeros(len(bins)-1) var = np.zeros(len(bins)-1) .. GENERATED FROM PYTHON SOURCE LINES 80-101 .. code-block:: python3 # Create 100 SkyPy realisations for i in range(100): # sample ellipticity e = ryden04_ellipticity(mu_gamma, sigma_gamma, mu, sigma, size=Ngal) # recover axis ratio from ellipticity q = (1 - e)/(1 + e) # bin n, _ = np.histogram(q, bins=bins) # update mean and variance x = n - mean mean += x/(i+1) y = n - mean var += x*y # finalise variance and standard deviation var = var/i std = np.sqrt(var) .. GENERATED FROM PYTHON SOURCE LINES 102-107 We now plot the distribution of axis ratio :math:`𝑞_{am}` using adaptive moments in the i band, for exponential galaxies in the SDSS DR1 (solid line). The data points with error bars represent the `SkyPy` simulation: .. GENERATED FROM PYTHON SOURCE LINES 108-121 .. code-block:: python3 import matplotlib.pyplot as plt plt.hist(q_amSDSS, range=[0, 1], bins=40, histtype='step', ec='k', lw=0.5, label='SDSS data') plt.errorbar(mid, mean, yerr=std, fmt='.r', ms=4, capsize=3, lw=0.5, mew=0.5, label='SkyPy model') plt.xlabel(r'Axis ratio, $q_{am}$') plt.ylabel(r'N') plt.legend(frameon=False) plt.show() .. image:: /examples/galaxies/images/sphx_glr_plot_ellipticity_001.png :alt: plot ellipticity :class: sphx-glr-single-img .. GENERATED FROM PYTHON SOURCE LINES 122-129 References ---------- .. [1] Ryden, Barbara S., 2004, `The Astrophysical Journal, Volume 601, Issue 1, pp. 214-220`_ .. _The Astrophysical Journal, Volume 601, Issue 1, pp. 214-220: https://arxiv.org/abs/astro-ph/0310097 .. rst-class:: sphx-glr-timing **Total running time of the script:** ( 0 minutes 0.517 seconds) .. _sphx_glr_download_examples_galaxies_plot_ellipticity.py: .. only :: html .. container:: sphx-glr-footer :class: sphx-glr-footer-example .. container:: sphx-glr-download sphx-glr-download-python :download:`Download Python source code: plot_ellipticity.py ` .. container:: sphx-glr-download sphx-glr-download-jupyter :download:`Download Jupyter notebook: plot_ellipticity.ipynb ` .. only:: html .. rst-class:: sphx-glr-signature `Gallery generated by Sphinx-Gallery `_