Curating¶
Sometimes, you might have good reason to want to replace some of the values in a Population
with better ones. Maybe you prefer one reference over another, maybe you have some unpublished measurements you want to include, or maybe you just want to experiment with changing some values. This page mostly discusses curating the data inside an Exoplanet
population, but some of the methods might generally apply to other populations.
import exoatlas as ea
ea.version()
'0.6.6'
Changes are Temporary¶
Please note, the changes made with update_reference
or update_values
will take place only within the current Python session. The underlying standardized data file is unchanged. The bottom of this page shows instructions for saving and loading a curated population.
Using Different References in an Exoplanet
Population¶
The main data in the Exoplanets
population come from the NASA Exoplanet Archive Planetary Systems Composite Parameters table. There is one entry in this population for each planet in the archive.
e = ea.Exoplanets()
e
✨ Exoplanets | 5921 elements ✨
If we want to see all individual references for each planet, which is a much larger table containing many more rows than there are planets, we'll need to load a .individual_references
population. It might take a while.
e.load_individual_references()
(loading individual references may take up to a few minutes) Attempting to freshly download data from https://exoplanetarchive.ipac.caltech.edu/TAP/sync?query=select+*+from+ps+&format=csv This may take a long time, and we're dreadully sorry that we haven't coded in a clever way to tell you how long. Archive tables might be up to a few 100MB, so however long it takes your computer to download that is probably a reasonable-ish amount of time to wait before getting stressed out.
Download successful! Saved file to /Users/zabe0091/Dropbox/zach/code/exoatlas/docs/user/downloads-for-exoatlas/data/nasa-exoplanet-archive-from+ps.txt
📕 populated pl_name > name 📕 populated hostname > hostname 📕 populated pl_letter > letter 📕 populated gaia_id > gaia_id 📕 populated sy_snum > number_of_stars 📕 populated sy_pnum > number_of_planets 📕 populated discoverymethod > discovery_method 📕 populated disc_year > discovery_year 📕 populated disc_refname > discovery_publication
📕 populated disc_facility > discovery_facility 📕 populated ra > ra 📕 populated dec > dec 📕 populated sy_pmra > pmra 📕 populated sy_pmdec > pmdec 👇 populated st_radv > systemic_rv and errors and limits ⚠️ ingested reference information for st_radv > systemic_rv 📏 populated distance and errors with sy_dist
⚠️ ingested reference information for sy_dist > distance 📕 populated rv_flag > detected_in_rv 📕 populated pul_flag > detected_in_pulsar 📕 populated ptv_flag > detected_in_pulsation_timing 📕 populated tran_flag > detected_in_transit 📕 populated ast_flag > detected_in_astrometry 📕 populated obm_flag > detected_in_orbital_brightness_modulations 📕 populated micro_flag > detected_in_microlensing 📕 populated etv_flag > detected_in_eclipse_timing_variations 📕 populated ima_flag > detected_in_imaging 📕 populated dkin_flag > detected_in_disk_kinematics 📕 populated pl_controv_flag > is_controversial 📕 populated ttv_flag > shows_ttv 📕 populated st_spectype > stellar_spectral_type 👇 populated st_teff > stellar_teff and errors and limits ⚠️ ingested reference information for st_teff > stellar_teff 👇 populated st_rad > stellar_radius and errors and limits
⚠️ ingested reference information for st_rad > stellar_radius 👇 populated st_mass > stellar_mass and errors and limits ⚠️ ingested reference information for st_mass > stellar_mass 👇 populated st_age > stellar_age and errors and limits
⚠️ ingested reference information for st_age > stellar_age 👇 populated st_met > stellar_metallicity and errors and limits ⚠️ ingested reference information for st_met > stellar_metallicity 👇 populated st_lum > stellar_luminosity and errors and limits
⚠️ ingested reference information for st_lum > stellar_luminosity 👇 populated st_logg > stellar_logg and errors and limits ⚠️ ingested reference information for st_logg > stellar_logg 👇 populated st_dens > stellar_density and errors and limits
⚠️ ingested reference information for st_dens > stellar_density 👇 populated st_vsin > stellar_vsini and errors and limits ⚠️ ingested reference information for st_vsin > stellar_vsini 👇 populated st_rotp > stellar_rotation_period and errors and limits
⚠️ ingested reference information for st_rotp > stellar_rotation_period 📏 populated magnitude_u and errors with sy_umag ⚠️ ingested reference information for sy_umag > magnitude_u 📏 populated magnitude_g and errors with sy_gmag ⚠️ ingested reference information for sy_gmag > magnitude_g 📏 populated magnitude_r and errors with sy_rmag ⚠️ ingested reference information for sy_rmag > magnitude_r 📏 populated magnitude_i and errors with sy_imag ⚠️ ingested reference information for sy_imag > magnitude_i 📏 populated magnitude_z and errors with sy_zmag ⚠️ ingested reference information for sy_zmag > magnitude_z 📏 populated magnitude_V and errors with sy_vmag ⚠️ ingested reference information for sy_vmag > magnitude_V 📏 populated magnitude_B and errors with sy_bmag ⚠️ ingested reference information for sy_bmag > magnitude_B 📏 populated magnitude_IC and errors with sy_icmag ⚠️ ingested reference information for sy_icmag > magnitude_IC
📏 populated magnitude_J and errors with sy_jmag ⚠️ ingested reference information for sy_jmag > magnitude_J 📏 populated magnitude_H and errors with sy_hmag ⚠️ ingested reference information for sy_hmag > magnitude_H 📏 populated magnitude_K and errors with sy_kmag ⚠️ ingested reference information for sy_kmag > magnitude_K 📏 populated magnitude_W1 and errors with sy_w1mag ⚠️ ingested reference information for sy_w1mag > magnitude_W1 📏 populated magnitude_W2 and errors with sy_w2mag ⚠️ ingested reference information for sy_w2mag > magnitude_W2 📏 populated magnitude_W3 and errors with sy_w3mag ⚠️ ingested reference information for sy_w3mag > magnitude_W3 📏 populated magnitude_W4 and errors with sy_w4mag ⚠️ ingested reference information for sy_w4mag > magnitude_W4 📏 populated magnitude_gaia and errors with sy_gaiamag ⚠️ ingested reference information for sy_gaiamag > magnitude_gaia 📏 populated magnitude_T and errors with sy_tmag
⚠️ ingested reference information for sy_tmag > magnitude_T 📏 populated magnitude_kep and errors with sy_kepmag ⚠️ ingested reference information for sy_kepmag > magnitude_kep 👇 populated pl_orbper > period and errors and limits ⚠️ ingested reference information for pl_orbper > period 👇 populated pl_orbsmax > semimajoraxis and errors and limits ⚠️ ingested reference information for pl_orbsmax > semimajoraxis 👇 populated pl_orbeccen > eccentricity and errors and limits ⚠️ ingested reference information for pl_orbeccen > eccentricity 👇 populated pl_orblper > argument_of_periastron and errors and limits ⚠️ ingested reference information for pl_orblper > argument_of_periastron 👇 populated pl_orbincl > inclination and errors and limits ⚠️ ingested reference information for pl_orbincl > inclination 👇 populated pl_rade > radius and errors and limits
⚠️ ingested reference information for pl_rade > radius 👇 populated pl_bmasse > mass and errors and limits ⚠️ ingested reference information for pl_bmasse > mass 👇 populated pl_dens > density and errors and limits ⚠️ ingested reference information for pl_dens > density 📕 populated pl_ntranspec > number_of_transmission_measurements 📕 populated pl_nespec > number_of_emission_measurements 👇 populated pl_tranmid > transit_midpoint and errors and limits ⚠️ ingested reference information for pl_tranmid > transit_midpoint 👇 populated pl_trandur > transit_duration and errors and limits ⚠️ ingested reference information for pl_trandur > transit_duration 👇 populated pl_ratror > transit_scaled_radius and errors and limits ⚠️ ingested reference information for pl_ratror > transit_scaled_radius 👇 populated pl_trandep > transit_depth and errors and limits ⚠️ ingested reference information for pl_trandep > transit_depth 👇 populated pl_ratdor > transit_scaled_semimajoraxis and errors and limits
⚠️ ingested reference information for pl_ratdor > transit_scaled_semimajoraxis 👇 populated pl_imppar > transit_impact_parameter and errors and limits ⚠️ ingested reference information for pl_imppar > transit_impact_parameter 👇 populated pl_rvamp > rv_semiamplitude and errors and limits ⚠️ ingested reference information for pl_rvamp > rv_semiamplitude 👇 populated pl_msinie > msini and errors and limits ⚠️ ingested reference information for pl_msinie > msini 👇 populated pl_projobliq > projected_obliquity and errors and limits ⚠️ ingested reference information for pl_projobliq > projected_obliquity 👇 populated pl_trueobliq > obliquity and errors and limits ⚠️ ingested reference information for pl_trueobliq > obliquity 📕 populated default_flag > default_parameter_set
✂️ trimming weird data 🚨😳🔔‼️ some values with zero-uncertainty might have snuck through for argument_of_periastron 🚨😳🔔‼️🚨😳🔔‼️ 🚨😳🔔‼️ some values with zero-uncertainty might have snuck through for argument_of_periastron 🚨😳🔔‼️🚨😳🔔‼️ argument_of_periastron: 3388 values and 3001 with uncertainties ( 88.6%) 🚨😳🔔‼️ some values with zero-uncertainty might have snuck through for density 🚨😳🔔‼️🚨😳🔔‼️ 🚨😳🔔‼️ some values with zero-uncertainty might have snuck through for density 🚨😳🔔‼️🚨😳🔔‼️ density: 2421 values and 2397 with uncertainties ( 99.0%) 🚨😳🔔‼️ some values with zero-uncertainty might have snuck through for distance 🚨😳🔔‼️🚨😳🔔‼️ 🚨😳🔔‼️ some values with zero-uncertainty might have snuck through for distance 🚨😳🔔‼️🚨😳🔔‼️ distance: 37660 values and 36809 with uncertainties ( 97.7%) 🚨😳🔔‼️ some values with zero-uncertainty might have snuck through for eccentricity 🚨😳🔔‼️🚨😳🔔‼️ 🚨😳🔔‼️ some values with zero-uncertainty might have snuck through for eccentricity 🚨😳🔔‼️🚨😳🔔‼️ eccentricity: 17888 values and 3566 with uncertainties ( 19.9%) 🚨😳🔔‼️ some values with zero-uncertainty might have snuck through for inclination 🚨😳🔔‼️🚨😳🔔‼️ 🚨😳🔔‼️ some values with zero-uncertainty might have snuck through for inclination 🚨😳🔔‼️🚨😳🔔‼️ inclination: 17062 values and 3854 with uncertainties ( 22.6%) 🚨😳🔔‼️ some values with zero-uncertainty might have snuck through for magnitude_B 🚨😳🔔‼️🚨😳🔔‼️ 🚨😳🔔‼️ some values with zero-uncertainty might have snuck through for magnitude_B 🚨😳🔔‼️🚨😳🔔‼️ magnitude_B: 37120 values and 37115 with uncertainties (100.0%) 🚨😳🔔‼️ some values with zero-uncertainty might have snuck through for magnitude_H 🚨😳🔔‼️🚨😳🔔‼️ 🚨😳🔔‼️ some values with zero-uncertainty might have snuck through for magnitude_H 🚨😳🔔‼️🚨😳🔔‼️ magnitude_H: 37743 values and 37606 with uncertainties ( 99.6%) 🚨😳🔔‼️ some values with zero-uncertainty might have snuck through for magnitude_IC 🚨😳🔔‼️🚨😳🔔‼️ 🚨😳🔔‼️ some values with zero-uncertainty might have snuck through for magnitude_IC 🚨😳🔔‼️🚨😳🔔‼️ magnitude_IC: 45 values and 40 with uncertainties ( 88.9%) 🚨😳🔔‼️ some values with zero-uncertainty might have snuck through for magnitude_J 🚨😳🔔‼️🚨😳🔔‼️ 🚨😳🔔‼️ some values with zero-uncertainty might have snuck through for magnitude_J 🚨😳🔔‼️🚨😳🔔‼️ magnitude_J: 37714 values and 37617 with uncertainties ( 99.7%) 🚨😳🔔‼️ some values with zero-uncertainty might have snuck through for magnitude_K 🚨😳🔔‼️🚨😳🔔‼️ 🚨😳🔔‼️ some values with zero-uncertainty might have snuck through for magnitude_K 🚨😳🔔‼️🚨😳🔔‼️ magnitude_K: 37740 values and 37499 with uncertainties ( 99.4%) 🚨😳🔔‼️ some values with zero-uncertainty might have snuck through for magnitude_T 🚨😳🔔‼️🚨😳🔔‼️ 🚨😳🔔‼️ some values with zero-uncertainty might have snuck through for magnitude_T 🚨😳🔔‼️🚨😳🔔‼️ magnitude_T: 37753 values and 37742 with uncertainties (100.0%) 🚨😳🔔‼️ some values with zero-uncertainty might have snuck through for magnitude_V 🚨😳🔔‼️🚨😳🔔‼️ 🚨😳🔔‼️ some values with zero-uncertainty might have snuck through for magnitude_V 🚨😳🔔‼️🚨😳🔔‼️ magnitude_V: 37752 values and 37738 with uncertainties (100.0%) 🚨😳🔔‼️ some values with zero-uncertainty might have snuck through for magnitude_W1 🚨😳🔔‼️🚨😳🔔‼️ 🚨😳🔔‼️ some values with zero-uncertainty might have snuck through for magnitude_W1 🚨😳🔔‼️🚨😳🔔‼️ magnitude_W1: 35826 values and 35732 with uncertainties ( 99.7%) 🚨😳🔔‼️ some values with zero-uncertainty might have snuck through for magnitude_W2 🚨😳🔔‼️🚨😳🔔‼️ 🚨😳🔔‼️ some values with zero-uncertainty might have snuck through for magnitude_W2 🚨😳🔔‼️🚨😳🔔‼️ magnitude_W2: 35827 values and 35747 with uncertainties ( 99.8%) 🚨😳🔔‼️ some values with zero-uncertainty might have snuck through for magnitude_W3 🚨😳🔔‼️🚨😳🔔‼️ 🚨😳🔔‼️ some values with zero-uncertainty might have snuck through for magnitude_W3 🚨😳🔔‼️🚨😳🔔‼️ magnitude_W3: 35825 values and 26288 with uncertainties ( 73.4%) 🚨😳🔔‼️ some values with zero-uncertainty might have snuck through for magnitude_W4 🚨😳🔔‼️🚨😳🔔‼️ 🚨😳🔔‼️ some values with zero-uncertainty might have snuck through for magnitude_W4 🚨😳🔔‼️🚨😳🔔‼️ magnitude_W4: 35822 values and 5529 with uncertainties ( 15.4%) 🚨😳🔔‼️ some values with zero-uncertainty might have snuck through for magnitude_g 🚨😳🔔‼️🚨😳🔔‼️ 🚨😳🔔‼️ some values with zero-uncertainty might have snuck through for magnitude_g 🚨😳🔔‼️🚨😳🔔‼️ magnitude_g: 3918 values and 3918 with uncertainties (100.0%) 🚨😳🔔‼️ some values with zero-uncertainty might have snuck through for magnitude_gaia 🚨😳🔔‼️🚨😳🔔‼️ 🚨😳🔔‼️ some values with zero-uncertainty might have snuck through for magnitude_gaia 🚨😳🔔‼️🚨😳🔔‼️ magnitude_gaia: 37451 values and 37451 with uncertainties (100.0%) 🚨😳🔔‼️ some values with zero-uncertainty might have snuck through for magnitude_i 🚨😳🔔‼️🚨😳🔔‼️ 🚨😳🔔‼️ some values with zero-uncertainty might have snuck through for magnitude_i 🚨😳🔔‼️🚨😳🔔‼️ magnitude_i: 3918 values and 3918 with uncertainties (100.0%) 🚨😳🔔‼️ some values with zero-uncertainty might have snuck through for magnitude_kep 🚨😳🔔‼️🚨😳🔔‼️ 🚨😳🔔‼️ some values with zero-uncertainty might have snuck through for magnitude_kep 🚨😳🔔‼️🚨😳🔔‼️ magnitude_kep: 30939 values and 0 with uncertainties ( 0.0%) 🚨😳🔔‼️ some values with zero-uncertainty might have snuck through for magnitude_r 🚨😳🔔‼️🚨😳🔔‼️ 🚨😳🔔‼️ some values with zero-uncertainty might have snuck through for magnitude_r 🚨😳🔔‼️🚨😳🔔‼️ magnitude_r: 3918 values and 3918 with uncertainties (100.0%) 🚨😳🔔‼️ some values with zero-uncertainty might have snuck through for magnitude_u 🚨😳🔔‼️🚨😳🔔‼️ 🚨😳🔔‼️ some values with zero-uncertainty might have snuck through for magnitude_u 🚨😳🔔‼️🚨😳🔔‼️ magnitude_u: 3918 values and 3918 with uncertainties (100.0%) 🚨😳🔔‼️ some values with zero-uncertainty might have snuck through for magnitude_z 🚨😳🔔‼️🚨😳🔔‼️ 🚨😳🔔‼️ some values with zero-uncertainty might have snuck through for magnitude_z 🚨😳🔔‼️🚨😳🔔‼️ magnitude_z: 3918 values and 3918 with uncertainties (100.0%) 🚨😳🔔‼️ some values with zero-uncertainty might have snuck through for mass 🚨😳🔔‼️🚨😳🔔‼️ 🚨😳🔔‼️ some values with zero-uncertainty might have snuck through for mass 🚨😳🔔‼️🚨😳🔔‼️ mass: 6329 values and 6040 with uncertainties ( 95.4%) 🚨😳🔔‼️ some values with zero-uncertainty might have snuck through for msini 🚨😳🔔‼️🚨😳🔔‼️ 🚨😳🔔‼️ some values with zero-uncertainty might have snuck through for msini 🚨😳🔔‼️🚨😳🔔‼️ msini: 2472 values and 2241 with uncertainties ( 90.7%) 🚨😳🔔‼️ some values with zero-uncertainty might have snuck through for obliquity 🚨😳🔔‼️🚨😳🔔‼️ 🚨😳🔔‼️ some values with zero-uncertainty might have snuck through for obliquity 🚨😳🔔‼️🚨😳🔔‼️ obliquity: 53 values and 53 with uncertainties (100.0%) 🚨😳🔔‼️ some values with zero-uncertainty might have snuck through for period 🚨😳🔔‼️🚨😳🔔‼️ 🚨😳🔔‼️ some values with zero-uncertainty might have snuck through for period 🚨😳🔔‼️🚨😳🔔‼️ period: 35275 values and 33740 with uncertainties ( 95.6%) 🚨😳🔔‼️ some values with zero-uncertainty might have snuck through for projected_obliquity 🚨😳🔔‼️🚨😳🔔‼️ 🚨😳🔔‼️ some values with zero-uncertainty might have snuck through for projected_obliquity 🚨😳🔔‼️🚨😳🔔‼️ projected_obliquity: 239 values and 238 with uncertainties ( 99.6%) 🚨😳🔔‼️ some values with zero-uncertainty might have snuck through for radius 🚨😳🔔‼️🚨😳🔔‼️ 🚨😳🔔‼️ some values with zero-uncertainty might have snuck through for radius 🚨😳🔔‼️🚨😳🔔‼️ radius: 26542 values and 25816 with uncertainties ( 97.3%) 🚨😳🔔‼️ some values with zero-uncertainty might have snuck through for rv_semiamplitude 🚨😳🔔‼️🚨😳🔔‼️ 🚨😳🔔‼️ some values with zero-uncertainty might have snuck through for rv_semiamplitude 🚨😳🔔‼️🚨😳🔔‼️ rv_semiamplitude: 4445 values and 4420 with uncertainties ( 99.4%) 🚨😳🔔‼️ some values with zero-uncertainty might have snuck through for semimajoraxis 🚨😳🔔‼️🚨😳🔔‼️ 🚨😳🔔‼️ some values with zero-uncertainty might have snuck through for semimajoraxis 🚨😳🔔‼️🚨😳🔔‼️ semimajoraxis: 21676 values and 7213 with uncertainties ( 33.3%) 🚨😳🔔‼️ some values with zero-uncertainty might have snuck through for stellar_age 🚨😳🔔‼️🚨😳🔔‼️ 🚨😳🔔‼️ some values with zero-uncertainty might have snuck through for stellar_age 🚨😳🔔‼️🚨😳🔔‼️ stellar_age: 9129 values and 8882 with uncertainties ( 97.3%) 🚨😳🔔‼️ some values with zero-uncertainty might have snuck through for stellar_density 🚨😳🔔‼️🚨😳🔔‼️ 🚨😳🔔‼️ some values with zero-uncertainty might have snuck through for stellar_density 🚨😳🔔‼️🚨😳🔔‼️ stellar_density: 22146 values and 17440 with uncertainties ( 78.8%) 🚨😳🔔‼️ some values with zero-uncertainty might have snuck through for stellar_logg 🚨😳🔔‼️🚨😳🔔‼️ 🚨😳🔔‼️ some values with zero-uncertainty might have snuck through for stellar_logg 🚨😳🔔‼️🚨😳🔔‼️ stellar_logg: 30015 values and 24732 with uncertainties ( 82.4%) 🚨😳🔔‼️ some values with zero-uncertainty might have snuck through for stellar_luminosity 🚨😳🔔‼️🚨😳🔔‼️ 🚨😳🔔‼️ some values with zero-uncertainty might have snuck through for stellar_luminosity 🚨😳🔔‼️🚨😳🔔‼️ stellar_luminosity: 38500 values and 4536 with uncertainties ( 11.8%) 🚨😳🔔‼️ some values with zero-uncertainty might have snuck through for stellar_mass 🚨😳🔔‼️🚨😳🔔‼️ 🚨😳🔔‼️ some values with zero-uncertainty might have snuck through for stellar_mass 🚨😳🔔‼️🚨😳🔔‼️ stellar_mass: 32671 values and 27106 with uncertainties ( 83.0%) 🚨😳🔔‼️ some values with zero-uncertainty might have snuck through for stellar_metallicity 🚨😳🔔‼️🚨😳🔔‼️ 🚨😳🔔‼️ some values with zero-uncertainty might have snuck through for stellar_metallicity 🚨😳🔔‼️🚨😳🔔‼️ stellar_metallicity: 24458 values and 23792 with uncertainties ( 97.3%) 🚨😳🔔‼️ some values with zero-uncertainty might have snuck through for stellar_radius 🚨😳🔔‼️🚨😳🔔‼️ 🚨😳🔔‼️ some values with zero-uncertainty might have snuck through for stellar_radius 🚨😳🔔‼️🚨😳🔔‼️ stellar_radius: 35517 values and 29830 with uncertainties ( 84.0%) 🚨😳🔔‼️ some values with zero-uncertainty might have snuck through for stellar_rotation_period 🚨😳🔔‼️🚨😳🔔‼️ 🚨😳🔔‼️ some values with zero-uncertainty might have snuck through for stellar_rotation_period 🚨😳🔔‼️🚨😳🔔‼️ stellar_rotation_period: 926 values and 800 with uncertainties ( 86.4%) 🚨😳🔔‼️ some values with zero-uncertainty might have snuck through for stellar_teff 🚨😳🔔‼️🚨😳🔔‼️ 🚨😳🔔‼️ some values with zero-uncertainty might have snuck through for stellar_teff 🚨😳🔔‼️🚨😳🔔‼️ stellar_teff: 35282 values and 34265 with uncertainties ( 97.1%) 🚨😳🔔‼️ some values with zero-uncertainty might have snuck through for stellar_vsini 🚨😳🔔‼️🚨😳🔔‼️ 🚨😳🔔‼️ some values with zero-uncertainty might have snuck through for stellar_vsini 🚨😳🔔‼️🚨😳🔔‼️ stellar_vsini: 2773 values and 2237 with uncertainties ( 80.7%) 🚨😳🔔‼️ some values with zero-uncertainty might have snuck through for systemic_rv 🚨😳🔔‼️🚨😳🔔‼️ 🚨😳🔔‼️ some values with zero-uncertainty might have snuck through for systemic_rv 🚨😳🔔‼️🚨😳🔔‼️ systemic_rv: 1707 values and 1530 with uncertainties ( 89.6%) 🚨😳🔔‼️ some values with zero-uncertainty might have snuck through for transit_depth 🚨😳🔔‼️🚨😳🔔‼️ 🚨😳🔔‼️ some values with zero-uncertainty might have snuck through for transit_depth 🚨😳🔔‼️🚨😳🔔‼️ transit_depth: 17878 values and 13301 with uncertainties ( 74.4%) 🚨😳🔔‼️ some values with zero-uncertainty might have snuck through for transit_duration 🚨😳🔔‼️🚨😳🔔‼️ 🚨😳🔔‼️ some values with zero-uncertainty might have snuck through for transit_duration 🚨😳🔔‼️🚨😳🔔‼️ transit_duration: 21978 values and 17391 with uncertainties ( 79.1%) 🚨😳🔔‼️ some values with zero-uncertainty might have snuck through for transit_impact_parameter 🚨😳🔔‼️🚨😳🔔‼️ 🚨😳🔔‼️ some values with zero-uncertainty might have snuck through for transit_impact_parameter 🚨😳🔔‼️🚨😳🔔‼️ transit_impact_parameter: 16978 values and 16729 with uncertainties ( 98.5%) 🚨😳🔔‼️ some values with zero-uncertainty might have snuck through for transit_midpoint 🚨😳🔔‼️🚨😳🔔‼️ 🚨😳🔔‼️ some values with zero-uncertainty might have snuck through for transit_midpoint 🚨😳🔔‼️🚨😳🔔‼️ transit_midpoint: 30081 values and 29601 with uncertainties ( 98.4%) 🚨😳🔔‼️ some values with zero-uncertainty might have snuck through for transit_scaled_radius 🚨😳🔔‼️🚨😳🔔‼️ 🚨😳🔔‼️ some values with zero-uncertainty might have snuck through for transit_scaled_radius 🚨😳🔔‼️🚨😳🔔‼️ transit_scaled_radius: 21332 values and 21014 with uncertainties ( 98.5%) 🚨😳🔔‼️ some values with zero-uncertainty might have snuck through for transit_scaled_semimajoraxis 🚨😳🔔‼️🚨😳🔔‼️ 🚨😳🔔‼️ some values with zero-uncertainty might have snuck through for transit_scaled_semimajoraxis 🚨😳🔔‼️🚨😳🔔‼️ transit_scaled_semimajoraxis: 17029 values and 16942 with uncertainties ( 99.5%) values without reasonable uncertainties have been trimmed
Saved a standardized text table to /Users/zabe0091/Dropbox/zach/code/exoatlas/docs/user/downloads-for-exoatlas/data/standardized-ExoplanetsPS.txt
✨ Individual References | 38500 elements ✨
Once that's loaded, there's a secret sneaky internal population that we can access through the .individual_references
attribute, containing every reference for every planet in the archive.
e.individual_references
✨ Individual References | 38500 elements ✨
Now, let's say we want to update what reference is being used to provide the period
(and related) values for a particular planet. First, we can check what the options are with .display_individual_references
.
e.display_individual_references(planets="HD189733b", keys="period")
is_being_used | name | period_reference | period | period_uncertainty_lower | period_uncertainty_upper | period_lower_limit | period_upper_limit |
---|---|---|---|---|---|---|---|
d | d | d | |||||
str2 | str29 | str44 | float64 | float64 | float64 | float64 | float64 |
🗺️ | HD 189733 b | Stassun et al. 2017 | 2.21857567 | -1.5e-07 | 1.5e-07 | nan | nan |
🏷️ | HD 189733 b | Stassun et al. 2017 | 2.21857567 | -1.5e-07 | 1.5e-07 | nan | nan |
🏷️ | HD 189733 b | Salz et al. 2015 | nan | nan | nan | nan | nan |
🏷️ | HD 189733 b | Barstow et al. 2017 | nan | nan | nan | nan | nan |
🏷️ | HD 189733 b | Kokori et al. 2023 | 2.218574944 | -3e-08 | 3e-08 | nan | nan |
🏷️ | HD 189733 b | Addison et al. 2019 | 2.218577 | -1e-05 | 9e-06 | nan | nan |
🏷️ | HD 189733 b | Rosenthal et al. 2021 | 2.218555 | -1.5e-05 | 1.5e-05 | nan | nan |
🏷️ | HD 189733 b | Agol et al. 2010 | 2.21857567 | -1.5e-07 | 1.5e-07 | nan | nan |
🏷️ | HD 189733 b | Kokori et al. 2022 | 2.21857519 | -1.4e-07 | 1.4e-07 | nan | nan |
... | ... | ... | ... | ... | ... | ... | ... |
🏷️ | HD 189733 b | Di Gloria et al. 2015 | nan | nan | nan | nan | nan |
🏷️ | HD 189733 b | Ivshina + Winn 2022 | 2.218575143 | -6.3e-08 | 6.3e-08 | nan | nan |
🏷️ | HD 189733 b | Torres et al. 2008 | nan | nan | nan | nan | nan |
🏷️ | HD 189733 b | Boyajian et al. 2015 | nan | nan | nan | nan | nan |
🏷️ | HD 189733 b | Baluev et al. 2015 | 2.2185752 | -7.7e-08 | 7.7e-08 | nan | nan |
🏷️ | HD 189733 b | ExoFOP-TESS TOI | 2.21857480391 | -1.7654e-07 | 1.7654e-07 | nan | nan |
🏷️ | HD 189733 b | Morello et al. 2014 | nan | nan | nan | nan | nan |
🏷️ | HD 189733 b | Paredes et al. 2021 | 2.218 | -0.0009 | 0.001 | nan | nan |
🏷️ | HD 189733 b | Cegla et al. 2016 | 2.21857567 | -1.5e-07 | 1.5e-07 | nan | nan |
Then, we can update the population to use one of those options instead of the default.
e.update_reference(planets="HD189733b", references="Ivshina + Winn 2022")
Finally, we can confirm that our change took effect, by checking the references again.
e.display_individual_references(planets="HD189733b", keys="period")
is_being_used | name | period_reference | period | period_uncertainty_lower | period_uncertainty_upper | period_lower_limit | period_upper_limit |
---|---|---|---|---|---|---|---|
d | d | d | |||||
str2 | str29 | str44 | float64 | float64 | float64 | float64 | float64 |
🗺️ | HD 189733 b | Ivshina + Winn 2022 | 2.218575143 | -6.3e-08 | 6.3e-08 | nan | nan |
🏷️ | HD 189733 b | Stassun et al. 2017 | 2.21857567 | -1.5e-07 | 1.5e-07 | nan | nan |
🏷️ | HD 189733 b | Salz et al. 2015 | nan | nan | nan | nan | nan |
🏷️ | HD 189733 b | Barstow et al. 2017 | nan | nan | nan | nan | nan |
🏷️ | HD 189733 b | Kokori et al. 2023 | 2.218574944 | -3e-08 | 3e-08 | nan | nan |
🏷️ | HD 189733 b | Addison et al. 2019 | 2.218577 | -1e-05 | 9e-06 | nan | nan |
🏷️ | HD 189733 b | Rosenthal et al. 2021 | 2.218555 | -1.5e-05 | 1.5e-05 | nan | nan |
🏷️ | HD 189733 b | Agol et al. 2010 | 2.21857567 | -1.5e-07 | 1.5e-07 | nan | nan |
🏷️ | HD 189733 b | Kokori et al. 2022 | 2.21857519 | -1.4e-07 | 1.4e-07 | nan | nan |
... | ... | ... | ... | ... | ... | ... | ... |
🏷️ | HD 189733 b | Di Gloria et al. 2015 | nan | nan | nan | nan | nan |
🏷️ | HD 189733 b | Ivshina + Winn 2022 | 2.218575143 | -6.3e-08 | 6.3e-08 | nan | nan |
🏷️ | HD 189733 b | Torres et al. 2008 | nan | nan | nan | nan | nan |
🏷️ | HD 189733 b | Boyajian et al. 2015 | nan | nan | nan | nan | nan |
🏷️ | HD 189733 b | Baluev et al. 2015 | 2.2185752 | -7.7e-08 | 7.7e-08 | nan | nan |
🏷️ | HD 189733 b | ExoFOP-TESS TOI | 2.21857480391 | -1.7654e-07 | 1.7654e-07 | nan | nan |
🏷️ | HD 189733 b | Morello et al. 2014 | nan | nan | nan | nan | nan |
🏷️ | HD 189733 b | Paredes et al. 2021 | 2.218 | -0.0009 | 0.001 | nan | nan |
🏷️ | HD 189733 b | Cegla et al. 2016 | 2.21857567 | -1.5e-07 | 1.5e-07 | nan | nan |
Updating Values in an Exoplanet
Population¶
If we have some custom values we'd like to apply to a planet, we can update its data with the .update_value
wrapper.
import astropy.units as u
e.update_values(
planets="HD189733b", radius=1 * u.R_jupiter, radius_uncertainty=0.1 * u.R_jupiter
)
['hd189733b'] | radius: 12.66617 earthRad > 1.0 jupiterRad ['hd189733b'] | radius_uncertainty_lower: -0.11209 earthRad > -0.1 jupiterRad ['hd189733b'] | radius_uncertainty_upper: 0.11209 earthRad > 0.1 jupiterRad
e["HD189733"].radius
<function exoatlas.populations.population_core.Population._create_function_to_access_table_quantity.<locals>.f(distribution=False, **kw)>
Curating Your Own Exoplanet Population¶
You might want to be able to regularly curate many changes to the default exoplanet parameters from the NASA Exoplanet Archive, and also be able to reapply those changes even when downloading newly updated archive data. In general, that might look like the following:
- Write a function called something like
curate_population()
, that makes the changes you want by serialling combining.update_reference
and.update_values
. You might consider saving this function in a local module and importing it whenever you need it. - Generate an
Exoplanets
population (or some subset of it), and apply your function to it. This function will change the population in-place; if you want to access the unmodified parameters, you'll need to create a new population. - If you want to save and reuse your curation, use the
population_to_save.save(filename)
method to save your curated population out to a local file andloaded_population = Population(filename)
to load it back in.
import exoatlas as ea
def curate_population(x):
"""
Curate the values in an exoplanet population by
making small changes to the values being used.
Parameters
----------
x : exoatlas.populations.Exoplanets
An exoplanet population that needs to be curated.
Returns
-------
Nothing, but the population `x` has been modified
in place with updated values and/or reference choices.
"""
# (down)load the individual references
x.load_individual_references()
# update the reference for a planet's period/epoch
x.update_reference(planets="HD189733b", references="Ivshina + Winn 2022")
# update another value
x.update_values(
planets="HD189733b",
radius=1 * u.R_jupiter,
radius_uncertainty=0.1 * u.R_jupiter,
)
e = ea.TransitingExoplanets()
e = e[e.distance() < 50 * u.pc]
curate_population(e)
(loading individual references may take up to a few minutes)
['hd189733b'] | radius: 12.66617 earthRad > 1.0 jupiterRad ['hd189733b'] | radius_uncertainty_lower: -0.11209 earthRad > -0.1 jupiterRad ['hd189733b'] | radius_uncertainty_upper: 0.11209 earthRad > 0.1 jupiterRad
e.save("curated-population.ecsv")
Saved ✨ Transiting Exoplanets | 229 elements ✨ to curated-population.ecsv. It can be reloaded with `x = Population('curated-population.ecsv')`
curated_and_saved = ea.Population("curated-population.ecsv")
curated_and_saved["HD189733"].radius()
🔔 Problems: 🔔¶
Please note there are still a couple of problems that need solving:
- A curated population that has been saved out to a file and then reloaded via
Population(filename)
will (currently) always load in as aPopulation
object. It therefore won't have any of the special powers of the speciality predefined populations likeExoplanets
. - Sometimes (?) trying to due curation with
update_reference
gobbles up bonkers memory, presumably something to do with trying to index large tables many times. This might potentially be solvable with some more careful memory management or index-resetting? Curating mostly works, but sometimes it feels like there's a monster lurking underneath.
If any of these problems are catastrophic for your, please open an issue and we'll try to fix it!*
Now that you are confident your population is carefully curated, you can zoom along to play with Filtering, Visualizing, or Observing!