// AI-ASSISTED EXOPLANET RESEARCH

Exoplanet Discovery Terminal

A production-grade research interface for navigating the NASA Exoplanet Archive. Query confirmed planets, explore candidate data from Kepler and TESS, run AI-assisted habitability analyses, and build machine learning pipelines — all from one terminal.

exoai@nasa:~ — EXOTERMINAL AI v2.6.0
CONNECTED
Quick:
Live Feed Console
YouTube video feed with an Observatory telemetry analysis layer. Real mission telemetry can be connected later through a NASA or mission API feed.
Open YouTube
Artemis II Live Telemetry & Raw Feed

Embedded feed from the selected YouTube source. Metadata refreshes automatically when a YouTube API key is configured in Vercel; otherwise this panel uses safe fallback details.

Channel I Need More Space
Feed Status Embed Ready
View Count Pending
Metadata Fallback
Earth Distance
Projected miles from Earth across mission phase.
Moon Distance
Closest-approach model and post-flyby separation.
Velocity
Gravity-assist style curve for operator preview.
Trajectory preview - not flight-certified telemetry
Upcoming Mission Events
Crew wake for lunar flyby day T+2h 43m
Mission control briefs science goals T+3h 38m
Orion reaches closest approach to the Moon T+9h 10m
Communications handoff via Deep Space Network T+9h 33m
Exoplanet Database
Showing 12 / 12 planets
Planet Host Star Method Radius (R⊕) Period (d) Distance (pc) HZ Mission AI Score
AI Research Capabilities
Candidate Ranking
AI prioritizes high-value targets from large Kepler/TESS candidate tables using composite scoring: radius, ESI, HZ proximity, stellar flux, and transit S/N. Replaces manual filtering for large datasets with mission-configurable heuristics.
False Positive Screening
Discriminate planet candidates from eclipsing binaries, background stars, and photometric artifacts. Inspired by ExoMiner (NASA), achieving >99% accuracy on Kepler candidates using 1D CNN on phase-folded transit photometry.
Feature Engineering Assistant
AI suggests which columns in the Kepler cumulative or PS tables are most predictive for classification. Handles log-transforms, normalization, imputation strategies, and class imbalance guidance with ExoMiner-validated feature importance rankings.
Research Copilot
Summarize planet targets, generate research hypotheses, propose follow-up strategies, and recommend datasets or ADQL queries. Designed for integration with GPT-4o, Perplexity, or local LLM APIs — try the Copilot tab to explore outputs.
ML Pipeline Architecture
Suggested ML Input Features
pl_rade pl_orbper pl_eqt pl_insol st_teff st_rad st_mass st_logg sy_dist sy_kmag koi_depth koi_duration koi_model_snr koi_impact koi_srho discoverymethod disposition koi_count koi_period koi_ror
Potential Model Types
Binary Classification (planet vs. false positive)
Ordinal Ranking (candidate priority scoring)
Anomaly Detection (unusual transits, stellar variability)
Clustering (group similar planet populations)
Time-Series CNN (transit light curve classification)
Transformer Models (multi-sector TESS light curves)
Research Actions
NASA Exoplanet Archive
The authoritative public repository for confirmed exoplanet data, Kepler/TESS candidate tables, light curves, and related stellar parameters. Maintained by IPAC at Caltech under the NASA Exoplanet Science Institute (NExScI). Updated continuously as new discoveries are confirmed and parameters are revised.
All data is freely accessible via browser, CSV download, or programmatic TAP access. No API key or registration is required for public table queries.
TAP Endpoint
Base URL: https://exoplanetarchive.ipac.caltech.edu/TAP/sync
Protocol: IVOA Table Access Protocol (TAP)
Format: JSON, CSV, VOTable
Auth: None required for public tables
Query lang: ADQL (Astronomical Data Query Language — SQL-like)
Example TAP query URLs (click the copy button to copy each):
# All confirmed planets (PS table)
https://exoplanetarchive.ipac.caltech.edu/TAP/sync?query=select+*+from+ps+where+default_flag=1&format=json
# HZ candidates (insolation filter)
https://exoplanetarchive.ipac.caltech.edu/TAP/sync?query=select+pl_name,pl_rade,pl_insol+from+ps+where+pl_insol+between+0.25+and+1.5&format=csv
# TESS confirmed planets
https://exoplanetarchive.ipac.caltech.edu/TAP/sync?query=select+*+from+ps+where+disc_facility+like+'TESS%25'&format=json
Pre-Generated Query Workflows
  • Confirmed planets with Earth-like radius
    pl_rade BETWEEN 0.8 AND 1.25 AND default_flag = 1 — returns ~130 rocky planet candidates
  • Habitable zone filter by insolation flux
    pl_insol BETWEEN 0.25 AND 1.5 — empirical HZ boundaries (Kopparapu et al. 2013)
  • Kepler candidates only (cumulative KOI)
    SELECT * FROM cumulative — 9,564 KOIs with disposition labels for ML classification
  • Multi-planet systems (sy_pnum > 1)
    Higher reliability — multi-planet systems have lower false-positive probability by geometry
  • Nearby systems within 50 pc
    sy_dist < 50 AND default_flag = 1 — prioritizes targets accessible to JWST, ELTs
Python — TAP Query (Earth-sized HZ Planets)
import requests
import pandas as pd
from io import StringIO

# NASA Exoplanet Archive TAP endpoint
TAP_URL = "https://exoplanetarchive.ipac.caltech.edu/TAP/sync"

# ADQL query: Earth-sized planets in the habitable zone
query = """
SELECT pl_name, pl_rade, pl_insol, pl_orbper, st_teff, sy_dist,
       disc_year, discoverymethod, disc_facility
FROM ps
WHERE default_flag = 1
  AND pl_rade BETWEEN 0.5 AND 2.0
  AND pl_insol BETWEEN 0.25 AND 1.5
ORDER BY pl_insol DESC
"""

params = {
    "query": query,
    "format": "csv"
}

response = requests.get(TAP_URL, params=params, timeout=30)
response.raise_for_status()

df = pd.read_csv(StringIO(response.text))
print(f"Found {len(df)} habitable-zone rocky planets")
print(df[['pl_name', 'pl_rade', 'pl_insol', 'disc_year']].head(20))
Python — lightkurve (TESS/Kepler Light Curves)
import lightkurve as lk
import matplotlib.pyplot as plt

# Search for TESS light curves — TOI-700 (all sectors)
search_result = lk.search_lightcurve(
    "TOI-700",
    mission="TESS",
    author="SPOC"  # Science Processing Operations Center pipeline
)
print(search_result)

# Download all available sectors
lc_collection = search_result.download_all()

# Stitch sectors together and normalize
lc = lc_collection.stitch()
lc = lc.normalize().remove_outliers(sigma=5)

# Fold on TOI-700d period (37.42 days)
period_d = 37.4219  # days
t0 = 1325.3        # BTJD reference epoch

folded = lc.fold(period=period_d, epoch_time=t0)
folded.scatter(column='flux', s=0.1, alpha=0.5)
plt.title("TOI-700d Phase-Folded Transit Light Curve (TESS)")
plt.xlabel("Phase")
plt.ylabel("Normalized Flux")
plt.tight_layout()
plt.show()
Python — ML Preprocessing (Kepler KOI Table)
import pandas as pd
import numpy as np
from sklearn.preprocessing import StandardScaler
from sklearn.model_selection import train_test_split

# Load Kepler cumulative KOI table
df = pd.read_csv("cumulative_koi.csv")

# Target label: 1 = planet (CONFIRMED/CANDIDATE), 0 = false positive
df["label"] = (df["koi_disposition"] != "FALSE POSITIVE").astype(int)

# Select predictive features (from ExoMiner feature importance analysis)
FEATURES = [
    "koi_period", "koi_ror", "koi_srho", "koi_impact",
    "koi_duration", "koi_depth", "koi_teq", "koi_insol",
    "koi_steff", "koi_srad", "koi_slogg", "koi_model_snr",
    "koi_count"
]

# Drop rows with high null rate
threshold = 0.8  # keep rows with ≥80% feature coverage
df_clean = df.dropna(subset=FEATURES, thresh=int(len(FEATURES) * threshold))

X = df_clean[FEATURES].copy()
y = df_clean["label"].copy()

# Log-transform skewed features
log_cols = ["koi_period", "koi_depth", "koi_model_snr"]
X[log_cols] = np.log1p(X[log_cols])

# Impute remaining NaNs with median
X = X.fillna(X.median())

# Standardize
scaler = StandardScaler()
X_scaled = scaler.fit_transform(X)

# Stratified split (preserve class ratios — ~60% FP)
X_train, X_test, y_train, y_test = train_test_split(
    X_scaled, y, test_size=0.2, stratify=y, random_state=42
)

print(f"Training set: {X_train.shape[0]} samples")
print(f"Test set:     {X_test.shape[0]} samples")
print(f"Class balance — Train: {y_train.mean():.2%} positive")
Research Copilot
AI-assisted summaries, hypotheses, and dataset guidance. Click a prompt or select a planet from the Database tab.
Active Target:
No planet selected — click a row in Planet Database to load context
Suggested Research Queries