Skip to content
Tim Erickson edited this page Sep 28, 2018 · 3 revisions

Stella

This is a stellar astronomy simulation suitable for an astronomy unit in high school (though they will never plumb its depths) or in an introductory astronomy course (where they ought to).

We observe a chunk of sky that has a couple of open clusters as well as background stars. We can measure stellar position and brightness, and take spectra of stars as well as of discharge tubes in the lab. It's quite detailed and true to life. There is a lot to discover.

There is also complexity in the data. The user has CODAP tables for...

  • The star catalog (407 cases)
  • Photometry results
  • Spectroscopy results
  • Other results

The "other results" can contain simple results such as x or y astrometric observations, or more complex conclusions such as a stellar temperature. So it's heterogeneous. This creates the (unsolved) problem of coping with tidy data sets: the table itself has very general and flexible columns for type and values (and things like units) so that very differing results can be stored as, for example, {x : 67.2, temp : 14500}.

The format of that table, and other things, work together to make this an interesting and computational-thinking-rich data analysis experience for students, even those not studying astronomy. "Awash in data" R Us.

Files

  • stella.html: the usual: the UI and paths to included js files

  • stella.css: styling stella.html.

  • stella.js: defines the global stella as well as stella.constants, where version is defined. Also contains a number of utility functions important to astronomy, such as 3D distance and the conversions between luminosity and magnitude.

  • stella.manager.js: Contains all sorts of methods to adjust what we're looking at, etc. — everything that you might think of as model and controller except actual model, the stars themselves. It also includes stellaDoCommand(), which responds to selections in the star catalog table in CODAP to shoft our focus to that star. A cool feature.

  • stella.model.js: Everything to do with the stars themselves, at a high level. Maintains the array of the actual star systems and calls up other information as needed.

  • staticStars.js: A huge JSON object containing all the star systems (over 900), each of which contains one or two stars.

  • stella.options.js: There are a few options in Stella, basically flags that govern, for example, whether temperature affects which spectral lines are visible. This file reads the checkboxes in the DOM and sets the flags.

  • stella.ui.js: Maintains displays and component visibility. Adjusts text.

  • stella.connector.js: makes connections to CODAP, including selection.

  • stella.badges.js: Implements "badges." When you have successfully found some number and quality of some kind of results (e.g., radial velocities of stars from their spectra) you get a badge in that skill. This entitles you to get that result without doing all the detailed work.

  • stella.share.js: For retrieving stars from a database. Tim does not think we actually use this.

  • stella.player.js: Likewise, not used. Would become a more global database of players and their accomplishments.

  • stella.skyView.js: Implements and maintains the "sky view", the display of stars with a vie reticle. Clciking in this view is how we point our "telescope." These (and all) graphics are drawn using Snap.svg.

  • stella.photometryManager.js: Sets up photometry measurements when we're on that tab.

  • stella.spectrumManager.js: Manages the displays and controls in the spectroscopy tab. That tab displays both stellar and lab spectra, including lab blackbody spectra.

  • elementalSpectra.js: Huge singleton that creates each line for each element.

classes

  • Line.js: Model class for a single spectral line.
  • Planet.js: Unused, but ready! We have all of the mechanics somewhere...
  • Spectrum.js: Model class that manages a spectrum, that is, a set of Lines. Stellar spectra are absorption imposed on a blackbody; in the lab you might have emission or simple blackbody. Includes calculating the total light between two wavelengths. This is for display at any resolution or for photometry.
  • SpectrumView.js: Actually displays a spectrum using plausible colors. Includes a zoomed-in display so you can essentially take a loupe to any part of a spectrum.
  • Star.js: Model class for an individual star. The file also includes the class StarView. Stars have temperature, composition, spectra, that may differ from other stars in their system.
  • System.js: Model class for a system of stars. Systems have position, parallax, proper motion, etc., that its component stars share.
Clone this wiki locally