The stream DF

class galpy.df.streamdf(sigv, progenitor=None, pot=None, aA=None, useTM=False, tdisrupt=None, sigMeanOffset=6.0, leading=True, sigangle=None, deltaAngleTrack=None, nTrackChunks=None, nTrackIterations=None, progIsTrack=False, ro=None, vo=None, Vnorm=None, Rnorm=None, R0=8.0, Zsun=0.0208, vsun=[-11.1, 241.92, 7.25], multi=None, interpTrack=True, useInterp=True, nosetup=False, nospreadsetup=False, approxConstTrackFreq=False, useTMHessian=False, custom_transform=None)[source]

The DF of a tidal stream

__init__(sigv, progenitor=None, pot=None, aA=None, useTM=False, tdisrupt=None, sigMeanOffset=6.0, leading=True, sigangle=None, deltaAngleTrack=None, nTrackChunks=None, nTrackIterations=None, progIsTrack=False, ro=None, vo=None, Vnorm=None, Rnorm=None, R0=8.0, Zsun=0.0208, vsun=[-11.1, 241.92, 7.25], multi=None, interpTrack=True, useInterp=True, nosetup=False, nospreadsetup=False, approxConstTrackFreq=False, useTMHessian=False, custom_transform=None)[source]

NAME:

__init__

PURPOSE:

Initialize a quasi-isothermal DF

INPUT:

sigv - radial velocity dispersion of the progenitor (can be Quantity)

tdisrupt= (5 Gyr) time since start of disruption (can be Quantity)

leading= (True) if True, model the leading part of the stream
if False, model the trailing part

progenitor= progenitor orbit as Orbit instance (will be re-integrated, so don’t bother integrating the orbit before)

progIsTrack= (False) if True, then the progenitor (x,v) is actually the (x,v) of the stream track at zero angle separation; useful when initializing with an orbit fit; the progenitor’s position will be calculated

pot= Potential instance or list thereof

aA= actionAngle instance used to convert (x,v) to actions

useTM= (False) if set to an actionAngleTorus instance, use this to speed up calculations

sigMeanOffset= (6.) offset between the mean of the frequencies
and the progenitor, in units of the largest eigenvalue of the frequency covariance matrix (along the largest eigenvector), should be positive; to model the trailing part, set leading=False
sigangle= (sigv/122/[1km/s]=1.8sigv in natural coordinates)
estimate of the angle spread of the debris initially (can be Quantity)

deltaAngleTrack= (None) angle to estimate the stream track over (rad; or can be Quantity)

nTrackChunks= (floor(deltaAngleTrack/0.15)+1) number of chunks to divide the progenitor track in

nTrackIterations= Number of iterations to perform when establishing the track; each iteration starts from a previous approximation to the track in (x,v) and calculates a new track based on the deviation between the previous track and the desired track in action-angle coordinates; if not set, an appropriate value is determined based on the magnitude of the misalignment between stream and orbit, with larger numbers of iterations for larger misalignments

interpTrack= (might change), interpolate the stream track while
setting up the instance (can be done by hand by calling self._interpolate_stream_track() and self._interpolate_stream_track_aA())
useInterp= (might change), use interpolation by default when
calculating approximated frequencies and angles
nosetup= (False) if True, don’t setup the stream track and anything
else that is expensive

nospreadsetup= (False) if True, don’t setup the spread around the stream track (only for nosetup is False)

multi= (None) if set, use multi-processing

Coordinate transformation inputs:

vo= (220) circular velocity to normalize velocities with [used to be Vnorm; can be Quantity]

ro= (8) Galactocentric radius to normalize positions with [used to be Rnorm; can be Quantity]

R0= (8) Galactocentric radius of the Sun (kpc) [can be different from ro; can be Quantity]

Zsun= (0.0208) Sun’s height above the plane (kpc; can be Quantity)

vsun= ([-11.1,241.92,7.25]) Sun’s motion in cylindrical coordinates (vR positive away from center) (can be Quantity)

custom_transform= (None) matrix implementing the rotation from (ra,dec) to a custom set of sky coordinates

approxConstTrackFreq= (False) if True, approximate the stream assuming that the frequency is constant along the stream (only works with useTM, for which this leads to a significant speed-up)

useTMHessian= (False) if True, compute the basic Hessian dO/dJ_prog using TM; otherwise use aA

OUTPUT:

object

HISTORY:

2013-09-16 - Started - Bovy (IAS)

2013-11-25 - Started over - Bovy (IAS)