Seminar 7 - Asteroids and Minor Planets

WCS and astronomic coordinate handling:

NASA JPS webpage to retrieve info about observable minor solar system objects: https://ssd.jpl.nasa.gov/sbwobs.cgi

MPC: Minor solar system object database: https://www.minorplanetcenter.net/data

astroplan

Imports

In [1]:
import numpy as np
from matplotlib import pylab as plt

import datetime as dt

### for minor solar system objects
import astroquery.jplhorizons as jp

import astroquery.skyview as SW
from astropy.wcs import WCS
from astropy import units as u
from astropy.coordinates import SkyCoord

from astroquery.simbad import Simbad
from astroquery.sdss import SDSS
/usr/lib/python2.7/site-packages/astroquery/sdss/__init__.py:29: UserWarning: Experimental: SDSS has not yet been refactored to have its API match the rest of astroquery (but it's nearly there).
  warnings.warn("Experimental: SDSS has not yet been refactored to have its API "

Set observer coorinates for jp.Horizons

In [2]:
nhao = {"lon" : 134.33556,
        "lat" : 35.02528,
        "elevation" : 449}
In [3]:
nhao["lat"]
Out[3]:
35.02528

Retrieve information about Europa relating to our location and given time frame:

In [4]:
Europa = jp.Horizons(id="Europa", location=nhao,
                     epochs={"start" : "2019-07-25",
                             "stop"  : "2019-08-03",
                             "step"  : "1h"})
In [5]:
Eur_data = Europa.ephemerides() 
In [6]:
Eur_data
Out[6]:
<Table masked=True length=217>
targetnamedatetime_strdatetime_jdHGsolar_presenceflagsRADECRA_appDEC_appRA_rateDEC_rateAZELAZ_rateEL_ratesat_Xsat_Ysat_PANGsiderealtimeairmassmagextinctVsurfbrightilluminationillum_defectsat_sepsat_visang_widthPDObsLonPDObsLatPDSunLonPDSunLatSubSol_angSubSol_distNPole_angNPole_distEclLonEclLatrr_ratedeltadelta_ratelighttimevel_sunvel_obselongelongFlagalphalunar_elonglunar_illumsat_alphasunTargetPAvelocityPAOrbPlaneAngconstellationTDB-UTObsEclLonObsEclLatNPole_RANPole_DECGlxLonGlxLatsolartimeearth_lighttimeRA_3sigmaDEC_3sigmaSMAA_3sigmaSMIA_3sigmaTheta_3sigmaArea_3sigmaRSS_3sigmar_3sigmar_rate_3sigmaSBand_3sigmaXBand_3sigmaDoppDelay_3sigmatrue_anomhour_anglealpha_truePABLonPABLat
------dmag---------degdegdegdegarcsec / harcsec / hdegdegarcsec / minarcsec / minarcsecarcsecdeg------magmagmag / arcsec2%arcsecarcsec---arcsecdegdegdegdegdegarcsecdegarcsecdegdegAUkm / sAUkm / sminkm / skm / sdeg---degdeg%degdegdegdeg---sdegdegdegdegdegdeg---minarcsecarcsecarcsecarcsecdegarcsec2arcseckmkm / sHzHzsdeg---degdegdeg
unicode9str17float64float64float64str1str1float64float64float64float64float64float64float64float64float64float64float64float64float64float64float64float64float64float64float64float64float64str1float64int64int64int64int64float64float64int64int64float64float64float64float64float64float64float64float64float64float64str2float64float64float64float64float64float64float64str3float64float64float64int64int64float64float64float64float64float64float64float64float64float64float64float64float64float64float64float64float64float64float64float64float64float64
52 Europa2019-Jul-25 00:002458689.56.310.18*m12.47737-1.4741112.72503-1.368411.59935-2.80437253.227720.1735559.57-707.47-377174.0-76048.0276.1535.11660394642.8740.04611.97.5597.7720.0034397797.3*0.153813--------69.390.02----353.6718-5.30933.223796259798-1.65735912.72434399851874-23.670806922.65767816.2348424.56013110.4992/L17.170419.251.352.3334249.365250.538-0.33614Cet69.18344911.1693748-6.2861113----122.053527-64.3419538.84674331970.0003790.0720.0450.0750.0419.3660.020.08548.18584.3e-060.040.150.000321241.79034.26826892517.16842.2759-5.8639
52 Europa2019-Jul-25 01:002458689.5416666676.310.18*m12.48062-1.4748912.72825-1.3691811.75679-2.81612262.5458.142526.17-732.65-377322.0-76019.3276.1636.11934182236.6670.10711.97.5597.7730.0034397928.2*0.153846--------69.390.02----353.6787-5.313.22375637182-1.65746662.72377490519951-23.631430322.65294516.2350524.54479110.5356/L17.166219.651.052.3013249.37250.537-0.33432Cet69.18344711.1720593-6.2880887----122.060956-64.3427759.84676242160.0003790.0720.0460.0750.0419.3670.020.08548.17924.3e-060.040.150.000321241.79725.27079150617.16422.2807-5.8652
52 Europa2019-Jul-25 02:002458689.5833333336.310.18*m12.48391-1.4756712.73153-1.3699611.92399-2.82907271.2318-4.1432517.6-738.72-377469.0-75990.5276.1737.1220796991999.0--11.97.5597.7740.0034398058.6*0.153878--------69.40.02----353.6856-5.31063.223716481259-1.6575742.72320643233543-23.619472322.64821716.2352624.55763110.5718/L17.162120.050.652.2691249.376250.537-0.33249Cet69.18344611.1747837-6.2900864----122.068489-64.343610.84678755760.0003790.0720.0460.0750.0419.3680.020.08548.17264.3e-060.040.150.000321241.80416.27331112717.16012.2855-5.8665
52 Europa2019-Jul-25 03:002458689.6256.310.18*m12.48724-1.4764612.73485-1.3707512.08767-2.84323280.1164-16.3866533.38-727.4-377617.0-75961.4276.1838.1248175769999.0--11.97.5597.7750.0034398188.7*0.15391--------69.40.02----353.6925-5.31123.223676588113-1.65768152.72263791102992-23.635368622.64348916.2354724.59707110.608/L17.15820.550.352.2371249.381250.536-0.33063Cet69.18344411.1775499-6.2921056----122.07613-64.3444311.84681635450.0003790.0720.0460.0750.0419.3680.020.08548.16624.3e-060.040.140.000321241.8117.27582763817.15612.2903-5.8678
52 Europa2019-Jul-25 04:002458689.6666666676.310.18*12.49063-1.4772512.73821-1.3715412.23474-2.85856290.1019-28.2683576.31-693.88-377764.0-75932.2276.1939.1275554557999.0--11.97.5597.7760.0034398318.7*0.153942--------69.410.02----353.6994-5.31193.223636692376-1.65778892.72206868493941-23.677646222.63875516.2356824.65966110.6441/L17.15421.049.852.205249.387250.536-0.32876Cet69.18344211.1803564-6.2941461----122.083875-64.34526312.84684620860.0003790.0720.0460.0750.0419.3690.020.08548.15984.3e-060.040.140.000321241.8188.27834113417.15212.2952-5.8692
52 Europa2019-Jul-25 05:002458689.7083333336.310.18*12.49404-1.4780412.74162-1.3723312.35328-2.8749302.423-39.3154651.6-623.71-377911.0-75902.8276.20310.1302933354999.0--11.97.5597.7770.0034398448.7*0.153974--------69.420.02----353.7063-5.31253.223596794048-1.65789632.72149815524344-23.743024822.6340116.2358924.74033110.6802/L17.1521.649.452.1729249.393250.535-0.32686Cet69.18344111.1831985-6.2962062----122.091714-64.34610113.84687446320.0003790.0720.0460.0750.0419.370.020.08548.15354.3e-060.040.140.000321241.82499.28085195317.14812.3001-5.8705
52 Europa2019-Jul-25 06:002458689.756.310.18*12.49749-1.4788412.74506-1.3731312.4333-2.89205318.8607-48.6879759.79-486.13-378059.0-75873.3276.21311.1330312161999.0--11.97.5597.7780.0034398578.7*0.154007--------69.420.02----353.7132-5.31313.223556893126-1.65800362.72092582167339-23.826641122.6292516.236124.83277110.7163/L17.14622.248.952.1407249.399250.535-0.32496Cet69.18343911.1860683-6.298283----122.099626-64.34694314.84689858960.0003790.0720.0460.0750.0419.370.020.08548.14724.3e-060.040.140.000321241.831810.2833606517.14412.3049-5.8718
52 Europa2019-Jul-25 07:002458689.7916666676.310.18*12.50095-1.4796512.74852-1.3739312.46745-2.90975341.1454-54.9009869.81-238.82-378207.0-75843.5276.22312.1357690979999.0--11.97.5597.7790.0034398709.1*0.154039--------69.430.02----353.7201-5.31383.223516989608-1.6581112.72035131679087-23.922382222.62447216.2363124.92998110.7525/L17.142122.948.352.1085249.405250.534-0.32304Cet69.18343811.1889554-6.3003722----122.107587-64.3477915.846916360.0003790.0720.0460.0750.0419.3710.020.08548.14094.3e-060.040.140.000321241.838711.28586796317.14012.3098-5.8732
52 Europa2019-Jul-25 08:002458689.8333333336.310.18*12.50441-1.4804512.75198-1.3747412.45151-2.927687.7716-56.1091896.4599.86-378355.0-75813.7276.23213.1385069807999.0--11.97.5597.780.0034398839.9*0.154072--------69.430.02----353.727-5.31443.223477083493-1.65821832.71977443116922-24.02330422.61967416.2365225.02466110.7889/L17.138123.547.752.0761249.41250.534-0.32112Cet69.18343711.1918479-6.302469----122.115566-64.34864216.84692599830.0003790.0720.0460.0750.0419.3720.020.08548.13474.3e-060.040.140.000321241.8457-11.71162524317.13622.3147-5.8745
.........................................................................................................................................................................................................................................................
52 Europa2019-Aug-02 15:002458698.1256.310.1812.99886-1.7158713.24748-1.609915.716147-5.62527107.656520.8265563.82704.08-408888.0-69605.4277.95620.68336146672.7890.04511.777.5198.0290.0032425779.3*0.160681--------70.690.02----355.1057-5.43953.215485072875-1.67914332.60789775718741-22.990894221.68922416.2786523.37379118.272/L16.1447139.43.445.5863250.665250.4430.06604Cet69.18322411.5585742-6.712215----123.26192-64.58566423.8508275570.0003790.0750.0480.0790.04219.5010.020.08946.53634.4e-060.060.220.00031243.2275-4.19980360116.1423.1848-6.137
52 Europa2019-Aug-02 16:002458698.1666666676.310.1813.00042-1.7174313.24906-1.611475.519101-5.63559118.747732.1437627.68647.81-409048.0-69572.4277.96321.68609935881.8740.0311.777.5198.030.0032425920.1*0.160715--------70.690.02----355.1127-5.44013.215444660777-1.67924632.60734527717871-22.922265121.68462916.2788623.29371118.3111/L16.1388140.23.645.5532250.672250.4430.06803Cet69.18322311.5594269-6.7142704----123.265622-64.5872190.85083826640.0003790.0750.0480.0790.04219.5010.020.08946.52674.4e-060.060.220.00031243.2345-3.19717115416.1363.1886-6.1383
52 Europa2019-Aug-02 17:002458698.2083333336.310.1813.00193-1.71913.25059-1.613035.357589-5.64479132.891942.144721.54541.31-409207.0-69539.6277.9722.68883724881.4880.02411.777.5198.0320.0032426060.9*0.160749--------70.70.02----355.1196-5.44073.215404246211-1.67934922.60679470837598-22.832871821.6800516.2790823.19577118.3502/L16.1327141.13.945.5201250.678250.4420.07001Cet69.18322311.5602287-6.7163075----123.269199-64.5887761.85085113850.0003790.0750.0480.0790.04219.5020.020.08946.51694.4e-060.060.220.00031243.2414-2.19453513216.133.1925-6.1396
52 Europa2019-Aug-02 18:002458698.256.310.1813.0034-1.7205713.25207-1.61465.240679-5.65316151.664249.7182831.07350.65-409366.0-69507.0277.97823.69157513691.3090.02111.777.5198.0330.0032426201.6*0.160783--------70.710.02----355.1266-5.44133.215363829182-1.67945212.60624648597317-22.728281221.67549116.2792923.08584118.3893/L16.1267141.94.245.4871250.685250.4420.07198Cet69.18322211.5609893-6.71833----123.272675-64.5903362.85086867350.0003790.0750.0480.0790.04219.5030.020.08946.50714.4e-060.060.220.00031243.2484-1.1918962216.12393.1963-6.1409
52 Europa2019-Aug-02 19:002458698.2916666676.310.18A13.00485-1.7221413.25352-1.616175.174389-5.66105175.252453.2622899.9561.07-409525.0-69474.4277.9850.69431302311.2470.0211.767.5198.0350.0032426342.1*0.160817--------70.710.02----355.1335-5.44193.215323409691-1.6795552.60570089783914-22.615100421.67095416.279522.97066118.4284/L16.1206142.74.445.4541250.692250.4410.07395Cet69.18322111.5617206-6.7203427----123.276081-64.5918983.85089307370.0003790.0750.0480.0790.04219.5030.020.08946.49734.4e-060.060.220.00031243.2553-0.18925526616.11783.2002-6.1421
52 Europa2019-Aug-02 20:002458698.3333333336.310.18C13.00628-1.7237113.25496-1.617745.161268-5.66884199.89151.6172866.25-251.51-409683.0-69441.9277.9921.69705090741.2740.0211.767.5198.0360.0032426482.2*0.16085--------70.720.02----355.1405-5.44263.21528298774-1.67965792.60515806481462-22.500524221.66643916.2797222.85744118.4673/L16.1145143.54.745.4213250.699250.4410.07591Cet69.1832211.5624358-6.722351----123.279449-64.5934634.85092609380.0003790.0750.0480.0790.04219.5040.020.08946.48744.4e-060.060.220.00031243.26230.81338678216.11173.204-6.1434
52 Europa2019-Aug-02 21:002458698.3756.310.18*13.00772-1.7252913.2564-1.619325.200223-5.67693220.63245.3627762.89-481.29-409841.0-69409.4278.02.69978878971.4030.02211.767.5198.0380.0032426621.8*0.160884--------70.730.02----355.1474-5.44323.215242563329-1.67976072.60461793245323-22.391842321.66194716.2799322.75331118.5061/L16.1084144.25.045.3887250.706250.4410.07788Cet69.18321911.5631487-6.7243606----123.282814-64.595035.85096892140.0003790.0760.0480.0790.04219.5040.020.08946.47764.4e-060.060.220.00031243.26931.81602893316.10563.2078-6.1447
52 Europa2019-Aug-02 22:002458698.4166666676.310.18*13.00918-1.7268613.25785-1.620895.286592-5.68568236.350936.1143659.66-615.21-409998.0-69377.0278.0073.70252667031.6930.02711.767.5198.0390.0032426760.9*0.160917--------70.740.02----355.1544-5.44383.215202136457-1.67986352.60408027477222-22.295939621.65747516.2801422.66489118.5447/L16.1023144.95.245.3561250.713250.440.07985Cet69.18321811.5638725-6.7263774----123.286209-64.5965996.85102209580.0003790.0760.0480.0790.04219.5050.020.08946.46784.4e-060.060.220.00031243.27622.81867023116.09953.2116-6.146
52 Europa2019-Aug-02 23:002458698.4583333336.310.18*m13.01067-1.7284413.25932-1.622475.412458-5.69544248.409225.1974584.32-687.17-410155.0-69344.4278.0144.7052645492.3360.03711.767.5198.0410.0032426899.4*0.16095--------70.740.02----355.1613-5.44443.215161707122-1.67996632.60354470975628-22.218824621.65302116.2803622.59776118.5832/L16.0962145.65.545.3237250.72250.440.08184Cet69.18321711.5646192-6.7284064----123.289664-64.598177.85108547130.0003790.0760.0480.0790.04219.5050.020.08946.4584.4e-060.060.220.00031243.28323.82130981216.09353.2155-6.1473
52 Europa2019-Aug-03 00:002458698.56.310.18*m13.01219-1.7300313.26083-1.624065.567198-5.70645258.311713.4031538.42-723.68-410311.0-69311.8278.0215.70800242584.2220.06811.767.5198.0420.0032427037.3*0.160983--------70.750.02----355.1683-5.4453.215121275323-1.68006912.60301072555134-22.165217821.6485816.2805722.55602118.6215/L16.0902146.25.745.2915250.727250.4390.08384Cet69.18321611.5653986-6.7304522----123.293205-64.5997438.85115822740.0003790.0760.0480.0790.04219.5060.020.08946.44834.4e-060.060.220.00031243.29024.82394696816.08743.2193-6.1486
In [7]:
Eur_data["datetime_str"][0]
Out[7]:
'2019-Jul-25 00:00'

Format the time list to be accessable to matplotlib

In [8]:
dt.datetime.now()
Out[8]:
datetime.datetime(2019, 7, 20, 13, 43, 17, 679691)
In [9]:
def get_time(data):
    return dt.datetime.strptime(data,"%Y-%b-%d %H:%M")
In [10]:
TIME = []
for i in Eur_data["datetime_str"]:
    TIME.append(get_time(i))
In [11]:
plt.figure(figsize = (12,8))
plt.plot(Eur_data["RA"][::10], Eur_data["DEC"][::10], "o")
for i in range(len(TIME))[::10]:
    plt.text(Eur_data["RA"][i], Eur_data["DEC"][i], TIME[i])
plt.show()
In [12]:
Eur_data["RA"][0]
Out[12]:
12.47737

Format equatorial coordinates

In [13]:
RAS_DECS = SkyCoord(Eur_data["RA"], Eur_data["DEC"], unit=(u.deg, u.deg),frame='icrs')
RAS = RAS_DECS.ra.deg
DECS= RAS_DECS.dec.deg
In [ ]:
 

Get center coordinates

In [14]:
RA_mid = RAS[RAS.shape[0]/2]
DEC_mid= DECS[RAS.shape[0]/2]
print "mid RA: ",RA_mid,"deg ---- mid DEC: ",DEC_mid, "deg"
mid RA:  12.79224 deg ---- mid DEC:  -1.58019 deg

Retrieve DSS survey images at FOV=1deg and FOV=11min

In [15]:
EU_im = SW.SkyView.get_images(position=str(RA_mid)+" "+str(DEC_mid), 
                                  radius = 1.*u.deg, 
                                  survey = ["DSS"])
EU_im2 = SW.SkyView.get_images(position=str(RAS[0])+" "+str(DECS[0]), 
                                  radius = 11./60.*u.deg, 
                                  survey = ["DSS"])
/usr/lib/python2.7/site-packages/astroquery/utils/commons.py:171: UserWarning: Coordinate string is being interpreted as an ICRS coordinate provided in degrees.
  warnings.warn("Coordinate string is being interpreted as an "

Image Data and WCS conversion

In [16]:
IM  = EU_im[0][0].data
wcs = WCS(EU_im[0][0].header)

IM2  = EU_im2[0][0].data
wcs2 = WCS(EU_im2[0][0].header)

Image FOV and Overplot Asteroid Coordinates

In [17]:
plt.figure(figsize = (12,8))

### left image 
ax = plt.subplot(121, projection = wcs)
ax.imshow(IM, cmap = "Greys")
ax.plot(Eur_data["RA"][::10], Eur_data["DEC"][::10], ".", 
        transform = ax.get_transform("world"), label = "Europa")
for i in range(len(TIME))[::50]:
    ax.text(Eur_data["RA"][i]-0.02, Eur_data["DEC"][i]-0.03, TIME[i], 
            transform = ax.get_transform("world"))
### right image
ax2 = plt.subplot(122, projection = wcs2)
ax2.imshow(IM2,vmax = IM2.mean()+8.*IM2.std())
ax2.plot(Eur_data["RA"][::10][:3], Eur_data["DEC"][::10][:3], "--o", 
        transform = ax2.get_transform("world"), color = "w", label = "Europa")

ax2.text(Eur_data["RA"][0]+0.01, Eur_data["DEC"][0]-0.015, TIME[0], 
             transform = ax2.get_transform("world"), color = "w", fontsize = 16)


ax.legend()
ax2.legend()

ax.set_ylabel(r"DEC $[^{\circ}]$")
ax.set_xlabel(r"RA $[^{\circ}]$")
ax2.set_ylabel(r"DEC $[^{\circ}]$")
ax2.set_xlabel(r"RA $[^{\circ}]$")

ax.set_title( r"FOV : $1^{\circ}$" , loc="right")
ax2.set_title(r"FOV : $11^{\prime}$", loc="right")
plt.grid(True)
plt.show()

Query Objects in FOV and Plot

In [18]:
result_table = Simbad.query_region(str(RA_mid)+" "+str(DEC_mid), radius=0.7 * u.deg)
result_table
Out[18]:
<Table masked=True length=489>
MAIN_IDRADECRA_PRECDEC_PRECCOO_ERR_MAJACOO_ERR_MINACOO_ERR_ANGLECOO_QUALCOO_WAVELENGTHCOO_BIBCODE
"h:m:s""d:m:s"masmasdeg
objectunicode13unicode13int16int16float32float32int16unicode1unicode1object
LEDA 111708200 50 56.1-01 30 1855----0DO2003A&A...412...45P
TYC 4674-101-100 51 17.2689-01 29 05.48414141.2080.90690CO2018yCat.1345....0G
LEDA 111285000 51 15.1-01 41 0155----0DO2003A&A...412...45P
NVSS J005055-01262800 50 55.80-01 26 26.066500.000500.00090D1997ApJ...475..479W
LEDA 111321000 50 36.6-01 40 1155----0DO2003A&A...412...45P
LEDA 111617400 50 30.9-01 32 3655----0DO2003A&A...412...45P
TYC 4674-171-100 50 26.0411-01 38 41.85814140.0820.04490AO2018yCat.1345....0G
SDSS J005023.91-013208.700 50 23.9133-01 32 08.70814140.6160.45890AO2018yCat.1345....0G
BD-02 11300 51 23.4619-01 23 11.49514140.0380.02790AO2018yCat.1345....0G
.................................
LEDA 111473700 48 23.5-01 36 2555----0DO2003A&A...412...45P
[VV2003c] J005312.2-01062500 53 12.278-01 06 24.7277----0CO2009yCat.2294....0A
2SLAQ J004932.62-010057.300 49 32.6226-01 00 57.43314140.9580.86490AO2018yCat.1345....0G
SDSS J005008.96-005559.800 50 08.963-00 55 59.8577----0CO2014A&A...563A..54P
TYC 4674-1113-100 53 47.4667-01 49 11.046880.8000.31990AO2016A&A...595A...2G
PHL 84400 48 40.8819-01 15 47.45514140.2470.16090AO2018yCat.1345....0G
LEDA 110255900 53 09.7-02 04 0955----0DO2003A&A...412...45P
2SLAQ J005154.10-005424.000 51 54.10-00 54 24.066----0DO2006MNRAS.372..425C
SDSS J005327.66-011044.300 53 27.6629-01 10 44.23914140.1730.11890AO2018yCat.1345....0G
CAIRNS J005253.84-010146.100 52 53.84-01 01 46.166----0DO2003AJ....126.2152R
In [19]:
result_table

TCOORD = RAS_DECS = SkyCoord(result_table["RA"], result_table["DEC"], unit=(u.hour, u.deg),frame='icrs')

SRA = TCOORD.ra.deg
SDEC= TCOORD.dec.deg
In [20]:
SRA[0]
Out[20]:
12.733749999999999
In [21]:
plt.figure(figsize = (5,4))
ax = plt.subplot(111, projection = wcs)
ax.imshow(IM, cmap = "Greys")

ax.scatter(SRA, SDEC, facecolors='none' ,
           edgecolor="red",
           transform = ax.get_transform("world"), 
           label ="Simbad Sources",
           alpha = 0.4)

ax.plot(Eur_data["RA"][::10], Eur_data["DEC"][::10], 
        ".", 
        transform = ax.get_transform("world"), 
        label = "Europa")

for i in range(len(TIME))[::50]:
    ax.text(Eur_data["RA"][i]-0.02, Eur_data["DEC"][i]-0.03, TIME[i], 
            transform = ax.get_transform("world"))



ax.legend(loc = "lower right")

ax.set_ylabel(r"DEC $[^{\circ}]$")
ax.set_xlabel(r"RA $[^{\circ}]$")
ax.set_title(r"19/07/35  to  08/02   -   FOV : $11^{\prime}$", loc="right")
plt.xlim([0,IM.shape[1]])
plt.ylim([0,IM.shape[0]*0.7])
plt.grid(True)
plt.show()
In [ ]:
 
In [ ]: