Artist's impression of Kepler-22b as an oceanic "super-Earth" within its star's habitable zone. From http://en.wikipedia.org/wiki/List_of_potentially_habitable_exoplanets.

Artist’s impression of Kepler-22b as an oceanic “super-Earth” within its star’s habitable zone. From http://en.wikipedia.org/wiki/List_of_potentially_habitable_exoplanets.

At Friday’s journal club, we discussed a recent paper from Montet et al. (2015) that follows up on discovery of planetary candidates observed by the K2 Mission from Foreman-Mackey and colleagues.

Montet and colleagues combined high-spatial resolution and ground-based spectral observations, along with re-analysis of the K2 data, to confirm or refute the planetary status of earlier discoveries. They were able to validate 18 of the original 36 as planets, including a sub-Neptune planet, EPIC 201912552, orbiting a relatively bright M-dwarf star.

As Montet et al. point out, this object is a great candidate for follow-up observations. In fact, it looks like we could see it from Boise State’s Challis Observatory.

Friday’s attendees included Jennifer Briggs, Nathan Grigsby, Catherine Hartman, Tanier Jaramillo, Emily Jensen, and Liz Kandziolka.

Coloration of a jeweled beetle in light with left (a) and right (b) circular polarization. From Sharma et al. Science 325, 449 (2009).

Coloration of a jeweled beetle in light with left-handed (a) and right-handed (b) circular polarization. From Sharma et al. Science 325, 449 (2009).

Fascinating talk this morning from Prof. Srinivasarao of Ga Tech in the Material Sciences and Engineering Seminar about the physics of animal coloration.

Turns out the brilliant and iridescent coloration displayed by many insects and other animals is not due to dyes or pigments. Rather it’s due to micro- and nano-scale structures in animals’ scales or exoskeletons. These small structures combine polarization, reflection, and other subtle light manipulations to produce their complex and dazzling color displays.

Prof. Srinivasarao studies these processes and how we can replicate them in his lab. Here’s a recent publication from his lab.

A preliminary investigation showed a project a colleague and I were considering probably isn’t worth doing. But for that investigation, I took a few hours to make a rather complicated plot using pylab, so I thought I’d share how I did that.

First, here’s the plot:

Tidal decay timescales for members of multi-planet systems.

Tidal decay timescales for members of multi-planet systems.

The plot shows the timescales for tidal decay of members of multi-planet systems. Unfortunately, the x-axis labels aren’t legible unless you zoom in, but if you do, you can see the font colors match up with the corresponding line colors.

Below is the ipython notebook I used to generate the plot. The excel spreadsheet with the data is here.

#Show the plot inline
%matplotlib inline

#load in the required modules
import pandas as pd
import pylab as pl
import itertools as it
import numpy as np

# using the ExcelFile class
xls = pd.ExcelFile('exoplanet-archive_2015Mar25.xlsx')
data = xls.parse('obj of interest', index_col=1)
data = data[pd.notnull(data['a/(da/dt)Qs=1e6 (Gyrs)'])]

#Make a nice, big figure
fig = pl.figure(figsize=(15,15))
ax = fig.add_subplot(1, 1, 1)

#Make a list, indexing the dataframe labels
indices = range(len(set(data.index)))

#Make a list with the indices as the entries
labels = list(set(data.index))
#For concision, drop "Kepler" wherever it's found
labels = [w.replace('Kepler-', '') for w in labels]

#Make a cycle of line and text colors, blue, green, red, etc.
colors = it.cycle(['b', 'g', 'r', 'c', 'm', 'y', 'k'])

#Since each member of the multi-system should be plotted with the same x-value,
#  I need to generate a new list of all the same value with as many entries
#  as members. That's what "i" is for.
i = 0
for unq in set(data.index):

    #Retrieve the decay timescales calculated in the spreadsheet
    taus = data.loc[unq, 'a/(da/dt)Qs=1e6 (Gyrs)']

    #Generate the list of all the same x-value
    idx = np.ones_like(taus)*i

    #Make the scatter plot points with the current color
    ax.semilogy(idx, taus, marker='o', color=cur_color)

    
    #Get the next line color
    cur_color = next(colors)
    
    #Next x-value
    i += 1
    
#Give a little space to the left and right of the first and last x-values
pl.xlim([-1, len(set(data.index))+1])

#Switch out the x-values with the system names
pl.xticks(indices, labels, rotation='vertical', size='small', ha='center')

#Increase the size of the y-axis label font
pl.yticks(size=36)
#Label the y-axis
pl.ylabel('$a/\\left(\\frac{da}{dt}\\right)_{Q_{\\rm s} = 10^6}$ (Gyrs)', fontsize=36)

#Reset the colors cycle
colors = it.cycle(['b', 'g', 'r', 'c', 'm', 'y', 'k'])

#Set a new color for each x-axis label
for tick in ax.xaxis.get_ticklabels():
    tick.set_color(cur_color)
    cur_color = next(colors)

pl.savefig('Comparing multi-planet system a_dadt.png', bbox_inches='tight', orientation='landscape', dpi=250)

 

 

Artist's conception of Pluto's and Charon's surfaces. From http://www.ourpluto.org/home.

Artist’s conception of Pluto’s and Charon’s surfaces. From http://www.ourpluto.org/home.

We talked briefly about several things at Friday’s Journal Club. First, we discussed astrobites.org, a great blog that covers the interesting nitty-gritty of astronomy research. I pointed out that they are requesting submissions from undergrad researchers.

Second, we discussed the New Horizons mission’s request for suggestions for names of features on the surface of Pluto and its moons. After the mission flies by the system, there will be mounds of high resolution images, probably showing a variety of complex surface morphologies. And all that stuff is going to need names.

Third, Jacob presented a recent paper that extends the Titius-Bode relation to extrasolar systems and predict there are about 2 planets in habitable zones per star in our galaxy. A potentially fascinating result, but unfortunately, the T-B relation is probably just an interesting coincidence for our solar system — it has no theoretical basis, and so there’s no reason to believe it can be generalized to other planetary systems. Nevertheless, the article got a lot of press last week.

Finally, we talked about coding in astronomy, and I wanted to post this resource I just heard about, https://python4astronomers.github.io/. Looks to have a lot of helpful tutorials relevant to astronomy.

Friday’s attendees included Jennifer Briggs, Trent Garrett, Nathan Grigsby, Tanier Jaramillo, Emily Jensen, Liz Kandziolka, and Jacob Sabin.

Thanks to two of our folks in BSU physics, we’ve finally managed to get one of our telescopes working and took a beautiful image last night of the Orion Nebula.

Orion Nebula captured on-campus at Boise State on 2015 Mar 18.

Orion Nebula captured on-campus at Boise State on 2015 Mar 18.

Update (2015 Mar 29) — I submitted the FITS file image of the Orion nebula to astrometry.net, and it returned the following annotated image:

Astrometry.net fit for our Orion image. From http://nova.astrometry.net/user_images/622647#annotated.

Astrometry.net fit for our Orion image. From http://nova.astrometry.net/user_images/622647#annotated.

Just for my info, the reported image size is 14.6 x 10.9 arcmin and pixel scale is 0.547 arcsec/pixel.

Another attempt at using Gaussian processes to model time series, I’m looking at light curves from active galactic nuclei (AGN). The key thing I’m trying to do here is find and model flaring events.

First, I was interested to see if I could spot outliers representing the peaks of flares, while using a Gaussian processes (GP) model for background variability. The document below shows that attempt. The red band in each plot shows the GP prediction if there were no significant outliers, while the red dots show the outliers. (BTW, the way I embedded the code is very klunky but explained here.)

[gview file=”http://www.astrojack.com/wp-content/uploads/2015/03/looking_for_outliers.pdf”]

Next, I wanted to try to fit one of the apparent flaring events with a model that allowed for correlated noise. To that end, I adapted the example from Foreman-Mackey’s george python module. My solution is shown below. I need to incorporate a variable number of flaring events (I only allowed one for this example), but the model fit worked pretty well. In the second plot below, the blue band shows the range of model fits from the Markov-Chain Monte-Carlo (MCMC) analysis.

[gview file=”http://www.astrojack.com/wp-content/uploads/2015/03/fit_using_GP.pdf”]

At Friday’s journal club, we discussed on two papers. The first, Webber et al. (2015), investigated the effects of clouds on the phase curves for hot Jupiters. Webber et al. found that planet’s phase curve may depend sensitively on whether clouds are distributed uniformly or heterogenously throughout the atmosphere. They also found that the amount of light reflected by an exoplanet depends on the composition of the clouds — clouds made of rocky minerals like MgSiO3 and MgSi2O4 are much brighter than Fe clouds.

From Ballard & Johnson (2015), this figure compares the number of stars with a certain number of planets detected by Kepler (blue diamonds) to our expectations (in red) if single planet systems actually had more planets hidden from Kepler's view. The disagreement between the blue and red curves suggests that many of those apparently singleton planets really are only children and single and multi-planet systems are inherently different.

From Ballard & Johnson (2015), this figure compares the number of stars with a certain number of planets detected by Kepler (blue diamonds) to our expectations (in red) if single planet systems actually had more planets hidden from Kepler’s view. The disagreement between the blue and red curves suggests that many of those apparently singleton planets really are only children and single and multi-planet systems are inherently different.

The second paper, Ballard & Johnson (2014), investigated the frequency of exoplanets around M-dwarf stars observed by the Kepler mission. Because the Kepler mission found planets by looking for transits, there’s always a good chance that a system with only one detected planet actually has more that just don’t pass in front of their host star as seen from Earth. But we know exactly how to account for this geometric effect.

By accounting for it, Ballard and Johnson showed that Kelper actually found a lot more systems with only one planet than we would expect if there were just more planets in those systems hidden from Kepler‘s view. So there are two distinct kinds of planetary systems around M-dwarfs: those with only one planet (or possibly several planets with large mutual inclinations) and those with several.

Why the difference? Ballard and Johnson find tantalizing hints that  stars hosting only one detected planet are older on average. One simple explanation: given enough time, systems with many planets become unstable, and the lonely planets we see today originally had siblings that were gravitationally cast out of the system, to wander the void between the stars. Or the siblings were accreted by their parent stars, like Saturn eating his children. Along with many others, this study helps show that planetary systems can be much more violent places than astronomers originally thought.

Journal club attendees included Jennifer Briggs, Nathan Grigsby, Jared Hand, Tanier Jaramillo, Emily Jensen, Liz Kandziolka, and Jacob Sabin.

Trying again to dip my toes into advanced data science, I decided to experiment with the Gaussian processes module in sci-kit learn. I’ve been working with barometric data to study dust devils, and that work involves spotting short dips in otherwise slowly varying time series.

In principle, Gaussian processes provides a way to model the slowly varying portion of the time series. Basically, such an analysis assumes the noise infesting each data point depends a little bit on the value of other nearby data points. The technical way to say this is that the covariance matrix for the data stream is non-diagonal.

So I loaded one data file into an ipython notebook and applied the sci-kit learn Gaussian processes module to model out background oscillations. Here’s the notebook.

In [32]:
%matplotlib inline
#2015 Feb 15 -- A lot of this code was adapted from 
#  http://scikit-learn.org/stable/auto_examples/gaussian_process/plot_gp_regression.html.

import numpy as np
from sklearn.gaussian_process import GaussianProcess
from matplotlib import pyplot as pl
import seaborn as sns
import pandas as pd
sns.set(palette="Set2")

#from numpy import genfromtxt

my_data = np.genfromtxt('Location-A_P28_DATA-003.CSV', delimiter=',', skip_header=7, usecols=(0, 1), names=['time', 'pressure'])

X = np.atleast_2d(np.array(my_data['time'])[0:1000]).T
y = np.atleast_2d(np.array(my_data['pressure'])[0:1000]).T
y -= np.median(y)

# Instanciate a Gaussian Process model
gp = GaussianProcess(theta0=1e-2, thetaL=abs(y[1]-y[0]), thetaU=np.std(y), nugget=1e-3)

# Fit to data using Maximum Likelihood Estimation of the parameters
gp.fit(X, y)

# Make the prediction on the meshed x-axis (ask for MSE as well)
y_pred, MSE = gp.predict(X, eval_MSE=True)
sigma = np.sqrt(MSE)

data = pd.DataFrame(dict(time=X[:,0], pres=y[:,0]))
sns.lmplot("time", "pres", data=data, color='red', fit_reg=False, size=10)

predicted_data = pd.DataFrame(dict(time=X[:,0], pres=y_pred[:,0]))
pl.plot(X, y_pred, color='blue')
Barometric time series. Pressure in hPa, and time in seconds.

Barometric time series. Pressure in hPa, and time in seconds. The red dots show the original data, and the blue line the fit from the Gaussian process.

Unfortunately, the time series has some large jumps in it, and these are not well described by the slowly varying Gaussian process. What causes these jumps is a good question, but for the purposes of this little analysis, they are a source of trouble.

Probably need to pursue some other technique. Not to mention that the time required to perform a Gaussian process analysis scales with the third power of the number of data points, so it will get very slow very fast.

We had an abbreviated meeting, as everyone (including myself) seems to have been unusually busy this week. No specific research updates, but we discussed two interesting articles of science news. Attendees were Liz Kandziolka, Jennifer Briggs, Emily Jensen, Brenton Peck, Nathan Grigsby, Trent Garrett, and Prof. Daryl Macomb.

The first article we discussed, “Cosmology from Quantum Potential“, proposed an origin for the universe that represents an alternative to the big bang. We didn’t really understand the theory, but it seems to involve the idea that universe doesn’t really have a beginning. We puzzled over whether the theory actually proposes any specific testables or observables.

The second article we discussed, “Titan Submarine : Vehicle Design and Operations Concept for the Exploration of the Hydrocarbon Seas of Saturn’s Giant Moon“, suggests a plan to send a submersible to plumb the depths of Titan’s seas, the only seas in our solar system besides those on Earth. Studying Titan’s seas may teach us about the pre-biotic chemistry in the Earth’s early oceans. And as with all exciting scientific work, this study comes with an animation and dramatic sound track.

The tightly packed system, named Kepler-444, is home to five small planets in very compact orbits. The planets were detected from the dimming that occurs when they transit the disc of their parent star, as shown in this artist's conception. From http://www.nasa.gov/ames/kepler/astronomers-discover-ancient-system-with-five-small-planets/.

The tightly packed system, named Kepler-444, is home to five small planets in very compact orbits. The planets were detected from the dimming that occurs when they transit the disc of their parent star, as shown in this artist’s conception. From http://www.nasa.gov/ames/kepler/astronomers-discover-ancient-system-with-five-small-planets/.

In journal club on Friday, we discussed a fascinating paper from Campante and colleagues announcing discovery of one of the oldest planetary systems ever discovered — Kepler-444. The system comprises five planets, ranging from roughly Mercury- to Venus-sized with orbital periods from about 3 to 9 days.

Studying the frequencies of oscillations within the K-dwarf host star (an approach known as asteroseismology), Campante et al. estimate the host star, and therefore probably the planets, is about 11 billion years old, almost as old as the Milky Way galaxy itself.

To put that age into perspective, by the time our solar system formed, about 5 billion years ago, the Kepler-444 was already a billion years older than our solar system is now.

The existence of such an old system tells us that rocky planets began forming almost as soon as the Milky Way itself formed, which allows for the exciting possibility of very ancient life in the galaxy.

Present at journal club were Jennifer Briggs, Trent Garrett, Nathan Grisgby, Emily Jensen, Liz Kandziolka, Brenton Peck, and Jacob Sabin.