{
"cells": [
{
"cell_type": "raw",
"metadata": {
"tags": [
"remove-cell"
]
},
"source": [
"---\n",
"title: \"Plotting and Pandas\"\n",
"teaching: 3000\n",
"exercises: 0\n",
"\n",
"questions:\n",
"\n",
"- \"How do we make scatter plots in Matplotlib? How do we store data in a Pandas `DataFrame`?\"\n",
"\n",
"objectives:\n",
"\n",
"- \"Select rows and columns from an Astropy `Table`.\"\n",
"\n",
"- \"Use Matplotlib to make a scatter plot.\"\n",
"\n",
"- \"Use Gala to transform coordinates.\"\n",
"\n",
"- \"Make a Pandas `DataFrame` and use a Boolean `Series` to select rows.\"\n",
"\n",
"- \"Save a `DataFrame` in an HDF5 file.\"\n",
"\n",
"keypoints:\n",
"\n",
"- \"When you make a scatter plot, adjust the size of the markers and their transparency so the figure is not overplotted; otherwise it can misrepresent the data badly.\"\n",
"\n",
"- \"For simple scatter plots in Matplotlib, `plot` is faster than `scatter`.\"\n",
"\n",
"- \"An Astropy `Table` and a Pandas `DataFrame` are similar in many ways and they provide many of the same functions. They have pros and cons, but for many projects, either one would be a reasonable choice.\"\n",
"\n",
"- \"To store data from a Pandas `DataFrame`, a good option is an HDF file, which can contain multiple Datasets.\"\n",
"\n",
"---\n",
"\n",
"{% include links.md %}\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# 3. Proper Motion\n",
"\n",
"In the previous lesson, we wrote a query to select stars from the region of the sky where we expect GD-1 to be, and saved the results in a FITS file.\n",
"\n",
"Now we'll read that data back and implement the next step in the analysis, identifying stars with the proper motion we expect for GD-1."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Outline\n",
"\n",
"Here are the steps in this lesson:\n",
"\n",
"1. We'll read back the results from the previous lesson, which we saved in a FITS file.\n",
"\n",
"2. Then we'll transform the coordinates and proper motion data from ICRS back to the coordinate frame of GD-1.\n",
"\n",
"3. We'll put those results into a Pandas `DataFrame`, which we'll use to select stars near the centerline of GD-1.\n",
"\n",
"4. Plotting the proper motion of those stars, we'll identify a region of proper motion for stars that are likely to be in GD-1.\n",
"\n",
"5. Finally, we'll select and plot the stars whose proper motion is in that region.\n",
"\n",
"After completing this lesson, you should be able to\n",
"\n",
"* Select rows and columns from an Astropy `Table`.\n",
"\n",
"* Use Matplotlib to make a scatter plot.\n",
"\n",
"* Use Gala to transform coordinates.\n",
"\n",
"* Make a Pandas `DataFrame` and use a Boolean `Series` to select rows.\n",
"\n",
"* Save a `DataFrame` in an HDF5 file.\n"
]
},
{
"cell_type": "markdown",
"metadata": {
"tags": [
"remove-cell"
]
},
"source": [
"## Installing libraries\n",
"\n",
"If you are running this notebook on Colab, you can run the following cell to install the libraries we'll use.\n",
"\n",
"If you are running this notebook on your own computer, you might have to install these libraries yourself. See the instructions in the preface."
]
},
{
"cell_type": "code",
"execution_count": 55,
"metadata": {
"tags": [
"remove-cell"
]
},
"outputs": [],
"source": [
"# If we're running on Colab, install libraries\n",
"\n",
"import sys\n",
"IN_COLAB = 'google.colab' in sys.modules\n",
"\n",
"if IN_COLAB:\n",
" !pip install astroquery astro-gala"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Reload the data\n",
"\n",
"In the previous lesson, we ran a query on the Gaia server and downloaded data for roughly 140,000 stars. We saved the data in a FITS file so that now, picking up where we left off, we can read the data from a local file rather than running the query again.\n",
"\n",
"If you ran the previous lesson successfully, you should already have a file called `gd1_results.fits` that contains the data we downloaded.\n",
"\n",
"If not, you can [download the file](https://github.com/AllenDowney/AstronomicalData/raw/main/data/gd1_results.fits) or run the following cell."
]
},
{
"cell_type": "code",
"execution_count": 56,
"metadata": {},
"outputs": [],
"source": [
"from os.path import basename, exists\n",
"\n",
"def download(url):\n",
" filename = basename(url)\n",
" if not exists(filename):\n",
" from urllib.request import urlretrieve\n",
" local, _ = urlretrieve(url, filename)\n",
" print('Downloaded ' + local)\n",
"\n",
"download('https://github.com/AllenDowney/AstronomicalData/raw/main/' +\n",
" 'data/gd1_results.fits')"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Now here's how we can read the data from the file back into an Astropy `Table`:"
]
},
{
"cell_type": "code",
"execution_count": 57,
"metadata": {},
"outputs": [],
"source": [
"from astropy.table import Table\n",
"\n",
"filename = 'gd1_results.fits'\n",
"results = Table.read(filename)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"The result is an Astropy `Table`.\n",
"\n",
"We can use `info` to refresh our memory of the contents."
]
},
{
"cell_type": "code",
"execution_count": 58,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"
\n",
" name dtype unit description \n",
"--------- ------- -------- ------------------------------------------------------------------\n",
"source_id int64 Unique source identifier (unique within a particular Data Release)\n",
" ra float64 deg Right ascension\n",
" dec float64 deg Declination\n",
" pmra float64 mas / yr Proper motion in right ascension direction\n",
" pmdec float64 mas / yr Proper motion in declination direction\n",
" parallax float64 mas Parallax"
]
},
"execution_count": 58,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"results.info"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Selecting rows and columns\n",
"\n",
"In this section we'll see operations for selecting columns and rows from an Astropy `Table`. You can find more information about these operations in the [Astropy documentation](https://docs.astropy.org/en/stable/table/access_table.html).\n",
"\n",
"We can get the names of the columns like this:"
]
},
{
"cell_type": "code",
"execution_count": 59,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"['source_id', 'ra', 'dec', 'pmra', 'pmdec', 'parallax']"
]
},
"execution_count": 59,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"results.colnames"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"And select an individual column like this:"
]
},
{
"cell_type": "code",
"execution_count": 60,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<Column name='ra' dtype='float64' unit='deg' description='Right ascension' length=140339>\n",
"
\n",
"
142.48301935991023
\n",
"
142.25452941346344
\n",
"
142.64528557468074
\n",
"
142.57739430926034
\n",
"
142.58913564478618
\n",
"
141.81762228999614
\n",
"
143.18339801317677
\n",
"
142.9347319464589
\n",
"
142.26769745823267
\n",
"
142.89551292869012
\n",
"
142.2780935768316
\n",
"
142.06138786534987
\n",
"
...
\n",
"
143.05456487172972
\n",
"
144.0436496516182
\n",
"
144.06566578919313
\n",
"
144.13177563215973
\n",
"
143.77696341662764
\n",
"
142.945956347594
\n",
"
142.97282480557786
\n",
"
143.4166017695258
\n",
"
143.64484588686904
\n",
"
143.41554585481808
\n",
"
143.6908739159247
\n",
"
143.7702681295401
\n",
"
"
],
"text/plain": [
"\n",
"142.48301935991023\n",
"142.25452941346344\n",
"142.64528557468074\n",
"142.57739430926034\n",
"142.58913564478618\n",
"141.81762228999614\n",
"143.18339801317677\n",
" 142.9347319464589\n",
"142.26769745823267\n",
"142.89551292869012\n",
" 142.2780935768316\n",
"142.06138786534987\n",
" ...\n",
"143.05456487172972\n",
" 144.0436496516182\n",
"144.06566578919313\n",
"144.13177563215973\n",
"143.77696341662764\n",
" 142.945956347594\n",
"142.97282480557786\n",
" 143.4166017695258\n",
"143.64484588686904\n",
"143.41554585481808\n",
" 143.6908739159247\n",
" 143.7702681295401"
]
},
"execution_count": 60,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"results['ra']"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"The result is a `Column` object that contains the data, and also the data type, units, and name of the column."
]
},
{
"cell_type": "code",
"execution_count": 61,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"astropy.table.column.Column"
]
},
"execution_count": 61,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"type(results['ra'])"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"The rows in the `Table` are numbered from 0 to `n-1`, where `n` is the number of rows. We can select the first row like this:"
]
},
{
"cell_type": "code",
"execution_count": 62,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"Row index=0\n",
"
\n",
"
source_id
ra
dec
pmra
pmdec
parallax
\n",
"
deg
deg
mas / yr
mas / yr
mas
\n",
"
int64
float64
float64
float64
float64
float64
\n",
"
637987125186749568
142.48301935991023
21.75771616932985
-2.5168384683875766
2.941813096629439
-0.2573448962333354
\n",
"
"
],
"text/plain": [
"\n",
" source_id ra dec pmra pmdec parallax \n",
" deg deg mas / yr mas / yr mas \n",
" int64 float64 float64 float64 float64 float64 \n",
"------------------ ------------------ ----------------- ------------------- ----------------- -------------------\n",
"637987125186749568 142.48301935991023 21.75771616932985 -2.5168384683875766 2.941813096629439 -0.2573448962333354"
]
},
"execution_count": 62,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"results[0]"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"As you might have guessed, the result is a `Row` object."
]
},
{
"cell_type": "code",
"execution_count": 63,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"astropy.table.row.Row"
]
},
"execution_count": 63,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"type(results[0])"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Notice that the bracket operator selects both columns and rows. You might wonder how it knows which to select.\n",
"If the expression in brackets is a string, it selects a column; if the expression is an integer, it selects a row.\n",
"\n",
"If you apply the bracket operator twice, you can select a column and then an element from the column."
]
},
{
"cell_type": "code",
"execution_count": 64,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"142.48301935991023"
]
},
"execution_count": 64,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"results['ra'][0]"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Or you can select a row and then an element from the row."
]
},
{
"cell_type": "code",
"execution_count": 65,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"142.48301935991023"
]
},
"execution_count": 65,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"results[0]['ra']"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"You get the same result either way."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Scatter plot\n",
"\n",
"To see what the results look like, we'll use a scatter plot. The library we'll use is [Matplotlib](https://matplotlib.org/), which is the most widely-used plotting library for Python.\n",
"The Matplotlib interface is based on MATLAB (hence the name), so if you know MATLAB, some of it will be familiar.\n",
"\n",
"We'll import like this."
]
},
{
"cell_type": "code",
"execution_count": 66,
"metadata": {},
"outputs": [],
"source": [
"import matplotlib.pyplot as plt"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Pyplot is part of the Matplotlib library. It is conventional to import it using the shortened name `plt`.\n",
"\n",
"In recent versions of Jupyter, plots appear \"inline\"; that is, they are part of the notebook. In some older versions, plots appear in a new window.\n",
"In that case, you might want to run the following Jupyter [magic command](https://ipython.readthedocs.io/en/stable/interactive/magics.html#magic-matplotlib) in a notebook cell:\n",
"\n",
"```\n",
"%matplotlib inline\n",
"```"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Pyplot provides two functions that can make scatterplots, [plt.scatter](https://matplotlib.org/3.3.0/api/_as_gen/matplotlib.pyplot.scatter.html) and [plt.plot](https://matplotlib.org/api/_as_gen/matplotlib.pyplot.plot.html).\n",
"\n",
"* `scatter` is more versatile; for example, you can make every point in a scatter plot a different color.\n",
"\n",
"* `plot` is more limited, but for simple cases, it can be substantially faster. \n",
"\n",
"Jake Vanderplas explains these differences in [The Python Data Science Handbook](https://jakevdp.github.io/PythonDataScienceHandbook/04.02-simple-scatter-plots.html).\n",
"\n",
"Since we are plotting more than 100,000 points and they are all the same size and color, we'll use `plot`.\n",
"\n",
"Here's a scatter plot with right ascension on the x-axis and declination on the y-axis, both ICRS coordinates in degrees."
]
},
{
"cell_type": "code",
"execution_count": 67,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAX4AAAEGCAYAAABiq/5QAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuNCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8QVMy6AAAACXBIWXMAAAsTAAALEwEAmpwYAAAllklEQVR4nO3de3hcd33n8fdHtnyLzUrEDkTKRUm4StmQEBXSDbQ0UtiUh0sXKEs7al3KkiLTFtrwFNLwFFIethQKLWzX4rJcUkaUXrgWaEusTdhCmwQ5iR1kA6E0obVd4lAbktixY/u7f5wzzliRRiNpzpwzM5/X85zHM2fO5avzHH/POb/zuygiMDOzztGVdwBmZtZcTvxmZh3Gid/MrMM48ZuZdRgnfjOzDrMy7wDqsXHjxhgYGMg7DDOzlrJ9+/b7I2LT7PktkfgHBgaYnp7OOwwzs5Yi6d655ruox8yswzjxm5l1GCd+M7MO48RvZtZhnPjNzDqME78VxtDQEJJOTkNDQ3mHZNaWnPgtd5OTk0hi165dp8zftWsXkti4cSOTk5M5RWfWfpz4LVeTk5OMjY3VXOaHP/whY2NjrF+/3hcAswZw4rfcjI6OLpj0qz300EOMjY0hiZUrV/oiYLZEmSV+SWsk3SZph6QZSdfP+v2NkkLSxqxisOIaGhpiampqyesfP36csbExvwcwW4Is7/iPAFdExDOAi4GrJF0GIOls4Erg+xnu3wpqy5YtjynPX6rKe4DR0dGGbM+sE2SW+CPxYPq1O50q4zz+MfA7Vd+tQ2zZsoWJiYmGb3dqagpJrFixgi1btjR8+2btJNMyfkkrJN0J3AfcGBG3SnoxsCcidiyw7tWSpiVN79+/P8swrUmySvrVTpw4wcTEBJIYGBjwewCzOagZg61L6gE+C7we+DDw/Ij4kaR7gOGIuL/W+sPDw+HeOVvb6Ojossr0l6Ovr489e/bksm+zPEnaHhHDs+c3pVZPRBwEbgZeApwH7EiT/lnA7ZKe2Iw4rPkmJydZu3ZtbkkfYO/evScbhfkJwCzbWj2b0jt9JK0FRoE7IuKMiBiIiAHg34BnRsS/ZxWH5adSR//hhx/OO5STxsbG6Orq8gXAOlqWd/xnAjdJ2gl8g6SM/4sZ7s8KZjF19JspIk62B5BEf39/3iGZNVVmI3BFxE7gkgWWGchq/5YvSXmHULdKUdDIyAjbtm3LOxyzzLnlrjXcunXr8g5hSSpVQiW5Sqi1NSd+ayhJHD58OO8wlq1SJdQXAGtHTvzWEJUeNtuNLwDWjpz4bdkW29laK6pcAFavXu0aQdbynPhtWZbb2VqrOXr0KGNjY2zYsMEXAGtZTvy2ZP39/Q3rbK3VPPjggyerhLoYyFqNE78tSX9/P3v37s07jEKYmJigt7c37zDM6ubEb4s2OjrqpD/LwYMHXRXUWoYTvy1Knp2ttYrKi2CPEWBF5cRvdXPSX5xKgzBfAKxonPitLp1We6eRKhcAdw5nReHEbwvq7e3t2No7jVTpHM6jhFnenPitpt7eXg4ePJh3GG2lepQwFwVZHpz4bV5DQ0NO+k1QKQryU4A1ixO/zWl0dNTFO002MTHB0NBQ3mFYB3Dit8fwi9z87Nq162QR0Pr16/0y2DLhxG+nGBoa8p1+QTz00EOMjY35KcAaLssxd9dIuk3SDkkzkq5P579b0rck7ZT02cq4vJY/J/1iqjwFuDqoNUqWd/xHgCsi4hnAxcBVki4DbgQujIiLgO8A12YYg9XJZfrFV6kO6lpAtlyZJf5IPJh+7U6niIivRMSxdP4twFlZxWD1cZl+a6nUAvLdvy1VpmX8klZIuhO4D7gxIm6dtcivAn87z7pXS5qWNL1///4sw+xondy1cqurdAvttgC2WJkm/og4HhEXk9zVP0vShZXfJF0HHAPmvG2JiA9FxHBEDG/atCnLMDtWb2+ve9lsE5WngDVr1vhJwBbUlFo9EXEQuBm4CkDSZuCFQCkiohkx2KncIrc9HTlyhLGxMVcFtZqyrNWzqVJjR9JaYBT4lqSrgDcBL46IQ1nt3+bnFrntr1IVtKuryy2C7TGyvOM/E7hJ0k7gGyRl/F8E/hTYANwo6U5JH8gwBpvFVTY7S0S4RbA9xsqsNhwRO4FL5pj/pKz2abW5ymbnqm4R/IlPfIJSqZR3SJYjt9ztEK6yafBoW4Du7m6/A+hgTvwdYMWKFb7Tt1McO3bsZHVQvwPoPE78bU4SJ06cyDsMKzCPEdx5nPjbmKS8Q7AW4hbBncOJv02tWLEi7xCsRVWKgPwE0L6c+NvQ6Oioi3ds2aampujt7c07DMuAE3+bGR0dde0da5iDBw+erAbqbqHbhxN/G+nt7XXSt8xUqoL6KaD1OfG3iXXr1rkbBmuKylOAnwBalxN/G1i1ahWHDx/OOwzrMJUnALcFaD1O/C1u1apVPPLII3mHYR2u0hbAfQK1Bif+FibJSd8KpdInkIuAis2Jv0W5cZYV2djYmO/+C8yJvwWtW7cu7xDMFlS5++/v7887FJvFib/F9Pf3+0WutZS9e/ciiQ0bNrgIqCCc+FuIx8i1Vvbggw+6HUBBOPG3CNfTt3ZR3RrY/QHlw4m/Bbh4x9pVpUdQtwNoriwHW18j6TZJOyTNSLo+nf94STdKujv91899NWzZssXFO9b2JiYm3BK4ibK84z8CXBERzwAuBq6SdBnwZmAqIp4MTKXfbQ6Tk5NMTEzkHYZZU1RaArsaaPbqTvySTpNUdyfvkXgw/dqdTgG8BLghnX8D8HP1brOTTE5OMjY2lncYZk1XqQa6evVqPwFkZN7EL6lL0i9K+pKk+4BvAfvSYpt3S3ryQhuXtELSncB9wI0RcSvwhIjYB5D+e8Y8614taVrS9P79+5fwp7WuLVu2OOlbxzt69KhrAWWk1h3/TcAFwLXAEyPi7Ig4A3gucAvwTkk1s1NEHI+Ii4GzgGdJurDewCLiQxExHBHDmzZtqne1lrdlyxYX75hVqdQCWrlypZ8AGkQRMfcPUndE1OwIpp5lqpZ9K/AQ8BrgeRGxT9KZwM0R8dRa6w4PD8f09HQ9u2lpQ0ND7Nq1K+8wzAptxYoV3HDDDZRKpbxDKTxJ2yNiePb8Wnf83ZK6qzbwVEm/JemllXm1kr6kTZJ60s9rgVGS4qIvAJvTxTYDn1/MH9KuRkdHnfTN6nD8+PGT3UH7CWBpaiX+vwMGACQ9Cfgn4HzgdZL+oI5tnwncJGkn8A2SMv4vAu8ErpR0N3Bl+r2jTU5OeuQssyUYGxuju7vbF4DFiog5J+Cuqs9vB/53+nlV9W/NmC699NJoV+Pj40FS28mTJ0/LmCTF+Ph43v+lCwWYjjlyaq07/qj6fAVwI0BEHAVO1FjP6uQXuWaNExEnB4TxE0BttRL/Tkl/JOm3gCcBXwGolNvb8rhxlll2xsbG3A9QDbUS/2uA+0nK+Z8fEYfS+YPAH2UcV9tzPX2zbFX6Aerq6nJfQLPMm/gj4nBEvDMiXh8RO6rm/yPwvaZE14YmJyc9epZZE1WKgJz8H1Wr5e4KSb8g6Y2VhleSXijpH4E/bVqEbcTdMJjlp1L+7yKg2kU9HwH+B3A68H5JHyMp4nlXRFzSjODajZO+Wf7cFXTtxD8MXBkR1wIvAH6epMXt55oRWLvxOLlmxdLJNYBqJf6jEXECICIeBr4TEf/enLDay7p16zyQillBjY2NddyNWa3E/zRJO9Pprqrvd6Wtca0Okpz0zQru8OHDHTUc5Moavz29aVG0qRUr6h6+wMwKovIOYHx8nK1bt+YdTiZqdtIGnBUR91ZPwDnUvmAYSfHOiRNu4GzWqiYmJtp2LIBaif9PgAfmmH84/c3m0dvb6+IdszZQGQug3YaDrJX4ByLiMWX5ETFN2munPdbo6CgHDx7MOwwza6DKcJADAwNtUQuoVuJfU+O3tY0OpB2Mjo66e2WzNnbvvfcyNjZGV1dXS18AaiX+b0h6zeyZkl4NbM8upNbkPvXNOkdEMDY2Rn9/f96hLEmtxP8G4FWSbpb0nnT6Kklr3tc3JboW4cHRzTrT3r17W7IRWK1O2n4QEf8FuB64J52uj4ifdEOuR7lPfTOrDAXZKu0Aag22/vhaK0bEf9TcsHQ28GfAE0kGbvlQRLxP0sXAB0jeIRwDtkTEbbW2VeTB1t3TppnNNjg4yMzMTN5hzDvYeq36+NtJRuESp47GVfl+/gL7PAZcExG3S9oAbJd0I/AukieHv5X0gvT78+r+SwrESd/M5lKpBVQulymVSnmH8xi1inrOi4jzq/49v/r7QhuOiH0RcXv6+QFgN9BPctF4XLrYfwL2Lv/PaL52bdhhZo0zNjZWyFxR6+Vuw0gaAC4BbiV5afxuSf9K0s3ztfOsc7WkaUnT+/fvb0aYdRsaGnJdfTOrS6UR2MaNG4vzEniuEdgbOQHrSYqNXpp+fz/wsvTzK4BtC23j0ksvXdzQ8hnq6ekJkqcWT548eVrSVC6Xm5KvgOmYI6dmescvqRv4NDAZEZ9JZ28GKp//CnhWljE0Un9/v+/0zWzZKrWA8hoMpq7EL+k5kl6Vft4k6bw61hHJKF67I+K9VT/tBX46/XwFcPfiQs5Hb28ve/e25OsIMyuoiYmJXPoBWjDxS3or8CYeLYvvBsp1bPty4JeAKyTdmU4vAF4DvEfSDuB/AlcvKfIm8p2+mWWlUgOoqeX/c5X/xKll9HeSVOG8o2rezoXWa+SUZxn/+Ph47uWBnjx56pxpfHy8YfmLZZTxH003EACSTqtjnbbhVrlm1kyVsYCzbAFcT+L/S0kfBHrSTtu2AR/OLKICcQMtM8vL1NRUZr2ALpj4I+KPgL8mqZ3zVOD3IuJ/NTySgnHSN7O8RdoLaKMvAPUOofidJIbYJmmdpA2RtMZtS+vWrcs7BDOzkyoXAKAhXUDUU6vnNSR3/B9MZ/UDn1v2ngvKwyaaWVFdd911DdlOPWX8ryOpmvljgIi4GzijIXsvkMnJSSS52qaZFdb3v//9hmynnsR/JCKOVr5IWklaw6ddTE5OeiAVMyu8c845pyHbqSfxf1XS7wJrJV1J0s3C3zRk7wXhpG9mreAd73hHQ7ZTT+J/E7AfuAv4NeDLwFsasvcCaNUxM82ss/T19TWsb/+atXokdZG00r2QNqy7Pzk56f53zKwl7Nmzp2HbqnnHHxEngB2SGlOwVCAeIN3MWkW5XE/3aPWrpx7/mcCMpNuAhyozI+LFDY2kiTxAupm1glWrVvHRj3604cM31pP4r2/oHnPmpG9mrWBkZIRt27Zlsu0FE39EfDWTPedgdHSUqampvMMwM6tpfHycrVu3Zrb9BRO/pAd4bL39HwHTwDUR8b0sAmu0yclJJ30zK7yskz7UV9TzXpJRsz5J0i//K4EnAt8GPgo8L6vgGsXFO2bWCsrlcsPL8+c0Vyf91RNw6xzzbkn/3bHQ+o2YljMQiwdS8eTJU9GnrAZfZxkDsZyQ9ApJXen0iqrfYr6VJJ0t6SZJuyXNSHp91W+/Ienb6fx31RHDkvlO38yKbHx8vDl3+VXqKeopAe8DtpIk+luAMUlrgV+vsd4xkncAt0vaAGyXdCPwBOAlwEURcURSZh2+uVWumRVZ04p2ZqmnVs/3gBfN8/PXaqy3D9iXfn5A0m6SLp1fA7wzIo6kv9232KDrMTQ05Fa5ZlZYeSV9qK8//qdImpL0zfT7RZIW1VePpAHgEuBW4CnAcyXdKumrkn5innWuljQtaXr//v2L2R2Tk5Ps2rVrUeuYmTVLHsU7p5ir4L96Ar4KPAu4o2reNxdar2rZ9cB24KWVdYH3k9QQehbwL4BqbWOxL3fPPffc3F/WePLkydNc0/j4+OLe0C4Dy3i5uy4ibps171gd6yGpm2Ss3smI+Ew6+9+Az6Rx3QacADbWs716NWqwAjOzRlmzZg3lcjnzOvr1qOfl7v2SLiC5WiHp5aRl97UoGa38I8DuiHhv1U+fA64Abpb0FGAVcP8i467pnHPO4d57723kJs3Mlqynp4cDBw7kHcZJ9Q69+EHgaZL2AG8AxutY73Lgl4ArJN2ZTi8gafR1fvrO4FPA5vSRpGEaNViBmdlyDQ4OFirpQ/21ekYlnQZ0RcQD9Ww4Ir5GUo4/l0z7Qy6VSnz96193HX4zy013dzdHjx5deMEczJv4Jf32PPMBmFV8Uzhbt27l8ssv59WvfjVHjhzJOxwz6yBr167l0KFDeYcxr1pFPRvSaZikaKc/nV4LDGYf2vKVSiUefvhhIoJyuczpp5+ed0hm1uZ6enoKnfQB6qmO+RVgQ9X3DcDfLbReI6fl9NUzW7lcjlWrVuVepcuTJ0/tORUJy6jOeQ5QXVB1FBioY71CKpVKHDlyhIhgfLyed9RmZgtbu3Zt5ea48OpJ/J8AbpP0NklvJWl9e0O2YTXH1q1bT14BR0ZG8g7HzFpUuVwufvFOlQUTf0S8A3gVcAA4CLwqIv4g47iabtu2bScvAoODLfEKw8wKIM8+d5Zq3sQvaX3lc0TcHhHvS6c75lqmnczMzLgoyMwWNDIy0nJJH2rf8X9e0nsk/VRahx8ASedLerWkvweuyj7E/FSKgsrlMitX1tPI2cw6RZaDoWdt3sQfESPAFPBrwIykH0v6IVAmGXpxc0T8dXPCzFepVOKRRx7xE4CZAUnxTqsmfUh7xSy64eHhmJ6ezjuMU/T397u/f7MOU/SGWbNJ2h4Rw7Pn11Orx+awZ88evwcw6yCDg4MtlfRrceJfJr8HMGt/5XKZmZmZvMNoGCf+Bqm8B3CVULP20d3d3ZLVNRdSz9CLl6WDpVe+b5D07GzDan0zMzN+CjBrYatXr+ZjH/tY2yV9qOPlrqQ7gGem/T4gqYuk/4dnNiE+oJgvdxdraGjI4wCbtYgid6m8GMt5uauoujpExAnqG7nLqlQahbkIyKzYurq62iLp11JP4v+epN+U1J1Orwe+l3Vg7apyAai8EDaz4li7di3Hjx/PO4zM1ZP4Xwv8F2APyUDpzwauzjKoTlEqlVwl1Kwg+vr62qa65kLq6aTtvoh4ZUScERFPiIhfjIj7FlpP0tmSbpK0W9JM+qRQ/fsbJYWkjcv5A9pBpUqoewg1y0e5XGbPnj15h9E09dTqeYqkqXRwdCRdJOktdWz7GHBNRDwduAx4naTBdBtnA1cC31966O2n0kOonwDMmmd8fLwta+7UUk9Rz4eBa4FHACJiJ/DKhVaKiH0RcXv6+QFgN8nQjQB/DPwOyYg1Nkt1ozAzy874+Dhbt27NO4ymqyfxr4uI22bNO7aYnUgaAC4BbpX0YmBPROxYYJ2rJU1Lmt6/f/9idtc2Ku8AXBvIrLG6urqIiI5M+lBf4r9f0gWkd+eSXg7sq3cHaZ/9nwbeQHLBuA74vYXWi4gPRcRwRAxv2rSp3t21LY8RYNYYfX19HVFzp5Z6Ev/rgA8CT5O0hySB15V9JHWTJP3JiPgMcAFwHrBD0j3AWcDtkp64+NA7U6UYyBcAs8Xr6+vrqJe486m7W+Z0MJautLy+nuVFMjbvf0TEG+ZZ5h5gOCLur7Wtdmi5m5XJyUk2b97c8XcwZgtptS6VG2G+lrvzJn5Jv11rgxHx3gV2+BzgH4C7gBPp7N+NiC9XLXMPTvwNs2XLFiYmJvIOw6xwBgcH26p3zXotpcuGDek0TFK0059OrwUWfNMYEV+LCEXERRFxcTp9edYyAwslfatfdW2g5IHLrLN1d3cTER2Z9GupNfTi9RFxPbCRpJO2ayLiGuBSkrJ5K6hSqcSJEyf8LsA6Wl9fX9v3ubNU9bzcPQeoPnpHgYFMorGGc6tg60Tr16/3S9wa6kn8nwBuk/Q2SW8FbiV5aWstpNIquFwus2rVqrzDMcvUBz7wgbxDKLR6+up5B/Aq4ABwEHhVRPxBxnFZRkqlEkeOHHGjMGtbndgFw2LVNfRiRNweEe9LpzuyDsqaozJKmF8EWzuQRLlc7tjWuIvhMXc7XOVFcLlcZsWKFXmHY7YkIyMjnDhxwnf6dXLiNyC5ABw7dozx8XE/AVhLKZfLbNu2Le8wWooTv51i69atrgpqLaNcLvsufwmc+G1ebhBmRdbT0+Okv0RO/Lag6gZhfX19eYdjRl9fHwcOHMg7jJblxG+LsmfPHjcGs1xFhBtnLZMTvy1adWOw1atX5x2OdRCPStcYTvy2ZKVSiYcffthdQlhT+EVu46zMOwBrD5XqdJOTk4yNjeUcjbWbescNsfr4jt8aqjJOsKuCWiOMjIw46WfAid8y4SEibbnGx8fdMCsjTvyWqcoFwBcBW4zx8XH3uZOhzBK/pLMl3SRpt6QZSa9P579b0rck7ZT0WUk9WcVgxVLdIMxsPoODg076Gcvyjv8YcE1EPB24DHidpEHgRuDCiLgI+A5wbYYxWAFV3gO4JpDN1tPT42ESmyCzxB8R+yLi9vTzA8BuoD8ivhIRx9LFbsHDOHasSnsAjw1gkLzIdWvc5mhKGb+kAeASktG7qv0q8LfzrHO1pGlJ0/v37884QsvbzMyM3wF0sJGREb/IbaLME7+k9cCngTdExI+r5l9HUhw0Odd6EfGhiBiOiOFNmzZlHaYVQPU7gDVr1uQdjjVJT0+Pk36TZZr4JXWTJP3JiPhM1fzNwAuBUriSrs1SKpU4fPiwB4fpAO5sLR9Z1uoR8BFgd0S8t2r+VcCbgBdHxKGs9m+trzI4TLlc5txzz807HGuglStXUi6X3dlaTpTVDbek5wD/ANwFnEhn/y7wfmA18MN03i0R8dpa2xoeHo7p6elM4rTW0tvby8GDB/MOw5bJD/rNIWl7RAzPnp9ZXz0R8TVgrtE7vpzVPq39VYoFRkdHmZqayjkaWwq/xM+fW+5aS9q2bRvlcpnTTjst71BsEdwitxic+K1llUolHnzwwZNtAdwgrLgqna056ReDE7+1jcpTgMcHLhZ3tlY8TvzWVirjA7s/oGLo6enxXX4BOfFbW6r0B1Qulzn99NPzDqcjdXV1uY5+QTnxW1srlUrcf//9RAR9fX15h9Mx+vr6OH78eN5h2Dyc+K1j7Nmzxy+Bm6Cnp8cNswrOid86TqVXUFcHbby1a9e6eKcFOPFbx6quDupioOXr6enh0CH3wtIKnPjNeLQYyOMCLM3g4KDv9FuIE79ZlZmZGVcFXaRyuexRs1qME7/ZLJWqoO5TZmEjIyOUSqW8w7BFcuI3m0dlYBgXAc3NLXJblxO/WR08NOSjenp63O9Oi3PiN6tT9RNARNDT05N3SLnwS9zW58RvtkQHDhzouBfBnfb3tisnfrNlKJVKHTE2sCTK5bJf5LaJLMfcPVvSTZJ2S5qR9Pp0/uMl3Sjp7vTf3qxiMGuG6rGB27El8ODgICdOnHDSbyNZ3vEfA66JiKcDlwGvkzQIvBmYiognA1Ppd7OWV2kJPD4+TldXezxM9/T0uI5+G8rs7IyIfRFxe/r5AWA30A+8BLghXewG4OeyisEsD1u3buX48eMtXw3U3Sq3r6bclkgaAC4BbgWeEBH7ILk4AGc0IwazPMzMzBARrF27Nu9QFqW7u9vdKrexzBO/pPXAp4E3RMSPF7He1ZKmJU3v378/uwDNmuDQoUMt0xq4p6eHo0eP5h2GZSjTxC+pmyTpT0bEZ9LZP5B0Zvr7mcB9c60bER+KiOGIGN60aVOWYZo1TaUtQFEvAO5srTNkWatHwEeA3RHx3qqfvgBsTj9vBj6fVQxmRVXEC4Bf5HaOLO/4Lwd+CbhC0p3p9ALgncCVku4Grky/m3WkygUg77GBu7u7faffQRQRecewoOHh4Ziens47DLPMjY6OMjU11dR9joyMuLO1NiVpe0QMz57fHpWNzdrEtm3bmtoOoFwuO+l3ICd+s4KpbgeQ5TuA8fFxt8btUE78ZgW2detWyuUyq1atauh2BwcH3a1yB3PiNyu4UqnEkSNHGtYSeGRkxLV3OpwTv1kLqbQEXupYAC7TN3DiN2tJBw4cODkgTL0vgt2tslWszDsAM1ue48ePMzQ0xK5du+b8fe3atRw6dKjJUVmR+Y7frA1UxgROGswn1q9fT7lcdtK3x3ADLjOzNuUGXGZmBjjxm5l1HCd+M7MO48RvZtZhnPjNzDpMS9TqkbQfuLfGIhuB+5sUTiO0UrytFCs43qw53mw1Ot5zI+IxQxi2ROJfiKTpuaosFVUrxdtKsYLjzZrjzVaz4nVRj5lZh3HiNzPrMO2S+D+UdwCL1ErxtlKs4Hiz5niz1ZR426KM38zM6tcud/xmZlYnJ34zsw5TqMQv6aOS7pP0zap5b5e0U9Kdkr4iqS+dPyDpcDr/TkkfmGebj5d0o6S70397c4q3VBXrnZJOSLp4jm2+TdKequVekGW8Vb+9UVJI2lg171pJ35X0bUn/dZ5tNvX4zhevpCslbZd0V/rvFfNssxDHt6jnb414C3n+1tpfnufvYmLN5dytjOJThAn4KeCZwDer5j2u6vNvAh9IPw9UL1djm+8C3px+fjPwh3nEO2u9/wx8b55tvg14Y7OObzr/bODvSRrJbUznDQI7gNXAecA/AyvyPr414r0E6Es/XwjsKfjxLeT5O1+8RT1/59tf3ufvImNt+rlbqDv+iPh/wH/Mmvfjqq+nAYt9G/0S4Ib08w3Azy01vtmWEe8vAH/eqDjqNVe8qT8GfodTY30J8KmIOBIR/wJ8F3jWHOs29fjOF29E3BERe9OvM8AaSasbFUs9Fnl861WI4ztL0c7fueR6/i4m1jzO3UIl/vlIeoekfwVKwO9V/XSepDskfVXSc+dZ/QkRsQ8g/feMjMOtFW/Ff6f2f5xfT4uLPtrIR/u5SHoxyR3Gjlk/9QP/WvX939J5szX1+NaIt9rLgDsi4sg8vxfh+EIBz986j29hzt8a+yvk+cvCx6Yp525LJP6IuC4izgYmgV9PZ+8DzomIS4DfBj4p6XF5xVhtnngBkPRs4FBEPKZcNTUBXABcTPI3vierOCWtA65j7ouT5piXa93fBeKtLDME/CHwa/MsUpTjW7jzt87jW5jzd4H9Fe78ZYFj08xztyUSf5VPklwRSR/hfph+3k5ShveUOdb5gaQzAdJ/72tSrFAVb5VXUuNuKSJ+EBHHI+IE8GHmfjxtlAtIyj93SLoHOAu4XdITSe6Qzq5a9ixg72O20NzjWyteJJ0FfBb45Yj457k2UJTjW9Dzt+bxTRXp/K21v8Kdv7WOTbPP3cInfklPrvr6YuBb6fxNklakn88Hngx8b45NfAHYnH7eDHw+u2jnjzf9rQv4eeBTNdY/s+rrfwPmu7Natoi4KyLOiIiBiBgg+c/yzIj4d5Lj9kpJqyWdR3J8b5tjM007vrXildQDfAm4NiK+Pt82inJ8i3j+LnA+FO78XWB/hTt/54s1l3O3EW+IGzWR3EnsAx4hOeleDXw6/QN3An8D9KfLvozkRcgO4HbgRVXb+T/AcPr5dGAKuDv99/F5xJsu/zzgljm2Ux3vJ4C70vW/AJyZZbyzfr+HqlocJI/9/wx8G/jZIhzf+eIF3gI8BNxZNZ1R1ONb1PN3gfOhcOdvrf3lef4uJtY8zl132WBm1mEKX9RjZmaN5cRvZtZhnPjNzDqME7+ZWYdx4jcz6zBO/NaWJP2JpJ+aY/7zJH0xj5hmk/RxSS9PP3dLemfaS+Q3Jd0m6WfT3+5Je27cmXbvcG7VNq6TNKNHe4R9djr/U7PalJid5MRvLUGJus5XSY8HLouko6wsY1rRwM29HTgTuDAiLgReBGyo+v1nIuIi4GaSet9I+knghSSNrC4CRnm0f5oJko7WzB7Did8KS0mf9bslbSVp5HS2pAlJ0+ld7vXzrPpy4O+qtnOVpG9J+hrw0qr5p6WdXX0j7SztJen8dZL+Mr2L/gtJt0oaTn97UNLvS7oV+ElJY+nd+Z2SPljVGvf5kv5J0u2S/krS+hp/5zrgNcBvRNo5VyTN8/9yjsX/iUc7GzsTuL9qnfvj0V4e/wEYlbSy1jG2zuTEb0X3VODPIuKSiLgXuC4ihoGLgJ+WdNEc61wObAeQtIakX5MXAc8FqvuduQ74vxHxE8DPAO+WdBqwBTiQ3kW/Hbi0ap3TSPpYfzbwQ5KeKi+PiIuB40BJyeAlbwFGI+KZwDRJR2zzeRLw/Ti1S+/5XAV8Lv38FZKL4XckbZX005WFIunP5bvAM+rYpnUYJ34runsj4paq76+QdDtwBzBEMuDGbGcC+9PPTwP+JSLujqSZerlquecDb5Z0J0kRyhrgHOA5pP3RRNIL5c6qdY6TdMsBMEJyUfhGuo0R4HzgsjSur6fzNwPnsjw3SbqPpDjnk2lsD6b7vzr9e/9C0q9UrXMf0LfM/Vob8mOgFd1DlQ9pZ1tvBH4iIg5I+jhJsp7t8Kz58/VLIuBlEfHtU2ZKc3XpW/FwRByvWv+GiLh21vovAm6MiF+osZ1q3wXOkbQhIh6YZ5mfITkWHwd+n/QJIo3lZuBmSXeRXGQ+nq6zhuRYmJ3Cd/zWSh5Hkvx+JOkJwM/Os9xukuITSHpHPU/SBen36mT898BvVBK9pEvS+V8DXpHOGyQZanAuU8DLJZ2RLvv4tMbNLcDlkp6Uzl8naa4ulwGIiEPAR4D3S1qVrnOmpLFZyx0G3gD8crqvp86quXMxyXCJFU8h6QjO7BRO/NYyIhkV6g6SZPZRYL4ubL9E0pMkEfEwSVHIl9KXu9WJ8e1AN7BTyaDYb0/nbwU2SdoJvImkqOdHc8Szi6Qs/yvpsjeS9Ji4H/gV4M/T+beQFDnV8haS4ppdaSyf49Hiqup97iPp+fF1wHrgBkm70v0MkozLSnphPJwub3YK985pbSlN8i+MiINLWHcF0B0RD6dPClPAUyLiaIPDzIyk3wJ+HBEfyTsWKx6X8Vu7uobkRe3BJay7juRlajdJOf54KyX91EGS/tvNHsN3/GZmHcZl/GZmHcaJ38yswzjxm5l1GCd+M7MO48RvZtZh/j9SjTq9FaT//gAAAABJRU5ErkJggg==\n",
"text/plain": [
"
"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"x = results['ra']\n",
"y = results['dec']\n",
"plt.plot(x, y, 'ko')\n",
"\n",
"plt.xlabel('ra (degree ICRS)')\n",
"plt.ylabel('dec (degree ICRS)');"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"The arguments to `plt.plot` are `x`, `y`, and a string that specifies the style. In this case, the letters `ko` indicate that we want a black, round marker (`k` is for black because `b` is for blue).\n",
"The functions `xlabel` and `ylabel` put labels on the axes.\n",
"\n",
"Looking at this plot, we can see that the region we selected, which is a rectangle in GD-1 coordinates, is a non-rectanglar region in ICRS coordinates.\n",
"\n",
"However, this scatter plot has a problem. It is \"[overplotted](https://python-graph-gallery.com/134-how-to-avoid-overplotting-with-python/)\", which means that there are so many overlapping points, we can't distinguish between high and low density areas.\n",
"\n",
"To fix this, we can provide optional arguments to control the size and transparency of the points."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Exercise\n",
"\n",
"In the call to `plt.plot`, use the keyword argument `markersize` to make the markers smaller.\n",
"\n",
"Then add the keyword argument `alpha` to make the markers partly transparent.\n",
"\n",
"Adjust these arguments until you think the figure shows the data most clearly.\n",
"\n",
"Note: Once you have made these changes, you might notice that the figure shows stripes with lower density of stars. These stripes are caused by the way Gaia scans the sky, which [you can read about here](https://www.cosmos.esa.int/web/gaia/scanning-law). The dataset we are using, [Gaia Data Release 2](https://www.cosmos.esa.int/web/gaia/dr2), covers 22 months of observations; during this time, some parts of the sky were scanned more than others."
]
},
{
"cell_type": "code",
"execution_count": 68,
"metadata": {
"tags": [
"hide-cell"
]
},
"outputs": [],
"source": [
"# Solution\n",
"\n",
"# x = results['ra']\n",
"# y = results['dec']\n",
"# plt.plot(x, y, 'ko', markersize=0.1, alpha=0.1)\n",
"\n",
"# plt.xlabel('ra (degree ICRS)')\n",
"# plt.ylabel('dec (degree ICRS)');"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Transform back\n",
"\n",
"Remember that we selected data from a rectangle of coordinates in the `GD1Koposov10` frame, then transformed them to ICRS when we constructed the query.\n",
"The coordinates in `results` are in ICRS.\n",
"\n",
"To plot them, we will transform them back to the `GD1Koposov10` frame; that way, the axes of the figure are aligned with the orbit of GD-1, which is useful for two reasons:\n",
"\n",
"* By transforming the coordinates, we can identify stars that are likely to be in GD-1 by selecting stars near the centerline of the stream, where $\\phi_2$ is close to 0.\n",
"\n",
"* By transforming the proper motions, we can identify stars with non-zero proper motion along the $\\phi_1$ axis.\n",
"\n",
"To do the transformation, we'll put the results into a `SkyCoord` object. In a previous lesson we created a `SkyCoord` object like this:"
]
},
{
"cell_type": "code",
"execution_count": 69,
"metadata": {},
"outputs": [],
"source": [
"from astropy.coordinates import SkyCoord\n",
"\n",
"skycoord = SkyCoord(ra=results['ra'], dec=results['dec'])"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Now we're going to do something similar, but in addition to `ra` and `dec`, we'll also include:\n",
"\n",
"* `pmra` and `pmdec`, which are proper motion in the ICRS frame, and\n",
"\n",
"* `distance` and `radial_velocity`, which we explain below."
]
},
{
"cell_type": "code",
"execution_count": 70,
"metadata": {},
"outputs": [],
"source": [
"import astropy.units as u\n",
"\n",
"distance = 8 * u.kpc\n",
"radial_velocity= 0 * u.km/u.s\n",
"\n",
"skycoord = SkyCoord(ra=results['ra'], \n",
" dec=results['dec'],\n",
" pm_ra_cosdec=results['pmra'],\n",
" pm_dec=results['pmdec'], \n",
" distance=distance, \n",
" radial_velocity=radial_velocity)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"For the first four arguments, we use columns from `results`.\n",
"\n",
"For `distance` and `radial_velocity` we use constants, which we explain below.\n",
"\n",
"The result is an Astropy `SkyCoord` object, which we can transform to the GD-1 frame."
]
},
{
"cell_type": "code",
"execution_count": 71,
"metadata": {},
"outputs": [],
"source": [
"from gala.coordinates import GD1Koposov10\n",
"\n",
"gd1_frame = GD1Koposov10()\n",
"transformed = skycoord.transform_to(gd1_frame)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"The result is another `SkyCoord` object, now in the `GD1Koposov10` frame."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Reflex Correction\n",
"\n",
"The next step is to correct the proper motion measurements for the effect of the motion of our solar system around the Galactic center.\n",
"\n",
"When we created `skycoord`, we provided constant values for `distance` and `radial_velocity` rather than measurements from Gaia.\n",
"\n",
"That might seem like a strange thing to do, but here's the motivation:\n",
"\n",
"* Because the stars in GD-1 are so far away, the distance estimates we get from Gaia, which are based on parallax, are not very precise. So we replace them with our current best estimate of the mean distance to GD-1, about 8 kpc. See [Koposov, Rix, and Hogg, 2010](https://ui.adsabs.harvard.edu/abs/2010ApJ...712..260K/abstract).\n",
"\n",
"* For the other stars in the table, this distance estimate will be inaccurate, so reflex correction will not be correct. But that should have only a small effect on our ability to identify stars with the proper motion we expect for GD-1.\n",
"\n",
"* The measurement of radial velocity has no effect on the correction for proper motion, but we have to provide a value to avoid errors in the reflex correction calculation. So we provide `0` as an arbitrary place-keeper."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"With this preparation, we can use `reflex_correct` from Gala ([documentation here](https://gala-astro.readthedocs.io/en/latest/api/gala.coordinates.reflex_correct.html)) to correct for the motion of the solar system."
]
},
{
"cell_type": "code",
"execution_count": 72,
"metadata": {},
"outputs": [],
"source": [
"from gala.coordinates import reflex_correct\n",
"\n",
"skycoord_gd1 = reflex_correct(transformed)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"The result is a `SkyCoord` object that contains \n",
"\n",
"* `phi1` and `phi2`, which represent the transformed coordinates in the `GD1Koposov10` frame.\n",
"\n",
"* `pm_phi1_cosphi2` and `pm_phi2`, which represent the transformed and corrected proper motions.\n",
"\n",
"We can select the coordinates and plot them like this:"
]
},
{
"cell_type": "code",
"execution_count": 73,
"metadata": {
"scrolled": true
},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"
"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"x = skycoord_gd1.phi1\n",
"y = skycoord_gd1.phi2\n",
"plt.plot(x, y, 'ko', markersize=0.1, alpha=0.1)\n",
"\n",
"plt.xlabel('phi1 (degree GD1)')\n",
"plt.ylabel('phi2 (degree GD1)');"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Remember that we started with a rectangle in the GD-1 frame. When transformed to the ICRS frame, it's a non-rectangular region. Now, transformed back to the GD-1 frame, it's a rectangle again."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Pandas DataFrame\n",
"\n",
"At this point we have two objects containing different subsets of the data. `results` is the Astropy `Table` we downloaded from Gaia."
]
},
{
"cell_type": "code",
"execution_count": 74,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"astropy.table.table.Table"
]
},
"execution_count": 74,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"type(results)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"And `skycoord_gd1` is a `SkyCoord` object that contains the transformed coordinates and proper motions."
]
},
{
"cell_type": "code",
"execution_count": 75,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"astropy.coordinates.sky_coordinate.SkyCoord"
]
},
"execution_count": 75,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"type(skycoord_gd1)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"On one hand, this division of labor makes sense because each object provides different capabilities. But working with multiple object types can be awkward.\n",
"\n",
"It will be more convenient to choose one object and get all of the data into it. We'll choose a Pandas `DataFrame`, for two reasons:\n",
"\n",
"1. It provides capabilities that (almost) a superset of the other data structures, so it's the all-in-one solution.\n",
"\n",
"2. Pandas is a general-purpose tool that is useful in many domains, especially data science. If you are going to develop expertise in one tool, Pandas is a good choice.\n",
"\n",
"However, compared to an Astropy `Table`, Pandas has one big drawback: it does not keep the metadata associated with the table, including the units for the columns.\n",
"\n",
"It's easy to convert a `Table` to a Pandas `DataFrame`."
]
},
{
"cell_type": "code",
"execution_count": 76,
"metadata": {},
"outputs": [],
"source": [
"import pandas as pd\n",
"\n",
"results_df = results.to_pandas()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"`DataFrame` provides `shape`, which shows the number of rows and columns."
]
},
{
"cell_type": "code",
"execution_count": 77,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"(140339, 6)"
]
},
"execution_count": 77,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"results_df.shape"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"It also provides `head`, which displays the first few rows. `head` is useful for spot-checking large results as you go along."
]
},
{
"cell_type": "code",
"execution_count": 78,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"
\n",
"\n",
"
\n",
" \n",
"
\n",
"
\n",
"
source_id
\n",
"
ra
\n",
"
dec
\n",
"
pmra
\n",
"
pmdec
\n",
"
parallax
\n",
"
\n",
" \n",
" \n",
"
\n",
"
0
\n",
"
637987125186749568
\n",
"
142.483019
\n",
"
21.757716
\n",
"
-2.516838
\n",
"
2.941813
\n",
"
-0.257345
\n",
"
\n",
"
\n",
"
1
\n",
"
638285195917112960
\n",
"
142.254529
\n",
"
22.476168
\n",
"
2.662702
\n",
"
-12.165984
\n",
"
0.422728
\n",
"
\n",
"
\n",
"
2
\n",
"
638073505568978688
\n",
"
142.645286
\n",
"
22.166932
\n",
"
18.306747
\n",
"
-7.950660
\n",
"
0.103640
\n",
"
\n",
"
\n",
"
3
\n",
"
638086386175786752
\n",
"
142.577394
\n",
"
22.227920
\n",
"
0.987786
\n",
"
-2.584105
\n",
"
-0.857327
\n",
"
\n",
"
\n",
"
4
\n",
"
638049655615392384
\n",
"
142.589136
\n",
"
22.110783
\n",
"
0.244439
\n",
"
-4.941079
\n",
"
0.099625
\n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" source_id ra dec pmra pmdec parallax\n",
"0 637987125186749568 142.483019 21.757716 -2.516838 2.941813 -0.257345\n",
"1 638285195917112960 142.254529 22.476168 2.662702 -12.165984 0.422728\n",
"2 638073505568978688 142.645286 22.166932 18.306747 -7.950660 0.103640\n",
"3 638086386175786752 142.577394 22.227920 0.987786 -2.584105 -0.857327\n",
"4 638049655615392384 142.589136 22.110783 0.244439 -4.941079 0.099625"
]
},
"execution_count": 78,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"results_df.head()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"**Python detail:** `shape` is an attribute, so we display its value without calling it as a function; `head` is a function, so we need the parentheses."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Now we can extract the columns we want from `skycoord_gd1` and add them as columns in the `DataFrame`. `phi1` and `phi2` contain the transformed coordinates."
]
},