<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>Distances and Cartesian Representations — Astropy v0.2.4</title> <link rel="stylesheet" href="../_static/bootstrap-astropy.css" type="text/css" /> <link rel="stylesheet" href="../_static/pygments.css" type="text/css" /> <script type="text/javascript"> var DOCUMENTATION_OPTIONS = { URL_ROOT: '../', VERSION: '0.2.4', COLLAPSE_INDEX: false, FILE_SUFFIX: '.html', HAS_SOURCE: true }; </script> <script type="text/javascript" src="../_static/jquery.js"></script> <script type="text/javascript" src="../_static/underscore.js"></script> <script type="text/javascript" src="../_static/doctools.js"></script> <script type="text/javascript" src="../_static/sidebar.js"></script> <link rel="shortcut icon" href="../_static/astropy_logo.ico"/> <link rel="top" title="Astropy v0.2.4" href="../index.html" /> <link rel="up" title="Astronomical Coordinate Systems (astropy.coordinates)" href="index.html" /> <link rel="next" title="Transforming Between Systems" href="transforming.html" /> <link rel="prev" title="Separations" href="separations.html" /> </head> <body> <div class="topbar"> <a class="brand" title="Documentation Home" href="../index.html"></a> <ul> <li><a class="homelink" title="AstroPy Homepage" href="http://www.astropy.org"></a></li> <li><a title="General Index" href="../genindex.html">Index</a></li> <li><a title="Python Module Index" href="../py-modindex.html">Modules</a></li> <li> <form action="../search.html" method="get"> <input type="text" name="q" placeholder="Search" /> <input type="hidden" name="check_keywords" value="yes" /> <input type="hidden" name="area" value="default" /> </form> </li> </ul> </div> <div class="related"> <h3>Navigation</h3> <ul> <li class="right"> <a href="transforming.html" title="Transforming Between Systems"> next » </a> </li> <li class="right"> <a href="separations.html" title="Separations"> « previous </a> | </li> <li> <a href="../index.html">Astropy v0.2.4</a> » </li> <li><a href="index.html" accesskey="U">Astronomical Coordinate Systems (<tt class="docutils literal"><span class="pre">astropy.coordinates</span></tt>)</a> »</li> <li>Distances and Cartesian Representations</li> </ul> </div> <div class="document"> <div class="documentwrapper"> <div class="bodywrapper"> <div class="body"> <div class="section" id="distances-and-cartesian-representations"> <h1>Distances and Cartesian Representations<a class="headerlink" href="#distances-and-cartesian-representations" title="Permalink to this headline">ΒΆ</a></h1> <p>Coordinates can also have line-of-sight distances. If these are provided, a coordinate object becomes a full-fledged point in three-dimensional space. If not (i.e., the <tt class="xref py py-obj docutils literal"><span class="pre">distance</span></tt> attribute of the coordinate object is <tt class="xref py py-obj docutils literal"><span class="pre">None</span></tt>), the point is interpreted as lying on the (dimensionless) unit sphere.</p> <p>The <a class="reference internal" href="../_generated/astropy.coordinates.distances.Distance.html#astropy.coordinates.distances.Distance" title="astropy.coordinates.distances.Distance"><tt class="xref py py-obj docutils literal"><span class="pre">Distance</span></tt></a> class is provided to represent a line-of-sight distance for a coordinate. It must include a length unit to be valid.:</p> <div class="highlight-python"><div class="highlight"><pre><span class="gp">>>> </span><span class="kn">from</span> <span class="nn">astropy.coordinates</span> <span class="kn">import</span> <span class="n">Distance</span> <span class="gp">>>> </span><span class="n">d</span> <span class="o">=</span> <span class="n">Distance</span><span class="p">(</span><span class="mi">770</span><span class="p">)</span> <span class="go">UnitsError: A unit must be provided for distance.</span> <span class="gp">>>> </span><span class="n">d</span> <span class="o">=</span> <span class="n">Distance</span><span class="p">(</span><span class="mi">770</span><span class="p">,</span> <span class="n">u</span><span class="o">.</span><span class="n">kpc</span><span class="p">)</span> <span class="gp">>>> </span><span class="n">c</span> <span class="o">=</span> <span class="n">ICRSCoordinates</span><span class="p">(</span><span class="s">'00h42m44.3s +41d16m9s'</span><span class="p">,</span> <span class="n">distance</span><span class="o">=</span><span class="n">d</span><span class="p">)</span> <span class="gp">>>> </span><span class="n">c</span> <span class="go"><ICRSCoordinates RA=10.68458 deg, Dec=41.26917 deg, Distance=7.7e+02 kpc></span> </pre></div> </div> <p>If a distance is available, the coordinate can be converted into cartesian coordinates using the <tt class="xref py py-obj docutils literal"><span class="pre">x</span></tt>/<tt class="xref py py-obj docutils literal"><span class="pre">y</span></tt>/<tt class="xref py py-obj docutils literal"><span class="pre">z</span></tt> attributes:</p> <div class="highlight-python"><div class="highlight"><pre><span class="gp">>>> </span><span class="n">c</span><span class="o">.</span><span class="n">x</span> <span class="go">568.7128882165681</span> <span class="gp">>>> </span><span class="n">c</span><span class="o">.</span><span class="n">y</span> <span class="go">107.3009359688103</span> <span class="gp">>>> </span><span class="n">c</span><span class="o">.</span><span class="n">z</span> <span class="go">507.8899092486349</span> </pre></div> </div> <div class="admonition note"> <p class="first admonition-title">Note</p> <p class="last">The location of the origin is different for different coordinate systems, but for common celestial coordinate systems it is often the Earth center (or for precision work, the Earth/Moon barycenter).</p> </div> <p>The cartesian coordinates can also be accessed via the <tt class="xref py py-obj docutils literal"><span class="pre">CartesianCoordinates</span></tt> object, which has additional capabilities like arithmetic operations:</p> <div class="highlight-python"><div class="highlight"><pre><span class="gp">>>> </span><span class="n">cp</span> <span class="o">=</span> <span class="n">c</span><span class="o">.</span><span class="n">cartesian</span> <span class="gp">>>> </span><span class="n">cp</span> <span class="go"><CartesianPoints (568.712888217, 107.300935969, 507.889909249) kpc></span> <span class="gp">>>> </span><span class="n">cp</span><span class="o">.</span><span class="n">x</span> <span class="go">568.7128882165681</span> <span class="gp">>>> </span><span class="n">cp</span><span class="o">.</span><span class="n">y</span> <span class="go">107.3009359688103</span> <span class="gp">>>> </span><span class="n">cp</span><span class="o">.</span><span class="n">z</span> <span class="go">507.8899092486349</span> <span class="gp">>>> </span><span class="n">cp</span><span class="o">.</span><span class="n">unit</span> <span class="go">Unit("kpc")</span> <span class="gp">>>> </span><span class="n">cp</span> <span class="o">+</span> <span class="n">cp</span> <span class="go"><CartesianPoints (1137.42577643, 214.601871938, 1015.7798185) kpc></span> <span class="gp">>>> </span><span class="n">cp</span> <span class="o">-</span> <span class="n">cp</span> <span class="go"><CartesianPoints (0.0, 0.0, 0.0) kpc></span> </pre></div> </div> <p>This cartesian representation can also be used to create a new coordinate object, either directly or through a <tt class="xref py py-obj docutils literal"><span class="pre">CartesianPoints</span></tt> object:</p> <div class="highlight-python"><div class="highlight"><pre><span class="gp">>>> </span><span class="n">ICRSCoordinates</span><span class="p">(</span><span class="n">x</span><span class="o">=</span><span class="mf">568.7129</span><span class="p">,</span> <span class="n">y</span><span class="o">=</span><span class="mf">107.3009</span><span class="p">,</span> <span class="n">z</span><span class="o">=</span><span class="mf">507.8899</span><span class="p">,</span> <span class="n">unit</span><span class="o">=</span><span class="n">u</span><span class="o">.</span><span class="n">kpc</span><span class="p">)</span> <span class="go"><ICRSCoordinates RA=10.68458 deg, Dec=41.26917 deg, Distance=7.7e+02 kpc></span> <span class="gp">>>> </span><span class="n">cp</span> <span class="o">=</span> <span class="n">CartesianPoints</span><span class="p">(</span><span class="n">x</span><span class="o">=</span><span class="mf">568.7129</span><span class="p">,</span> <span class="n">y</span><span class="o">=</span><span class="mf">107.3009</span><span class="p">,</span> <span class="n">z</span><span class="o">=</span><span class="mf">507.8899</span><span class="p">,</span> <span class="n">unit</span><span class="o">=</span><span class="n">u</span><span class="o">.</span><span class="n">kpc</span><span class="p">)</span> <span class="gp">>>> </span><span class="n">ICRSCoordinates</span><span class="p">(</span><span class="n">cp</span><span class="p">)</span> <span class="go"><ICRSCoordinates RA=10.68458 deg, Dec=41.26917 deg, Distance=7.7e+02 kpc></span> </pre></div> </div> <p>Finally, two coordinates with distances can be used to derive a real-space distance (i.e., non-projected separation):</p> <div class="highlight-python"><div class="highlight"><pre><span class="gp">>>> </span><span class="n">c1</span> <span class="o">=</span> <span class="n">ICRSCoordinates</span><span class="p">(</span><span class="s">'5h23m34.5s -69d45m22s'</span><span class="p">,</span> <span class="n">distance</span><span class="o">=</span><span class="n">Distance</span><span class="p">(</span><span class="mi">49</span><span class="p">,</span> <span class="n">u</span><span class="o">.</span><span class="n">kpc</span><span class="p">))</span> <span class="gp">>>> </span><span class="n">c2</span> <span class="o">=</span> <span class="n">ICRSCoordinates</span><span class="p">(</span><span class="s">'0h52m44.8s -72d49m43s'</span><span class="p">,</span> <span class="n">distance</span><span class="o">=</span><span class="n">Distance</span><span class="p">(</span><span class="mi">61</span><span class="p">,</span> <span class="n">u</span><span class="o">.</span><span class="n">kpc</span><span class="p">))</span> <span class="gp">>>> </span><span class="n">sep3d</span> <span class="o">=</span> <span class="n">c1</span><span class="o">.</span><span class="n">separation_3d</span><span class="p">(</span><span class="n">c2</span><span class="p">)</span> <span class="gp">>>> </span><span class="n">sep3d</span> <span class="go"><Distance 23.05685 kpc></span> <span class="gp">>>> </span><span class="n">sep3d</span><span class="o">.</span><span class="n">kpc</span> <span class="go">23.05684814695706</span> <span class="gp">>>> </span><span class="n">sep3d</span><span class="o">.</span><span class="n">Mpc</span> <span class="go">0.02305684814695706</span> <span class="gp">>>> </span><span class="n">sep3d</span><span class="o">.</span><span class="n">au</span> <span class="go">4755816315.663559</span> </pre></div> </div> </div> </div> </div> </div> <div class="sphinxsidebar"> <div class="sphinxsidebarwrapper"><h3>Page Contents</h3> <ul> <li><a class="reference internal" href="#">Distances and Cartesian Representations</a></li> </ul> </div> </div> <div class="clearer"></div> </div> <footer class="footer"> <p class="pull-right"> <a href="http://github.com/astropy/astropy/tree/v0.2.4/docs/coordinates/distances.rst">Edit This Page on Github</a> <a href="../_sources/coordinates/distances.txt" rel="nofollow">Page Source</a> <a href="#">Back to Top</a></p> <p> © Copyright 2011-2013, The Astropy Developers.<br/> Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 1.1.3. Last built 22 Oct 2013. <br/> </p> </footer> </body> </html>