Skip to content

Instantly share code, notes, and snippets.

@taldcroft
Last active August 29, 2015 14:13
Show Gist options
  • Save taldcroft/a4b19997ecfc7347e884 to your computer and use it in GitHub Desktop.
Save taldcroft/a4b19997ecfc7347e884 to your computer and use it in GitHub Desktop.
Course attitude solution
Display the source blob
Display the rendered blob
Raw
{
"metadata": {
"name": "",
"signature": "sha256:0163934c357aeabaa715482cae92855d9aa07055aa9384cd45dc732abf61e4c0"
},
"nbformat": 3,
"nbformat_minor": 0,
"worksheets": [
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Course attitude after 2015:006 NSM"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"from astropy.table import Table\n",
"from astropy.io import ascii\n",
"import numpy as np\n",
"from Ska.quatutil import *\n",
"from Quaternion import Quat\n",
"from IPython.display import Image\n",
"import agasc\n",
"import matplotlib.pyplot as plt\n",
"import os\n",
"%matplotlib inline"
],
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 74
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Stars observed during failed acquistion (none ID'd)"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"obs_stars_table = \"\"\"\n",
"slot yag zag mag\n",
"0 -381.23 1480.25 7.2\t\n",
"1 -582.68 -830.53 8.9\n",
"3 -498.03 -958.05 5.0\n",
"4 -431.60 1601.23 8.2\n",
"5 -282.38 981.23 7.9\n",
"7 573.40 -2411.33 7.1\n",
"\"\"\"\n",
"obs_stars = ascii.read(obs_stars_table)"
],
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 45
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"obs_stars"
],
"language": "python",
"metadata": {},
"outputs": [
{
"html": [
"<table id=\"table4814123536\"><thead><tr><th>slot</th><th>yag</th><th>zag</th><th>mag</th></tr></thead><tr><td>0</td><td>-381.23</td><td>1480.25</td><td>7.2</td></tr><tr><td>1</td><td>-582.68</td><td>-830.53</td><td>8.9</td></tr><tr><td>3</td><td>-498.03</td><td>-958.05</td><td>5.0</td></tr><tr><td>4</td><td>-431.6</td><td>1601.23</td><td>8.2</td></tr><tr><td>5</td><td>-282.38</td><td>981.23</td><td>7.9</td></tr><tr><td>7</td><td>573.4</td><td>-2411.33</td><td>7.1</td></tr></table>"
],
"metadata": {},
"output_type": "pyout",
"prompt_number": 46,
"text": [
"<Table rows=6 names=('slot','yag','zag','mag')>\n",
"array([(0, -381.23, 1480.25, 7.2), (1, -582.68, -830.53, 8.9),\n",
" (3, -498.03, -958.05, 5.0), (4, -431.6, 1601.23, 8.2),\n",
" (5, -282.38, 981.23, 7.9), (7, 573.4, -2411.33, 7.1)], \n",
" dtype=[('slot', '<i8'), ('yag', '<f8'), ('zag', '<f8'), ('mag', '<f8')])"
]
}
],
"prompt_number": 46
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"s3 = obs_stars[2]\n",
"s3"
],
"language": "python",
"metadata": {},
"outputs": [
{
"metadata": {},
"output_type": "pyout",
"prompt_number": 47,
"text": [
"<Row 2 of table\n",
" values=(3, -498.03, -958.05, 5.0)\n",
" dtype=[('slot', '<i8'), ('yag', '<f8'), ('zag', '<f8'), ('mag', '<f8')]>"
]
}
],
"prompt_number": 47
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"obs_dists = np.array([np.sqrt((r['yag'] - s3['yag'])**2 + (r['zag'] - s3['zag'])**2) for r in obs_stars])\n",
"obs_dists"
],
"language": "python",
"metadata": {},
"outputs": [
{
"metadata": {},
"output_type": "pyout",
"prompt_number": 48,
"text": [
"array([ 2441.0958871 , 153.0587237 , 0. , 2560.14200061,\n",
" 1951.23341528, 1805.54285557])"
]
}
],
"prompt_number": 48
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"obs_stars['dist'] = obs_dists\n",
"obs_stars"
],
"language": "python",
"metadata": {},
"outputs": [
{
"html": [
"<table id=\"table4814123536\"><thead><tr><th>slot</th><th>yag</th><th>zag</th><th>mag</th><th>dist</th></tr></thead><tr><td>0</td><td>-381.23</td><td>1480.25</td><td>7.2</td><td>2441.0958871</td></tr><tr><td>1</td><td>-582.68</td><td>-830.53</td><td>8.9</td><td>153.058723698</td></tr><tr><td>3</td><td>-498.03</td><td>-958.05</td><td>5.0</td><td>0.0</td></tr><tr><td>4</td><td>-431.6</td><td>1601.23</td><td>8.2</td><td>2560.14200061</td></tr><tr><td>5</td><td>-282.38</td><td>981.23</td><td>7.9</td><td>1951.23341528</td></tr><tr><td>7</td><td>573.4</td><td>-2411.33</td><td>7.1</td><td>1805.54285557</td></tr></table>"
],
"metadata": {},
"output_type": "pyout",
"prompt_number": 49,
"text": [
"<Table rows=6 names=('slot','yag','zag','mag','dist')>\n",
"array([(0, -381.23, 1480.25, 7.2, 2441.0958870966133),\n",
" (1, -582.68, -830.53, 8.9, 153.05872369780167),\n",
" (3, -498.03, -958.05, 5.0, 0.0),\n",
" (4, -431.6, 1601.23, 8.2, 2560.142000612466),\n",
" (5, -282.38, 981.23, 7.9, 1951.2334152786539),\n",
" (7, 573.4, -2411.33, 7.1, 1805.5428555700357)], \n",
" dtype=[('slot', '<i8'), ('yag', '<f8'), ('zag', '<f8'), ('mag', '<f8'), ('dist', '<f8')])"
]
}
],
"prompt_number": 49
},
{
"cell_type": "code",
"collapsed": false,
"input": [],
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 49
},
{
"cell_type": "code",
"collapsed": false,
"input": [],
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 49
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"att = Quat([112., 49., 170.73])"
],
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 50
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"stars = agasc.get_agasc_cone(att.ra, att.dec, 10.)"
],
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 51
},
{
"cell_type": "code",
"collapsed": false,
"input": [],
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 51
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"stars[:2]"
],
"language": "python",
"metadata": {},
"outputs": [
{
"html": [
"<table id=\"table4864239952\"><thead><tr><th>AGASC_ID</th><th>RA</th><th>DEC</th><th>POS_ERR</th><th>POS_CATID</th><th>EPOCH</th><th>PM_RA</th><th>PM_DEC</th><th>PM_CATID</th><th>PLX</th><th>PLX_ERR</th><th>PLX_CATID</th><th>MAG_ACA</th><th>MAG_ACA_ERR</th><th>CLASS</th><th>MAG</th><th>MAG_ERR</th><th>MAG_BAND</th><th>MAG_CATID</th><th>COLOR1</th><th>COLOR1_ERR</th><th>C1_CATID</th><th>COLOR2</th><th>COLOR2_ERR</th><th>C2_CATID</th><th>RSV1</th><th>RSV2</th><th>RSV3</th><th>VAR</th><th>VAR_CATID</th><th>ASPQ1</th><th>ASPQ2</th><th>ASPQ3</th><th>ACQQ1</th><th>ACQQ2</th><th>ACQQ3</th><th>ACQQ4</th><th>ACQQ5</th><th>ACQQ6</th><th>XREF_ID1</th><th>XREF_ID2</th><th>XREF_ID3</th><th>XREF_ID4</th><th>XREF_ID5</th><th>RSV4</th><th>RSV5</th><th>RSV6</th><th>RA_PMCORR</th><th>DEC_PMCORR</th></tr></thead><tr><td>387581568</td><td>112.45088</td><td>39.00697</td><td>300</td><td>6</td><td>1983.0</td><td>-9999</td><td>-9999</td><td>0</td><td>-9999</td><td>-9999</td><td>0</td><td>12.645</td><td>41</td><td>3</td><td>13.19</td><td>40</td><td>1</td><td>1</td><td>0.7</td><td>-9999</td><td>0</td><td>-9999.0</td><td>-9999</td><td>0</td><td>-9999.0</td><td>-9999</td><td>0</td><td>-9999</td><td>0</td><td>66</td><td>0</td><td>999</td><td>107</td><td>82</td><td>-205</td><td>-205</td><td>-205</td><td>-296</td><td>208</td><td>-9999</td><td>-9999</td><td>-9999</td><td>-9999</td><td>-9999</td><td>-9999</td><td>-9999</td><td>112.45088</td><td>39.00697</td></tr><tr><td>387581928</td><td>111.61835</td><td>39.01312</td><td>400</td><td>6</td><td>1983.0</td><td>-9999</td><td>-9999</td><td>0</td><td>-9999</td><td>-9999</td><td>0</td><td>12.575</td><td>41</td><td>0</td><td>13.12</td><td>40</td><td>1</td><td>1</td><td>0.7</td><td>-9999</td><td>0</td><td>-9999.0</td><td>-9999</td><td>0</td><td>-9999.0</td><td>-9999</td><td>0</td><td>-9999</td><td>0</td><td>0</td><td>0</td><td>999</td><td>-9999</td><td>-145</td><td>-189</td><td>-189</td><td>-189</td><td>-189</td><td>253</td><td>-9999</td><td>-9999</td><td>-9999</td><td>-9999</td><td>-9999</td><td>-9999</td><td>-9999</td><td>111.61835</td><td>39.01312</td></tr></table>"
],
"metadata": {},
"output_type": "pyout",
"prompt_number": 52,
"text": [
"<Table rows=2 names=('AGASC_ID','RA','DEC','POS_ERR','POS_CATID','EPOCH','PM_RA','PM_DEC','PM_CATID','PLX','PLX_ERR','PLX_CATID','MAG_ACA','MAG_ACA_ERR','CLASS','MAG','MAG_ERR','MAG_BAND','MAG_CATID','COLOR1','COLOR1_ERR','C1_CATID','COLOR2','COLOR2_ERR','C2_CATID','RSV1','RSV2','RSV3','VAR','VAR_CATID','ASPQ1','ASPQ2','ASPQ3','ACQQ1','ACQQ2','ACQQ3','ACQQ4','ACQQ5','ACQQ6','XREF_ID1','XREF_ID2','XREF_ID3','XREF_ID4','XREF_ID5','RSV4','RSV5','RSV6','RA_PMCORR','DEC_PMCORR')>\n",
"array([ (387581568, 112.45088, 39.00697, 300, 6, 1983.0, -9999, -9999, 0, -9999, -9999, 0, 12.644999504089355, 41, 3, 13.1899995803833, 40, 1, 1, 0.699999988079071, -9999, 0, -9999.0, -9999, 0, -9999.0, -9999, 0, -9999, 0, 66, 0, 999, 107, 82, -205, -205, -205, -296, 208, -9999, -9999, -9999, -9999, -9999, -9999, -9999, 112.45088, 39.00697),\n",
" (387581928, 111.61835, 39.01312, 400, 6, 1983.0, -9999, -9999, 0, -9999, -9999, 0, 12.574999809265137, 41, 0, 13.119999885559082, 40, 1, 1, 0.699999988079071, -9999, 0, -9999.0, -9999, 0, -9999.0, -9999, 0, -9999, 0, 0, 0, 999, -9999, -145, -189, -189, -189, -189, 253, -9999, -9999, -9999, -9999, -9999, -9999, -9999, 111.61835, 39.01312)], \n",
" dtype=[('AGASC_ID', '<i4'), ('RA', '<f8'), ('DEC', '<f8'), ('POS_ERR', '<i2'), ('POS_CATID', 'u1'), ('EPOCH', '<f4'), ('PM_RA', '<i2'), ('PM_DEC', '<i2'), ('PM_CATID', 'u1'), ('PLX', '<i2'), ('PLX_ERR', '<i2'), ('PLX_CATID', 'u1'), ('MAG_ACA', '<f4'), ('MAG_ACA_ERR', '<i2'), ('CLASS', '<i2'), ('MAG', '<f4'), ('MAG_ERR', '<i2'), ('MAG_BAND', '<i2'), ('MAG_CATID', 'u1'), ('COLOR1', '<f4'), ('COLOR1_ERR', '<i2'), ('C1_CATID', 'u1'), ('COLOR2', '<f4'), ('COLOR2_ERR', '<i2'), ('C2_CATID', 'u1'), ('RSV1', '<f4'), ('RSV2', '<i2'), ('RSV3', 'u1'), ('VAR', '<i2'), ('VAR_CATID', 'u1'), ('ASPQ1', '<i2'), ('ASPQ2', '<i2'), ('ASPQ3', '<i2'), ('ACQQ1', '<i2'), ('ACQQ2', '<i2'), ('ACQQ3', '<i2'), ('ACQQ4', '<i2'), ('ACQQ5', '<i2'), ('ACQQ6', '<i2'), ('XREF_ID1', '<i4'), ('XREF_ID2', '<i4'), ('XREF_ID3', '<i4'), ('XREF_ID4', '<i4'), ('XREF_ID5', '<i4'), ('RSV4', '<i2'), ('RSV5', '<i2'), ('RSV6', '<i2'), ('RA_PMCORR', '<f8'), ('DEC_PMCORR', '<f8')])"
]
}
],
"prompt_number": 52
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"brights = stars[stars['MAG_ACA'] < 6]\n",
"len(brights)"
],
"language": "python",
"metadata": {},
"outputs": [
{
"metadata": {},
"output_type": "pyout",
"prompt_number": 53,
"text": [
"38"
]
}
],
"prompt_number": 53
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"mag9s = stars[stars['MAG_ACA'] < 9]\n",
"len(mag9s)"
],
"language": "python",
"metadata": {},
"outputs": [
{
"metadata": {},
"output_type": "pyout",
"prompt_number": 54,
"text": [
"1121"
]
}
],
"prompt_number": 54
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"for b in brights:\n",
" print('******** {} ********'.format(b['AGASC_ID']))\n",
" for m9 in mag9s:\n",
" if b['AGASC_ID'] == m9['AGASC_ID']:\n",
" continue\n",
" dist = agasc.sphere_dist(b['RA'], b['DEC'], m9['RA'], m9['DEC']) * 3600\n",
" for i, obs_dist in enumerate(obs_dists):\n",
" if abs(dist - obs_dist) < 2.0:\n",
" print('dist: {} obs_dist: {} m9_id: {}'.format(dist, obs_dist, m9['AGASC_ID']))\n",
" "
],
"language": "python",
"metadata": {},
"outputs": [
{
"output_type": "stream",
"stream": "stdout",
"text": [
"******** 388246520 ********\n",
"******** 388120776 ********"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"\n",
"******** 386677304 ********"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"\n",
"******** 390080920 ********"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"\n",
"******** 388642944 ********"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"\n",
"******** 387071280 ********"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"\n",
"******** 387071264 ********"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"\n",
"******** 444486272 ********"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"\n",
"******** 444743464 ********"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"\n",
"******** 446457328 ********"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"\n",
"******** 442511312 ********"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"\n",
"******** 444486256 ********"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"\n",
"******** 445138080 ********"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"\n",
"******** 446978984 ********"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"\n",
"******** 446845208 ********"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"\n",
"******** 445402576 ********"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"\n",
"******** 445789056 ********"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"\n",
"dist: 2561.03915767 obs_dist: 2560.14200061 m9_id: 445253208\n",
"dist: 2441.68052623 obs_dist: 2441.0958871 m9_id: 445251736\n",
"dist: 1951.3269147 obs_dist: 1951.23341528 m9_id: 445256328\n",
"dist: 153.373572417 obs_dist: 153.058723698 m9_id: 445783648\n",
"dist: 1805.14268674 obs_dist: 1805.54285557 m9_id: 445787240\n",
"******** 445660880 ********"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"\n",
"******** 445789048 ********"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"\n",
"dist: 2559.95959094 obs_dist: 2560.14200061 m9_id: 445783648\n",
"******** 447238960 ********"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"\n",
"dist: 0.0 obs_dist: 0.0 m9_id: 447238961\n",
"******** 446176112 ********"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"\n",
"******** 447499776 ********"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"\n",
"******** 446303056 ********"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"\n",
"******** 446176880 ********"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"\n",
"******** 497698168 ********"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"\n",
"******** 495586552 ********"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"\n",
"******** 497685048 ********"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"\n",
"dist: 0.384985799547 obs_dist: 0.0 m9_id: 497698248"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"\n",
"******** 497698248 ********\n",
"dist: 0.384985799547 obs_dist: 0.0 m9_id: 497685048"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"\n",
"******** 494158616 ********\n",
"dist: 0.217900929782 obs_dist: 0.0 m9_id: 494158609"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"\n",
"dist: 1.18803015077 obs_dist: 0.0 m9_id: 494141696\n",
"******** 494141696 ********\n",
"dist: 1.18803015077 obs_dist: 0.0 m9_id: 494158616"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"\n",
"dist: 1.03628313512 obs_dist: 0.0 m9_id: 494158609\n",
"******** 496251072 ********\n",
"******** 496896000 ********"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"\n",
"******** 496642440 ********"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"\n",
"dist: 1.03877206586 obs_dist: 0.0 m9_id: 496632976"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"\n",
"******** 496780048 ********\n",
"******** 496520080 ********"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"\n",
"******** 494810328 ********"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"\n",
"******** 497429296 ********"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"\n",
"******** 497301072 ********"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"\n"
]
}
],
"prompt_number": 55
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"ids = [445789056, 445253208, 445251736, 445256328, 445783648, 445787240]\n",
"cat_stars = [agasc.get_star(id_) for id_ in ids]"
],
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 57
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"for c in cat_stars:\n",
" print(c['AGASC_ID'], c['RA'], c['DEC'])"
],
"language": "python",
"metadata": {},
"outputs": [
{
"output_type": "stream",
"stream": "stdout",
"text": [
"(445789056, 111.6785505, 49.211522160000001)\n",
"(445253208, 111.4791568, 48.51232014)\n",
"(445251736, 111.46651565000001, 48.54776588)\n",
"(445256328, 111.45851376, 48.689102409999997)\n",
"(445783648, 111.70542745, 49.172707719999998)\n",
"(445787240, 111.32433697, 49.656909409999997)\n"
]
}
],
"prompt_number": 58
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"figure(figsize=(6,6))\n",
"plt.plot(obs_stars['yag'], obs_stars['zag'], 'ob')\n",
"plt.xlim(-2560, 2560)\n",
"plt.ylim(-2560, 2560)\n",
"est_att = Quat([111.405, 48.97, 171])\n",
"for cat_star in cat_stars:\n",
" yag, zag = radec2yagzag(cat_star['RA'], cat_star['DEC'], est_att)\n",
" plt.plot(yag * 3600, zag * 3600, 'or')"
],
"language": "python",
"metadata": {},
"outputs": [
{
"metadata": {},
"output_type": "display_data",
"png": "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\nAElFTkSuQmCC\n",
"text": [
"<matplotlib.figure.Figure at 0x122fa0790>"
]
}
],
"prompt_number": 90
},
{
"cell_type": "code",
"collapsed": false,
"input": [],
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 59
},
{
"cell_type": "code",
"collapsed": false,
"input": [],
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 59
}
],
"metadata": {}
}
]
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment