Skip to content

Instantly share code, notes, and snippets.

@bmorris3
Last active June 8, 2018 21:03
Show Gist options
  • Save bmorris3/bce6da93317224c3e757 to your computer and use it in GitHub Desktop.
Save bmorris3/bce6da93317224c3e757 to your computer and use it in GitHub Desktop.
Intro to astropy for UW's 2015 ASTR599 class
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"![astropy logo](http://astropy.readthedocs.org/en/stable/_images/astropy_banner.svg)\n",
"\n",
"# Introduction to [`astropy`](http://astropy.readthedocs.org/en/stable/)\n",
"\n",
"with Brett Morris\n",
"\n",
"**Dependencies**: astropy, astroquery, astroplan\n",
"\n",
"### Outline\n",
"1. `astropy.units`\n",
"2. `astropy.time`\n",
"3. `astropy.coordinates`\n",
"4. `astropy.cosmology`\n",
"5. `astropy`-affiliated packages: `astroquery` & `astroplan`\n",
"6. Exercises\n",
"\n",
"*** \n",
" \n",
"## 1) [`astropy.units`](http://astropy.readthedocs.org/en/latest/units/): Problem sets are about to get easier\n",
"\n",
"One of the modules most central to `astropy` is the `units` module, which will save you lots of time. "
]
},
{
"cell_type": "code",
"execution_count": 153,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/latex": [
"$1.778 \\; \\mathrm{m}$"
],
"text/plain": [
"<Quantity 1.778 m>"
]
},
"execution_count": 153,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"import astropy.units as u\n",
"import numpy as np\n",
"\n",
"height = u.Quantity(1.778, unit=u.meter)\n",
"# or equivalently:\n",
"height = 1.778*u.m\n",
"\n",
"height"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"If you're self-abusive, imperial units are supported:"
]
},
{
"cell_type": "code",
"execution_count": 154,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/latex": [
"$5.8333333 \\; \\mathrm{ft}$"
],
"text/plain": [
"<Quantity 5.833333333333333 ft>"
]
},
"execution_count": 154,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"from astropy.units.imperial import foot\n",
"height.to(foot)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"What is the light-travel time across one Brett? ($\\Delta t = \\Delta x / c$)"
]
},
{
"cell_type": "code",
"execution_count": 170,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/latex": [
"$5.9307696 \\times 10^{-9} \\; \\mathrm{s}$"
],
"text/plain": [
"<Quantity 5.930769612623144e-09 s>"
]
},
"execution_count": 170,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"from astropy.constants import c\n",
"\n",
"dt = height/c\n",
"dt"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Metric prefixes accepted (try `M` for mega, `p` for pico, etc.)"
]
},
{
"cell_type": "code",
"execution_count": 172,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/latex": [
"$5.9307696 \\; \\mathrm{ns}$"
],
"text/plain": [
"<Quantity 5.930769612623143 ns>"
]
},
"execution_count": 172,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"dt.to(u.ns)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"***\n",
"\n",
"## 2) [`astropy.time`](http://astropy.readthedocs.org/en/latest/time/index.html): Time objects for humans\n",
"\n",
"There are many distinct and confusing time systems used in astronomy, and the `astropy.time` module provides a convenient means of translating between them – never code your own JD-to-ISO time converter or try to remember whether or not the difference between JD and MJD has a 0.5 in it again!"
]
},
{
"cell_type": "code",
"execution_count": 28,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"<Time object: scale='utc' format='iso' value=2005-01-01 12:34:56.000>"
]
},
"execution_count": 28,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"from __future__ import print_function\n",
"\n",
"# The astropy.time.Time object contains a time in a specified format\n",
"from astropy.time import Time\n",
"\n",
"# If the input format is not specified, it will guess. Here's an ISO formatted string:\n",
"Time('2005-01-01 12:34:56')"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Here's a Julian Date:"
]
},
{
"cell_type": "code",
"execution_count": 29,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"<Time object: scale='utc' format='jd' value=2453372.02426>"
]
},
"execution_count": 29,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"t = Time(2453372.0242592595, format='jd')\n",
"t"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Convert between time formats by calling `t.iso`, `t.mjd`, etc."
]
},
{
"cell_type": "code",
"execution_count": 30,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"'2005-01-01 12:34:56.000'"
]
},
"execution_count": 30,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"t.iso"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"By default, the scale (or time standard) is set to **UTC**, which is defined to keep an integer number of seconds per day. There are other time standards like **UT1** which are defined by the rotation of the Earth (see [my blog post on time standards](http://bmmorris.blogspot.com/2015/06/ut1-utc-and-astropy.html) for more background). Converting between the two can be messy, but not with astropy:"
]
},
{
"cell_type": "code",
"execution_count": 33,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Available time scales: tai, tcb, tcg, tdb, tt, ut1, utc\n"
]
},
{
"data": {
"text/plain": [
"u'utc'"
]
},
"execution_count": 33,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"print('Available time scales: {0}'.format(', '.join(Time.SCALES)))\n",
"t.scale"
]
},
{
"cell_type": "code",
"execution_count": 24,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"<Time object: scale='ut1' format='jd' value=2453372.02425>"
]
},
"execution_count": 24,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"t.ut1"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"If converting between UTC and UT1 you raises an `IndexError` like this, \n",
"```\n",
"IndexError: (some) times are outside of range covered by IERS table.\n",
"```\n",
"it's because you need more up-to-date Earth rotation data since the Earth's rate of rotation is constantly changing. See the `astropy.time` docs on [Transformation offsets](http://astropy.readthedocs.org/en/stable/time/index.html#transformation-offsets) to update your Earth rotation data."
]
},
{
"cell_type": "code",
"execution_count": 26,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"'2005-01-01 12:34:55.496'"
]
},
"execution_count": 26,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"t.ut1.iso"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Lastly, arrays of times can be generated from numpy arrays:"
]
},
{
"cell_type": "code",
"execution_count": 285,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"<Time object: scale='utc' format='datetime' value=[datetime.datetime(2015, 9, 30, 18, 56, 0, 418687)\n",
" datetime.datetime(2015, 11, 10, 8, 56, 0, 418687)\n",
" datetime.datetime(2015, 12, 20, 22, 56, 0, 418687)\n",
" datetime.datetime(2016, 1, 30, 12, 56, 0, 418687)\n",
" datetime.datetime(2016, 3, 11, 2, 56, 0, 418687)\n",
" datetime.datetime(2016, 4, 20, 16, 56, 0, 418687)\n",
" datetime.datetime(2016, 5, 31, 6, 56, 0, 418687)\n",
" datetime.datetime(2016, 7, 10, 20, 56, 0, 418687)\n",
" datetime.datetime(2016, 8, 20, 10, 56, 0, 418687)\n",
" datetime.datetime(2016, 9, 30, 0, 56, 0, 418687)]>"
]
},
"execution_count": 285,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"Time.now() + np.linspace(0, 1, 10)*u.year"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"***\n",
"\n",
"\n",
"## 3) [`astropy.coordinates`](http://astropy.readthedocs.org/en/latest/coordinates/index.html)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"![XKCD comic](http://imgs.xkcd.com/comics/standards.png)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Convert the position of your target from one coordinate system to another without opening a reference book!\n",
"\n",
"Let's define the galactic center in the natural coordinate system:"
]
},
{
"cell_type": "code",
"execution_count": 39,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"<SkyCoord (Galactic): (l, b) in deg\n",
" (0.0, 0.0)>\n"
]
}
],
"source": [
"from astropy.coordinates import SkyCoord\n",
"\n",
"gal_center = SkyCoord(l=0*u.deg, b=0*u.deg, frame='galactic')\n",
"print(gal_center)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Now let's say you have to tell an observer where that is in ICRS coordinates: what is that position in RA/Dec?"
]
},
{
"cell_type": "code",
"execution_count": 41,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"<SkyCoord (ICRS): (ra, dec) in deg\n",
" (266.40498829, -28.93617776)>"
]
},
"execution_count": 41,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"gal_center.icrs"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"You can resolve targets by name with the `from_name` class method"
]
},
{
"cell_type": "code",
"execution_count": 43,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"<SkyCoord (ICRS): (ra, dec) in deg\n",
" (266.41681663, -29.00782497)>\n"
]
}
],
"source": [
"sgr_a = SkyCoord.from_name('Sgr A*')\n",
"print(sgr_a)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Let's represent these coordinates in various formats with `.degree`, `.hourangle`:"
]
},
{
"cell_type": "code",
"execution_count": 52,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"266.416816625"
]
},
"execution_count": 52,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"sgr_a.ra.degree"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"and experiment with the string outputs you'd use in a proposal, like `dms`, `hmsdms`, `decimal`:"
]
},
{
"cell_type": "code",
"execution_count": 61,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"u'17:45:40.036 -29:00:28.1699'"
]
},
"execution_count": 61,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"sgr_a.to_string(style='hmsdms', sep=':')"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"With a specified location on Earth, you can compute alt/az coordinates for any `SkyCoord`"
]
},
{
"cell_type": "code",
"execution_count": 76,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"u'11h21m34.3211s +12d46m20.6334s'"
]
},
"execution_count": 76,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"from astropy.coordinates import EarthLocation, AltAz\n",
"\n",
"# Define Earth location:\n",
"longitude, latitude, elevation = (-122.3331*u.deg, 47.6097*u.deg, 0*u.m)\n",
"seattle = EarthLocation.from_geodetic(longitude, latitude, elevation)\n",
"\n",
"# Define alt/az frame:\n",
"alt_az_frame = AltAz(obstime=Time('2005-06-07 08:09:10'), location=seattle)\n",
"\n",
"# Transform the coordinate to the new reference frame, and print\n",
"sgr_a_altaz = sgr_a.transform_to(alt_az_frame)\n",
"sgr_a_altaz.to_string(style='hmsdms')"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"***\n",
"\n",
"\n",
"## 4) [`astropy.cosmology`](http://astropy.readthedocs.org/en/latest/cosmology/): No more JavaScript cosmology calculators for you!\n",
"\n",
"First, choose a cosmology (e.g.: `Planck13`, `WMAP9`) and get $H_0$:"
]
},
{
"cell_type": "code",
"execution_count": 119,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/latex": [
"$67.77 \\; \\mathrm{\\frac{km}{Mpc\\,s}}$"
],
"text/plain": [
"<Quantity 67.77 km / (Mpc s)>"
]
},
"execution_count": 119,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"from astropy.cosmology import Planck13 as cosmo\n",
"\n",
"cosmo.H(z=0)"
]
},
{
"cell_type": "code",
"execution_count": 120,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/latex": [
"$1697.5794 \\; \\mathrm{Mpc}$"
],
"text/plain": [
"<Quantity 1697.5793543185043 Mpc>"
]
},
"execution_count": 120,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"cosmo.angular_diameter_distance(z=1)"
]
},
{
"cell_type": "code",
"execution_count": 121,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/latex": [
"$6790.3174 \\; \\mathrm{Mpc}$"
],
"text/plain": [
"<Quantity 6790.317417274017 Mpc>"
]
},
"execution_count": 121,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"cosmo.luminosity_distance(z=1)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"In cosmology class you'll still have to learn to solve these from scratch, but you can double check yourself like so: "
]
},
{
"cell_type": "code",
"execution_count": 130,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x10a65ea50>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"%matplotlib inline\n",
"import matplotlib.pyplot as plt\n",
"\n",
"z = np.linspace(0, 10, 50)\n",
"\n",
"# Compute some parameters\n",
"t_lookback = cosmo.lookback_time(z)\n",
"T_cmb = cosmo.Tcmb(z)\n",
"D_A = cosmo.angular_diameter_distance(z)\n",
"D_L = cosmo.luminosity_distance(z)\n",
"\n",
"fig, ax = plt.subplots(2, 2, figsize=(10, 10))\n",
"\n",
"ax[0, 0].plot(z, t_lookback)\n",
"ax[0, 0].set(title='Look-back Time', xlabel='$z$', \n",
" ylabel=r'$t_{{lookback}}(z)$ [{0}]'.format(t_lookback.unit))\n",
"\n",
"ax[0, 1].plot(z, T_cmb)\n",
"ax[0, 1].set(title='$T_{CMB}$', xlabel='$z$', \n",
" ylabel='$T_{{CMB}}(z)$ [{0}]'.format(T_cmb.unit))\n",
"\n",
"ax[1, 0].plot(z, D_A)\n",
"ax[1, 0].set(title='Angular Diameter Distance', xlabel='$z$', \n",
" ylabel=r'$D_A(z)$ [{0}]'.format(D_A.unit))\n",
"\n",
"ax[1, 1].plot(z, D_L)\n",
"ax[1, 1].set(title='Luminosity Distance', xlabel='$z$', \n",
" ylabel=r'$D_L(z)$ [{0}]'.format(D_L.unit))\n",
"\n",
"fig.subplots_adjust(wspace=0.3)\n",
"fig.suptitle('Cosmology: {0}'.format(cosmo.name), fontsize=18);"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"***\n",
"\n",
"\n",
"## 5a) Affiliated Package: [`astroquery`](http://astroquery.readthedocs.org)\n",
"\n",
"Since `astropy` is a collection of fundamental tools that are easy to use, lots of packages have been built on top of `astropy`, but not necessarily merged into `astropy` core. One of those is `astroquery`, which allows you to query astronomical databases with ease.\n",
"\n",
"Let's query for the SIMBAD entry for a planet hosting star, HD 189733:"
]
},
{
"cell_type": "code",
"execution_count": 266,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/html": [
"&lt;Table masked=True length=1&gt;\n",
"<table id=\"table4468303952\">\n",
"<thead><tr><th>MAIN_ID</th><th>RA</th><th>DEC</th><th>RA_PREC</th><th>DEC_PREC</th><th>COO_ERR_MAJA</th><th>COO_ERR_MINA</th><th>COO_ERR_ANGLE</th><th>COO_QUAL</th><th>COO_WAVELENGTH</th><th>COO_BIBCODE</th></tr></thead>\n",
"<thead><tr><th></th><th>&quot;h:m:s&quot;</th><th>&quot;d:m:s&quot;</th><th></th><th></th><th>mas</th><th>mas</th><th>deg</th><th></th><th></th><th></th></tr></thead>\n",
"<thead><tr><th>object</th><th>unicode416</th><th>unicode416</th><th>int16</th><th>int16</th><th>float32</th><th>float32</th><th>int16</th><th>unicode32</th><th>unicode32</th><th>object</th></tr></thead>\n",
"<tr><td>HD 189773</td><td>20 05 10.8954</td><td>-61 30 25.967</td><td>8</td><td>8</td><td>62.600</td><td>55.680</td><td>90</td><td>B</td><td></td><td>1998A&amp;A...335L..65H</td></tr>\n",
"</table>"
],
"text/plain": [
"<Table masked=True length=1>\n",
" MAIN_ID RA DEC ... COO_WAVELENGTH COO_BIBCODE \n",
" \"h:m:s\" \"d:m:s\" ... \n",
" object unicode416 unicode416 ... unicode32 object \n",
"--------- ------------- ------------- ... -------------- -------------------\n",
"HD 189773 20 05 10.8954 -61 30 25.967 ... 1998A&A...335L..65H"
]
},
"execution_count": 266,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"from astroquery.simbad import Simbad\n",
"\n",
"Simbad.query_object('HD 189773')"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Let's query Vizier for the famous list of standard stars from [Landolt (1992)](http://adsabs.harvard.edu/abs/1992AJ....104..340L). The [`astropy.table`](http://astropy.readthedocs.org/en/latest/table/) that is returned to you will have the same information as [this Vizier query page](http://vizier.u-strasbg.fr/viz-bin/VizieR-3?-source=II/183A/table2)."
]
},
{
"cell_type": "code",
"execution_count": 272,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/html": [
"&lt;Table masked=True length=50&gt;\n",
"<table id=\"table4499911312\">\n",
"<thead><tr><th>_RAJ2000</th><th>_DEJ2000</th><th>Star</th><th>RAJ2000</th><th>DEJ2000</th><th>o_Vmag</th><th>Vmag</th><th>e_Vmag</th><th>B-V</th><th>e_B-V</th><th>U-B</th><th>e_U-B</th><th>V-R</th><th>e_V-R</th><th>R-I</th><th>e_R-I</th><th>V-I</th><th>e_V-I</th><th>Nd</th><th>SimbadName</th></tr></thead>\n",
"<thead><tr><th>deg</th><th>deg</th><th></th><th>&quot;h:m:s&quot;</th><th>&quot;d:m:s&quot;</th><th></th><th>mag</th><th>mag</th><th>mag</th><th>mag</th><th>mag</th><th>mag</th><th>mag</th><th>mag</th><th>mag</th><th>mag</th><th>mag</th><th>mag</th><th></th><th></th></tr></thead>\n",
"<thead><tr><th>float64</th><th>float64</th><th>string88</th><th>string64</th><th>string72</th><th>int16</th><th>float32</th><th>float32</th><th>float32</th><th>float32</th><th>float32</th><th>float32</th><th>float32</th><th>float32</th><th>float32</th><th>float32</th><th>float32</th><th>float32</th><th>int16</th><th>string144</th></tr></thead>\n",
"<tr><td>7.537</td><td>-46.523</td><td>TPHE A</td><td>00 30 09</td><td>-46 31 22</td><td>29</td><td>14.651</td><td>0.0028</td><td>0.793</td><td>0.0046</td><td>0.380</td><td>0.0071</td><td>0.435</td><td>0.0019</td><td>0.405</td><td>0.0035</td><td>0.841</td><td>0.0032</td><td>12</td><td>[L92b] TPHE A</td></tr>\n",
"<tr><td>7.567</td><td>-46.465</td><td>TPHE B</td><td>00 30 16</td><td>-46 27 55</td><td>29</td><td>12.334</td><td>0.0115</td><td>0.405</td><td>0.0026</td><td>0.156</td><td>0.0039</td><td>0.262</td><td>0.0020</td><td>0.271</td><td>0.0019</td><td>0.535</td><td>0.0035</td><td>17</td><td>[L92b] TPHE B</td></tr>\n",
"<tr><td>7.571</td><td>-46.543</td><td>TPHE C</td><td>00 30 17</td><td>-46 32 34</td><td>39</td><td>14.376</td><td>0.0022</td><td>-0.298</td><td>0.0024</td><td>-1.217</td><td>0.0043</td><td>-0.148</td><td>0.0038</td><td>-0.211</td><td>0.0133</td><td>-0.360</td><td>0.0149</td><td>23</td><td>[L92b] TPHE C</td></tr>\n",
"<tr><td>7.575</td><td>-46.520</td><td>TPHE D</td><td>00 30 18</td><td>-46 31 11</td><td>37</td><td>13.118</td><td>0.0033</td><td>1.551</td><td>0.0030</td><td>1.871</td><td>0.0118</td><td>0.849</td><td>0.0015</td><td>0.810</td><td>0.0023</td><td>1.663</td><td>0.0030</td><td>23</td><td>[L92b] TPHE D</td></tr>\n",
"<tr><td>7.579</td><td>-46.410</td><td>TPHE E</td><td>00 30 19</td><td>-46 24 36</td><td>34</td><td>11.630</td><td>0.0017</td><td>0.443</td><td>0.0012</td><td>-0.103</td><td>0.0024</td><td>0.276</td><td>0.0007</td><td>0.283</td><td>0.0015</td><td>0.564</td><td>0.0019</td><td>8</td><td>[L92b] TPHE E</td></tr>\n",
"<tr><td>7.708</td><td>-46.559</td><td>TPHE F</td><td>00 30 50</td><td>-46 33 33</td><td>5</td><td>12.474</td><td>0.0004</td><td>0.855</td><td>0.0058</td><td>0.532</td><td>0.0161</td><td>0.492</td><td>0.0004</td><td>0.435</td><td>0.0040</td><td>0.926</td><td>0.0036</td><td>3</td><td>[L92b] TPHE F</td></tr>\n",
"<tr><td>7.771</td><td>-46.379</td><td>TPHE G</td><td>00 31 05</td><td>-46 22 43</td><td>5</td><td>10.442</td><td>0.0004</td><td>1.546</td><td>0.0013</td><td>1.915</td><td>0.0036</td><td>0.934</td><td>0.0004</td><td>1.085</td><td>0.0009</td><td>2.025</td><td>0.0009</td><td>3</td><td>[L92b] TPHE G</td></tr>\n",
"<tr><td>7.958</td><td>2.641</td><td>PG0029+024</td><td>00 31 50</td><td>+02 38 26</td><td>5</td><td>15.268</td><td>0.0094</td><td>0.362</td><td>0.0174</td><td>-0.184</td><td>0.0112</td><td>0.251</td><td>0.0161</td><td>0.337</td><td>0.0125</td><td>0.593</td><td>0.0067</td><td>2</td><td>PG0029+024</td></tr>\n",
"<tr><td>10.521</td><td>5.162</td><td>PG0039+049</td><td>00 42 05</td><td>+05 09 44</td><td>4</td><td>12.877</td><td>0.0020</td><td>-0.019</td><td>0.0030</td><td>-0.871</td><td>0.0055</td><td>0.067</td><td>0.0035</td><td>0.097</td><td>0.0055</td><td>0.164</td><td>0.0045</td><td>3</td><td>PG0039+049</td></tr>\n",
"<tr><td>...</td><td>...</td><td>...</td><td>...</td><td>...</td><td>...</td><td>...</td><td>...</td><td>...</td><td>...</td><td>...</td><td>...</td><td>...</td><td>...</td><td>...</td><td>...</td><td>...</td><td>...</td><td>...</td><td>...</td></tr>\n",
"<tr><td>14.029</td><td>1.005</td><td>92 427</td><td>00 56 07</td><td>+01 00 18</td><td>2</td><td>14.953</td><td>0.0021</td><td>0.809</td><td>0.0085</td><td>0.352</td><td>0.0233</td><td>0.462</td><td>0.0014</td><td>2.922</td><td>0.0113</td><td>3.275</td><td>0.0092</td><td>1</td><td>SA 92 427</td></tr>\n",
"<tr><td>14.033</td><td>1.073</td><td>92 502</td><td>00 56 08</td><td>+01 04 24</td><td>1</td><td>11.812</td><td>0.0000</td><td>0.486</td><td>0.0000</td><td>-0.095</td><td>0.0000</td><td>0.284</td><td>0.0000</td><td>0.292</td><td>0.0000</td><td>0.576</td><td>0.0000</td><td>1</td><td>SA 92 502</td></tr>\n",
"<tr><td>14.067</td><td>0.888</td><td>92 430</td><td>00 56 16</td><td>+00 53 16</td><td>35</td><td>14.440</td><td>0.0041</td><td>0.567</td><td>0.0052</td><td>-0.040</td><td>0.0081</td><td>0.338</td><td>0.0029</td><td>0.338</td><td>0.0049</td><td>0.676</td><td>0.0051</td><td>18</td><td>SA 92 430</td></tr>\n",
"<tr><td>14.113</td><td>0.698</td><td>92 276</td><td>00 56 27</td><td>+00 41 53</td><td>21</td><td>12.036</td><td>0.0039</td><td>0.629</td><td>0.0022</td><td>0.067</td><td>0.0039</td><td>0.368</td><td>0.0031</td><td>0.357</td><td>0.0031</td><td>0.726</td><td>0.0052</td><td>11</td><td>SA 92 276</td></tr>\n",
"<tr><td>14.196</td><td>0.641</td><td>92 282</td><td>00 56 47</td><td>+00 38 29</td><td>27</td><td>12.969</td><td>0.0031</td><td>0.318</td><td>0.0023</td><td>-0.038</td><td>0.0044</td><td>0.201</td><td>0.0017</td><td>0.221</td><td>0.0023</td><td>0.422</td><td>0.0033</td><td>15</td><td>SA 92 282</td></tr>\n",
"<tr><td>14.213</td><td>1.160</td><td>92 508</td><td>00 56 51</td><td>+01 09 35</td><td>3</td><td>11.679</td><td>0.0035</td><td>0.529</td><td>0.0046</td><td>-0.047</td><td>0.0029</td><td>0.318</td><td>0.0058</td><td>0.320</td><td>0.0029</td><td>0.639</td><td>0.0029</td><td>2</td><td>SA 92 508</td></tr>\n",
"<tr><td>14.213</td><td>1.099</td><td>92 507</td><td>00 56 51</td><td>+01 05 58</td><td>3</td><td>11.332</td><td>0.0006</td><td>0.932</td><td>0.0046</td><td>0.688</td><td>0.0006</td><td>0.507</td><td>0.0012</td><td>0.461</td><td>0.0006</td><td>0.969</td><td>0.0012</td><td>2</td><td>SA 92 507</td></tr>\n",
"<tr><td>14.221</td><td>0.734</td><td>92 364</td><td>00 56 53</td><td>+00 44 02</td><td>4</td><td>11.673</td><td>0.0015</td><td>0.607</td><td>0.0015</td><td>-0.037</td><td>0.0085</td><td>0.356</td><td>0.0045</td><td>0.357</td><td>0.0010</td><td>0.714</td><td>0.0055</td><td>2</td><td>SA 92 364</td></tr>\n",
"<tr><td>14.225</td><td>1.012</td><td>92 433</td><td>00 56 54</td><td>+01 00 43</td><td>3</td><td>11.667</td><td>0.0006</td><td>0.655</td><td>0.0035</td><td>0.110</td><td>0.0115</td><td>0.367</td><td>0.0029</td><td>0.348</td><td>0.0017</td><td>0.716</td><td>0.0023</td><td>2</td><td>SA 92 433</td></tr>\n",
"<tr><td>14.321</td><td>0.613</td><td>92 288</td><td>00 57 17</td><td>+00 36 46</td><td>48</td><td>11.630</td><td>0.0014</td><td>0.855</td><td>0.0014</td><td>0.472</td><td>0.0022</td><td>0.489</td><td>0.0012</td><td>0.441</td><td>0.0009</td><td>0.931</td><td>0.0013</td><td>33</td><td>SA 92 288</td></tr>\n",
"</table>"
],
"text/plain": [
"<Table masked=True length=50>\n",
"_RAJ2000 _DEJ2000 Star RAJ2000 ... V-I e_V-I Nd SimbadName \n",
" deg deg \"h:m:s\" ... mag mag \n",
"float64 float64 string88 string64 ... float32 float32 int16 string144 \n",
"-------- -------- ---------- -------- ... ------- ------- ----- -------------\n",
" 7.537 -46.523 TPHE A 00 30 09 ... 0.841 0.0032 12 [L92b] TPHE A\n",
" 7.567 -46.465 TPHE B 00 30 16 ... 0.535 0.0035 17 [L92b] TPHE B\n",
" 7.571 -46.543 TPHE C 00 30 17 ... -0.360 0.0149 23 [L92b] TPHE C\n",
" 7.575 -46.520 TPHE D 00 30 18 ... 1.663 0.0030 23 [L92b] TPHE D\n",
" 7.579 -46.410 TPHE E 00 30 19 ... 0.564 0.0019 8 [L92b] TPHE E\n",
" 7.708 -46.559 TPHE F 00 30 50 ... 0.926 0.0036 3 [L92b] TPHE F\n",
" 7.771 -46.379 TPHE G 00 31 05 ... 2.025 0.0009 3 [L92b] TPHE G\n",
" 7.958 2.641 PG0029+024 00 31 50 ... 0.593 0.0067 2 PG0029+024\n",
" 10.521 5.162 PG0039+049 00 42 05 ... 0.164 0.0045 3 PG0039+049\n",
" ... ... ... ... ... ... ... ... ...\n",
" 14.029 1.005 92 427 00 56 07 ... 3.275 0.0092 1 SA 92 427\n",
" 14.033 1.073 92 502 00 56 08 ... 0.576 0.0000 1 SA 92 502\n",
" 14.067 0.888 92 430 00 56 16 ... 0.676 0.0051 18 SA 92 430\n",
" 14.113 0.698 92 276 00 56 27 ... 0.726 0.0052 11 SA 92 276\n",
" 14.196 0.641 92 282 00 56 47 ... 0.422 0.0033 15 SA 92 282\n",
" 14.213 1.160 92 508 00 56 51 ... 0.639 0.0029 2 SA 92 508\n",
" 14.213 1.099 92 507 00 56 51 ... 0.969 0.0012 2 SA 92 507\n",
" 14.221 0.734 92 364 00 56 53 ... 0.714 0.0055 2 SA 92 364\n",
" 14.225 1.012 92 433 00 56 54 ... 0.716 0.0023 2 SA 92 433\n",
" 14.321 0.613 92 288 00 57 17 ... 0.931 0.0013 33 SA 92 288"
]
},
"execution_count": 272,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"from astroquery.vizier import Vizier\n",
"\n",
"landolt_table = Vizier.get_catalogs('Landolt 1992')[0]\n",
"landolt_table"
]
},
{
"cell_type": "markdown",
"metadata": {
"collapsed": true
},
"source": [
"## 5b) Affiliated Package: [`astroplan`](https://astroplan.readthedocs.org/en/latest/)\n",
"\n",
"`astroplan` is an `astropy`-affiliated package that helps you calculate when objects are observable. Here's a quick example for determining which targets are visible right now from Apache Point Observatory:"
]
},
{
"cell_type": "code",
"execution_count": 293,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"[True, False, True, False]"
]
},
"execution_count": 293,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"from astroplan import Observer, FixedTarget\n",
"\n",
"# Targets are stored as `astroplan.FixedTarget` objects\n",
"target_names = ['Polaris', 'Sirius', 'Vega', 'Rigel']\n",
"targets = [FixedTarget.from_name(target) for target in target_names]\n",
"\n",
"# Observatories are `astroplan.Observer` objects\n",
"observatory = Observer.at_site(\"Apache Point\")\n",
"\n",
"# Which targets are visible right now?\n",
"observatory.target_is_up(Time.now(), targets)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Now let's see which of those targets are visible over a time range of the next ten days, given the following constraints: \n",
"\n",
"* Observations must occur between civil twilights\n",
"* The altitude of the target must be $20^\\circ < $alt$ < 85^\\circ$"
]
},
{
"cell_type": "code",
"execution_count": 294,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/html": [
"&lt;Table masked=False length=4&gt;\n",
"<table id=\"table4495298960\">\n",
"<thead><tr><th>target name</th><th>ever observable</th><th>always observable</th><th>fraction of time observable</th></tr></thead>\n",
"<thead><tr><th>string56</th><th>bool</th><th>bool</th><th>float64</th></tr></thead>\n",
"<tr><td>Polaris</td><td>True</td><td>False</td><td>0.475</td></tr>\n",
"<tr><td>Sirius</td><td>True</td><td>False</td><td>0.13125</td></tr>\n",
"<tr><td>Vega</td><td>True</td><td>False</td><td>0.229166666667</td></tr>\n",
"<tr><td>Rigel</td><td>True</td><td>False</td><td>0.216666666667</td></tr>\n",
"</table>"
],
"text/plain": [
"<Table masked=False length=4>\n",
"target name ever observable always observable fraction of time observable\n",
" string56 bool bool float64 \n",
"----------- --------------- ----------------- ---------------------------\n",
" Polaris True False 0.475\n",
" Sirius True False 0.13125\n",
" Vega True False 0.229166666667\n",
" Rigel True False 0.216666666667"
]
},
"execution_count": 294,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"from astroplan import AtNightConstraint, AltitudeConstraint, observability_table\n",
"\n",
"time_range = Time.now() + np.array([0, 10])*u.day\n",
"constraints = [AtNightConstraint.twilight_civil(),\n",
" AltitudeConstraint(min=20*u.deg, max=85*u.deg)]\n",
"\n",
"observability_table(constraints, observatory, targets, time_range=time_range)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Let's track that target's motion through the sky for the next ten hours in a plot: "
]
},
{
"cell_type": "code",
"execution_count": 308,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"image/png": "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\nW58gaQwh/GV/QlT61QSL7o/dsKxqZ7HKIeYwLyHgdQrB8n2AEBrx67y07z+ycutDYumb7Qhf4h0J\ncUwXxtvfPYz+6ZKWBd5LeC/WIMRzXQhcbLuvIvIzs5KVW58T03Y2Iny5pxDyE88hfMGvtf1aB6eX\nnGjBrktQaHsREsL/QHi9f3YuEjlsyMptGBHDR5ZnpqJbDXiKsIS9Nd7uKEPhlbEsjYpsZWBNYC1C\nH9mFCcUIKgrttuFkqWZmkpXbMCYqh5UIymFNQjzX8oRE61sJO4c3ERRESwqvVeUW57oKwSpbNc63\nMtebmamc7+w3azTTHFm5ZWahSuGtxUyF9xIhtu45giN+KqGy8OPxNhV4yoWilnWONwpYgFDMcjIh\nWHl+YKE47kRCPuckgiK7iVD25xaC/zArssyAZOWWqUmsMDEfQfksFG+TCUvAhZmpjBYg9Dd4HXiL\nEGo0DXiNUH13TkLpahMKO45lZvXkqYSSO0/E25Pxsanx/jM5PCPTCFm5ZZIRg4snEYoljiL0ThgV\nbyIovGmF25uEAom503omOVm5ZTKZviRnKGQymb4kK7dMJtOXZOWWyWT6kqzcMplMX5KVWyaT6Uuy\ncstkMn1JVm6ZTKYvycotk8n0JVm5ZTKZviQrt0wm05dk5ZYpFUlfkHS3pDsl3S5pnU7PKTM8GNXp\nCWT6F0nrAzsAq9t+S9IkYEyHp5UZJmTllimTBYHnKqWKbD/f4flkhhG5KkimNGKLwWuBOYArgLNt\nX93ZWWWGC9nnlimN2C5vTeAThKq9Z0vat7OzygwXsuWWaRuSdgX2tT2l03PJ9D/ZcsuUhqRlJC1d\neGh14NEOTSczzMgbCpkyGQf8SNIEQlnxhwhL1EymdPKyNJPJ9CV5WZrJZPqSrNwymUxfkpVbJpPp\nS7Jyy9SFpFMlPS3prsJj60i6KeaM3ixp7cJzR0t6SNL9krYZROYkSZdLelDSZXHjoTjeHZJ2KPeV\nZfqVrNwy9XIasF3VY98BvmR7deDL8RhJKwB7ACvEa06MDZurOQq43PYywJXxGEkrAY8RAoD3Sf9S\nMsOBrNwydWH7GuCFqoenAnPH+xOAJ+L9nYCzbL9l+1HgYWCgaiBTgDPi/TOAneP9acCc5CT7TAvk\nOLdMKxwFXCvpu4QfyvXj45OBGwrnPQ4sPMD1C9h+Ot5/GlgAwPb9kkYBVwGHlzHxTP+TlVumFU4B\nDrJ9nqTdgFOBrQc5d8iAStuW5MLxoemmmRmO5GVpphXWsX1evH8uM5eeTwCLFs5bhJlL1iJPS1oQ\nQNJCwDNlTTQz/MjKLdMKD0vaNN7fAngw3r8Q2FPSaElLAksDNw1w/YVApUrIvsD5ZU42M7zI6VeZ\nupB0FrApMC/BP/Zl4C7gBILj/3XgQNu3x/M/D3yEsDlwsO1L4+MnAz+xfWuszPtbYDFCQv3utl9s\n5+vK9C9ZuWUymb4kL0szmUxfkpVbJpPpS7Jyy2QyfUlWbplMpi/Jyi2TyfQlWbllMpm+JCu3TCbT\nl/x/rwDSpbGeNkIAAAAASUVORK5CYII=\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x10bf3b410>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"from astroplan.plots import plot_sky\n",
"\n",
"# Plot at times: \n",
"plot_times = Time.now() + np.linspace(0, 10, 10)*u.hour\n",
"\n",
"import warnings\n",
"with warnings.catch_warnings():\n",
" warnings.simplefilter(\"ignore\")\n",
" plot_sky(targets[2], observatory, plot_times)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"***\n",
"\n",
"# 6) Exercises\n",
"\n",
"**1)** Get the light travel time to the sun in minutes, given it's distance *right now* (hint: check out [`astropy.coordinates.get_sun`](http://astropy.readthedocs.org/en/latest/api/astropy.coordinates.get_sun.html?highlight=get_sun#astropy.coordinates.get_sun))."
]
},
{
"cell_type": "code",
"execution_count": 231,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/latex": [
"$8.3285527 \\; \\mathrm{min}$"
],
"text/plain": [
"<Quantity 8.328552732107935 min>"
]
},
"execution_count": 231,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"from astropy.coordinates import get_sun\n",
"\n",
"d = get_sun(Time.now()).distance\n",
"delta_t = d/c\n",
"delta_t.to(u.min)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"**2)** Using your current distance from the Sun in #1, calculate which is greater: the force of gravity between you and the Sun right now, or between you and a bowling ball-sized chunk of neutron star placed 12 kilometers away. \n",
"\n",
"Let's assume your mass is 60 kg. Use `astropy.constants` to get the gravitational constant $G$ and the mass of the sun $M_\\odot$. Let's say bowling balls have $r \\sim 22$ cm, and neutron stars have a density of $\\rho \\sim 3.7 \\times 10^{17} $kg m$^{-3}$."
]
},
{
"cell_type": "code",
"execution_count": 309,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"array(True, dtype=bool)"
]
},
"execution_count": 309,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"from astropy.constants import G, M_sun, M_earth\n",
"\n",
"# Force of gravity from the Sun\n",
"m1 = 60*u.kg\n",
"F_sun = G*m1*M_sun/d**2\n",
"\n",
"# Calculate mass of neutron star ball\n",
"rho = 3.7e17 * u.kg/u.m**3\n",
"r_bowlingball = 22 * u.cm\n",
"volume = 4./3*np.pi*r_bowlingball**3\n",
"m_bowlingball = rho*volume\n",
"\n",
"# Force of gravity from the neutron star ball\n",
"d_bowlingball = 12 * u.km\n",
"\n",
"F_bowlingball = G*m1*m_bowlingball/d_bowlingball**2\n",
"\n",
"# Which is greater?\n",
"F_bowlingball > F_sun"
]
},
{
"cell_type": "markdown",
"metadata": {
"collapsed": true
},
"source": [
"**4)** Calculate the Schwarzschild radius in units of solar radii of the Sgr A*, the Milky Way's supermassive black hole with $M = 4.31 \\times 10^6 M_\\odot$, given\n",
"\n",
"$$r_\\mathrm{s} = \\frac{2 G M}{c^2}$$\n",
"\n",
"and the distance to the galactic center $d_{center} = 7.94$ kpc. Also calculate the angular size of the event horizon on the sky in microarcseconds."
]
},
{
"cell_type": "code",
"execution_count": 261,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Schwarzschild radius = 18.306112971 solRad\n"
]
},
{
"data": {
"text/latex": [
"$21.437905 \\; \\mathrm{\\mu arcsec}$"
],
"text/plain": [
"<Quantity 21.437905349358125 uarcsec>"
]
},
"execution_count": 261,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"from astropy.units import R_sun\n",
"\n",
"# Schwarzschild radius:\n",
"r_s = 2*G*4.31e6*M_sun/c**2\n",
"print(\"Schwarzschild radius = {0}\".format(r_s.to(R_sun)))\n",
"\n",
"# Size on the sky given small angle approximation\n",
"sgr_a_distance = 7940 * u.pc\n",
"angular_diameter = np.arctan(2*r_s/sgr_a_distance)\n",
"angular_diameter.to(u.uarcsec)"
]
},
{
"cell_type": "markdown",
"metadata": {
"collapsed": true
},
"source": [
"**5)** Represent your birthday in the following time formats: ISO, JD, MJD and decimal year, all with the UTC time standard (default)."
]
},
{
"cell_type": "code",
"execution_count": 289,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"1991-02-21 10:00:00.000\n",
"2448308.91667\n",
"48308.4166667\n",
"1991.14086758\n"
]
}
],
"source": [
"birthday = Time('1991-02-21 10:00:00', format='iso')\n",
"formats = ['iso', 'jd', 'mjd', 'decimalyear']\n",
"\n",
"for fmt in formats:\n",
" print(getattr(birthday, fmt))"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": []
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 2",
"language": "python",
"name": "python2"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 2
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython2",
"version": "2.7.10"
}
},
"nbformat": 4,
"nbformat_minor": 0
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment