make_ppv

turbustat.simulator.make_ppv(vel_field, dens_field, los_axis=0, m=<Quantity 2.34167066e-27 kg>, T=<Quantity 100. K>, los_length=<Quantity 1. pc>, vel_disp=None, chan_width=None, v_min=None, v_max=None, threads=1, max_chan=1000, vel_struct_index=0.5, verbose=False, return_hdu=True, pixel_ang_scale=<Quantity 1. arcmin>, restfreq=<Quantity 1.42 GHz>)[source] [edit on github]

Generate a mock, optically-thin HI PPV cube from a given velocity and density field. Currently, the conversion to K assumes the 21-cm column density conversion.

Parameters:
vel_field : Quantity

Three-dimensional isotropic, velocity field. Must have units of velocity.

dens_field : Quantity

Three-dimensional isotropic, velocity field. Must have units of number density.

los_axis : int, optional

The axis used to produce the PPV cube.

m : Quantity, optional

Average particle mass. Defaults to 1.4 time the proton mass, appropriate for the neutral ISM at solar metallicity. Used to calculate the thermal line width.

T : Quantity, optional

Temperature of the gas. Defaults to 100 K. Used to calculate the thermal line width.

los_length : Quantity, optional

Set the total physical length of the density and velocity fields along the line-of-sight. Defaults to 1 pc.

vel_disp : Quantity, optional

Velocity dispersion of the 3D velocity field. When none is given, the mean of the projected standard deviation of the velocity field along los_axis is used. Used to set the extent of the velocity channels and estimate the channel widths, when not given.

chan_width : Quantity, optional

Width of a velocity channel. When the width is not given, an estimate is made based on Eq. 12 from Esquivel+2003.

v_min : Quantity, optional

Minimum velocity channel. Set to vel_field - 4 * v_lim, where v_lim = sqrt(vel_disp**2 + v_therm**2), when a limit is not given.

v_max : Quantity, optional

Maximum velocity channel. Set to vel_field + 4 * v_lim, where v_lim = sqrt(vel_disp**2 + v_therm**2), when a limit is not given.

threads : int, optional

Number of cores to run on. Defaults to 1.

max_chan : int, optional

Sets an upper limit on the number of velocity channels (default of 1000) to avoid using excessive amounts of memory. If the number of channels exceeds this limit, a ValueError is raised.

vel_struct_index : float, optional

Index of the velocity field. Used when automatically determining the channel width. Defaults to 0.5.

verbose : bool, optional

Print out the min and max velocity extents and the channel width prior to computing the cube.

return_hdu : bool, optional

Return the cube as a FITS HDU. Enabled by default.

pixel_ang_scale : Quantity, optional

Specify the angular scale of one spatial pixel to set values in the FITS header. Defaults to 1 arcmin.

restfreq : Quantity, optional

Rest frequency of the spectral line passed to the FITS header. Defaults to 1.42 GHz, roughly the 21-cm HI rest frequency.

Returns:
cube : Quantity or PrimaryHDU

The PPV cube as an array (return_hdu=False) or a FITS HDU (return_hdu=True).

vel_axis : Quantity

When return_hdu=False is returned, the values for the velocity axis are returned.