diff --git a/soln/03_motion.ipynb b/soln/03_motion.ipynb
index 537298c..da44587 100644
--- a/soln/03_motion.ipynb
+++ b/soln/03_motion.ipynb
@@ -103,7 +103,7 @@
},
{
"cell_type": "code",
- "execution_count": 1,
+ "execution_count": 55,
"metadata": {
"tags": [
"remove-cell"
@@ -117,7 +117,7 @@
"IN_COLAB = 'google.colab' in sys.modules\n",
"\n",
"if IN_COLAB:\n",
- " !pip install astroquery astro-gala wget"
+ " !pip install astroquery astro-gala"
]
},
{
@@ -135,7 +135,7 @@
},
{
"cell_type": "code",
- "execution_count": 1,
+ "execution_count": 56,
"metadata": {},
"outputs": [],
"source": [
@@ -161,7 +161,7 @@
},
{
"cell_type": "code",
- "execution_count": 2,
+ "execution_count": 57,
"metadata": {},
"outputs": [],
"source": [
@@ -182,7 +182,7 @@
},
{
"cell_type": "code",
- "execution_count": 3,
+ "execution_count": 58,
"metadata": {},
"outputs": [
{
@@ -195,10 +195,11 @@
" 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"
+ " pmdec float64 mas / yr Proper motion in declination direction\n",
+ " parallax float64 mas Parallax"
]
},
- "execution_count": 3,
+ "execution_count": 58,
"metadata": {},
"output_type": "execute_result"
}
@@ -220,16 +221,16 @@
},
{
"cell_type": "code",
- "execution_count": 4,
+ "execution_count": 59,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
- "['source_id', 'ra', 'dec', 'pmra', 'pmdec']"
+ "['source_id', 'ra', 'dec', 'pmra', 'pmdec', 'parallax']"
]
},
- "execution_count": 4,
+ "execution_count": 59,
"metadata": {},
"output_type": "execute_result"
}
@@ -247,7 +248,7 @@
},
{
"cell_type": "code",
- "execution_count": 5,
+ "execution_count": 60,
"metadata": {},
"outputs": [
{
@@ -311,7 +312,7 @@
" 143.7702681295401"
]
},
- "execution_count": 5,
+ "execution_count": 60,
"metadata": {},
"output_type": "execute_result"
}
@@ -329,7 +330,7 @@
},
{
"cell_type": "code",
- "execution_count": 6,
+ "execution_count": 61,
"metadata": {},
"outputs": [
{
@@ -338,7 +339,7 @@
"astropy.table.column.Column"
]
},
- "execution_count": 6,
+ "execution_count": 61,
"metadata": {},
"output_type": "execute_result"
}
@@ -356,30 +357,30 @@
},
{
"cell_type": "code",
- "execution_count": 7,
+ "execution_count": 62,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"Row index=0\n",
- "
\n",
- "| source_id | ra | dec | pmra | pmdec |
\n",
- " | deg | deg | mas / yr | mas / yr |
\n",
- "| int64 | float64 | float64 | float64 | float64 |
\n",
- "| 637987125186749568 | 142.48301935991023 | 21.75771616932985 | -2.5168384683875766 | 2.941813096629439 |
\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 \n",
- " deg deg mas / yr mas / yr \n",
- " int64 float64 float64 float64 float64 \n",
- "------------------ ------------------ ----------------- ------------------- -----------------\n",
- "637987125186749568 142.48301935991023 21.75771616932985 -2.5168384683875766 2.941813096629439"
+ " 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": 7,
+ "execution_count": 62,
"metadata": {},
"output_type": "execute_result"
}
@@ -397,7 +398,7 @@
},
{
"cell_type": "code",
- "execution_count": 8,
+ "execution_count": 63,
"metadata": {},
"outputs": [
{
@@ -406,7 +407,7 @@
"astropy.table.row.Row"
]
},
- "execution_count": 8,
+ "execution_count": 63,
"metadata": {},
"output_type": "execute_result"
}
@@ -427,7 +428,7 @@
},
{
"cell_type": "code",
- "execution_count": 9,
+ "execution_count": 64,
"metadata": {},
"outputs": [
{
@@ -436,7 +437,7 @@
"142.48301935991023"
]
},
- "execution_count": 9,
+ "execution_count": 64,
"metadata": {},
"output_type": "execute_result"
}
@@ -454,7 +455,7 @@
},
{
"cell_type": "code",
- "execution_count": 10,
+ "execution_count": 65,
"metadata": {},
"outputs": [
{
@@ -463,7 +464,7 @@
"142.48301935991023"
]
},
- "execution_count": 10,
+ "execution_count": 65,
"metadata": {},
"output_type": "execute_result"
}
@@ -493,7 +494,7 @@
},
{
"cell_type": "code",
- "execution_count": 11,
+ "execution_count": 66,
"metadata": {},
"outputs": [],
"source": [
@@ -533,7 +534,7 @@
},
{
"cell_type": "code",
- "execution_count": 12,
+ "execution_count": 67,
"metadata": {},
"outputs": [
{
@@ -589,7 +590,7 @@
},
{
"cell_type": "code",
- "execution_count": 13,
+ "execution_count": 68,
"metadata": {
"tags": [
"hide-cell"
@@ -627,7 +628,7 @@
},
{
"cell_type": "code",
- "execution_count": 14,
+ "execution_count": 69,
"metadata": {},
"outputs": [],
"source": [
@@ -649,7 +650,7 @@
},
{
"cell_type": "code",
- "execution_count": 15,
+ "execution_count": 70,
"metadata": {},
"outputs": [],
"source": [
@@ -679,7 +680,7 @@
},
{
"cell_type": "code",
- "execution_count": 16,
+ "execution_count": 71,
"metadata": {},
"outputs": [],
"source": [
@@ -724,7 +725,7 @@
},
{
"cell_type": "code",
- "execution_count": 17,
+ "execution_count": 72,
"metadata": {},
"outputs": [],
"source": [
@@ -748,7 +749,7 @@
},
{
"cell_type": "code",
- "execution_count": 18,
+ "execution_count": 73,
"metadata": {
"scrolled": true
},
@@ -793,7 +794,7 @@
},
{
"cell_type": "code",
- "execution_count": 19,
+ "execution_count": 74,
"metadata": {},
"outputs": [
{
@@ -802,7 +803,7 @@
"astropy.table.table.Table"
]
},
- "execution_count": 19,
+ "execution_count": 74,
"metadata": {},
"output_type": "execute_result"
}
@@ -820,7 +821,7 @@
},
{
"cell_type": "code",
- "execution_count": 20,
+ "execution_count": 75,
"metadata": {},
"outputs": [
{
@@ -829,7 +830,7 @@
"astropy.coordinates.sky_coordinate.SkyCoord"
]
},
- "execution_count": 20,
+ "execution_count": 75,
"metadata": {},
"output_type": "execute_result"
}
@@ -857,7 +858,7 @@
},
{
"cell_type": "code",
- "execution_count": 22,
+ "execution_count": 76,
"metadata": {},
"outputs": [],
"source": [
@@ -875,16 +876,16 @@
},
{
"cell_type": "code",
- "execution_count": 23,
+ "execution_count": 77,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
- "(140339, 5)"
+ "(140339, 6)"
]
},
- "execution_count": 23,
+ "execution_count": 77,
"metadata": {},
"output_type": "execute_result"
}
@@ -902,7 +903,7 @@
},
{
"cell_type": "code",
- "execution_count": 24,
+ "execution_count": 78,
"metadata": {},
"outputs": [
{
@@ -931,6 +932,7 @@
" | dec | \n",
" pmra | \n",
" pmdec | \n",
+ " parallax | \n",
" \n",
" \n",
" \n",
@@ -941,6 +943,7 @@
" 21.757716 | \n",
" -2.516838 | \n",
" 2.941813 | \n",
+ " -0.257345 | \n",
" \n",
" \n",
" | 1 | \n",
@@ -949,6 +952,7 @@
" 22.476168 | \n",
" 2.662702 | \n",
" -12.165984 | \n",
+ " 0.422728 | \n",
"
\n",
" \n",
" | 2 | \n",
@@ -957,6 +961,7 @@
" 22.166932 | \n",
" 18.306747 | \n",
" -7.950660 | \n",
+ " 0.103640 | \n",
"
\n",
" \n",
" | 3 | \n",
@@ -965,6 +970,7 @@
" 22.227920 | \n",
" 0.987786 | \n",
" -2.584105 | \n",
+ " -0.857327 | \n",
"
\n",
" \n",
" | 4 | \n",
@@ -973,21 +979,22 @@
" 22.110783 | \n",
" 0.244439 | \n",
" -4.941079 | \n",
+ " 0.099625 | \n",
"
\n",
" \n",
"
\n",
""
],
"text/plain": [
- " source_id ra dec pmra pmdec\n",
- "0 637987125186749568 142.483019 21.757716 -2.516838 2.941813\n",
- "1 638285195917112960 142.254529 22.476168 2.662702 -12.165984\n",
- "2 638073505568978688 142.645286 22.166932 18.306747 -7.950660\n",
- "3 638086386175786752 142.577394 22.227920 0.987786 -2.584105\n",
- "4 638049655615392384 142.589136 22.110783 0.244439 -4.941079"
+ " 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": 24,
+ "execution_count": 78,
"metadata": {},
"output_type": "execute_result"
}
@@ -1012,16 +1019,16 @@
},
{
"cell_type": "code",
- "execution_count": 25,
+ "execution_count": 79,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
- "(140339, 7)"
+ "(140339, 8)"
]
},
- "execution_count": 25,
+ "execution_count": 79,
"metadata": {},
"output_type": "execute_result"
}
@@ -1041,16 +1048,16 @@
},
{
"cell_type": "code",
- "execution_count": 26,
+ "execution_count": 80,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
- "(140339, 9)"
+ "(140339, 10)"
]
},
- "execution_count": 26,
+ "execution_count": 80,
"metadata": {},
"output_type": "execute_result"
}
@@ -1082,7 +1089,7 @@
},
{
"cell_type": "code",
- "execution_count": 27,
+ "execution_count": 81,
"metadata": {},
"outputs": [
{
@@ -1111,6 +1118,7 @@
" dec | \n",
" pmra | \n",
" pmdec | \n",
+ " parallax | \n",
" phi1 | \n",
" phi2 | \n",
" pm_phi1 | \n",
@@ -1129,6 +1137,7 @@
" 140339.000000 | \n",
" 140339.000000 | \n",
" 140339.000000 | \n",
+ " 140339.000000 | \n",
" \n",
" \n",
" | mean | \n",
@@ -1137,6 +1146,7 @@
" 26.780285 | \n",
" -2.484404 | \n",
" -6.100777 | \n",
+ " 0.179492 | \n",
" -50.091158 | \n",
" -1.803301 | \n",
" -0.868963 | \n",
@@ -1149,6 +1159,7 @@
" 3.052592 | \n",
" 5.913939 | \n",
" 7.202047 | \n",
+ " 0.759590 | \n",
" 2.892344 | \n",
" 3.444398 | \n",
" 6.657714 | \n",
@@ -1161,6 +1172,7 @@
" 19.286617 | \n",
" -106.755260 | \n",
" -138.065163 | \n",
+ " -15.287602 | \n",
" -54.999989 | \n",
" -8.029159 | \n",
" -115.275637 | \n",
@@ -1173,6 +1185,7 @@
" 24.592490 | \n",
" -5.038789 | \n",
" -8.341561 | \n",
+ " -0.035981 | \n",
" -52.602952 | \n",
" -4.750426 | \n",
" -2.948723 | \n",
@@ -1185,6 +1198,7 @@
" 26.746261 | \n",
" -1.834943 | \n",
" -4.689596 | \n",
+ " 0.362708 | \n",
" -50.147362 | \n",
" -1.671502 | \n",
" 0.585037 | \n",
@@ -1197,6 +1211,7 @@
" 28.990500 | \n",
" 0.452893 | \n",
" -1.937809 | \n",
+ " 0.657637 | \n",
" -47.593279 | \n",
" 1.160514 | \n",
" 3.001768 | \n",
@@ -1209,6 +1224,7 @@
" 34.285481 | \n",
" 104.319923 | \n",
" 20.981070 | \n",
+ " 0.999957 | \n",
" -44.999985 | \n",
" 4.014609 | \n",
" 39.802471 | \n",
@@ -1229,28 +1245,28 @@
"75% 6.976579e+17 146.607350 28.990500 0.452893 \n",
"max 7.974418e+17 152.777393 34.285481 104.319923 \n",
"\n",
- " pmdec phi1 phi2 pm_phi1 \\\n",
+ " pmdec parallax phi1 phi2 \\\n",
"count 140339.000000 140339.000000 140339.000000 140339.000000 \n",
- "mean -6.100777 -50.091158 -1.803301 -0.868963 \n",
- "std 7.202047 2.892344 3.444398 6.657714 \n",
- "min -138.065163 -54.999989 -8.029159 -115.275637 \n",
- "25% -8.341561 -52.602952 -4.750426 -2.948723 \n",
- "50% -4.689596 -50.147362 -1.671502 0.585037 \n",
- "75% -1.937809 -47.593279 1.160514 3.001768 \n",
- "max 20.981070 -44.999985 4.014609 39.802471 \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_phi2 \n",
- "count 140339.000000 \n",
- "mean 1.409208 \n",
- "std 6.518615 \n",
- "min -161.150142 \n",
- "25% -1.107128 \n",
- "50% 1.987149 \n",
- "75% 4.628965 \n",
- "max 79.275199 "
+ " 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": 27,
+ "execution_count": 81,
"metadata": {},
"output_type": "execute_result"
}
@@ -1274,7 +1290,7 @@
},
{
"cell_type": "code",
- "execution_count": 40,
+ "execution_count": 82,
"metadata": {
"tags": [
"hide-cell"
@@ -1324,7 +1340,7 @@
},
{
"cell_type": "code",
- "execution_count": 28,
+ "execution_count": 83,
"metadata": {},
"outputs": [
{
@@ -1359,7 +1375,7 @@
},
{
"cell_type": "code",
- "execution_count": 29,
+ "execution_count": 84,
"metadata": {},
"outputs": [
{
@@ -1414,7 +1430,7 @@
},
{
"cell_type": "code",
- "execution_count": 31,
+ "execution_count": 85,
"metadata": {},
"outputs": [
{
@@ -1423,7 +1439,7 @@
"pandas.core.series.Series"
]
},
- "execution_count": 31,
+ "execution_count": 85,
"metadata": {},
"output_type": "execute_result"
}
@@ -1444,7 +1460,7 @@
},
{
"cell_type": "code",
- "execution_count": 32,
+ "execution_count": 86,
"metadata": {},
"outputs": [
{
@@ -1453,7 +1469,7 @@
"pandas.core.series.Series"
]
},
- "execution_count": 32,
+ "execution_count": 86,
"metadata": {},
"output_type": "execute_result"
}
@@ -1475,7 +1491,7 @@
},
{
"cell_type": "code",
- "execution_count": 33,
+ "execution_count": 87,
"metadata": {},
"outputs": [
{
@@ -1489,7 +1505,7 @@
"Name: phi2, dtype: bool"
]
},
- "execution_count": 33,
+ "execution_count": 87,
"metadata": {},
"output_type": "execute_result"
}
@@ -1508,7 +1524,7 @@
},
{
"cell_type": "code",
- "execution_count": 34,
+ "execution_count": 88,
"metadata": {},
"outputs": [],
"source": [
@@ -1533,7 +1549,7 @@
},
{
"cell_type": "code",
- "execution_count": 35,
+ "execution_count": 89,
"metadata": {},
"outputs": [
{
@@ -1542,7 +1558,7 @@
"25084"
]
},
- "execution_count": 35,
+ "execution_count": 89,
"metadata": {},
"output_type": "execute_result"
}
@@ -1560,7 +1576,7 @@
},
{
"cell_type": "code",
- "execution_count": 36,
+ "execution_count": 90,
"metadata": {},
"outputs": [
{
@@ -1569,7 +1585,7 @@
"pandas.core.frame.DataFrame"
]
},
- "execution_count": 36,
+ "execution_count": 90,
"metadata": {},
"output_type": "execute_result"
}
@@ -1591,7 +1607,7 @@
},
{
"cell_type": "code",
- "execution_count": 37,
+ "execution_count": 91,
"metadata": {},
"outputs": [
{
@@ -1600,7 +1616,7 @@
"25084"
]
},
- "execution_count": 37,
+ "execution_count": 91,
"metadata": {},
"output_type": "execute_result"
}
@@ -1618,7 +1634,7 @@
},
{
"cell_type": "code",
- "execution_count": 53,
+ "execution_count": 92,
"metadata": {},
"outputs": [
{
@@ -1627,7 +1643,7 @@
"0.1787386257562046"
]
},
- "execution_count": 53,
+ "execution_count": 92,
"metadata": {},
"output_type": "execute_result"
}
@@ -1654,7 +1670,7 @@
},
{
"cell_type": "code",
- "execution_count": 38,
+ "execution_count": 93,
"metadata": {},
"outputs": [],
"source": [
@@ -1683,7 +1699,7 @@
},
{
"cell_type": "code",
- "execution_count": 39,
+ "execution_count": 94,
"metadata": {},
"outputs": [
{
@@ -1733,7 +1749,7 @@
},
{
"cell_type": "code",
- "execution_count": 40,
+ "execution_count": 95,
"metadata": {},
"outputs": [],
"source": [
@@ -1752,7 +1768,7 @@
},
{
"cell_type": "code",
- "execution_count": 41,
+ "execution_count": 96,
"metadata": {},
"outputs": [],
"source": [
@@ -1765,7 +1781,7 @@
},
{
"cell_type": "code",
- "execution_count": 42,
+ "execution_count": 97,
"metadata": {},
"outputs": [],
"source": [
@@ -1782,7 +1798,7 @@
},
{
"cell_type": "code",
- "execution_count": 43,
+ "execution_count": 98,
"metadata": {},
"outputs": [
{
@@ -1814,7 +1830,7 @@
},
{
"cell_type": "code",
- "execution_count": 44,
+ "execution_count": 99,
"metadata": {},
"outputs": [],
"source": [
@@ -1832,7 +1848,7 @@
},
{
"cell_type": "code",
- "execution_count": 45,
+ "execution_count": 100,
"metadata": {},
"outputs": [],
"source": [
@@ -1852,7 +1868,7 @@
},
{
"cell_type": "code",
- "execution_count": 46,
+ "execution_count": 101,
"metadata": {},
"outputs": [
{
@@ -1861,7 +1877,7 @@
"1049"
]
},
- "execution_count": 46,
+ "execution_count": 101,
"metadata": {},
"output_type": "execute_result"
}
@@ -1879,7 +1895,7 @@
},
{
"cell_type": "code",
- "execution_count": 47,
+ "execution_count": 102,
"metadata": {},
"outputs": [
{
@@ -1888,7 +1904,7 @@
"1049"
]
},
- "execution_count": 47,
+ "execution_count": 102,
"metadata": {},
"output_type": "execute_result"
}
@@ -1907,7 +1923,7 @@
},
{
"cell_type": "code",
- "execution_count": 48,
+ "execution_count": 103,
"metadata": {},
"outputs": [
{
@@ -1952,7 +1968,7 @@
},
{
"cell_type": "code",
- "execution_count": 49,
+ "execution_count": 104,
"metadata": {},
"outputs": [
{
@@ -1961,7 +1977,7 @@
"astropy.table.table.Table"
]
},
- "execution_count": 49,
+ "execution_count": 104,
"metadata": {},
"output_type": "execute_result"
}
@@ -2004,7 +2020,7 @@
},
{
"cell_type": "code",
- "execution_count": 50,
+ "execution_count": 105,
"metadata": {},
"outputs": [],
"source": [
@@ -2037,7 +2053,7 @@
},
{
"cell_type": "code",
- "execution_count": 51,
+ "execution_count": 106,
"metadata": {
"tags": [
"hide-cell"
@@ -2059,16 +2075,16 @@
},
{
"cell_type": "code",
- "execution_count": 56,
+ "execution_count": 107,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
- "2.0090408325195312"
+ "2.2084197998046875"
]
},
- "execution_count": 56,
+ "execution_count": 107,
"metadata": {},
"output_type": "execute_result"
}
@@ -2089,7 +2105,7 @@
},
{
"cell_type": "code",
- "execution_count": 53,
+ "execution_count": 108,
"metadata": {},
"outputs": [
{
diff --git a/soln/04_select.ipynb b/soln/04_select.ipynb
index 5507820..a29734a 100644
--- a/soln/04_select.ipynb
+++ b/soln/04_select.ipynb
@@ -93,7 +93,7 @@
},
{
"cell_type": "code",
- "execution_count": 1,
+ "execution_count": 37,
"metadata": {
"tags": [
"remove-cell"
@@ -107,7 +107,7 @@
"IN_COLAB = 'google.colab' in sys.modules\n",
"\n",
"if IN_COLAB:\n",
- " !pip install astroquery astro-gala wget"
+ " !pip install astroquery astro-gala"
]
},
{
@@ -116,12 +116,12 @@
"source": [
"## Reload the data\n",
"\n",
- "The following cells download the data from the previous lesson, if necessary, and load it into a Pandas `DataFrame`."
+ "You can [download the data from the previous lesson](https://github.com/AllenDowney/AstronomicalData/raw/main/data/gd1_data.hdf) or run the following cell, which downloads it if necessary."
]
},
{
"cell_type": "code",
- "execution_count": 2,
+ "execution_count": 38,
"metadata": {},
"outputs": [],
"source": [
@@ -138,9 +138,16 @@
" 'data/gd1_data.hdf')"
]
},
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "Now we can reload `centerline_df` and `selected_df`."
+ ]
+ },
{
"cell_type": "code",
- "execution_count": 3,
+ "execution_count": 39,
"metadata": {},
"outputs": [],
"source": [
@@ -178,7 +185,7 @@
},
{
"cell_type": "code",
- "execution_count": 4,
+ "execution_count": 40,
"metadata": {},
"outputs": [],
"source": [
@@ -190,7 +197,7 @@
},
{
"cell_type": "code",
- "execution_count": 5,
+ "execution_count": 41,
"metadata": {},
"outputs": [],
"source": [
@@ -203,7 +210,7 @@
},
{
"cell_type": "code",
- "execution_count": 6,
+ "execution_count": 42,
"metadata": {},
"outputs": [],
"source": [
@@ -220,7 +227,7 @@
},
{
"cell_type": "code",
- "execution_count": 7,
+ "execution_count": 43,
"metadata": {},
"outputs": [],
"source": [
@@ -257,7 +264,7 @@
},
{
"cell_type": "code",
- "execution_count": 8,
+ "execution_count": 44,
"metadata": {},
"outputs": [
{
@@ -292,7 +299,7 @@
},
{
"cell_type": "code",
- "execution_count": 9,
+ "execution_count": 45,
"metadata": {},
"outputs": [
{
@@ -346,7 +353,7 @@
},
{
"cell_type": "code",
- "execution_count": 10,
+ "execution_count": 46,
"metadata": {},
"outputs": [
{
@@ -355,7 +362,7 @@
"(1049, 2)"
]
},
- "execution_count": 10,
+ "execution_count": 46,
"metadata": {},
"output_type": "execute_result"
}
@@ -383,16 +390,16 @@
},
{
"cell_type": "code",
- "execution_count": 11,
+ "execution_count": 47,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
- ""
+ ""
]
},
- "execution_count": 11,
+ "execution_count": 47,
"metadata": {},
"output_type": "execute_result"
}
@@ -413,7 +420,7 @@
},
{
"cell_type": "code",
- "execution_count": 12,
+ "execution_count": 48,
"metadata": {},
"outputs": [
{
@@ -423,7 +430,7 @@
" 971, 967, 1001, 969, 940], dtype=int32)"
]
},
- "execution_count": 12,
+ "execution_count": 48,
"metadata": {},
"output_type": "execute_result"
}
@@ -441,7 +448,7 @@
},
{
"cell_type": "code",
- "execution_count": 13,
+ "execution_count": 49,
"metadata": {},
"outputs": [
{
@@ -465,7 +472,7 @@
" [ -4.42442296, -14.74641176]])"
]
},
- "execution_count": 13,
+ "execution_count": 49,
"metadata": {},
"output_type": "execute_result"
}
@@ -484,7 +491,7 @@
},
{
"cell_type": "code",
- "execution_count": 14,
+ "execution_count": 50,
"metadata": {},
"outputs": [],
"source": [
@@ -502,7 +509,7 @@
},
{
"cell_type": "code",
- "execution_count": 15,
+ "execution_count": 51,
"metadata": {},
"outputs": [
{
@@ -555,7 +562,7 @@
},
{
"cell_type": "code",
- "execution_count": 16,
+ "execution_count": 52,
"metadata": {},
"outputs": [],
"source": [
@@ -584,7 +591,7 @@
},
{
"cell_type": "code",
- "execution_count": 17,
+ "execution_count": 53,
"metadata": {},
"outputs": [],
"source": [
@@ -605,7 +612,7 @@
},
{
"cell_type": "code",
- "execution_count": 18,
+ "execution_count": 54,
"metadata": {},
"outputs": [],
"source": [
@@ -622,7 +629,7 @@
},
{
"cell_type": "code",
- "execution_count": 19,
+ "execution_count": 55,
"metadata": {},
"outputs": [],
"source": [
@@ -647,7 +654,7 @@
},
{
"cell_type": "code",
- "execution_count": 20,
+ "execution_count": 56,
"metadata": {},
"outputs": [],
"source": [
@@ -660,7 +667,7 @@
},
{
"cell_type": "code",
- "execution_count": 21,
+ "execution_count": 57,
"metadata": {},
"outputs": [
{
@@ -669,7 +676,7 @@
"'135.306, 8.39862, 126.51, 13.4449, 163.017, 54.2424, 172.933, 46.4726, 135.306, 8.39862'"
]
},
- "execution_count": 21,
+ "execution_count": 57,
"metadata": {},
"output_type": "execute_result"
}
@@ -688,7 +695,7 @@
},
{
"cell_type": "code",
- "execution_count": 22,
+ "execution_count": 58,
"metadata": {},
"outputs": [],
"source": [
@@ -704,7 +711,7 @@
},
{
"cell_type": "code",
- "execution_count": 23,
+ "execution_count": 59,
"metadata": {},
"outputs": [
{
@@ -751,7 +758,7 @@
},
{
"cell_type": "code",
- "execution_count": 24,
+ "execution_count": 60,
"metadata": {},
"outputs": [
{
@@ -760,7 +767,7 @@
"'[ -4.05037121,-14.75623261, -3.41981085,-14.72365546, -3.03521988,-14.44357135, -2.26847919,-13.7140236 , -2.61172203,-13.24797471, -2.73471401,-13.09054471, -3.19923146,-12.5942653 , -3.34082546,-12.47611926, -5.67489413,-11.16083338, -5.95159272,-11.10547884, -6.42394023,-11.05981295, -7.09631023,-11.95187806, -7.30641519,-12.24559977, -7.04016696,-12.88580702, -6.00347705,-13.75912098, -4.42442296,-14.74641176]'"
]
},
- "execution_count": 24,
+ "execution_count": 60,
"metadata": {},
"output_type": "execute_result"
}
@@ -781,7 +788,7 @@
},
{
"cell_type": "code",
- "execution_count": 25,
+ "execution_count": 61,
"metadata": {
"scrolled": true
},
@@ -792,7 +799,7 @@
"' -4.05037121,-14.75623261, -3.41981085,-14.72365546, -3.03521988,-14.44357135, -2.26847919,-13.7140236 , -2.61172203,-13.24797471, -2.73471401,-13.09054471, -3.19923146,-12.5942653 , -3.34082546,-12.47611926, -5.67489413,-11.16083338, -5.95159272,-11.10547884, -6.42394023,-11.05981295, -7.09631023,-11.95187806, -7.30641519,-12.24559977, -7.04016696,-12.88580702, -6.00347705,-13.75912098, -4.42442296,-14.74641176'"
]
},
- "execution_count": 25,
+ "execution_count": 61,
"metadata": {},
"output_type": "execute_result"
}
@@ -813,7 +820,7 @@
},
{
"cell_type": "code",
- "execution_count": 26,
+ "execution_count": 62,
"metadata": {
"tags": [
"hide-cell"
@@ -846,7 +853,7 @@
},
{
"cell_type": "code",
- "execution_count": 27,
+ "execution_count": 63,
"metadata": {
"tags": [
"hide-cell"
@@ -888,7 +895,7 @@
},
{
"cell_type": "code",
- "execution_count": 28,
+ "execution_count": 64,
"metadata": {
"scrolled": true
},
@@ -897,16 +904,6 @@
"name": "stdout",
"output_type": "stream",
"text": [
- "Created TAP+ (v1.2.1) - Connection:\n",
- "\tHost: gea.esac.esa.int\n",
- "\tUse HTTPS: True\n",
- "\tPort: 443\n",
- "\tSSL Port: 443\n",
- "Created TAP+ (v1.2.1) - Connection:\n",
- "\tHost: geadata.esac.esa.int\n",
- "\tUse HTTPS: True\n",
- "\tPort: 443\n",
- "\tSSL Port: 443\n",
"INFO: Query finished. [astroquery.utils.tap.core]\n",
"\n",
" name dtype unit description \n",
@@ -916,10 +913,10 @@
" 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",
- "Jobid: 1615933496807O\n",
+ "Jobid: 1616771462206O\n",
"Phase: COMPLETED\n",
"Owner: None\n",
- "Output file: async_20210316182456.vot\n",
+ "Output file: async_20210326111102.vot\n",
"Results: None\n"
]
}
@@ -940,7 +937,7 @@
},
{
"cell_type": "code",
- "execution_count": 29,
+ "execution_count": 65,
"metadata": {},
"outputs": [
{
@@ -949,7 +946,7 @@
"7345"
]
},
- "execution_count": 29,
+ "execution_count": 65,
"metadata": {},
"output_type": "execute_result"
}
@@ -975,7 +972,7 @@
},
{
"cell_type": "code",
- "execution_count": 30,
+ "execution_count": 66,
"metadata": {},
"outputs": [
{
@@ -985,7 +982,7 @@
" 'pm_point_list': ' -4.05037121,-14.75623261, -3.41981085,-14.72365546, -3.03521988,-14.44357135, -2.26847919,-13.7140236 , -2.61172203,-13.24797471, -2.73471401,-13.09054471, -3.19923146,-12.5942653 , -3.34082546,-12.47611926, -5.67489413,-11.16083338, -5.95159272,-11.10547884, -6.42394023,-11.05981295, -7.09631023,-11.95187806, -7.30641519,-12.24559977, -7.04016696,-12.88580702, -6.00347705,-13.75912098, -4.42442296,-14.74641176'}"
]
},
- "execution_count": 30,
+ "execution_count": 66,
"metadata": {},
"output_type": "execute_result"
}
@@ -1004,7 +1001,7 @@
},
{
"cell_type": "code",
- "execution_count": 31,
+ "execution_count": 67,
"metadata": {},
"outputs": [
{
@@ -1015,7 +1012,7 @@
"dtype: object"
]
},
- "execution_count": 31,
+ "execution_count": 67,
"metadata": {},
"output_type": "execute_result"
}
@@ -1034,7 +1031,7 @@
},
{
"cell_type": "code",
- "execution_count": 32,
+ "execution_count": 68,
"metadata": {},
"outputs": [],
"source": [
@@ -1053,7 +1050,7 @@
},
{
"cell_type": "code",
- "execution_count": 33,
+ "execution_count": 69,
"metadata": {},
"outputs": [
{
@@ -1090,7 +1087,7 @@
},
{
"cell_type": "code",
- "execution_count": 34,
+ "execution_count": 70,
"metadata": {},
"outputs": [],
"source": [
@@ -1132,7 +1129,7 @@
},
{
"cell_type": "code",
- "execution_count": 35,
+ "execution_count": 71,
"metadata": {},
"outputs": [],
"source": [
@@ -1148,7 +1145,7 @@
},
{
"cell_type": "code",
- "execution_count": 36,
+ "execution_count": 72,
"metadata": {},
"outputs": [
{
diff --git a/soln/05_join.ipynb b/soln/05_join.ipynb
index b75d4fb..e486cf1 100644
--- a/soln/05_join.ipynb
+++ b/soln/05_join.ipynb
@@ -85,7 +85,7 @@
},
{
"cell_type": "code",
- "execution_count": 1,
+ "execution_count": 28,
"metadata": {
"tags": [
"remove-cell"
@@ -162,23 +162,13 @@
},
{
"cell_type": "code",
- "execution_count": 2,
+ "execution_count": 29,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
- "Created TAP+ (v1.2.1) - Connection:\n",
- "\tHost: gea.esac.esa.int\n",
- "\tUse HTTPS: True\n",
- "\tPort: 443\n",
- "\tSSL Port: 443\n",
- "Created TAP+ (v1.2.1) - Connection:\n",
- "\tHost: geadata.esac.esa.int\n",
- "\tUse HTTPS: True\n",
- "\tPort: 443\n",
- "\tSSL Port: 443\n",
"Retrieving table 'gaiadr2.panstarrs1_best_neighbour'\n",
"Parsing table 'gaiadr2.panstarrs1_best_neighbour'...\n",
"Done.\n"
@@ -193,7 +183,7 @@
},
{
"cell_type": "code",
- "execution_count": 3,
+ "execution_count": 30,
"metadata": {},
"outputs": [
{
@@ -222,7 +212,7 @@
},
{
"cell_type": "code",
- "execution_count": 4,
+ "execution_count": 31,
"metadata": {},
"outputs": [
{
@@ -267,7 +257,7 @@
},
{
"cell_type": "code",
- "execution_count": 5,
+ "execution_count": 32,
"metadata": {},
"outputs": [],
"source": [
@@ -280,7 +270,7 @@
},
{
"cell_type": "code",
- "execution_count": 6,
+ "execution_count": 33,
"metadata": {},
"outputs": [
{
@@ -297,7 +287,7 @@
},
{
"cell_type": "code",
- "execution_count": 7,
+ "execution_count": 34,
"metadata": {
"scrolled": true
},
@@ -306,7 +296,7 @@
"data": {
"text/html": [
"Table length=5\n",
- "\n",
+ "\n",
"| source_id | number_of_neighbours | number_of_mates | original_ext_source_id |
\n",
"| int64 | int32 | int16 | int64 |
\n",
"| 6745938972433480704 | 1 | 0 | 69742925668851205 |
\n",
@@ -328,7 +318,7 @@
"6757061941303252736 1 0 69742856540241198"
]
},
- "execution_count": 7,
+ "execution_count": 34,
"metadata": {},
"output_type": "execute_result"
}
@@ -349,7 +339,7 @@
},
{
"cell_type": "code",
- "execution_count": 8,
+ "execution_count": 35,
"metadata": {},
"outputs": [
{
@@ -368,7 +358,7 @@
},
{
"cell_type": "code",
- "execution_count": 9,
+ "execution_count": 36,
"metadata": {},
"outputs": [
{
@@ -458,7 +448,7 @@
},
{
"cell_type": "code",
- "execution_count": 10,
+ "execution_count": 37,
"metadata": {},
"outputs": [
{
@@ -518,7 +508,7 @@
},
{
"cell_type": "code",
- "execution_count": 11,
+ "execution_count": 38,
"metadata": {},
"outputs": [],
"source": [
@@ -531,7 +521,7 @@
},
{
"cell_type": "code",
- "execution_count": 12,
+ "execution_count": 39,
"metadata": {},
"outputs": [
{
@@ -548,7 +538,7 @@
},
{
"cell_type": "code",
- "execution_count": 13,
+ "execution_count": 40,
"metadata": {
"scrolled": true
},
@@ -557,7 +547,7 @@
"data": {
"text/html": [
"Table length=5\n",
- "\n",
+ "\n",
"| obj_id | g_mean_psf_mag | i_mean_psf_mag |
\n",
" | | mag |
\n",
"| int64 | float64 | float64 |
\n",
@@ -581,7 +571,7 @@
"67553513677687787 -- 21.2831001281738"
]
},
- "execution_count": 13,
+ "execution_count": 40,
"metadata": {},
"output_type": "execute_result"
}
@@ -625,7 +615,7 @@
},
{
"cell_type": "code",
- "execution_count": 14,
+ "execution_count": 41,
"metadata": {},
"outputs": [],
"source": [
@@ -648,7 +638,7 @@
},
{
"cell_type": "code",
- "execution_count": 15,
+ "execution_count": 42,
"metadata": {},
"outputs": [
{
@@ -667,7 +657,7 @@
},
{
"cell_type": "code",
- "execution_count": 16,
+ "execution_count": 43,
"metadata": {
"scrolled": true
},
@@ -676,7 +666,7 @@
"data": {
"text/html": [
"Table length=10\n",
- "\n",
+ "\n",
"| source_id |
\n",
"| int64 |
\n",
"| 3322773965056065536 |
\n",
@@ -708,7 +698,7 @@
"3322773930696322176"
]
},
- "execution_count": 16,
+ "execution_count": 43,
"metadata": {},
"output_type": "execute_result"
}
@@ -728,7 +718,7 @@
},
{
"cell_type": "code",
- "execution_count": 17,
+ "execution_count": 44,
"metadata": {},
"outputs": [],
"source": [
@@ -750,7 +740,7 @@
},
{
"cell_type": "code",
- "execution_count": 18,
+ "execution_count": 45,
"metadata": {},
"outputs": [
{
@@ -783,7 +773,7 @@
},
{
"cell_type": "code",
- "execution_count": 19,
+ "execution_count": 46,
"metadata": {},
"outputs": [
{
@@ -800,7 +790,7 @@
},
{
"cell_type": "code",
- "execution_count": 20,
+ "execution_count": 47,
"metadata": {
"scrolled": true
},
@@ -809,7 +799,7 @@
"data": {
"text/html": [
"Table length=594\n",
- "\n",
+ "\n",
"| source_id | ra | dec | pmra | pmdec |
\n",
" | deg | deg | mas / yr | mas / yr |
\n",
"| int64 | float64 | float64 | float64 | float64 |
\n",
@@ -863,7 +853,7 @@
"3322962015904143872 88.74740822271643 ... 0.5565841272341593"
]
},
- "execution_count": 20,
+ "execution_count": 47,
"metadata": {},
"output_type": "execute_result"
}
@@ -893,7 +883,7 @@
},
{
"cell_type": "code",
- "execution_count": 21,
+ "execution_count": 48,
"metadata": {},
"outputs": [],
"source": [
@@ -925,7 +915,7 @@
},
{
"cell_type": "code",
- "execution_count": 22,
+ "execution_count": 49,
"metadata": {},
"outputs": [
{
@@ -961,7 +951,7 @@
},
{
"cell_type": "code",
- "execution_count": 23,
+ "execution_count": 50,
"metadata": {},
"outputs": [
{
@@ -978,7 +968,7 @@
},
{
"cell_type": "code",
- "execution_count": 24,
+ "execution_count": 51,
"metadata": {
"scrolled": true
},
@@ -987,7 +977,7 @@
"data": {
"text/html": [
"Table length=490\n",
- "\n",
+ "\n",
"| source_id | ra | dec | pmra | pmdec | best_neighbour_multiplicity | number_of_mates |
\n",
" | deg | deg | mas / yr | mas / yr | | |
\n",
"| int64 | float64 | float64 | float64 | float64 | int16 | int16 |
\n",
@@ -1041,7 +1031,7 @@
"3322962015904143872 88.74740822271643 ... 0"
]
},
- "execution_count": 24,
+ "execution_count": 51,
"metadata": {},
"output_type": "execute_result"
}
@@ -1079,9 +1069,90 @@
},
{
"cell_type": "code",
- "execution_count": 25,
+ "execution_count": 52,
"metadata": {},
- "outputs": [],
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "SELECT \n",
+ "gaia.source_id, gaia.ra, gaia.dec, gaia.pmra, gaia.pmdec, best.best_neighbour_multiplicity, best.number_of_mates, ps.g_mean_psf_mag, ps.i_mean_psf_mag\n",
+ "FROM gaiadr2.gaia_source as gaia\n",
+ "JOIN gaiadr2.panstarrs1_best_neighbour as best\n",
+ " ON gaia.source_id = best.source_id\n",
+ "JOIN gaiadr2.panstarrs1_original_valid as ps\n",
+ " ON best.original_ext_source_id = ps.obj_id\n",
+ "WHERE 1=CONTAINS(\n",
+ " POINT(gaia.ra, gaia.dec),\n",
+ " CIRCLE(88.8, 7.4, 0.08333333))\n",
+ "\n",
+ "INFO: Query finished. [astroquery.utils.tap.core]\n"
+ ]
+ },
+ {
+ "data": {
+ "text/html": [
+ "Table length=490\n",
+ "\n",
+ "| source_id | ra | dec | pmra | pmdec | best_neighbour_multiplicity | number_of_mates | g_mean_psf_mag | i_mean_psf_mag |
\n",
+ " | deg | deg | mas / yr | mas / yr | | | | mag |
\n",
+ "| int64 | float64 | float64 | float64 | float64 | int16 | int16 | float64 | float64 |
\n",
+ "| 3322773965056065536 | 88.78178020183375 | 7.334936530583141 | 0.2980633722108194 | -2.5057036964736907 | 1 | 0 | 19.9431991577148 | 17.4221992492676 |
\n",
+ "| 3322774068134271104 | 88.8206092188033 | 7.353158142762173 | -1.1065462654445488 | -1.5260889445858044 | 1 | 0 | 18.6212005615234 | 16.6007995605469 |
\n",
+ "| 3322773930696320512 | 88.80843339290348 | 7.334853162299928 | 2.6074384482375215 | -0.9292104395445717 | 1 | 0 | -- | 20.2203998565674 |
\n",
+ "| 3322774377374425728 | 88.86806108182265 | 7.371287731275939 | 3.9555477866915383 | -3.8676624830902435 | 1 | 0 | 18.0676002502441 | 16.9762001037598 |
\n",
+ "| 3322773724537891456 | 88.81308602813434 | 7.32488574492059 | 51.34995462741039 | -33.078133430952086 | 1 | 0 | 20.1907005310059 | 17.8700008392334 |
\n",
+ "| 3322773724537891328 | 88.81570329208743 | 7.3223019772324855 | 1.9389988498951845 | 0.3110526931576576 | 1 | 0 | 22.6308002471924 | 19.6004009246826 |
\n",
+ "| 3322773930696321792 | 88.8050736770331 | 7.332371472206583 | 2.264014834476311 | 1.0772755505138008 | 1 | 0 | 21.2119998931885 | 18.3528003692627 |
\n",
+ "| 3322773724537890944 | 88.81241651540533 | 7.327864052479726 | -0.36003627434304625 | -6.393939291541333 | 1 | 0 | 20.8094005584717 | 18.1343002319336 |
\n",
+ "| 3322773930696322176 | 88.80128682574824 | 7.334292036448643 | -- | -- | 1 | 0 | 19.7306003570557 | -- |
\n",
+ "| ... | ... | ... | ... | ... | ... | ... | ... | ... |
\n",
+ "| 3322962359501481088 | 88.85037722908271 | 7.402162717053584 | 2.058216493648542 | -2.249255322558584 | 1 | 0 | 17.4034996032715 | 15.9040002822876 |
\n",
+ "| 3322962393861228544 | 88.82108234976155 | 7.4044425496203 | -0.916760881643629 | -1.1113319053861441 | 1 | 0 | -- | -- |
\n",
+ "| 3322955831151254912 | 88.74620347799508 | 7.342728619145855 | 0.1559833902071379 | -1.750598455959734 | 1 | 0 | 18.4960994720459 | 17.3892993927002 |
\n",
+ "| 3322962118983356032 | 88.76109637722949 | 7.380564308268047 | -- | -- | 1 | 0 | 18.0643997192383 | 16.7395000457764 |
\n",
+ "| 3322963527732585984 | 88.78813701704823 | 7.456696889759524 | 1.1363354614104264 | -2.46251296961979 | 1 | 0 | 17.8034992218018 | 16.1214008331299 |
\n",
+ "| 3322961775385969024 | 88.79723215862369 | 7.359756552906535 | 2.121021366548921 | -6.605711792572964 | 1 | 0 | 18.2070007324219 | 15.9947996139526 |
\n",
+ "| 3322962084625312512 | 88.78286756313868 | 7.384598632215225 | -0.09350717810996487 | 1.3495903680571226 | 1 | 0 | 16.7978992462158 | 15.1180000305176 |
\n",
+ "| 3322962939322692608 | 88.73289357818679 | 7.407688975612043 | -0.11002934783569704 | 1.002126813991455 | 1 | 0 | 17.18630027771 | 16.3645992279053 |
\n",
+ "| 3322963459013111808 | 88.80348931842845 | 7.438699901204871 | 0.800833828337078 | -3.3780655466364626 | 1 | 0 | -- | 16.294900894165 |
\n",
+ "| 3322962015904143872 | 88.74740822271643 | 7.387057037713974 | -0.7201178533250112 | 0.5565841272341593 | 1 | 0 | 18.4706993103027 | 16.8038005828857 |
\n",
+ "
"
+ ],
+ "text/plain": [
+ "\n",
+ " source_id ra ... g_mean_psf_mag i_mean_psf_mag \n",
+ " deg ... mag \n",
+ " int64 float64 ... float64 float64 \n",
+ "------------------- ----------------- ... ---------------- ----------------\n",
+ "3322773965056065536 88.78178020183375 ... 19.9431991577148 17.4221992492676\n",
+ "3322774068134271104 88.8206092188033 ... 18.6212005615234 16.6007995605469\n",
+ "3322773930696320512 88.80843339290348 ... -- 20.2203998565674\n",
+ "3322774377374425728 88.86806108182265 ... 18.0676002502441 16.9762001037598\n",
+ "3322773724537891456 88.81308602813434 ... 20.1907005310059 17.8700008392334\n",
+ "3322773724537891328 88.81570329208743 ... 22.6308002471924 19.6004009246826\n",
+ "3322773930696321792 88.8050736770331 ... 21.2119998931885 18.3528003692627\n",
+ "3322773724537890944 88.81241651540533 ... 20.8094005584717 18.1343002319336\n",
+ "3322773930696322176 88.80128682574824 ... 19.7306003570557 --\n",
+ " ... ... ... ... ...\n",
+ "3322962359501481088 88.85037722908271 ... 17.4034996032715 15.9040002822876\n",
+ "3322962393861228544 88.82108234976155 ... -- --\n",
+ "3322955831151254912 88.74620347799508 ... 18.4960994720459 17.3892993927002\n",
+ "3322962118983356032 88.76109637722949 ... 18.0643997192383 16.7395000457764\n",
+ "3322963527732585984 88.78813701704823 ... 17.8034992218018 16.1214008331299\n",
+ "3322961775385969024 88.79723215862369 ... 18.2070007324219 15.9947996139526\n",
+ "3322962084625312512 88.78286756313868 ... 16.7978992462158 15.1180000305176\n",
+ "3322962939322692608 88.73289357818679 ... 17.18630027771 16.3645992279053\n",
+ "3322963459013111808 88.80348931842845 ... -- 16.294900894165\n",
+ "3322962015904143872 88.74740822271643 ... 18.4706993103027 16.8038005828857"
+ ]
+ },
+ "execution_count": 52,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
"source": [
"# Solution\n",
"\n",
@@ -1130,7 +1201,7 @@
},
{
"cell_type": "code",
- "execution_count": 29,
+ "execution_count": 53,
"metadata": {},
"outputs": [],
"source": [
@@ -1155,7 +1226,7 @@
},
{
"cell_type": "code",
- "execution_count": 30,
+ "execution_count": 54,
"metadata": {},
"outputs": [
{
@@ -1166,7 +1237,7 @@
"dtype: object"
]
},
- "execution_count": 30,
+ "execution_count": 54,
"metadata": {},
"output_type": "execute_result"
}
@@ -1188,7 +1259,7 @@
},
{
"cell_type": "code",
- "execution_count": 31,
+ "execution_count": 55,
"metadata": {},
"outputs": [
{
@@ -1227,7 +1298,7 @@
},
{
"cell_type": "code",
- "execution_count": 32,
+ "execution_count": 56,
"metadata": {},
"outputs": [
{
@@ -1244,7 +1315,7 @@
},
{
"cell_type": "code",
- "execution_count": 33,
+ "execution_count": 57,
"metadata": {
"scrolled": true
},
@@ -1253,7 +1324,7 @@
"data": {
"text/html": [
"Table length=7345\n",
- "\n",
+ "\n",
"| source_id | ra | dec | pmra | pmdec |
\n",
" | deg | deg | mas / yr | mas / yr |
\n",
"| int64 | float64 | float64 | float64 | float64 |
\n",
@@ -1307,7 +1378,7 @@
"612429144902815104 134.77293979509543 ... -13.962312685889454"
]
},
- "execution_count": 33,
+ "execution_count": 57,
"metadata": {},
"output_type": "execute_result"
}
@@ -1333,9 +1404,94 @@
},
{
"cell_type": "code",
- "execution_count": 34,
+ "execution_count": 58,
"metadata": {},
- "outputs": [],
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "\n",
+ "SELECT \n",
+ "gaia.source_id, gaia.ra, gaia.dec, gaia.pmra, gaia.pmdec, best.best_neighbour_multiplicity, best.number_of_mates, ps.g_mean_psf_mag, ps.i_mean_psf_mag\n",
+ "FROM gaiadr2.gaia_source as gaia\n",
+ "JOIN gaiadr2.panstarrs1_best_neighbour as best\n",
+ " ON gaia.source_id = best.source_id\n",
+ "JOIN gaiadr2.panstarrs1_original_valid as ps\n",
+ " ON best.original_ext_source_id = ps.obj_id\n",
+ "WHERE parallax < 1\n",
+ " AND bp_rp BETWEEN -0.75 AND 2 \n",
+ " AND 1 = CONTAINS(POINT(gaia.ra, gaia.dec), \n",
+ " POLYGON(135.306, 8.39862, 126.51, 13.4449, 163.017, 54.2424, 172.933, 46.4726, 135.306, 8.39862))\n",
+ " AND 1 = CONTAINS(POINT(gaia.pmra, gaia.pmdec),\n",
+ " POLYGON( -4.05037121,-14.75623261, -3.41981085,-14.72365546, -3.03521988,-14.44357135, -2.26847919,-13.7140236 , -2.61172203,-13.24797471, -2.73471401,-13.09054471, -3.19923146,-12.5942653 , -3.34082546,-12.47611926, -5.67489413,-11.16083338, -5.95159272,-11.10547884, -6.42394023,-11.05981295, -7.09631023,-11.95187806, -7.30641519,-12.24559977, -7.04016696,-12.88580702, -6.00347705,-13.75912098, -4.42442296,-14.74641176))\n",
+ "\n",
+ "INFO: Query finished. [astroquery.utils.tap.core]\n"
+ ]
+ },
+ {
+ "data": {
+ "text/html": [
+ "Table length=3725\n",
+ "\n",
+ "| source_id | ra | dec | pmra | pmdec | best_neighbour_multiplicity | number_of_mates | g_mean_psf_mag | i_mean_psf_mag |
\n",
+ " | deg | deg | mas / yr | mas / yr | | | | mag |
\n",
+ "| int64 | float64 | float64 | float64 | float64 | int16 | int16 | float64 | float64 |
\n",
+ "| 635860218726658176 | 138.5187065217173 | 19.09233926905897 | -5.941679495793577 | -11.346409129876392 | 1 | 0 | 17.8978004455566 | 17.5174007415771 |
\n",
+ "| 635674126383965568 | 138.8428741026386 | 19.031798198627634 | -3.8970011609340207 | -12.702779525389634 | 1 | 0 | 19.2873001098633 | 17.6781005859375 |
\n",
+ "| 635535454774983040 | 137.8377518255436 | 18.864006786112604 | -4.335040664412791 | -14.492308604905652 | 1 | 0 | 16.9237995147705 | 16.478099822998 |
\n",
+ "| 635497276810313600 | 138.0445160213759 | 19.00947118796605 | -7.1729306406216615 | -12.291499169815987 | 1 | 0 | 19.9242000579834 | 18.3339996337891 |
\n",
+ "| 635614168640132864 | 139.59219748145836 | 18.807955539071433 | -3.309602916796381 | -13.708904908478631 | 1 | 0 | 16.1515998840332 | 14.6662998199463 |
\n",
+ "| 635598607974369792 | 139.20920023089508 | 18.624132868942702 | -6.124445176881091 | -12.833824027100611 | 1 | 0 | 16.5223999023438 | 16.1375007629395 |
\n",
+ "| 635737661835496576 | 139.93327552473934 | 19.167962454651423 | -7.119403303682826 | -12.687947497633793 | 1 | 0 | 14.5032997131348 | 13.9849004745483 |
\n",
+ "| 635850945892748672 | 139.86542888472115 | 20.011312663154804 | -3.786655365804428 | -14.28415600718206 | 1 | 0 | 16.5174999237061 | 16.0450000762939 |
\n",
+ "| 635600532119713664 | 139.22869949616816 | 18.685939084485494 | -3.9742788217925122 | -12.342426623384245 | 1 | 0 | 20.4505996704102 | 19.5177001953125 |
\n",
+ "| ... | ... | ... | ... | ... | ... | ... | ... | ... |
\n",
+ "| 612241781249124608 | 134.3755835065194 | 18.129179169751275 | -2.831807894848964 | -13.902118573613597 | 1 | 0 | 20.2343997955322 | 18.6518001556396 |
\n",
+ "| 612332147361443072 | 134.14584721363653 | 18.45685585044513 | -6.234287981021865 | -11.500464195695072 | 1 | 0 | 21.3848991394043 | 20.3076000213623 |
\n",
+ "| 612426744016802432 | 134.68522805061076 | 18.77090626983678 | -3.7691372464459554 | -12.889167493118862 | 1 | 0 | 17.8281002044678 | 17.4281005859375 |
\n",
+ "| 612331739340341760 | 134.12176196902254 | 18.42768872157865 | -3.9894012386388735 | -12.60504410507441 | 1 | 0 | 21.8656997680664 | 19.5223007202148 |
\n",
+ "| 612282738058264960 | 134.0445768189235 | 18.11915820167003 | -2.5972485319419127 | -13.651740929272187 | 1 | 0 | 22.5151996612549 | 19.9743995666504 |
\n",
+ "| 612386332668697600 | 135.45701048323093 | 18.63266345155342 | -5.07684899854408 | -12.436641304786672 | 1 | 0 | 19.3792991638184 | 17.9923000335693 |
\n",
+ "| 612296172717818624 | 133.80060286960668 | 18.08186533343457 | -6.112792578821885 | -12.50750861370402 | 1 | 0 | 17.4944000244141 | 16.926700592041 |
\n",
+ "| 612250375480101760 | 134.64754712466774 | 18.122419425065015 | -2.8969262278467127 | -14.061676353845487 | 1 | 0 | 15.3330001831055 | 14.6280002593994 |
\n",
+ "| 612394926899159168 | 135.51997060013844 | 18.817675531233004 | -3.9968965218753763 | -13.526821099431533 | 1 | 0 | 16.4414005279541 | 15.8212003707886 |
\n",
+ "| 612256418500423168 | 134.90752972739924 | 18.280596648172743 | -6.109836304219565 | -12.145212331165776 | 1 | 0 | 20.8715991973877 | 19.9612007141113 |
\n",
+ "
"
+ ],
+ "text/plain": [
+ "\n",
+ " source_id ra ... g_mean_psf_mag i_mean_psf_mag \n",
+ " deg ... mag \n",
+ " int64 float64 ... float64 float64 \n",
+ "------------------ ------------------ ... ---------------- ----------------\n",
+ "635860218726658176 138.5187065217173 ... 17.8978004455566 17.5174007415771\n",
+ "635674126383965568 138.8428741026386 ... 19.2873001098633 17.6781005859375\n",
+ "635535454774983040 137.8377518255436 ... 16.9237995147705 16.478099822998\n",
+ "635497276810313600 138.0445160213759 ... 19.9242000579834 18.3339996337891\n",
+ "635614168640132864 139.59219748145836 ... 16.1515998840332 14.6662998199463\n",
+ "635598607974369792 139.20920023089508 ... 16.5223999023438 16.1375007629395\n",
+ "635737661835496576 139.93327552473934 ... 14.5032997131348 13.9849004745483\n",
+ "635850945892748672 139.86542888472115 ... 16.5174999237061 16.0450000762939\n",
+ "635600532119713664 139.22869949616816 ... 20.4505996704102 19.5177001953125\n",
+ " ... ... ... ... ...\n",
+ "612241781249124608 134.3755835065194 ... 20.2343997955322 18.6518001556396\n",
+ "612332147361443072 134.14584721363653 ... 21.3848991394043 20.3076000213623\n",
+ "612426744016802432 134.68522805061076 ... 17.8281002044678 17.4281005859375\n",
+ "612331739340341760 134.12176196902254 ... 21.8656997680664 19.5223007202148\n",
+ "612282738058264960 134.0445768189235 ... 22.5151996612549 19.9743995666504\n",
+ "612386332668697600 135.45701048323093 ... 19.3792991638184 17.9923000335693\n",
+ "612296172717818624 133.80060286960668 ... 17.4944000244141 16.926700592041\n",
+ "612250375480101760 134.64754712466774 ... 15.3330001831055 14.6280002593994\n",
+ "612394926899159168 135.51997060013844 ... 16.4414005279541 15.8212003707886\n",
+ "612256418500423168 134.90752972739924 ... 20.8715991973877 19.9612007141113"
+ ]
+ },
+ "execution_count": 58,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
"source": [
"# Solution\n",
"\n",
@@ -1379,7 +1535,7 @@
},
{
"cell_type": "code",
- "execution_count": 38,
+ "execution_count": 59,
"metadata": {},
"outputs": [
{
@@ -1443,7 +1599,7 @@
" 1"
]
},
- "execution_count": 38,
+ "execution_count": 59,
"metadata": {},
"output_type": "execute_result"
}
@@ -1463,7 +1619,7 @@
},
{
"cell_type": "code",
- "execution_count": 39,
+ "execution_count": 60,
"metadata": {},
"outputs": [
{
@@ -1480,7 +1636,7 @@
"dtype: float64"
]
},
- "execution_count": 39,
+ "execution_count": 60,
"metadata": {},
"output_type": "execute_result"
}
@@ -1503,7 +1659,7 @@
},
{
"cell_type": "code",
- "execution_count": 40,
+ "execution_count": 61,
"metadata": {},
"outputs": [
{
@@ -1520,7 +1676,7 @@
"dtype: float64"
]
},
- "execution_count": 40,
+ "execution_count": 61,
"metadata": {},
"output_type": "execute_result"
}
@@ -1550,7 +1706,7 @@
},
{
"cell_type": "code",
- "execution_count": 41,
+ "execution_count": 62,
"metadata": {},
"outputs": [],
"source": [
@@ -1595,7 +1751,7 @@
},
{
"cell_type": "code",
- "execution_count": 42,
+ "execution_count": 63,
"metadata": {},
"outputs": [],
"source": [
@@ -1611,7 +1767,7 @@
},
{
"cell_type": "code",
- "execution_count": 53,
+ "execution_count": 64,
"metadata": {},
"outputs": [
{
@@ -1657,7 +1813,7 @@
},
{
"cell_type": "code",
- "execution_count": 44,
+ "execution_count": 65,
"metadata": {},
"outputs": [],
"source": [
@@ -1675,16 +1831,16 @@
},
{
"cell_type": "code",
- "execution_count": 45,
+ "execution_count": 66,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
- "5.574869155883789"
+ "3.5835609436035156"
]
},
- "execution_count": 45,
+ "execution_count": 66,
"metadata": {},
"output_type": "execute_result"
}
@@ -1729,7 +1885,7 @@
},
{
"cell_type": "code",
- "execution_count": 46,
+ "execution_count": 67,
"metadata": {},
"outputs": [],
"source": [
@@ -1745,7 +1901,7 @@
},
{
"cell_type": "code",
- "execution_count": 47,
+ "execution_count": 68,
"metadata": {},
"outputs": [
{
@@ -1754,7 +1910,7 @@
"0.7606849670410156"
]
},
- "execution_count": 47,
+ "execution_count": 68,
"metadata": {},
"output_type": "execute_result"
}
@@ -1772,7 +1928,7 @@
},
{
"cell_type": "code",
- "execution_count": 48,
+ "execution_count": 69,
"metadata": {},
"outputs": [],
"source": [
@@ -1785,7 +1941,7 @@
},
{
"cell_type": "code",
- "execution_count": 49,
+ "execution_count": 70,
"metadata": {},
"outputs": [
{
@@ -1816,7 +1972,7 @@
},
{
"cell_type": "code",
- "execution_count": 50,
+ "execution_count": 71,
"metadata": {},
"outputs": [],
"source": [
@@ -1832,7 +1988,7 @@
},
{
"cell_type": "code",
- "execution_count": 51,
+ "execution_count": 72,
"metadata": {},
"outputs": [
{
@@ -1941,7 +2097,7 @@
"2 16.478100 -59.785300 -1.594569 -9.357536 -1.218492 "
]
},
- "execution_count": 51,
+ "execution_count": 72,
"metadata": {},
"output_type": "execute_result"
}
@@ -1952,7 +2108,7 @@
},
{
"cell_type": "code",
- "execution_count": 52,
+ "execution_count": 73,
"metadata": {},
"outputs": [
{
@@ -2065,7 +2221,7 @@
"2 16.478100 -59.785300 -1.594569 -9.357536 -1.218492 "
]
},
- "execution_count": 52,
+ "execution_count": 73,
"metadata": {},
"output_type": "execute_result"
}
diff --git a/soln/06_photo.ipynb b/soln/06_photo.ipynb
index 4f65435..0037403 100644
--- a/soln/06_photo.ipynb
+++ b/soln/06_photo.ipynb
@@ -74,71 +74,48 @@
},
{
"cell_type": "markdown",
- "metadata": {
- "tags": [
- "remove-cell"
- ]
- },
+ "metadata": {},
"source": [
- "## Installing libraries\n",
+ "## Reload the data\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."
+ "You can [download the data from the previous lesson](https://github.com/AllenDowney/AstronomicalData/raw/main/data/gd1_data.hdf) or run the following cell, which downloads it if necessary."
]
},
{
"cell_type": "code",
- "execution_count": 1,
- "metadata": {
- "tags": [
- "remove-cell"
- ]
- },
+ "execution_count": 47,
+ "metadata": {},
"outputs": [],
"source": [
- "# If we're running on Colab, install libraries\n",
+ "from os.path import basename, exists\n",
"\n",
- "import sys\n",
- "IN_COLAB = 'google.colab' in sys.modules\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",
- "if IN_COLAB:\n",
- " !pip install wget"
+ "download('https://github.com/AllenDowney/AstronomicalData/raw/main/' +\n",
+ " 'data/gd1_data.hdf')"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
- "## Reload the data\n",
- "\n",
- "The following cell downloads the photometry data we created in the previous notebook."
+ "Now we can reload `candidate_df`."
]
},
{
"cell_type": "code",
- "execution_count": 2,
- "metadata": {},
- "outputs": [],
- "source": [
- "import os\n",
- "from wget import download\n",
- "\n",
- "filename = 'gd1_data.hdf'\n",
- "filepath = 'https://github.com/AllenDowney/AstronomicalData/raw/main/data/'\n",
- "\n",
- "if not os.path.exists(filename):\n",
- " print(download(filepath+filename))"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 3,
+ "execution_count": 48,
"metadata": {},
"outputs": [],
"source": [
"import pandas as pd\n",
"\n",
+ "filename = 'gd1_data.hdf'\n",
"candidate_df = pd.read_hdf(filename, 'candidate_df')"
]
},
@@ -174,7 +151,7 @@
},
{
"cell_type": "code",
- "execution_count": 4,
+ "execution_count": 49,
"metadata": {},
"outputs": [],
"source": [
@@ -230,7 +207,7 @@
},
{
"cell_type": "code",
- "execution_count": 5,
+ "execution_count": 50,
"metadata": {},
"outputs": [
{
@@ -286,18 +263,12 @@
},
{
"cell_type": "code",
- "execution_count": 6,
+ "execution_count": 51,
"metadata": {},
"outputs": [],
"source": [
- "import os\n",
- "from wget import download\n",
- "\n",
- "filename = 'MIST_iso_5fd2532653c27.iso.cmd'\n",
- "filepath = 'https://github.com/AllenDowney/AstronomicalData/raw/main/data/'\n",
- "\n",
- "if not os.path.exists(filename):\n",
- " print(download(filepath+filename))"
+ "download('https://github.com/AllenDowney/AstronomicalData/raw/main/' +\n",
+ " 'data/MIST_iso_5fd2532653c27.iso.cmd')"
]
},
{
@@ -309,18 +280,12 @@
},
{
"cell_type": "code",
- "execution_count": 7,
+ "execution_count": 52,
"metadata": {},
"outputs": [],
"source": [
- "import os\n",
- "from wget import download\n",
- "\n",
- "filename = 'read_mist_models.py'\n",
- "filepath = 'https://github.com/jieunchoi/MIST_codes/raw/master/scripts/'\n",
- "\n",
- "if not os.path.exists(filename):\n",
- " print(download(filepath+filename))"
+ "download('https://github.com/jieunchoi/MIST_codes/raw/master/scripts/' +\n",
+ " 'read_mist_models.py')"
]
},
{
@@ -332,7 +297,7 @@
},
{
"cell_type": "code",
- "execution_count": 8,
+ "execution_count": 53,
"metadata": {},
"outputs": [
{
@@ -359,7 +324,7 @@
},
{
"cell_type": "code",
- "execution_count": 9,
+ "execution_count": 54,
"metadata": {},
"outputs": [
{
@@ -368,7 +333,7 @@
"read_mist_models.ISOCMD"
]
},
- "execution_count": 9,
+ "execution_count": 54,
"metadata": {},
"output_type": "execute_result"
}
@@ -386,7 +351,7 @@
},
{
"cell_type": "code",
- "execution_count": 10,
+ "execution_count": 55,
"metadata": {},
"outputs": [
{
@@ -395,7 +360,7 @@
"list"
]
},
- "execution_count": 10,
+ "execution_count": 55,
"metadata": {},
"output_type": "execute_result"
}
@@ -413,7 +378,7 @@
},
{
"cell_type": "code",
- "execution_count": 11,
+ "execution_count": 56,
"metadata": {},
"outputs": [
{
@@ -422,7 +387,7 @@
"1"
]
},
- "execution_count": 11,
+ "execution_count": 56,
"metadata": {},
"output_type": "execute_result"
}
@@ -440,7 +405,7 @@
},
{
"cell_type": "code",
- "execution_count": 12,
+ "execution_count": 57,
"metadata": {},
"outputs": [],
"source": [
@@ -456,7 +421,7 @@
},
{
"cell_type": "code",
- "execution_count": 13,
+ "execution_count": 58,
"metadata": {},
"outputs": [
{
@@ -465,7 +430,7 @@
"numpy.ndarray"
]
},
- "execution_count": 13,
+ "execution_count": 58,
"metadata": {},
"output_type": "execute_result"
}
@@ -483,7 +448,7 @@
},
{
"cell_type": "code",
- "execution_count": 14,
+ "execution_count": 59,
"metadata": {},
"outputs": [
{
@@ -492,7 +457,7 @@
"dtype([('EEP', '"
+ ""
]
},
- "execution_count": 36,
+ "execution_count": 81,
"metadata": {},
"output_type": "execute_result"
}
@@ -1364,7 +1324,7 @@
},
{
"cell_type": "code",
- "execution_count": 37,
+ "execution_count": 82,
"metadata": {},
"outputs": [],
"source": [
@@ -1381,7 +1341,7 @@
},
{
"cell_type": "code",
- "execution_count": 38,
+ "execution_count": 83,
"metadata": {},
"outputs": [
{
@@ -1390,7 +1350,7 @@
"array([ True, False])"
]
},
- "execution_count": 38,
+ "execution_count": 83,
"metadata": {},
"output_type": "execute_result"
}
@@ -1427,7 +1387,7 @@
},
{
"cell_type": "code",
- "execution_count": 39,
+ "execution_count": 84,
"metadata": {},
"outputs": [],
"source": [
@@ -1447,7 +1407,7 @@
},
{
"cell_type": "code",
- "execution_count": 40,
+ "execution_count": 85,
"metadata": {},
"outputs": [
{
@@ -1514,7 +1474,7 @@
"4 1.4853 16.1516"
]
},
- "execution_count": 40,
+ "execution_count": 85,
"metadata": {},
"output_type": "execute_result"
}
@@ -1537,7 +1497,7 @@
},
{
"cell_type": "code",
- "execution_count": 41,
+ "execution_count": 86,
"metadata": {},
"outputs": [
{
@@ -1546,7 +1506,7 @@
"array([False, False, False, ..., False, False, False])"
]
},
- "execution_count": 41,
+ "execution_count": 86,
"metadata": {},
"output_type": "execute_result"
}
@@ -1565,7 +1525,7 @@
},
{
"cell_type": "code",
- "execution_count": 42,
+ "execution_count": 87,
"metadata": {},
"outputs": [
{
@@ -1574,7 +1534,7 @@
"454"
]
},
- "execution_count": 42,
+ "execution_count": 87,
"metadata": {},
"output_type": "execute_result"
}
@@ -1592,7 +1552,7 @@
},
{
"cell_type": "code",
- "execution_count": 43,
+ "execution_count": 88,
"metadata": {},
"outputs": [],
"source": [
@@ -1608,7 +1568,7 @@
},
{
"cell_type": "code",
- "execution_count": 44,
+ "execution_count": 89,
"metadata": {},
"outputs": [
{
@@ -1645,7 +1605,7 @@
},
{
"cell_type": "code",
- "execution_count": 45,
+ "execution_count": 90,
"metadata": {},
"outputs": [
{
@@ -1698,7 +1658,7 @@
},
{
"cell_type": "code",
- "execution_count": 46,
+ "execution_count": 91,
"metadata": {},
"outputs": [],
"source": [
@@ -1708,16 +1668,16 @@
},
{
"cell_type": "code",
- "execution_count": 47,
+ "execution_count": 92,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
- "2.512819290161133"
+ "3.6441001892089844"
]
},
- "execution_count": 47,
+ "execution_count": 92,
"metadata": {},
"output_type": "execute_result"
}
diff --git a/soln/07_plot.ipynb b/soln/07_plot.ipynb
index e31c0af..4886219 100644
--- a/soln/07_plot.ipynb
+++ b/soln/07_plot.ipynb
@@ -73,40 +73,6 @@
"* Generate a figure with multiple subplots."
]
},
- {
- "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": 1,
- "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 wget"
- ]
- },
{
"cell_type": "markdown",
"metadata": {},
@@ -152,7 +118,7 @@
},
{
"cell_type": "code",
- "execution_count": 2,
+ "execution_count": 30,
"metadata": {},
"outputs": [],
"source": [
@@ -194,39 +160,50 @@
"source": [
"## Plotting GD-1\n",
"\n",
- "Let's start with the panel in the lower left. The following cell reloads the data."
+ "Let's start with the panel in the lower left. You can [download the data from the previous lesson](https://github.com/AllenDowney/AstronomicalData/raw/main/data/gd1_data.hdf) or run the following cell, which downloads it if necessary."
]
},
{
"cell_type": "code",
- "execution_count": 3,
+ "execution_count": 31,
"metadata": {},
"outputs": [],
"source": [
- "import os\n",
- "from wget import download\n",
+ "from os.path import basename, exists\n",
"\n",
- "filename = 'gd1_data.hdf'\n",
- "path = 'https://github.com/AllenDowney/AstronomicalData/raw/main/data/'\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",
- "if not os.path.exists(filename):\n",
- " print(download(path+filename))"
+ "download('https://github.com/AllenDowney/AstronomicalData/raw/main/' +\n",
+ " 'data/gd1_data.hdf')"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "Now we can reload `winner_df`"
]
},
{
"cell_type": "code",
- "execution_count": 4,
+ "execution_count": 32,
"metadata": {},
"outputs": [],
"source": [
"import pandas as pd\n",
"\n",
+ "filename = 'gd1_data.hdf'\n",
"winner_df = pd.read_hdf(filename, 'winner_df')"
]
},
{
"cell_type": "code",
- "execution_count": 5,
+ "execution_count": 33,
"metadata": {},
"outputs": [],
"source": [
@@ -254,19 +231,17 @@
},
{
"cell_type": "code",
- "execution_count": 6,
+ "execution_count": 34,
"metadata": {},
"outputs": [
{
"data": {
- "image/png": "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\n",
+ "image/png": "iVBORw0KGgoAAAANSUhEUgAAA14AAAEXCAYAAAC9EJV/AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuNCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8QVMy6AAAACXBIWXMAAA9hAAAPYQGoP6dpAABFXklEQVR4nO3dd3wU1f7/8feGhAWS0CEkEAhNigQBC2ADFIx6r6JcFRuB76WIgiiI2C8oIl+92C7XFsUAem0IdlQsBKQpEJqCdKRfBDEBvhLAnN8f/rJmk93NttmW1/PxyAN26pmZMzPnM+fMGZsxxggAAAAAYJm4cCcAAAAAAGIdgRcAAAAAWIzACwAAAAAsRuAFAAAAABYj8AIAAAAAixF4AQAAAIDFCLwAAAAAwGIEXgAAAABgMQIvAAAAALAYgRcAwDITJkxQp06dwp2MoLDZbHr//ffDnYxKIy8vTzabTb/++qul6+nZs6fuvPNOS9cBABKBFwB4bdCgQbLZbLLZbEpISFCLFi00duxYHTt2LNxJiwiuApOxY8fqq6++Ck+CIlCkFfIjLT1WchfIzZkzRxMnTgxPogBUKgReAOCDSy+9VPv27dO2bdv06KOP6vnnn9fYsWNdTnvy5MkQpy6y1i9JSUlJqlevXsjXa7PZtGPHjpCvNxYZY3Tq1KlwJ8MydevWVXJycriTAaASIPACAB/Y7XY1atRI6enpuvHGG3XTTTc5anlKmtW9+uqratGihex2u4wx2rlzp/r27aukpCTVrFlT1113nf773/86llky30svvaT09HTVqFFD1157bbkn87m5uWrXrp2qVaumtm3b6vnnn3eM27Fjh2w2m9555x317NlT1apV0+uvv+5yG2w2m1566SX99a9/VY0aNdSuXTstXbpUW7ZsUc+ePZWYmKju3btr69atTvO98MILatmypapWrao2bdrotddec4zLyMiQJF199dWy2WyO32WbGhYXF+uRRx5RkyZNZLfb1alTJ3322WfltmPOnDnq1auXatSooTPOOENLly719hD5JSMjQxMnTtSNN96opKQkpaWlaerUqeWmO3jwoK6++mrVqFFDrVu31ocffug0fsGCBTrnnHNkt9uVmpqqe++91xG0DBo0SAsWLNCzzz7rqDktCQ49zSf9UTN1++23684771SdOnWUkpKinJwcHTt2TP/zP/+j5ORktWzZUp9++qlTetavX6/LL79cSUlJSklJ0YABA3Tw4EGP6SmpGfr888911llnyW6367XXXlNcXJxWrFjhtPypU6eqWbNmMsa43K/PP/+8WrdurWrVqiklJUXXXHONY5wxRk888YRatGih6tWr64wzztC7777r8TgtWbJEF154oapXr6709HSNGjXKqca5qKhI48aNU3p6uux2u1q3bq1p06Zpx44d6tWrlySpTp06stlsGjRokGPflq71O3z4sLKzs1WnTh3VqFFDl112mTZv3uwYP336dNWuXVuff/652rVrp6SkJMcDGQDwyAAAvDJw4EDTt29fp2G33367qVevnjHGmPHjx5vExESTlZVl8vPzzZo1a0xxcbHp3LmzOf/8882KFSvMsmXLTJcuXUyPHj0cyyiZ76KLLjKrVq0yCxYsMK1atTI33nijY5qcnByTmppqZs+ebbZt22Zmz55t6tata6ZPn26MMWb79u1GksnIyHBMs2fPHpfbIck0btzYvP3222bjxo3mqquuMhkZGeaiiy4yn332mVm/fr3p1q2bufTSSx3zzJkzxyQkJJjnnnvObNy40Tz55JOmSpUq5uuvvzbGGHPgwAEjyeTm5pp9+/aZAwcOOLbtjDPOcCznqaeeMjVr1jRvvvmm+fHHH824ceNMQkKC2bRpk9N2tG3b1nz88cdm48aN5pprrjHNmjUzJ0+e9PpYSTLbt2/3evpmzZqZ5ORkM3nyZLNx40bzr3/9y1SpUsXMmzfPaZlNmjQxb7zxhtm8ebMZNWqUSUpKMocOHTLGGLN7925To0YNc9ttt5kNGzaY9957z9SvX9+MHz/eGGPMr7/+arp3726GDh1q9u3bZ/bt22dOnTpV4XzGGNOjRw+TnJxsJk6caDZt2mQmTpxo4uLizGWXXWZycnLMpk2bzK233mrq1atnjh07ZowxZu/evaZ+/frmvvvuMxs2bDD5+fmmT58+plevXh7TM3/+fCPJdOzY0cybN89s2bLFHDx40PTp08fcdtttTvutc+fO5h//+IfLfbp8+XJTpUoV88Ybb5gdO3aY/Px88+yzzzrG33///aZt27bms88+M1u3bjW5ubnGbrebvLw8Y4xxpOPw4cPGGGPWrl1rkpKSzNNPP202bdpkFi9ebDp37mwGDRrkWOZ1111n0tPTzZw5c8zWrVvNl19+ad566y1z6tQpM3v2bCPJbNy40ezbt8/8+uuvjn17xx13OJZx5ZVXmnbt2pmFCxea1atXm6ysLNOqVStz4sQJY4wxubm5JiEhwfTu3dssX77crFy50rRr187pfAUAVwi8AMBLZQOvb7/91tSrV89cd911xpg/goyEhARH0GGMMfPmzTNVqlQxO3fudAz74YcfjCTz3XffOearUqWK2bVrl2OaTz/91MTFxZl9+/YZY4xJT083b7zxhlN6Jk6caLp3726M+TNgeeaZZyrcDknmwQcfdPxeunSpkWSmTZvmGPbmm2+aatWqOX6fe+65ZujQoU7Lufbaa83ll1/utNz33nvPaZqygVdaWpqZNGmS0zRnn322o0Bfsh2vvPKKY3zJ/tqwYUOF21Y6Lb4GXqUDTWOM6d+/v7nsssuclll6vx09etTYbDbz6aefGmP+CCTatGljiouLHdM899xzJikpyfz+++/GmPKFfF/mO//88x3jT506ZRITE82AAQMcw/bt22ckmaVLlxpjjHnooYfMJZdc4rSuXbt2OYIPd+kpCXjef/99p+Fvv/22qVOnjjl+/LgxxpjVq1cbm83mdj/Pnj3b1KxZ0xQWFpYbd/ToUVOtWjWzZMkSp+GDBw82N9xwg1M6SgKvAQMGmGHDhjlN/80335i4uDjz22+/mY0bNxpJ5osvvnCZnrLLK1F6H2zatMlIMosXL3aMP3jwoKlevbp55513jDF/BF6SzJYtWxzTPPfccyYlJcXlegGgBE0NAcAHH3/8sZKSklStWjV1795dF154oVOTtGbNmqlBgwaO3xs2bFB6errS09Mdw9q3b6/atWtrw4YNjmFNmzZVkyZNHL+7d++u4uJibdy4UT///LN27dqlwYMHKykpyfH36KOPlmsOeNZZZ3m1HR07dnT8PyUlRZKUmZnpNOz48eMqLCx0bMd5553ntIzzzjvPaRsqUlhYqL1793q1nNLpS01NlSQdOHDA7bIvu+wyp30jSaeffnq5YZ5079693G9P6UpMTFRycrIjXRs2bFD37t1ls9mctu3o0aPavXu32/V6O1/pdVepUkX16tUrd8ykP/fTypUrNX/+fKd90LZtW0kql29cKZuXrrrqKsXHx+u9996TJL366qvq1auXo1lpWX369FGzZs3UokULDRgwQP/5z3/0f//3f5L+aAJ5/Phx9enTxyl9M2fOdJu2lStXavr06U7TZ2Vlqbi4WNu3b9fq1atVpUoV9ejRo8Jtc2fDhg2Kj49X165dHcPq1aunNm3aOOWFGjVqqGXLlo7fqampHvMnAEhSfLgTAADRpFevXnrhhReUkJCgtLQ0JSQkOI1PTEx0+m2McSpQVzS8RMk4m82m4uJiSdLLL7/sVCCU/iiAe1q/O6XTXbIuV8NK1l16mLfb4I43y6koLWW98sor+u233xy/W7durblz56px48Y+p89TWsse79LHx9V2mP//7pOn/eTtfK7W7Wk/FRcX64orrtDjjz9ebp0lwawnZfNS1apVNWDAAOXm5qpfv35644039Mwzz7idPzk5Wfn5+crLy9O8efP0j3/8QxMmTNDy5csdafzkk0/KHSO73e5yecXFxbrllls0atSocuOaNm2qLVu2VLhNFTFu3lUre4xcHQt38wJACQIvAPBBYmKiWrVq5fX07du3186dO7Vr1y5Hrdf69etVUFCgdu3aOabbuXOn9u7dq7S0NEnS0qVLFRcXp9NOO00pKSlq3Lixtm3bpptuuim4G+Sldu3aadGiRcrOznYMW7JkidM2JCQk6Pfff3e7jJo1ayotLU2LFi3ShRde6LScc845J6D0uQqwmjVr5rY2xpVly5aV+11SQ+SN9u3ba/bs2U6F9CVLlig5OdmRvqpVq5bbR97M548uXbpo9uzZysjIUHy869u9q/R4MmTIEHXo0EHPP/+8Tp48qX79+nmcPj4+Xr1791bv3r01fvx41a5dW19//bX69Okju92unTt3el1D1aVLF/3www9uz7/MzEwVFxdrwYIF6t27d7nxVatWlSSP29u+fXudOnVK3377rc4991xJ0qFDh7Rp0yanvA4A/qCpIQBYqHfv3urYsaNuuukm5efn67vvvlN2drZ69Ojh1JSrWrVqGjhwoNasWaNvvvlGo0aN0nXXXadGjRpJ+qN3wMmTJ+vZZ5/Vpk2btG7dOuXm5uqpp54KyXbcfffdmj59ul588UVt3rxZTz31lObMmePUlX5GRoa++uor7d+/X4cPH3a7nMcff1xvv/22Nm7cqHvvvVerV6/WHXfcEZLt8GTx4sV64okntGnTJj333HOaNWuWT+m67bbbtGvXLt1+++368ccf9cEHH2j8+PEaM2aM4uL+uN1mZGTo22+/1Y4dO3Tw4EEVFxd7NZ8/RowYoV9++UU33HCDvvvuO23btk3z5s3T3//+d0fw4So9nrRr107dunXTPffcoxtuuEHVq1d3O+3HH3+sf/3rX1q9erV++uknzZw5U8XFxWrTpo2Sk5M1duxYjR49WjNmzNDWrVu1atUqPffcc5oxY4bL5d1zzz1aunSpRowYodWrV2vz5s368MMPdfvttzu2ZeDAgfr73/+u999/X9u3b1deXp7eeecdSX8E4jabTR9//LF+/vlnHT16tNw6Wrdurb59+2ro0KFatGiR1qxZo5tvvlmNGzdW3759vdrvAOAOgRcAWKjko8J16tTRhRdeqN69e6tFixZ6++23naZr1aqV+vXrp8svv1yXXHKJo1ahxJAhQ/TKK69o+vTpyszMVI8ePTR9+nQ1b948JNtx1VVX6dlnn9U///lPnX766XrppZeUm5urnj17OqZ58skn9cUXXyg9PV2dO3d2uZxRo0bprrvu0l133aXMzEx99tln+vDDD9W6deuQbIcnd911l1auXKnOnTtr4sSJevLJJ5WVleX1/I0bN9bcuXP13Xff6YwzztDw4cM1ePBgPfjgg45pxo4dqypVqqh9+/Zq0KCBdu7c6dV8/khLS9PixYv1+++/KysrSx06dNAdd9yhWrVqOQI6V+mpyODBg3XixAn9/e9/9zhd7dq1NWfOHF100UVq166dXnzxRb355ps6/fTTJUkTJ07UP/7xD02ePFnt2rVTVlaWPvroI7d5umPHjlqwYIE2b96sCy64QJ07d9ZDDz3k1GzyhRde0DXXXKPbbrtNbdu21dChQx3dzTdu3FgPP/yw7r33XqWkpGjkyJEu15Obm6szzzxTf/3rX9W9e3cZYzR37txyzQsBwFc2Q6NkAAirCRMm6P3339fq1avDnZRKKyMjQ3feeafT95zg2qRJk/TWW29p3bp14U4KAEQVarwAAECFjh49quXLl2vq1KkuO7gAAHhG4AUAACo0cuRInX/++erRo0eFzQwBAOXR1BAAAAAALEaNFwAAAABYjMALAAAAACxG4AUAAAAAFnP9KXu4VVxcrL179yo5OVk2my3cyQEAAAAQJsYYHTlyRGlpaRV+9J7Ay0d79+5Venp6uJMBAAAAIELs2rVLTZo08TgNgZePkpOTJf2xc2vWrBnm1AAAAAAIl8LCQqWnpztiBE8IvHxU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TZrk1PSCPISK/Pe//9XQoUP12muvqUaNGuXGk4fgi19++UX/+c9/dO655yohIUESeQi+KygoUN26dR2/IzUPEXiFybRp05SVlaX09HTHsP379yslJcVpujp16qhq1arav39/qJOICLNt2zZJ0oQJE/Tggw/q448/Vp06ddSjRw/98ssvkshDqNgdd9yht956S/Pnz9fIkSP1zDPP6LbbbnOMJw/BE2OMBg0apOHDhzuayZdFHoI37rnnHiUmJqpevXrauXOnPvjgA8c48hB8sXXrVk2dOlXDhw93DIvUPETgFaAJEya47TSj5G/FihVO8+zevVuff/65Bg8eXG55Nput3DBjjMvhiA3e5qHi4mJJ0gMPPKC//e1vOvPMM5WbmyubzaZZs2Y5lkceqnx8uQ6NHj1aPXr0UMeOHTVkyBC9+OKLmjZtmg4dOuRYHnmo8vE2D02dOlWFhYW67777PC6PPFT5+Foeuvvuu7Vq1SrNmzdPVapUUXZ2towxjvHkocrHnzL13r17demll+raa6/VkCFDnMZFYh6ic40AjRw5Utdff73HaTIyMpx+5+bmql69erryyiudhjdq1Ejffvut07DDhw/r5MmT5aJ2xA5v89CRI0ckSe3bt3cMt9vtatGihXbu3CmJPFRZ+XMdKtGtWzdJ0pYtW1SvXj3yUCXlbR569NFHtWzZMtntdqdxZ511lm666SbNmDGDPFRJ+Xodql+/vurXr6/TTjtN7dq1U3p6upYtW6bu3buThyopX/PQ3r171atXL3Xv3l05OTlO00VsHgrb22WVVHFxsWnevLm56667yo0reRFw7969jmFvvfVW2F8ERGQoKCgwdrvdqXONkk5aXnrpJWMMeQi+++ijj4wk89NPPxljyEPw7KeffjLr1q1z/H3++edGknn33XfNrl27jDHkIfhu586dRpKZP3++MYY8hIrt3r3btG7d2lx//fXm1KlT5cZHah4i8AqxL7/80kgy69evLzfu1KlTpkOHDubiiy82+fn55ssvvzRNmjQxI0eODENKEYnuuOMO07hxY/P555+bH3/80QwePNg0bNjQ/PLLL8YY8hA8W7JkiXnqqafMqlWrzLZt28zbb79t0tLSzJVXXumYhjwEX2zfvr1cr4bkIXjy7bffmqlTp5pVq1aZHTt2mK+//tqcf/75pmXLlub48ePGGPIQPNuzZ49p1aqVueiii8zu3bvNvn37HH8lIjUPEXiF2A033GDOPfdct+N/+ukn85e//MVUr17d1K1b14wcOdJxIQJOnDhh7rrrLtOwYUOTnJxsevfubb7//nunachDcGflypWma9euplatWqZatWqmTZs2Zvz48ebYsWNO05GH4C1XgZcx5CG4t3btWtOrVy9Tt25dY7fbTUZGhhk+fLjZvXu303TkIbiTm5trJLn8Ky0S85DNmFJvMgIAAAAAgo5eDQEAAADAYgReAAAAAGAxAi8AAAAAsBiBFwAAAABYjMALAAAAACxG4AUAAAAAFiPwAgAAAACLEXgBAAAAgMUIvAAAAADAYgReAICY1bZtW73yyit+z9+zZ0/ZbDbZbDatXr3a43R33nmn3+txZdCgQY51v//++0FdNgAg9Ai8AAAx6bffftOWLVt0xhlnBLScoUOHat++ferQoUOQUuadZ599Vvv27QvpOgEA1okPdwIAALDC999/L2NMwAFTjRo11KhRoyClynu1atVSrVq1Qr5eAIA1qPECAMSU1atX66KLLtL555+v4uJiNW3aVE8//XTQln/s2DFlZ2crKSlJqampevLJJ8tNY4zRE088oRYtWqh69eo644wz9O677zrGHzlyRDfddJMSExOVmpqqp59+2pLmigCAyEGNFwAgZmzdulU9evTQ3XffrXr16qm4uFhnn322xowZowsuuEBnnXVWwOu4++67NX/+fL333ntq1KiR7r//fq1cuVKdOnVyTPPggw9qzpw5euGFF9S6dWstXLhQN998sxo0aKAePXpozJgxWrx4sT788EOlpKToH//4h/Lz852WAQCILdR4AQBixvDhw9WvXz89+OCD2rlzp7p3765x48apdu3a+uabbyRJV199terUqaNrrrnG5+UfPXpU06ZN05QpU9SnTx9lZmZqxowZ+v333x3THDt2TE899ZReffVVZWVlqUWLFho0aJBuvvlmvfTSSzpy5IhmzJihKVOm6OKLL1aHDh2Um5vrtAwAQOwh8AIAxIT9+/fr66+/1vDhw/X7779r3bp16ty5s+Li4hQfH6+qVatKkkaNGqWZM2f6tY6tW7fqxIkT6t69u2NY3bp11aZNG8fv9evX6/jx4+rTp4+SkpIcfzNnztTWrVu1bds2nTx5Uuecc45jnlq1ajktAwAQe2hqCACICcuWLVNxcbE6deqkH3/8Ub/99ps6deqkXbt26eDBgzrvvPMkSb169VJeXp5f6zDGVDhNcXGxJOmTTz5R48aNncbZ7XYdOnRIkmSz2XxeNgAgelHjBQCICSdOnJAkHT9+XKtXr1aTJk1Ur149vfTSS2rfvn1Q3p9q1aqVEhIStGzZMseww4cPa9OmTY7f7du3l91u186dO9WqVSunv/T0dLVs2VIJCQn67rvvHPMUFhZq8+bNAacPABC5qPECAMSEbt26KT4+Xo888oiOHj2qli1b6vnnn9fTTz+t+fPnB2UdSUlJGjx4sKPzjpSUFD3wwAOKi/vzOWZycrLGjh2r0aNHq7i4WOeff74KCwu1ZMkSJSUlaeDAgRo4cKDuvvtu1a1bVw0bNtT48eMVFxdXrhYMABA7CLwAADGhadOmevXVV3XPPfdo3759io+P1//93/9p7ty5Tu9TBeqf//ynjh49qiuvvFLJycm66667VFBQ4DTNxIkT1bBhQ02ePFnbtm1T7dq11aVLF91///2SpKeeekrDhw/XX//6V9WsWVPjxo3Trl27VK1ataClEwAQWWyGRuUAgBhTt25dvfrqq7rqqqtcjs/Ly9O///1vp29rudKzZ0916tRJzzzzTPATWcqxY8fUuHFjPfnkkxo8eLDTOJvNpvfee8/ttgAAogPveAEAYsru3bt1+PBhZWZmuhyflZWla6+9VnPnzlWTJk20fPlyj8t7/vnnlZSUpHXr1gUtjatWrdKbb76prVu3Kj8/XzfddJMkqW/fvo5phg8frqSkpKCtEwAQXtR4AQBiyqeffqprr71WR44cCfidqT179ui3336T9EdTxpIu6QO1atUqDRkyRBs3blTVqlV15pln6qmnnnIKFg8cOKDCwkJJUmpqqhITE4OybgBAeBB4AQAAAIDFaGoIAAAAABYj8AIAAAAAixF4AQAAAIDFCLwAAAAAwGIEXgAAAABgMQIvAAAAALAYgRcAAAAAWIzACwAAAAAsRuAFAAAAABYj8AIAAAAAixF4AQAAAIDF/h+7gucfgJXAVAAAAABJRU5ErkJggg==\n",
"text/plain": [
- ""
+ ""
]
},
- "metadata": {
- "needs_background": "light"
- },
+ "metadata": {},
"output_type": "display_data"
}
],
@@ -309,7 +284,7 @@
},
{
"cell_type": "code",
- "execution_count": 7,
+ "execution_count": 35,
"metadata": {
"tags": [
"hide-cell"
@@ -379,7 +354,7 @@
},
{
"cell_type": "code",
- "execution_count": 8,
+ "execution_count": 36,
"metadata": {
"tags": [
"hide-cell"
@@ -405,7 +380,7 @@
},
{
"cell_type": "code",
- "execution_count": 9,
+ "execution_count": 37,
"metadata": {},
"outputs": [
{
@@ -414,7 +389,7 @@
"10.0"
]
},
- "execution_count": 9,
+ "execution_count": 37,
"metadata": {},
"output_type": "execute_result"
}
@@ -432,7 +407,7 @@
},
{
"cell_type": "code",
- "execution_count": 10,
+ "execution_count": 38,
"metadata": {},
"outputs": [],
"source": [
@@ -470,7 +445,7 @@
},
{
"cell_type": "code",
- "execution_count": 11,
+ "execution_count": 39,
"metadata": {},
"outputs": [
{
@@ -504,7 +479,7 @@
" 'tableau-colorblind10']"
]
},
- "execution_count": 11,
+ "execution_count": 39,
"metadata": {},
"output_type": "execute_result"
}
@@ -553,23 +528,17 @@
"source": [
"If you can't find a style sheet that's exactly what you want, you can make your own. This repository includes a style sheet called `az-paper-twocol.mplstyle`, with customizations chosen by Azalee Bostroem for publication in astronomy journals.\n",
"\n",
- "The following cell downloads the style sheet."
+ "You can [download the style sheet](https://github.com/AllenDowney/AstronomicalData/raw/main/az-paper-twocol.mplstyle) or run the following cell, which downloads it if necessary."
]
},
{
"cell_type": "code",
- "execution_count": 12,
+ "execution_count": 40,
"metadata": {},
"outputs": [],
"source": [
- "import os\n",
- "from wget import download\n",
- "\n",
- "filename = 'az-paper-twocol.mplstyle'\n",
- "path = 'https://github.com/AllenDowney/AstronomicalData/raw/main/'\n",
- "\n",
- "if not os.path.exists(filename):\n",
- " print(download(path+filename))"
+ "download('https://github.com/AllenDowney/AstronomicalData/raw/main/' +\n",
+ " 'az-paper-twocol.mplstyle')"
]
},
{
@@ -637,7 +606,7 @@
},
{
"cell_type": "code",
- "execution_count": 13,
+ "execution_count": 41,
"metadata": {},
"outputs": [],
"source": [
@@ -665,7 +634,7 @@
},
{
"cell_type": "code",
- "execution_count": 14,
+ "execution_count": 42,
"metadata": {},
"outputs": [],
"source": [
@@ -705,7 +674,7 @@
},
{
"cell_type": "code",
- "execution_count": 15,
+ "execution_count": 43,
"metadata": {},
"outputs": [],
"source": [
@@ -722,7 +691,7 @@
},
{
"cell_type": "code",
- "execution_count": 16,
+ "execution_count": 44,
"metadata": {},
"outputs": [],
"source": [
@@ -746,7 +715,7 @@
},
{
"cell_type": "code",
- "execution_count": 17,
+ "execution_count": 45,
"metadata": {},
"outputs": [
{
@@ -758,7 +727,7 @@
" [-6.9, -2.2]])"
]
},
- "execution_count": 17,
+ "execution_count": 45,
"metadata": {},
"output_type": "execute_result"
}
@@ -779,7 +748,7 @@
},
{
"cell_type": "code",
- "execution_count": 18,
+ "execution_count": 46,
"metadata": {},
"outputs": [],
"source": [
@@ -813,7 +782,7 @@
},
{
"cell_type": "code",
- "execution_count": 19,
+ "execution_count": 47,
"metadata": {},
"outputs": [
{
@@ -842,7 +811,7 @@
},
{
"cell_type": "code",
- "execution_count": 20,
+ "execution_count": 48,
"metadata": {},
"outputs": [],
"source": [
@@ -859,7 +828,7 @@
},
{
"cell_type": "code",
- "execution_count": 21,
+ "execution_count": 49,
"metadata": {},
"outputs": [],
"source": [
@@ -885,7 +854,7 @@
},
{
"cell_type": "code",
- "execution_count": 22,
+ "execution_count": 50,
"metadata": {
"scrolled": true
},
@@ -916,7 +885,7 @@
},
{
"cell_type": "code",
- "execution_count": 23,
+ "execution_count": 51,
"metadata": {},
"outputs": [],
"source": [
@@ -949,7 +918,7 @@
},
{
"cell_type": "code",
- "execution_count": 24,
+ "execution_count": 52,
"metadata": {},
"outputs": [
{
@@ -976,7 +945,7 @@
},
{
"cell_type": "code",
- "execution_count": 25,
+ "execution_count": 53,
"metadata": {},
"outputs": [
{
@@ -1043,7 +1012,7 @@
"4 0.545461 21.054549"
]
},
- "execution_count": 25,
+ "execution_count": 53,
"metadata": {},
"output_type": "execute_result"
}
@@ -1067,7 +1036,7 @@
},
{
"cell_type": "code",
- "execution_count": 26,
+ "execution_count": 54,
"metadata": {
"tags": [
"hide-cell"
@@ -1103,7 +1072,7 @@
},
{
"cell_type": "code",
- "execution_count": 27,
+ "execution_count": 55,
"metadata": {},
"outputs": [
{
@@ -1165,7 +1134,7 @@
},
{
"cell_type": "code",
- "execution_count": 28,
+ "execution_count": 56,
"metadata": {},
"outputs": [
{
@@ -1219,7 +1188,7 @@
},
{
"cell_type": "code",
- "execution_count": 29,
+ "execution_count": 57,
"metadata": {},
"outputs": [],
"source": [