
{
"cell_type": "code",
"execution_count": 79,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"(140339, 8)"
]
},
"execution_count": 79,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"results_df['phi1'] = skycoord_gd1.phi1\n",
"results_df['phi2'] = skycoord_gd1.phi2\n",
"results_df.shape"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"`pm_phi1_cosphi2` and `pm_phi2` contain the components of proper motion in the transformed frame."
]
},
{
"cell_type": "code",
"execution_count": 80,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"(140339, 10)"
]
},
"execution_count": 80,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"results_df['pm_phi1'] = skycoord_gd1.pm_phi1_cosphi2\n",
"results_df['pm_phi2'] = skycoord_gd1.pm_phi2\n",
"results_df.shape"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"**Detail:** If you notice that `SkyCoord` has an attribute called `proper_motion`, you might wonder why we are not using it.\n",
"\n",
"We could have: `proper_motion` contains the same data as `pm_phi1_cosphi2` and `pm_phi2`, but in a different format."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Exploring data\n",
"\n",
"One benefit of using Pandas is that it provides functions for exploring the data and checking for problems.\n",
"One of the most useful of these functions is `describe`, which computes summary statistics for each column."
]
},
{
"cell_type": "code",
"execution_count": 81,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"
\n",
"\n",
"
\n",
" \n",
"
\n",
"
\n",
"
source_id
\n",
"
ra
\n",
"
dec
\n",
"
pmra
\n",
"
pmdec
\n",
"
parallax
\n",
"
phi1
\n",
"
phi2
\n",
"
pm_phi1
\n",
"
pm_phi2
\n",
"
\n",
" \n",
" \n",
"
\n",
"
count
\n",
"
1.403390e+05
\n",
"
140339.000000
\n",
"
140339.000000
\n",
"
140339.000000
\n",
"
140339.000000
\n",
"
140339.000000
\n",
"
140339.000000
\n",
"
140339.000000
\n",
"
140339.000000
\n",
"
140339.000000
\n",
"
\n",
"
\n",
"
mean
\n",
"
6.792399e+17
\n",
"
143.823122
\n",
"
26.780285
\n",
"
-2.484404
\n",
"
-6.100777
\n",
"
0.179492
\n",
"
-50.091158
\n",
"
-1.803301
\n",
"
-0.868963
\n",
"
1.409208
\n",
"
\n",
"
\n",
"
std
\n",
"
3.792177e+16
\n",
"
3.697850
\n",
"
3.052592
\n",
"
5.913939
\n",
"
7.202047
\n",
"
0.759590
\n",
"
2.892344
\n",
"
3.444398
\n",
"
6.657714
\n",
"
6.518615
\n",
"
\n",
"
\n",
"
min
\n",
"
6.214900e+17
\n",
"
135.425699
\n",
"
19.286617
\n",
"
-106.755260
\n",
"
-138.065163
\n",
"
-15.287602
\n",
"
-54.999989
\n",
"
-8.029159
\n",
"
-115.275637
\n",
"
-161.150142
\n",
"
\n",
"
\n",
"
25%
\n",
"
6.443517e+17
\n",
"
140.967966
\n",
"
24.592490
\n",
"
-5.038789
\n",
"
-8.341561
\n",
"
-0.035981
\n",
"
-52.602952
\n",
"
-4.750426
\n",
"
-2.948723
\n",
"
-1.107128
\n",
"
\n",
"
\n",
"
50%
\n",
"
6.888060e+17
\n",
"
143.734409
\n",
"
26.746261
\n",
"
-1.834943
\n",
"
-4.689596
\n",
"
0.362708
\n",
"
-50.147362
\n",
"
-1.671502
\n",
"
0.585037
\n",
"
1.987149
\n",
"
\n",
"
\n",
"
75%
\n",
"
6.976579e+17
\n",
"
146.607350
\n",
"
28.990500
\n",
"
0.452893
\n",
"
-1.937809
\n",
"
0.657637
\n",
"
-47.593279
\n",
"
1.160514
\n",
"
3.001768
\n",
"
4.628965
\n",
"
\n",
"
\n",
"
max
\n",
"
7.974418e+17
\n",
"
152.777393
\n",
"
34.285481
\n",
"
104.319923
\n",
"
20.981070
\n",
"
0.999957
\n",
"
-44.999985
\n",
"
4.014609
\n",
"
39.802471
\n",
"
79.275199
\n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" source_id ra dec pmra \\\n",
"count 1.403390e+05 140339.000000 140339.000000 140339.000000 \n",
"mean 6.792399e+17 143.823122 26.780285 -2.484404 \n",
"std 3.792177e+16 3.697850 3.052592 5.913939 \n",
"min 6.214900e+17 135.425699 19.286617 -106.755260 \n",
"25% 6.443517e+17 140.967966 24.592490 -5.038789 \n",
"50% 6.888060e+17 143.734409 26.746261 -1.834943 \n",
"75% 6.976579e+17 146.607350 28.990500 0.452893 \n",
"max 7.974418e+17 152.777393 34.285481 104.319923 \n",
"\n",
" pmdec parallax phi1 phi2 \\\n",
"count 140339.000000 140339.000000 140339.000000 140339.000000 \n",
"mean -6.100777 0.179492 -50.091158 -1.803301 \n",
"std 7.202047 0.759590 2.892344 3.444398 \n",
"min -138.065163 -15.287602 -54.999989 -8.029159 \n",
"25% -8.341561 -0.035981 -52.602952 -4.750426 \n",
"50% -4.689596 0.362708 -50.147362 -1.671502 \n",
"75% -1.937809 0.657637 -47.593279 1.160514 \n",
"max 20.981070 0.999957 -44.999985 4.014609 \n",
"\n",
" pm_phi1 pm_phi2 \n",
"count 140339.000000 140339.000000 \n",
"mean -0.868963 1.409208 \n",
"std 6.657714 6.518615 \n",
"min -115.275637 -161.150142 \n",
"25% -2.948723 -1.107128 \n",
"50% 0.585037 1.987149 \n",
"75% 3.001768 4.628965 \n",
"max 39.802471 79.275199 "
]
},
"execution_count": 81,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"results_df.describe()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Exercise\n",
"\n",
"Review the summary statistics in this table.\n",
"\n",
"* Do the values make sense based on what you know about the context?\n",
"\n",
"* Do you see any values that seem problematic, or evidence of other data issues?"
]
},
{
"cell_type": "code",
"execution_count": 82,
"metadata": {
"tags": [
"hide-cell"
]
},
"outputs": [],
"source": [
"# Solution\n",
"\n",
"# The most noticeable issue is that some of the\n",
"# parallax values are negative, which is non-physical.\n",
"\n",
"# The reason is that parallax measurements are less accurate\n",
"# for stars that are far away.\n",
"\n",
"# Fortunately, we don't use the parallax measurements in\n",
"# the analysis (one of the reasons we used constant distance\n",
"# for reflex correction).\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Plot proper motion\n",
"\n",
"Now we are ready to replicate one of the panels in Figure 1 of the Price-Whelan and Bonaca paper, the one that shows components of proper motion as a scatter plot:\n",
"\n",
""
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"In this figure, the shaded area identifies stars that are likely to be in GD-1 because:\n",
"\n",
"* Due to the nature of tidal streams, we expect the proper motion for stars in GD-1 to be along the axis of the stream; that is, we expect motion in the direction of `phi2` to be near 0.\n",
"\n",
"* In the direction of `phi1`, we don't have a prior expectation for proper motion, except that it should form a cluster at a non-zero value.\n",
"\n",
"By plotting proper motion in the GD-1 frame, we hope to find this cluster.\n",
"Then we will use the bounds of the cluster to select stars that are more likely to be in GD-1. \n",
"\n",
"The following figure is a scatter plot of proper motion, in the GD-1 frame, for the stars in `results_df`."
]
},
{
"cell_type": "code",
"execution_count": 83,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"