Disk Models

Model Handling

You should define the model with the ModelSersic() class :

from galpak import GalPaK3D, ModelSersic
mymodel = ModelSersic(flux_profile='exponential',rotation_curve='tanh',redshift=1.0)
gk = GalPaK3D('GalPaK_cube_1101_from_paper.fits',model=mymodel)

And print(gk.model) should yield

[MODEL] :
type = ModelSersic
flux_profile = exponential
rotation_curve = tanh
thickness_profile = gaussian
dispersion_profile = thick
line = None
aspect = None
redshift = 1.0
pixscale = None
cosmology = planck15
logger = <Logger GalPaK: DiskModel: (INFO)>
h = 0.6774
Ez = 1.7786701537924485
DeltaVir = 157.83616517152367
halo = <module ‘colossus.halo’ from ‘/usr/local/lib/python3.7/site-packages/colossus/halo/__init__.py’>
kpc = 8.231853271026885
q = 0.15

Note

The galpak save() method will save a file model.txt

If the model is saved into a model.txt file, one can use :

from galpak import GalPaK3D
gk = GalPaK3D('GalPaK_cube_1101_from_paper.fits',model='model.txt')

The file model.txt should be like :

[MODEL] :
type = ModelSersic
flux_profile = exponential
rotation_curve = tanh
thickness_profile = gaussian
dispersion_profile = thick
line = None
aspect = None
redshift = 1.0

Base Model Class

galpak.DefaultModel

alias of galpak.model_sersic3d.ModelSersic

class galpak.ModelSersic(flux_profile='exponential', thickness_profile='gaussian', dispersion_profile='thick', rotation_curve='tanh', flux_image=None, line=None, aspect=None, redshift=None, pixscale=None, cosmology='planck15')[source]

The first and default galpak Model (when unspecified). It simulates a simple disk galaxy using DiskParameters.

flux_profile: ‘exponential’ | ‘gaussian’ | ‘de_vaucouleurs’ | ‘sersicN2’ | ‘user’

The flux profile of the observed galaxy. The default is ‘exponential’. See http://en.wikipedia.org/wiki/Sersic%27s_law If ‘user’ provided flux map, specify flux_image. Currently unsupported

thickness_profile: ‘gaussian’ [default] | ‘exponential’ | ‘sech2’ | ‘none’

The perpendicular flux profile of the disk galaxy. The default is ‘gaussian’. If none. the galaxy will become a cylinder.

rotation_curve: ‘arctan’ | ‘exponential’ | ‘tanh’ [default] |

‘isothermal’ | ‘NFW’ | ‘Burkert’ | ‘mass’ | ‘Freeman’ | ‘Spano’

The profile of the velocity v(r) can be in (with X=r/rV where rV=turnover radius):
  • arctan : Vmax arctan(X),

  • tanh : Vmax tanh(X),

  • exponential : inverted exponential, Vmax (1-exp(-X))

  • isothermal : for an isothermal halo, Vmax [1-arctan(X)/X)]^0.5

  • NFW : for a NFW halo, Vmax {[ln(1+X) - X/(1+X)]/X}^0.5

  • Burkert : for a Burkert halo, Vmax {[ln(1 + X) + 0.5 ln (1 + X^2) - arctan(X)]/X}^0.5

  • Freeman : a Freeman disk with Vmax=V2.2

  • mass : a constant light-to-mass ratio v(r)=sqrt(G m(<r) / r); where m(<r) is the cumulative mass profile with m(<r) = int I(r) 2 pi r dr

  • Spano: for a Spano 2008 profile, Vmax {arcsinh(X)/X - 1/sqrt(1+X2)}

    See https://doi.org/10.1093/mnras/stz1969

The default is ‘tanh’.

dispersion_profile: ‘thick’ [default] | ‘thin’

The local disk dispersion from the rotation curve and disk thickness from Binney & Tremaine 2008, see Genzel et al. 2008. GalPak has 3 components for the dispersion:

  • a component from the rotation curve arising from mixing velocities of a disk with non-zero thickness.

  • a component from the local disk dispersion specified by disk_dispersion

  • a spatially constant dispersion, which is the output parameter velocity_dispersion.

line: None[default] | dict to fit doublets, use a dictionary with
  • line[‘wave’]=[l, lref] eg. [3726.2, 3728.9] # Observed or Rest

  • line[‘ratio’]=[0.8, 1.0] eg. [0.8, 1.0] # The primary line for redshifts is the reddest

redshift: float

The redshift of the observed galaxy, used in mass calculus. Will override the redshift provided at init ; this is a convenience parameter. If this is not set anywhere, GalPak will not try to compute the mass.

galpak.DiskModel

alias of galpak.model_sersic3d.ModelSersic