CoreSersicProfile#

class profiles.density.CoreSersicProfile(**kwargs)[source]#

Core-Sérsic Surface Density Profile.

Models galaxies with depleted cores and outer Sérsic-like falloff:

\[\Sigma(R) = \Sigma_b \left[1 + \left( \frac{R_b}{R} \right)^\alpha \right]^{\gamma/\alpha} \exp\left( -b_n \left( \left( \frac{R^\alpha + R_b^\alpha}{R_e^\alpha} \right)^{1/(\alpha n)} - \left( \frac{R_b}{R_e} \right)^{1/n} \right) \right)\]

where:

  • \(\Sigma_b\) is the surface density at the break radius.

  • \(R_b\) is the break radius between core and outer profile.

  • \(\gamma\) controls the inner power-law slope.

  • \(\alpha\) controls sharpness of transition.

  • \(R_e\) is the effective radius of the outer Sérsic portion.

  • \(n\) is the Sérsic index.

  • \(b_n\) is the usual Sérsic constant.

Parameters

Name

Symbol

Description

Sigma_b

\(\Sigma_b\)

Surface density at break radius

R_b

\(R_b\)

Break radius

R_e

\(R_e\)

Sérsic effective radius

n

\(n\)

Sérsic index

gamma

\(\gamma\)

Inner slope

alpha

\(\alpha\)

Transition sharpness

Example

>>> from pisces.profiles.density import (
...     CoreSersicProfile,
... )
>>> import matplotlib.pyplot as plt
>>> R = np.linspace(0.1, 20, 300)
>>> profile = CoreSersicProfile(
...     Sigma_b=1.0,
...     R_b=2.0,
...     R_e=5.0,
...     n=4.0,
...     gamma=0.5,
...     alpha=5.0,
... )
>>> Sigma = profile(R)
>>> plt.semilogy(R, Sigma)
>>> plt.xlabel("Radius (R)")
>>> plt.ylabel("Surface Density (Sigma)")
>>> plt.title("Core-Sérsic Surface Profile")
>>> plt.grid(True)
>>> plt.show()

(Source code, png, hires.png, pdf)

../_images/profiles-density-CoreSersicProfile-1.png

Methods

__init__(**kwargs)

Initialize a profile instance with specific parameter values.

from_dict(data)

Reconstruct a profile instance from a dictionary.

from_hdf5(h5obj[, name])

Reconstruct a profile from HDF5 attributes.

from_json(filepath)

Reconstruct a profile from a JSON file.

from_yaml(filepath)

Reconstruct a profile from a YAML file.

get_derived_profile(profile_name, **kwargs)

Access and instantiate a derived profile by name.

get_expression_latex([substitute])

Return the LaTeX representation of the profile's symbolic expression.

get_output_units(*argu)

Determine the output units of the operation given some set of input units.

get_parameters_latex()

Return a LaTeX table of the profile parameters.

lambdify_expression(expression)

Convert a symbolic expression into a callable function.

list_derived_profiles()

List all available derived profiles for this instance.

substitute_expression(expression)

Replace symbolic parameters with numerical values in an expression.

to_dict()

Serialize this profile to a minimal dictionary representation.

to_hdf5(h5obj[, name])

Store profile metadata into an HDF5 object as attributes.

to_json(filepath, **kwargs)

Serialize the profile to a JSON file.

to_yaml(filepath, **kwargs)

Serialize the profile to a YAML file.

Attributes

derived_profile_classes

Get the available derived profile classes for this instance.

parameter_symbols

Get the symbolic representations of the coordinate system parameters.

parameters

The parameters of this coordinate system.

variable_symbols

The symbols representing each of the coordinate axes in this coordinate system.

variables

The axes names present in this coordinate system.