Download as pdf or txt
Download as pdf or txt
You are on page 1of 5

8.

920 pset5
Akashnil Dutta
March 2015

Astrometry

9
J
Stars distance from center of mass is 4 au 3M
M = 1.7143 10 m
Maximum magnitude of wobble is 3.4286 109 m if the orbital plane is perpendicular to Line of sight.
Stars distance from Earth is 1.851 1017 m.
917
Maximum angular motion is radians = 3.4286
= 1.8523 108 rad =
1.851 10
3.821 103 arcseconds

Planet Occurrence Rates from Kepler Data


1. There are 7348 planet candidates in the data.
2. 9.44%, 56.3%, 30.31% respectively. The missing fraction probably corresponds to planets with unknown radii.
3. 47.28%, 36.57%, 16.15% respectively.
4. Period distribution shown below

Figure 1: Distribution of periods in days


5. The distribution sharply falls off with periods of several years. This is
because keplar has been operating for a few years and one transit is usually
not enough to detect a planet.
6. Taking the probability into account, we get the following distribution

Figure 2: Distribution of periods in days accounting for observational bias


7. I dont think this is the true distribution because we have accounted for
one type of observational bias arising from line-of-sight alignment. But
small radius planets are hard to observe, dim stars are hard to observe. It
is possible that small planets are associated with shorter periods, in which
case weve introduced another bias in the data which needs to be accounted
for. Also the error bars are very large near longer periods because there
are few datapoints and those are hard to confirm.

import
import
import
import
import

csv
itertools
pandas as pd
math
numpy as np

csvfilename = C:/Users/akashnil/Downloads/Kepler_Data_NEA.csv
df = pd.read_csv(csvfilename, skiprows=91)
planet_radius = df[koi_prad]
planet_radius = [float(x) for x in planet_radius]
stellar_radius = df[koi_srad]
stellar_radius = [float(x) for x in stellar_radius]
planet_period = df[koi_period]
planet_period = [float(x) for x in planet_period]
planet_semimajor = df[koi_sma]
planet_semimajor = [float(x) for x in planet_semimajor]
tot = len(planet_radius)
a, b, c = 0, 0, 0
for x in planet_radius:
if x <= 1.0:
a += 1
if x > 1.0 and x <= 4.0:
b += 1
if x > 4.0:
c += 1
print (less 1 R , 100 * float(a)/tot)
print (1 R 4 R , 100 * float(b)/tot)
print (more 4 R , 100 * float(c)/tot)
a, b, c = 0, 0, 0
for x in planet_period:
if x <= 10:
a += 1
if x > 10 and x <= 100:
b += 1
if x > 100:
c += 1
print (less 1 R , 100 * float(a)/tot)
print (1 R 4 R , 100 * float(b)/tot)
print (more 4 R , 100 * float(c)/tot)
import pylab as pl
pl.figure()

periods = []
for p in planet_period:
if 1.0 < p < 1000.0:
periods.append(p)
num_bins = int(len(periods) ** (1/3.))
print (num_bins)
pl.hist(periods, bins=np.logspace(0., 3., num_bins))
pl.gca().set_xscale("log")
# pl.hist(planet_period, bins=np.logspace(1, 1000,
int(len(planet_period) * (1/3.))))
# pl.gca().set_xscale("log")
pl.show()
prob_obs = [planet_semimajor[i] / stellar_radius[i] for i in
range(len(stellar_radius))]
num_samples = 1000000
prob_obs = [x if math.isfinite(x) else 0 for x in prob_obs]
factor = num_samples / sum(prob_obs)
count_planets = [int(x * factor) for x in prob_obs]
modified_periods = []
for i in range(len(stellar_radius)):
for j in range(count_planets[i]):
modified_periods.append(planet_period[i])
pl.figure()

periods = []
for p in modified_periods:
if 1.0 < p < 1000.0:
periods.append(p)
pl.hist(periods, bins=np.logspace(0., 3., num_bins))
pl.gca().set_xscale("log")
# pl.hist(planet_period, bins=np.logspace(1, 1000,
int(len(planet_period) * (1/3.))))
# pl.gca().set_xscale("log")
pl.show()

You might also like