๐งฑ Creating Populationsยถ
The primary goal of exoatlas is to create populations of exoplanets which which we can interact in fairly standardized way. Here we summarize a few different pre-defined Population objects we can create. From all these basic populations, you can make your own to play with by indexing, slicing, or masking as described in Populations.
import exoatlas as ea
import exoatlas.visualizations as vi
import astropy.units as u
ea.version()
'0.7.7'
Throughout this page we'll use a handy PlanetGallery() gallery visualization to see some basic properties of a particular population. For more on useful plots and plotting tools, see Visualizing.
"PredefinedPopulation" = a commonly useful archival datasetยถ
The atlas contains a few predefined populations, for which data are automatically downloaded from archives and standardized into tables in exoatlas's preferred format. This downloading and standardizing can take a while, so the results will be stored locally, in a directory you can locate with:
ea.locate_local_data()
๐พ `exoatlas` archive data will be stored in: /Users/zabe0091/exoatlas-data
By default, downloaded data will be stored inside your current working directory. If you'll be using exoatlas from lots of different directories on your computer, and you don't want to keep downloading fresh copies of the archive into each working directory, you can define one path that should be used for exoatlas data for your entire computer by setting a global EXOATLAS_DATA environment. For example, on a mid-2020s Mac, this looks like editing the shell configuration file ~/.zshrc and adding a line like export EXOATLAS_DATA="/Users/zabe0091/exoatlas-data".
If you ever want to reset the local data, you do so with:
ea.reset_local_data()to remove all local files, including raw downloadsea.reset_standardized_data()to remove standardized files but keep raw downloads
If you have recently updated your local version of exoatlas and run into problems with data acting weird, you may want to consider doing a data reset.
"SolarSystem" = major Solar System planetsยถ
The eight planets in our own Solar System are useful as a comparison sample. Their properties are built-in with exoatlas, so they don't need to be downloaded from any archive.
solar = ea.SolarSystem()
solar
โจ Solar System | 8 elements โจ
vi.PlanetGallery().build(solar);
Likewise, we have the dwarf planets, smaller minor planets, and moons:
dwarfs = ea.SolarSystemDwarfPlanets()
dwarfs
โจ Solar System Dwarf Planets | 5 elements โจ
minor = ea.SolarSystemMinorPlanets()
minor
โจ Solar System Minor Planets | 10183 elements โจ
moons = ea.SolarSystemMoons()
moons
โจ Solar System Moons | 41 elements โจ
"Exoplanets" = confirmed, published, exoplanetsยถ
The NASA Exoplanet Archive maintains a list of confirmed transiting exoplanets. These are systems that have been published in the peer-reviewed literature. Most of them have been characterized in sufficient detail that they are unlikely to be false positives. This archive contains planets discovered through a variety of methods. We can access all exoplanets in the archive, regardless of discovery method, with:
exoplanets = ea.Exoplanets()
exoplanets
โจ Exoplanets | 6128 elements โจ
For many purposes, it will be really handy to have just those exoplanets that transit their stars. To access those:
transiting = ea.TransitingExoplanets()
transiting
โจ Transiting Exoplanets | 4554 elements โจ
vi.PlanetGallery().build([transiting, solar]);
Subsetsยถ
Some common subsets have been defined as their own Population objects. To make your own subsets, see Populations for how to filter a sample of planets down according to its properties.
Which planets were discovered by the NASA Kepler mission or not?
kepler = ea.Kepler()
kepler
โจ Kepler | 3309 elements โจ
nonkepler = ea.NonKepler()
nonkepler
โจ Non-Kepler | 1245 elements โจ
vi.PlanetGallery().build([kepler, nonkepler, solar]);
Which planets were discovered by the NASA TESS mission or not?
tess = ea.TESS()
tess
โจ TESS | 753 elements โจ
nontess = ea.NonTESS()
nontess
โจ NonTESS | 3801 elements โจ
vi.PlanetGallery().build([nontess, tess, solar]);
Which planets were discovered from telescopes in space or telescopes on the ground?
space = ea.Space()
space
โจ Space-based | 4098 elements โจ
ground = ea.Ground()
ground
โจ Ground-based | 456 elements โจ
vi.PlanetGallery().build([space, ground, solar]);
Which planets have masses that have been detected at better than $5\sigma$?
good = ea.GoodMass(sigma=5)
good
โจ Good Mass | 960 elements โจ
bad = ea.BadMass(sigma=5)
bad
โจ Bad Mass | 3591 elements โจ
vi.PlanetGallery().build([bad, good]);
Collectionsยถ
Because we often might want to load up a bunch of population subsets at once, we provide built-in functions that create dictionaries of planets grouped by particular properties. For example, let's see exoplanets grouped by their original discovery method:
methods = ea.get_exoplanets_by_method()
methods
{np.str_('Astrometry'): โจ Astrometry | 6 elements โจ,
np.str_('Disk Kinematics'): โจ Disk Kinematics | 1 elements โจ,
np.str_('Eclipse Timing Variations'): โจ Eclipse Timing Variations | 17 elements โจ,
np.str_('Imaging'): โจ Imaging | 94 elements โจ,
np.str_('Microlensing'): โจ Microlensing | 270 elements โจ,
np.str_('Orbital Brightness Modulation'): โจ Orbital Brightness Modulation | 9 elements โจ,
np.str_('Pulsar Timing'): โจ Pulsar Timing | 8 elements โจ,
np.str_('Pulsation Timing Variations'): โจ Pulsation Timing Variations | 2 elements โจ,
np.str_('Radial Velocity'): โจ Radial Velocity | 1171 elements โจ,
np.str_('Transit'): โจ Transit | 4511 elements โจ,
np.str_('Transit Timing Variations'): โจ Transit Timing Variations | 39 elements โจ,
'Solar System': โจ Solar System | 8 elements โจ}
vi.PlanetGallery().build(methods);
teffs = ea.get_exoplanets_by_teff()
teffs
{'O': โจ O | 2 elements โจ,
'B': โจ B | 12 elements โจ,
'A': โจ A | 31 elements โจ,
'F': โจ F | 1166 elements โจ,
'G': โจ G | 2195 elements โจ,
'K': โจ K | 1686 elements โจ,
'M': โจ M | 547 elements โจ,
'L': โจ L | 0 elements โจ,
'T': โจ T | 2 elements โจ,
'Y': โจ Y | 1 elements โจ}
vi.PlanetGallery().build(teffs);
All of these populations assume the values quoted in the archive are correct. If you need to update values, or choose values from different references, please see Curating. If you're confident your population is good enough for your needs, you can skip along ahead!