Skip to content

Instantly share code, notes, and snippets.

@erinzm
Last active April 26, 2016 21:05
Show Gist options
  • Save erinzm/6bf915f8102e5ccee737aec64ead710c to your computer and use it in GitHub Desktop.
Save erinzm/6bf915f8102e5ccee737aec64ead710c to your computer and use it in GitHub Desktop.
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# SJS lm-test-1 data analysis\n",
"I thought a spreadsheet was too tedious for what we're doing (working out the Milky Way's macrostructure) so I hacked together some bits of code to make analysis *incredibly easy* (for me at least, YMMV)."
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"##\n",
"# setup for the data analysis - pulls in some useful libraries\n",
"# this code doesn't contribute to the analysis - you don't need to worry about it.\n",
"\n",
"# Render our plots inline\n",
"%matplotlib inline\n",
"\n",
"import pandas as pd\n",
"import numpy as np\n",
"import matplotlib\n",
"import matplotlib.pyplot as plt\n",
"import seaborn as sb\n",
"matplotlib.style.use('ggplot')"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"First, I'm going to read in the excel file that I prepared from the .cyb.txt from NRAO's site.\n",
"This puts the data in the computer's memory so I can work on it."
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {
"collapsed": false,
"scrolled": false
},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>XL1</th>\n",
" <th>YR1</th>\n",
" <th>XL2</th>\n",
" <th>YR2</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>1412.20276</th>\n",
" <td>320.4291</td>\n",
" <td>266.0175</td>\n",
" <td>320.4291</td>\n",
" <td>266.0175</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1412.21802</th>\n",
" <td>320.0437</td>\n",
" <td>265.4948</td>\n",
" <td>320.0437</td>\n",
" <td>265.4948</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1412.23328</th>\n",
" <td>319.8062</td>\n",
" <td>264.9507</td>\n",
" <td>319.8062</td>\n",
" <td>264.9507</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1412.24854</th>\n",
" <td>319.7780</td>\n",
" <td>264.7801</td>\n",
" <td>319.7780</td>\n",
" <td>264.7801</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1412.26379</th>\n",
" <td>320.3440</td>\n",
" <td>264.4579</td>\n",
" <td>320.3440</td>\n",
" <td>264.4579</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" XL1 YR1 XL2 YR2\n",
"1412.20276 320.4291 266.0175 320.4291 266.0175\n",
"1412.21802 320.0437 265.4948 320.0437 265.4948\n",
"1412.23328 319.8062 264.9507 319.8062 264.9507\n",
"1412.24854 319.7780 264.7801 319.7780 264.7801\n",
"1412.26379 320.3440 264.4579 320.3440 264.4579"
]
},
"execution_count": 2,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"dat = pd.read_excel('Skynet_57504_lm-test-1_19482_20362.spect.cyb.xlsx', sheetname='pandasdata', index_col=0).sort_index()\n",
"dat.head()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"The first thing I'm going to do to the data is plot the intensity of recieved radio from 1420 MHZ to 1421 MHz to get an idea of what I'm looking at:"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.axes._subplots.AxesSubplot at 0x7f7f430ad198>"
]
},
"execution_count": 3,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\niVlERCSLKDGLiIhkESVmERGRLKLELCIikkWUmEVERLKIErOIiEgWUWIWERHJIkrMIiIiWUSJWURE\nJBP8+7IAAAnNSURBVIsoMYuIiGQRJWYREZEsosQsIiKSRZSYRUREsogSs4iISBZRYhYREckiSswi\nIiJZRIlZREQkiygxi4iIZBFPrHe01vLv//7veDwefvjDH/Lb3/6WZcuW4fP5ALjhhhs444wzAFi0\naBFLlizBcRxmzZrF1KlTUxO9iIhInok5MT///PMMGjSIuro6AIwxXH311UybNu2o++3cuZOqqirm\nzp1LMBjk9ttvZ+LEiXi93uRGLiIikodimso+cOAAr776KhdccMFRt1trj7vvypUrmTJlCj6fD7/f\nz+jRo1m3bl1yohUREclzMSXm3/72t1x22WUYY466feHChXzrW9/igQceoKmpCYD6+nr8fn/0Pn6/\nn/r6+iSGLCIikr+6TMzvvPMOxhjGjBlz1Ah55syZ3H///dxzzz34fD4ef/zxEz7+RKNqERERObEu\n15g3bNjAunXruPnmm2ltbSUYDPLzn/+cW2+9FQDHcZgxYwbz588H3BFyZB0aoK6ujgkTJnQZSCAQ\nSPQ1SBx0ndND1zk9dJ3TQ9c5vbocMV988cUsWLCA+fPn893vfpdRo0Zx6623UltbC0A4HGb58uVU\nVlYCMGnSJFasWMHBgwfZs2cP1dXVjB8/PrWvQkREJE/EXJV9rCeeeIINGzbgOA6jRo3iuuuuA6Ci\nooIZM2YwZ84cCgoKuPLKK1WRLSIiEiNjtQgsIiKSNdT5S0REJIsoMYuIiGQRJWYREZEsknDxVyLW\nrVvHI488QigUYtq0aXzlK1856uvLli3j6aefxlpL3759ue666xgxYkQ6Q8wLXV3nJUuW8MQTT1BU\nVATAl770Jc4777xMhJrTurrODz30EG+99RYAoVCIlpYWHnvssUyEmtO6us579uxhwYIF7N27l5KS\nEm655RbKy8szFG3uuu+++1izZg39+vXj7rvvPu7ra9eu5Xe/+x01NTV85zvf0RkIqWTT6Oabb7Y1\nNTW2ra3N/uAHP7AbNmw46usNDQ22ra3NWmvtihUr7A9+8IN0hpc3urrOixcvtk8//XSGossfXV3n\nI73wwgv2v/7rv9IYXf7o6jrPnTvXLl682Fpr7cqVK+3cuXMzEWbOe/fdd+3GjRvtnDlzTvj1nTt3\n2pqaGjtv3jz72muvpTm6niVtU9mbN2+mT58+VFZW4jgO5557Lm+88cZR9ykpKcFx3JBCodBxLUCl\na7FcZ+m+eK/zyy+/fNyBL9K1WK7ztm3b+NjHPgbA6aefzsqVKwmHw5kIN6eNGzeO4uLiDr8+cOBA\nKisr9Xs5DdKWmI/toV1WVnbCHtrPP/88N954I48++ijXXnttusLLG7Fe5yVLlnDzzTdz9913H9Wp\nTWIT63UG2LdvH1u2bImpA54cLZbrPHz48GiyfuONN2hra2P//v1pjVMkmTJW/GU72D59/vnns2DB\nAq655hqeeuqpNEeVf050nc855xzuv/9+7rvvPk4++WQeeOCBDESWXzr6/wzuaHnKlCnR2SBJ3Imu\n8+WXX86HH37I9773PT788EP69eunay05LW3/e0/UQ/vId8LHOvvss1m7dq2mpOIUy3Xu27cvhYWF\nGGO44IILqK6uTneYOS+e/88vvfSSprETFMt17t+/P9/97nf52c9+xsUXX0xrayulpaXpDlUkadKW\nmIcPH05jYyM1NTWEQiFefPFFzjrrLGpqaqJ9tzdt2hRNxK+88gp+v1/vfOMUy3Xevn179P7Lli1j\n2LBhmQo3Z8VyncG91gcOHOCUU07JYLS5K5brvHfvXkKhEG1tbSxcuFA7DLrpyFmJY/8/n+g+knxp\nbcm5bt06Hn74YVpbWzn33HO57LLLePzxx+nbty9f/OIXWbhwIcuXL8cYw8CBA7nqqqs46aST0hVe\n3ujqOj/22GO88sorOI5DIBDg2muvZfDgwZkOO+d0dZ0B/vCHP9DS0sJXv/rVDEebu7q6zqtWrYpu\np5o4cSLXXXcdhYWFmQ4759x999188MEHNDQ0UFpayqWXXsrWrVuj1/m9995j3rx5BINBCgsL6dev\nH3Pnzs102HlJvbJFRESyiOaJRUREsogSs4iISBZRYhYREckiSswiIiJZJK2HWIiIiCTLSy+9xDPP\nPMO2bdv4z//8T0aOHNnhfVtaWpg9ezannHIKN998MwCLFi3ir3/9K7t27eLRRx+lpKQEgGAwyIIF\nC9i2bRter5cbb7yRk046idraWn784x9Hn7OhoYFLL72Uiy66qMPvm8jhTBoxi4hI1qutrWXJkiVH\n3XbSSSdx6623xtQn4Pe//z1jxow56rbx48dzxx13HNe05o9//CMDBw7knnvu4cYbb+Thhx8GIBAI\nsGDBguif0tJSpkyZ0un3nTx5MvPmzWP+/PlcfPHFPPLII13GqhGziIhkvWAwyNatW4+6bejQoUDX\nDU+2bNnC9u3bOeecc3jzzTejt3fUJ2Pr1q1ccMEF0fvs2rWLuro6ysrKovdZv349paWlVFRUAG5X\nuocffpj9+/fz/9q7f5dk4gCO4++wgrYmtzyF3CJsCPwHXJyaW62ktgYLcmgKihAHaRHCiKYGh4Za\nGiToF0FcU5FCjUENosOJpvcM0fFUz2P2TN8HPq/JO+5733P68D29+/T395NIJAgGg94qHHovZ1Iw\ni4iI8VzX/ec3ju3u7jI7O0ulUunpeMuyuLq6IhKJcHd3R71e/xLMnxvj8vk809PTWJbF09MTuVyO\ntbU14K2cqVgs8vr6Sjqd/nZ+BbOIiBgrlUrhOA6tVotGo4Ft2/T19TEzM0MkEvl2fKlUIhwO4/f7\nKZfLPc05NTVFoVBgeXmZkZERLMv68HroTqfD5eUlm5ub3vbt7S07OzveMY7jeJ9jsRixWIyLiwv2\n9/dZWlrqOr+CWUREjPUefpVKhVKp9OM64Pv7e2zb5uTkhEajQavVYnt7m0Qi8dcxQ0NDLCwsANBu\nt0kmk94tawDbtgkEAgwPDwNvq3mfz8fq6mrXa4lGo2xtbdHpdLr2QCiYRUTEeD+5je04DuVymfHx\ncebm5rz9Z2dnXF9f/zGUfz9/vV5nYGCAwcFBisUiY2NjH34r/twY5/P5GB0d5fDwkHg8juu6PD4+\nEgqFeHh48FbcvZYzKZhFROS/dHp6yt7eHrVajfX1dYLBICsrK7y8vFAoFMhms13HHxwccHR0RLVa\nJZVKMTExQTKZ5Pn5mUwmQ7PZJBwOMz8/741pNpvc3Nx8Wbm//3v7+PgY13WZnJwkFApxfn7OxsaG\nV860uLj47fdSiYWIiIhB9ByziIiIQRTMIiIiBlEwi4iIGETBLCIiYhAFs4iIiEEUzCIiIgZRMIuI\niBhEwSwiImKQX6sX3w3Ofbc4AAAAAElFTkSuQmCC\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x7f7f430ada20>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"dat['XL1'][1420:1421].plot()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"The next step is to find the first $n$ maximums, 6 of them in this case, and store them in memory."
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"maximums = dat['XL1'][1420:1421].sort_values(ascending=False).head(6)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"I specified that the telescope should take measurements at galactic latitude and longitude 0,0.\n",
"When I got my data file I found out that the measurements were taken at 2016-04-26T07:30:01.750 with a RA/Dec of 17:45:37.11/-28:56:09.21.\n",
"\n",
"I then got the following result from the [NRAO radial velocity calculator](http://www.gb.nrao.edu/GBT/setups/radvelcalc.html) for V_LSRK, and stored it in memory."
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"v_lsrk = -33.411 # km/sec"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Next, I decided to take the maximums I found and plot them on the original graph to get a better understanding of where they actually *were*."
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.axes._subplots.AxesSubplot at 0x7f7f42d2c3c8>"
]
},
"execution_count": 6,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\nfTVjxoxJZ4h5oafrvGLFCh555BGKiooAuPjiiznvvPMyEWpO6+k633///bz55psAhEIh2traeOih\nhzIRak7r6Trv3buXpUuXsm/fPkpKSrjhhhuoqKjIULS56+6772b9+vUMHDiQ22+//bivv/XWW/z+\n97+ntraW73znOzoDIZVsGl1//fW2trbWdnR02Jtvvtlu2rTpqK83NTXZjo4Oa621q1evtjfffHM6\nw8sbPV3nZ555xj7xxBMZii5/9HSdj/Tcc8/Z//zP/0xjdPmjp+u8ePFi+8wzz1hrrV2zZo1dvHhx\nJsLMee+8847dvHmzXbRoUZdf37Vrl62trbV33XWXffXVV9McXd+StqnsrVu3MmDAAKqqqnAch9mz\nZ/P6668fdZ+SkhIcxw0pFAod1wJUehbLdZbei/c6v/TSS8cd+CI9i+U6b9++nY997GMAnHbaaaxZ\ns4ZwOJyJcHPapEmTKC4u7vbrQ4YMoaqqSr+X0yBtifnYHtrl5eVd9tB+9tlnue6663jwwQe56qqr\n0hVe3oj1Oq9YsYLrr7+e22+//ahObRKbWK8zwP79+9m2bVtMHfDkaLFc51GjRkWT9euvv05HRwcH\nDhxIa5wiyZSx4i/bzfbp888/n6VLl3LllVfy2GOPpTmq/NPVdT777LO55557uPvuuznppJO49957\nMxBZfunu5xnc0fKMGTOis0GSuK6u86WXXsoHH3zAv//7v/PBBx8wcOBAXWvJaWn76e2qh/aR74SP\nddZZZ/HWW29pSipOsVzn0tJSCgsLMcbwmc98hpqamnSHmfPi+Xl+8cUXNY2doFiu86BBg/jud7/L\nz372My666CLa29spKytLd6giSZO2xDxq1Ciam5upra0lFArxwgsvcOaZZ1JbWxvtu71ly5ZoIn75\n5Zfx+/165xunWK7zjh07ovdfuXIlI0eOzFS4OSuW6wzutW5sbOTkk0/OYLS5K5brvG/fPkKhEB0d\nHSxbtkw7DHrpyFmJY3+eu7qPJF9aW3Ju2LCBBx54gPb2dmbPns2Xv/xlHn74YUpLS/nCF77AsmXL\nWLVqFcYYhgwZwuWXX87o0aPTFV7e6Ok6P/TQQ7z88ss4jkMgEOCqq65i2LBhmQ475/R0nQEef/xx\n2tra+MpXvpLhaHNXT9d57dq10e1UU6dO5eqrr6awsDDTYeec22+/nffff5+mpibKysq45JJL+Oij\nj6LX+d133+Wuu+4iGAxSWFjIwIEDWbx4cabDzkvqlS0iIpJFNE8sIiKSRZSYRUREsogSs4iISBZR\nYhYREckiaT3EQkREJFlefPFFnnzySbZv385PfvITxo4d2+1929raWLhwISeffDLXX389AMuXL+cv\nf/kLu3fv5sEHH6SkpASAYDDI0qVL2b59O16vl+uuu47Ro0dTV1fHD3/4w+hzNjU1cckll3DhhRd2\n+30TOZxJI2YREcl6dXV1rFix4qjbRo8ezY033hhTn4A//OEPTJgw4ajbJk+ezK233npc05r//v/b\nu3uQVNs4juPf6AWaDAKJqFTILcKgItqFaIrGViuxrcGCGpqCIkKiIsgORjQ1eKChlgYJeiMQm4wU\nChKKXqCSULT0GeLcPJ3znOqc6X7g9wFBL67L63b6cd3q///9O1arlUAggM/nIxgMAlBbW8vS0pLx\nsFgstLe3f7hva2src3NzLCws0Nvby8rKyqfXqhOziIiY3vPzM6lU6t1YXV0d8HnBk8vLS66urujs\n7CQajRrjv6uTkUql6OrqMubc3Nxwf39PdXW1MScej2OxWKipqQHeqtIFg0EeHx8pKyvD4/Fgt9uN\nUzh8vTmTgllEREyvWCz+dcWxtbU1BgYGSCaTX5pvs9k4Pj7G5XJxenpKOp3+JZh/7hi3vLxMX18f\nNpuN6+tr5ufnmZycBN6aM4XDYV5eXhgfH/90fwWziIiYlt/vJ5PJkM/nyWazxGIxSkpK6O/vx+Vy\nfbo+EongdDqxWq0kEokv7dnT00MoFGJ0dJT6+npsNtu78tCFQoGjoyNmZmaM1/F4nNXVVWNOJpMx\nnrvdbtxuN4eHh2xsbDAyMvLh/gpmERExrR/hl0wmiUQif9wO+OzsjFgsxu7uLtlslnw+z7dv3/B4\nPL9dU1lZydDQEACvr694vV7jljVALBajoaGBqqoq4O00X1paysTExIfX0tHRweLiIoVC4cM+EApm\nERExvT+5jZ3JZEgkEjQ3NzM4OGiM7+/vE41G/zOU//3+6XSa8vJyKioqCIfDNDU1vfuu+OeOcaWl\npTQ2NrK1tUV3dzfFYpGLiwscDgfn5+fGifurzZkUzCIi8r+0t7fH+vo6T09PTE1NYbfbGRsb4+7u\njlAoRCAQ+HD95uYm29vbPDw84Pf7aWlpwev1cnt7y+zsLLlcDqfTic/nM9bkcjlOTk5+Obn/+PX2\nzs4OxWKRtrY2HA4HBwcHTE9PG82ZhoeHP/1camIhIiJiIvofs4iIiIkomEVERExEwSwiImIiCmYR\nERETUTCLiIiYiIJZRETERBTMIiIiJqJgFhERMZF/APttHh5uHrdOAAAAAElFTkSuQmCC\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x7f7f42d14be0>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"dat['XL1'][1420:1421].plot(); maximums.plot(style='o')"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"The maximums around that location represent red-or-blueshifts of the hydrogen 21cm line at $\\approx 1420.406$ $MHz$, emitted pretty much only in hydrogen gas clouds.\n",
"\n",
"Since we know that the arms of the Milky Way have interiors composed of hydrogen gas clouds, we can map out the distribution of cloud velocities by seeing how far the hydrogen 21cm line has shifted.\n",
"\n",
"The following piece of code calculates how fast an object is moving based on an observed and an actual emitted frequency."
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"c = 3*(10**5) # km/s\n",
"# v will be negative for blueshift, positive for redshift\n",
"def vel_from_fshift(f_base, f_measured):\n",
" return c * (f_base - f_measured)/(f_base)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Now I use that piece of code to find the velocities of each of the maximums."
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"array([-49.65867261, -46.4356499 , -52.88169532, -20.65358026,\n",
" -43.21262718, -17.43055755])"
]
},
"execution_count": 8,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"h_21cm_line = 1420.405751786 # MHz\n",
"velocities = maximums.index.map(lambda v_m: vel_from_fshift(h_21cm_line, v_m))\n",
"velocities"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"For fun, let's find the distribution of those velocities:"
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.axes._subplots.AxesSubplot at 0x7f7f42cc07b8>"
]
},
"execution_count": 9,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\nvt49bdq0jB8/fnhXDgDHoDHNQTz3vWHDhtx5553ZtWtXZs+enWuuuSarV69OW1tb5s6dmz179mTF\nihV59tlnM2nSpHR2duaUU045EusHgGPKoMINABwdvHMaABQi3ABQiHADQCHv+fe4D9fq1avzhz/8\nIePGjUuSLFiwIGeffXZeeumlLFmyJG1tbUmSj3zkI/nCF75wpJd3WPqbLUkefPDBrFmzJi0tLbn2\n2mvzsY99bCSXeljWrFmTVatW5bbbbstJJ500Kvbund49XzI69u/Xv/51fv/73ydJ3v/+92fRokU5\n8cQTR83+9TdfUn//7r333jz++ONJkjPOOCOLFi3K8ccfP2r2rr/5kvp7lyR//OMf86tf/Sovv/xy\nvvOd7+QDH/hAkhz6/jWPsLvvvrv52GOP7ff5rq6u5re+9a0jvZwh1d9sr7zySnPx4sXNHTt2NLu7\nu5sLFy5s7ty5cwRWePh6enqa3/zmN5udnZ3NV155pdlsjo69e9uB5hst+/evf/2r7+OHHnqo+aMf\n/ajZbI6e/etvvq1bt5bfvz/96U99a77jjjua99xzT7PZHD171998o2Hvms1m86WXXmpu3bq1+bWv\nfa35j3/8o+/zh7p/I/JUebOfH2Tv7/OVHGiGP//5zznvvPMybty4dHR05IMf/GA2bNgwAqs7fKtX\nr84111yTMe9697fRsHfJgecbLfv39qP6ZO//0e+dM46G/etvvr/85S/l9++8887LcccdlyQ588wz\n93nb6dGwd/3NNxr2LklOPfXUTJky5YB7dSj7d8SfKk/2Pi3yi1/8IjNmzMh1112XCRMmJEn+/ve/\nZ/HixWlvb8+nP/3pnHnmmSOxvMNyoNm2bduWyZMn9x3T0dGx3/u9V/D0009n3LhxmT59+n7XjYa9\n62++0bJ/SXL//ffnd7/7XcaPH59bbrml7/OjYf+SA883mvYvSdauXZtPfOITfZdHy969be3atZkz\nZ06S0bd3B3Io+zcs4f7+97+fN998c59HEmPGjMm8efPyqU99Ktdee216e3vz05/+NHfffXcWLlyY\nE088McuWLUtbW1s2bNiQW2+9NcuWLet7vfho8V5mW716dRYs2P8904/mR8j9zXf55Zfnl7/8ZZYs\nWbLfnznppJNK7F1yaPO9W8X9mzdvXmbOnJmrrroqV111VR588MH85je/yXXXXVfmey85tPne7Wjd\nv4FmS5Kf//znaW9vz/nnn59kdHzvHWi+j3/84we8jaN175LBzfduh7p/wxLuG2644YD/o5Hx48en\npWXvs/MtLS25+OKLc/vttydJxo0b17fYmTNnZvLkyXnllVf63v/8aHEosx3o/d7POuusI7Pg96i/\n+V577bX885//zJIlS9JsNrNt27bccsst+frXv54pU6b0Pc11NO9dcmjzjYb9e/dbEM+ePTtLlizJ\nddddV+Z7Lzm0+ars30CzrVmzJhs3bsxXvvKVvuuOO+648t97B5uvyt4lg//afKdD3b9heY17/Pjx\nmTBhwn7/tbS09L2/eW9vb9atW5fTTjstSfLqq69m165dSfY+dfDqq6/2/UTo0eRQZvvoRz+a9evX\nZ/v27Xn11VezcePGfh+BjbT+5psyZUruvPPO3H777Vm+fHmmTJmSb3zjG5kyZUqZvUsObb7RsH8t\nLS3ZuHFj33Fr167NqaeemqTO915yaPNV2b+Dzfb4449n3bp1uemmm/pOEJLRs3f9zVdl75KDz9ef\nQ92/I/4a93333Ze//e1vaWlpyRlnnJHPfe5zSZLnn38+9957b5rNZiZOnJgvfvGLfb8OUEV/s02Z\nMiUXX3xxbrzxxowdOzbz58/ve5RV2dtPCY2GvTuQt+cbLfv30EMP5emnn05LS0tOP/30fP7zn08y\nevavv/lGw/7dc8892blzZ770pS8lSWbMmJEbbrhh1Oxdf/ONhr1Lkscffzw/+9nP8tprr+W73/1u\npk2blptvvvmQ9897lQNAId45DQAKEW4AKES4AaAQ4QaAQoQbAAoRbgAoRLgBoBDhBoBC/j+IH6PE\nf3bB1QAAAABJRU5ErkJggg==\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x7f7f42ccce80>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"pd.Series(velocities).hist()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Looks like they're mostly lumped around $\\approx -47$ $\\frac{km}{s}$, meaning they're *approaching* us at that speed. Interesting."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"> Written by Liam Marshall, April 26 2016\n",
"\n",
"Thanks to Geoffrey Holt for being an awesome teacher!"
]
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.5.1"
}
},
"nbformat": 4,
"nbformat_minor": 0
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment