Link: The Sound Of Mandelbrot Set

The Ripples blog  published a very nice post about “sonifying” the Mandelbrot set. The resulting sound files (linked in the post) are quite interesting, especially the “SlowDivergence” soundbite. The post also tipped me off about  playitbyr, an R package that converts a data.frame (a table of values) into an auditory graph. The soundbites demoed on the webpage are really cool — you should check them out!

The sonification window of Systemic v1.
The sonification window of Systemic v1.

The “classic” version of Systemic (v1, Java) has a feature for sonifying the orbital dynamics of exoplanets, originally written by Aaron Wolf (now a Turner Postdoctoral Fellow at the University of Michigan).

Non-interacting planets only generate pure sine-wave tones — not very interesting. It gets much more exciting once you introduce planetary interactions. Resonant and unstable systems, in particular, generate much more delicate or dramatic samples. has a few posts about the sonification feature, with downloadable soundbites.

I have not been a very good steward of this feature — it didn’t make it into Systemic2 (or the web app) since I didn’t want to work on migrating the Java code.  The existence of playitbyr, though, means I do not have to reinvent the wheel, definitely reigniting my interest in implementing this feature!

[Via R-bloggers.]

AstroTRENDS: A new tool to track astronomy topics in the literature

A screenshot of AstroTRENDS, showing three random keywords: Dark Energy, Spitzer, and White Dwarf.
A screenshot of AstroTRENDS, showing three random keywords: Dark Energy, Spitzer, and White Dwarf. White Dwarfs are the “old reliable” of the group.

Inspired by this post by my good friend Augusto Carballido, I created a new web app called AstroTRENDS. It’s like Google Trends, for astronomy!

AstroTRENDS shows how popular specific astronomic topics are in the literature throughout the years. For instance, you could track the popularity of Dark Energy vs. Dark Matter; or the rise of exoplanetary-themed papers since the discovery of the first exoplanets in 1992. As an example, check out this post I wrote about whether the astronomical community has settled on the “extrasolar planet” or “exoplanet” monicker.

You can normalize keywords with respect to one another, or the total article count, to track relative trends in popularity (say, the growth of “Transits” papers compared to “Radial Velocity” papers). Finally, you can click on a specific point to see all the papers containing the keyword from that year (maybe that spike in a keyword is connected to a discovery, a new theory or the launch of a satellite?).

How does it work? I crawled ADS for a small number of keywords that I thought were interesting (but you can ask me for more!), and counted how many refereed articles were published containing that keyword in the abstract for each year between 1970 and 2013. Keywords containing multiple words are contained within quotes, to specify that all words must be in the abstract.

Play and have fun with it, and if you find an interesting trend, you can share it with others by copying and pasting the address from the “Share” box. (Feel free to send it to me, too!)

Open AstroTRENDS

Link: Zooniverse Disk Detective

Disk Detective is the newest Zooniverse citizen science project.  Volunteers delve into more than 500,000 objects seen at different wavelengths, and help pick out potential circumstellar disks.

An animated gif I made scrolling through different wavelengths on Disk Detective.
An animated gif I made scrolling through different wavelengths on Disk Detective.

The idea is super cool, the bit of classifying I did was fun, and the website looks great. Outstanding job!

Erika Nesvold has a nice writeup of the project on Astrobites.

New release of Systemic 2 (2.14)

I have just released a new version of Systemic 2 (2.14).  Lots of little bug fixes, together with a few features.

My favorite is the “smooth orbit plot”, which recreates plots that will appear on an upcoming planet paper (I will put proper credit here once the paper is out!). The routine takes samples of orbital elements from the output of a Markov-Chain Monte Carlo or bootstrap run, and plots the orbits with some transparency, so that it is visually evident where orbits “crowd up”.

Smooth orbit plot
Smooth orbit plot made with Systemic 2.14

On top of the samples, I plotted the “best-fit” orbit in red (which hopefully will fall on top of the range of possible orbital elements!). This plot can also give some visual sense of multi-modal or non-symmetrical element distributions.

Download Systemic 2.14

Other changes:
– Added a feature for smoother/faster plotting in GUI
– Periodograms now print out the strongest peaks
– Periodograms are zoomable
– Fixed Cross-validation for fits with only one planet
– New menu item to add random Gaussian noise to data
– Smooth orbits plot from an error estimation object
– FIXED: Improved Linux installation instructions (credit for reporting: Thomas Kosvic)
– FIXED: bug in SWIFTRMVS on 32-bit installations (credit for reporting: Thomas Kosvic)

51 Pegged — Re-Discovering the first exoplanet with Systemic Live

This post is the first in a series of Systemic Live tutorials. You can see all Systemic Live tutorials in this link.

In this post, I will show how to analyze the radial velocity dataset of the the planetary system that started it all, the original gangsta, 51 Peg. I will use the new web application Systemic Live, a simplified version of Systemic that runs in your browser.

Artist's concept of a "hot Jupiter", Credit: NASA/JPL-Caltech
Artist’s concept of a “hot Jupiter”, Credit: NASA/JPL-Caltech

51 Peg was announced in 1995 by a Swiss team led by Michel Mayor and Didier Queloz; it was later confirmed by an american team led by Geoff Marcy and Paul Butler at the Lick Observatory.  It was the very first exoplanet found to orbit a Sun-like star. Mayor and Queloz’s discovery of the hot Jupiter orbiting 51 Peg was truly a watershed event: their Nature paper has racked up 1225 ADS citations! (These are citations from other astronomical papers.)

We will analyze this data, and follow the same procedure used to unearth the evidence for the first planet orbiting a Sun-like star.


Launch Systemic Live. Upon launch, you will see a window similar to the one below.[ref]If Systemic suggests your browser might be slow, we recommend to use the Google Chrome browser for maximum performance.[/ref] Click on the blue question mark icons to get help on the various panels in the application.

You can either do the rest of this tutorial by following the instructions, or clicking on Big Blue buttons like these to show the step in Systemic.

Systemic Live upon first launch.
Systemic Live upon first launch.

The SYSTEM drop down lets you choose which dataset to analyze. The dataset name is the name of the star that was observed to produce the radial velocity data (for example, 14Her.sys is the dataset for 14 Herculis). You can find more information about the star by scrolling to the ABOUT THIS STAR section.

Click on the SYSTEM drop down, type “51peg” to find the dataset for 51 Peg. Choose “51peg.sys”. The data will be loaded, like in the screenshot below. The RADIAL VELOCITY plot shows the radial velocity data: each point is a single measurement. Time is on the x-axis, measured as a Julian Date (a  way to indicate time favored by astronomers). Radial velocity measurements, in meters per second, are on the y-axis. See in Systemic

The 51 Peg dataset loaded in Systemic Live. The observations were made from two observatories: the Swiss Observatoire de Haute-Provence (red) and the Lick Observatory (blue). Move your mouse to see the date associated with each measurement.

One of the datasets was published by the California-Carnegie Planet Search Team (red points), the other by the Geneva Extrasolar Planet Survey (blue points). The Swiss data set gives a long baseline of coverage, whereas the California-Carnegie dataset contains intensive observations taken mostly over the course of a single observing season in 1996.  You can move your mouse over the points to see human-readable dates instead of julian dates.

Scroll down to see the POWER SPECTRUM plot.

The Lomb-Scargle power spectrum shows the most prominent periodicities in the data.
The Lomb-Scargle power spectrum shows the most prominent periodicities in the data.

The POWER SPECTRUM plot shows which periodicities are present in the data. A prominent periodicity in this plot looks like a tall “peak”; a strong periodicity might be indicative of the presence of a planet orbiting a star at that period.

The peak at 4.23 days

In the case of 51 Peg, the power spectrum periodogram has an impressive tower of power at 4.231 days. This dataset contains a whopping-strong sinusoidal signal at that period! You can see a table of periodicities right under the plot. You can also “zoom in” and look at a more fine periodogram by changing the period interval. (Insert, for instance, 4 to 5 days as the interval and press Set; press Reset to return to the default interval). See in Systemic

Power spectrum between 4 and 5 days.
Power spectrum between 4 and 5 days.

Mousing over the power spectrum plot will show the “power” at a given period (the strength of the signal at that period) and also an estimate of the so-called “False Alarm Probability”, the probability that the signal might have arisen by chance (e.g. by an unlucky sequence of noise mimicking a sinusoid). In the case of the peak at 4.2306 days, the False Alarm Probability is astronomically low (10-168, an infinitesimally small probability). The periodicity is definitely there!

To work up the 51 Peg “b” planet, click on “Add planet”. This button will activate a table of orbital parameters: Period (the orbital period of the planet, in days), Mass (the mass of the planet, in Jupiter masses), Mean Anomaly (the phase of the planet at the time of the first measurement, in degrees), Eccentricity (the shape of the orbit) and Longitude of Periastron (the orientation of the orbit, in degrees).  Type 4.2306 (the period of the strong peak) in the Period box. You should see something like the plot below. See in Systemic

The Radial Velocity plot after the planet is added. The period of the signal is too small to be plotted! YELLOW BOX IS NOT HAPPY
The Radial Velocity plot after the planet is added. The period of the signal is too small to be plotted! YELLOW BOX IS NOT HAPPY

Systemic plots the radial velocity curve due to the presence of planet(s) as a thick black curve; the better the curve matches the points, the better the model (also called a fit). However, in the case of 51 Peg b, the plot is distorted. The reason is that the observations cover more than 9 years, while the curve has a period of only 4 days: the sinusoid has too many peaks and troughs to plot! A reproachful yellow alert informs you of this limitation.

To get a better plot, switch to the PHASED RADIAL VELOCITY plot. This switches the top plot to a new view. In this new view, the radial velocity points are “folded” to the period of the planet: the data points are shifted to cover the entire period of the planet.

The phased radial velocity plot. The sinusoidal signal is now a lot clearer.
The phased radial velocity plot. The sinusoidal signal is now a lot clearer.

Much better!

Finding the planet parameters

You can now see the full sinusoidal signal caused by the presence of the planet (the thick black line). The sinusoidal shape of the data is also evident. To match the black line (the model) with the points (the data), you would only need to shift it and increase its amplitude. This is done by varying the Mean Anomaly and Mass parameters. To automatically snap to the best values, use the checkboxes next to it to select them and click the Optimize button. The Optimize button automatically cycles to values to find the “best-fit”, the parameters of the model that best match the observations.

The fit is now quite good! See in Systemic

The black line (the model) is a better match for the points (the observations).
The black line (the model) is a better match for the points (the observations).

The improvement of the fit is measured by the Chi-square value (found under the STATISTICS table). A good fit has a value of Chi-square close to 1. The value of Chi-square for this model is 2.12 – pretty good!

We can do even better.  Check all the remaining parameters: the two offsetsPeriodEccentricity and Longitude of periastron. Then, click Optimize. The procedure will give a small improvement in Chi-square (from 2.12 to 2.01).

The final fit parameters for the planet give a period of 4.2308 days, a mass of about 0.5 Jupiter masses, and an eccentricity of 0.014, fully consistent with the original paper! This is what its orbit looks like: See in Systemic

Orbital plot of 51 Peg b. The planet is at only 0.05 AU from the star! HOT HOT HOT!
Orbital plot of 51 Peg b. The planet is at only 0.05 AU from the star! HOT HOT HOT!

Return to the POWER SPECTRUM plot one last time. The 4.23 days peak has been eliminated by the addition of the planet: the only strong period left is at about 359 days. See in Systemic

A residual peak at 359 days.
A residual peak at 359 days.

This residual peak is strong, though not quite as tall as the original one. Is it evidence for a second (“c”) planet? Not quite. The period of this peak is very close to the Earth’s orbital period (about 365.25 days). Turns out that certain periodicities, connected with the Earth’s and the Moon’s orbital period (among others), can show up in the data as artificial peaks. These spurious periodicities are related to gaps in the time coverage of the data and not due to the presence of exoplanets! From’s post:

Aliases are a problem in Doppler surveys because observations are most efficiently done when the star is crossing the meridian, leading to a natural spacing of one sidereal day (23h 56m) between data points. Further periodicities in data-taking arise because RV survey time is usually granted during “bright” time when the Moon is up, and as a consequence of the yearly observing season for non-circumpolar stars. Aliases are minimized when observations are taken randomly, but the nuts and bolts of the celestial cycles impose regularity on the timestamps.

Saving and sharing a fit

You can save your fit by copying the current address (the URL) in your browser, or copying the content of the SHARING panel. It will look something like this:

You can copy and paste this address to your notes in order to save your work, or send it to other people to share your work.

Saving and printing plots

You can save or print each chart by clicking on the icon on the top-right corner:

