加关注

# 一粒浮尘

## 日志

GACHA精选

### Astronomical Coordinate Systems

2012-11-21 12:33:37|  分类： astro |  标签： |举报 |字号

下载LOFTER 我的照片书  |
[***********   Quoted from Mario Juric  *************]Coordinate Systems==================Author: Mario JuricThere are many coordinate systems used in galfast. Here are the definitionsand the reasoning behind them.General coordinate system definitions===================================== * Equatorial spherical (equ):  * J2000 equatorial coordinates: (ra, dec, D)  * Distance D is in parsecs * Galactic spherical (gal):  * (l, b, D)  * Distance D is in parsecs  * Relation to equatiorial coordinates via formulas/constants    from Reid et al. (2004ApJ...616..872R), that are also used    by LAMBDA/WMAP http://lambda.gsfc.nasa.gov/toolbox/tb_coordconv.cfm * Galactic cartesian (gal xyz):  * Textbook conversion of (l, b, D) -> (x, y, z)  * Sun is at the origin, x axis points to the GC, z axis    points towards the NGP.  * This is the system that gets written out to galfast output    files.  * This is the system internally used by galfast; unless    noted otherwise, any coordinates passed to functions will    be in this coordinate system. Most notable examples are:     * rho(x, y, z, Mr) and variants in density models.     * XYZ column in the output tables * Galactocentric cartesian (galcentric xyz):  * Obtained from Galactic cartesian, assuming a distance to the    Galactic center Rg, with the following formulae:      x_{gc} = Rg - x      y_{gc) = -y      z_{gc} = z    The center is at Rg, with the x axis pointing towards the    Earth, z axis pointing towards the NGP, and the y axis    being such as to preserve the right-handedness of the    coordinate system.    This is the system that Juric et al (2008), Ivezic et al    (2008) and Bond et al (2008) typically use, with    Rg=8000pc.    Note that z=0 plane in this coordinate system does NOT    coincide with the Galactic disk plane.  * This system is different from the others above as it is defined by    a user-settable parameter: Rg. The user must ensure this    parameter is properly set for each module that uses    galactocentric coordinates. * Galactic plane cartesian coordinates (galplane xyz):  * A right-handed system centered at the Galactic center, in    which the Sun is at z = z0, y = 0, and at a distance d=Rg.    Its principal quality is that the nominal Galactic plane    is at z=0 forall y.    This system is obtained by rotating the Galactocentric    cartesian system axes by an angle \alpha = asin(z0/Rg)    counter-clockwise around the y_{gc} axis.    Note that, in this system, x_{Sun} != Rg, as the system is    defined such that the _distance_ to the Galactic center is    Rg (i.e., x^2 + z^2 = Rg). x_{Sun} = Rg * cos(alpha). For    realistic Rg and z0, alpha is ~0.17deg so the difference    is hardly noticable.  * This system is defined by two user-settable parameters: Rg    and z0.  The user must ensure these parameters are    properly set for each module that uses the Galactic plane    coordinates.Specifying coordinate systems=============================================Density models, as well as some postprocessing modules, need to know howposition and orient their data with respect to the Galactic coordinatesystem that galfast uses internally. Examples include the disk density modelthat is offset from the Sun by ~8kpc and slightly tilted so that the diskplane passes at ~25pc below the Sun, or (in case of modules) the Fe/H orBond2010 kinematics modules that need to align themselves with the diskwhose metallicity/kinematics they're describing.For these purposes, it is useful to distinguish between the "internal"galfast coordinate system (always the Galactic coordinate system), and the"natural" coordinate system that is apropriate to each model/module.  Forexample, the natural coordinate system of the disk models is the one havingthe disk plane coincide with its xy plane.  It is usually much easier towork (== write equations) in the natural system, than in galfast's default(Galactic).galfast provides a way to specify the transformation between the natural andGalactic coordinate systems: an arbitrary translation, followed by arotation. This is done via two keywords: center =  [type [x y z]] orientation =  [kind> [params]]The center keyword specifies a point in 3D space that is the center of thenatural coordinate system.  For convenience, this point can be specified inany of the coordinate systems that galfast knows about (as described above). Here are a few examples: center = gal sph 33 44 1000 # center at l=33, b=44, D=1kpc center = gal xyz 3 2 1  # center at x=3,y=2,z=1 cart. coords     #   in Galactic coordinate system center = equ sph 11 22 2000 # center at ra=11, dec=22, D=2kpc center = galcentric  # center at the Galactic center     #   (defined by Rg; see below) center = galcentric xyz 5 5 5 # center is offset by (5,5,5)pc     #   from the Galactic center center = galplane xyz 3 4 5 # center offset by (3,4,5)pc in the     #   Galactic plane coordinate systemThe final three examples involve coordinate systems that requireuser-defined variables to be present for them to be fully defined: Rg forthe galcentric and Rg and z0 for the galplane system.  These should be givenin the configuration file, or specified in a global definitions.conf file(recommended).The orientation keyword is similar, in that it specifies the rotation of thenatural coordinate system with respect to the chosen coordinate system.  For example: orientation = equ  # natural coord. system is aligned     # with the J2000 equatorial orientation = equ euler 10 20 1 # natural sys is rotated by Euler     # angles phi=10,theta=20,psi=1 from     # J2000 equatorial system orientation = galplane  # aligned with the Galactic plane     # system orientation = galplane axisangle 1 1 1 120     # starting by being alinged with the     # Galactic plane system, the natural     # sys is rotated around an axis     # parallel to vector (1,1,1) by 120     # degreesThe modules that (so far) know to read/apply the center/orientation keywordsare: models: expDisk, powerLawEllipsoid, brokenPowerLaw modules: Bond2010, FeHThe defaults for all of these are center=galplane and orientation=galplane.This is what you typically want them to be.For the developers==================The 'center'+'orientation' keywords specify a translation (T) and a rotation(M) that is applied to transform from Galactic to natural system (and back). galfast internally computes these two.  Typical way to load the keywords andcompute the vectors/matrices is:In the C++ setup code: std::string ctr, orient; cfg.get(ctr,    "center",      "galplane"); cfg.get(orient, "orientation", "galplane"); load_transform(&T.x, M, ctr, orient, cfg);and in the kernels (or model's rho(x,y,z)) : // in module kernels... float3 v = { XYZ(row, 0), XYZ(row, 1), XYZ(row, 2) // in model::rho(x,y,z) float3 v = {x, y, z}; v = transform(v, T, M);The transform() function will convert the Galactic coordinates v, into thenatural coordinates with which your model/module works internally.
评论这张

#### 评论

<#--最新日志，群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇，下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->