Click the button to print or save a plot.
Click the button to print or save a plot.

What’s next?

Now that you have found your first planet with Systemic Live, take it for another spin with the star HD31253. HD31253 is another fish-in-a-barrel dataset for Systemic. It hosts a single planet — try to figure out its period and mass without looking them up!

Look out for the next installment, Trois Neptunes, in a future post. You can see all Systemic Live tutorials in this category.

[This post is an adaptation of the post “51 Pegged?” that originally ran on on April 7th, 2006.]

A new release of Systemic Live!

Screen Shot 2014-01-31 at 2.05.51 PM

I just pushed online a new version of Systemic Live. Among the new features:

  • Users can now easily save and load fits. Just copy and paste the current URL!
  • Radial velocity plots can now be “phased” to a given planet. This greatly improves the visualization of radial velocity curves of planets with short period, or multiple planet systems.
  • You can now run dynamical integrations right in your browser! See how the semi-major axes and eccentricities of a planetary system change with time, and check whether a planetary system is unstable.
  • You can zoom in the power spectrum; as you zoom in, the periods in the chosen range will be sampled more finely for increased precision. Underneath the plot, a list of strong peaks show the most likely candidate periodicities.
  • A new “About this star” panel shows some basic information about the selected star (in the future, this will also link to and similar websites).
  • The core has been updated with the most recent version of the Systemic2 code, for improved speed and stability.

Enjoy! I will be posting tutorials showing how to find exoplanets using Systemic Live in the next few days.

Using Celestia for fun and profit

Celestia is a stunning program for visualizing 3D objects in space, in real-time.  It has a large database of astronomical objects (stars, planets, moons, minor bodies, etc.) that are rendered realistically and are positioned accurately in space and time.

A screenshot of Celestia running on my laptop.
A screenshot of Celestia running on my laptop.

One thing I discovered recently is that Celestia is also eminently programmable. What I mean is that, instead of manually zooming, flying-by and orbiting objects, Celestia can run scripts that execute complex macros. These scripts let you create engaging visualizations — either interactively initiated, or recorded into a video. Panning, zooming, orbiting, accelerating and flying through space with a cinematic flair, which makes for great outreach presentations. The scripting language itself is a fully-featured language (Lua, one of my favorite languages!), so math, looping constructs, data structures are all available.

I am using Celestia to prepare a short talk about how the discovery of exoplanets revolutionized planetary science, and shook a lot of the assumptions that were rooted in centuries of observing our Solar System.

Cover slide of my talk.

Above is the (draft) first slide of the talk. Each planetary slice is a screenshot from Celestia, using one of the planetary objects that will be touched during the talk. The composition of the slide was inspired by a recent posting on Reddit — a beautiful painting of the planets of the Solar System (I would have died of happiness if I got this painting when I was little!)

Another great feature of Celestia is that every single object is defined within a text file (with references to 3D models, textures, etc.) that are easily modifiable and extendable; a bundle of files placed in Celestia’s extras/ folder is loaded at startup, and the astronomical objects come to life.

This spawned another amazing resource for people doing astronomy outreach, the Celestia Motherlode. The Celestia Motherlode is an extensive repository of mods, textures and objects (even fictional ones!) that are freely downloadable. Some are high-resolution textures of the Solar System planets; others are exoplanetary systems that have been discovered since the discovery of Celestia; others still are beautiful renderings of hypothetical systems.

For my talk, I made several videos. Among them, these will be the background as I explain the basics of planet formation.

A zoom into the inner parts of a protoplanetary disk reveals planetesimals and embryos embedded in it…

[videojs poster=”” mp4=””]

…while outside the ice line, giant cores accrete massive atmospheres from the disk.

[videojs poster=”” mp4=””]

(Please attribute this website if you’d like to reuse them!). These shots were accomplished using scripts and custom textures and models from Motherlode (this add-on which I heavily modified, and this model for the impacted protoplanet).

Since I found Celestia such an useful, little-know tool,  I decided to write a series of blog posts on how to use its scripting facilities and create custom planetary systems. Hopefully they will be useful to fellow astronomers!

In the next post in this blog series, I will show how to create this simple animation that shows the orbits of the planets in the Solar System, and then rotates the view to show that the Solar System is rather flat (planet sizes not to scale, of course!):

[videojs poster=”” mp4=””]

Some useful resources to get started: