Read from the package's own PHP files at the commit 313acdae6f94: its namespaces, classes, interfaces and enums, their public constants, properties and methods with their PHPDoc, and the options its factories take. Nothing of it is run.
ExoplanetsSourceclassThe NASA Exoplanet Archive (Caltech/IPAC), through its TAP service in ADQL: a confirmed planet by its name ("51 Peg b", "Kepler-22b", "Proxima Centauri b", "Dimidium" - the archive's alias service resolves the names its table does not hold), from the Planetary Systems Composite Parameters table (pscomppars: one row a planet, each parameter from the reference the archive chose): its mass, radius, density, orbit and equilibrium temperature with their units and uncertainties, how, when and by which facility it was found, its host star's parameters and the system's position, distance and magnitudes; the host star as a related thing, by every designation the archive gives it (its name, HD, HIP, TIC, Gaia DR3), which SIMBAD and omnilab/gaia read; a search by name, and planets() by simple criteria (outside the contract).
7 methods · 4 constants
ExoplanetsSourceFactoryclassThe NASA Exoplanet Archive: confirmed planets by name, their mass, radius, orbit and temperature with uncertainties, their discovery, their host star - no key needed.
2 options
Omnilab\Exoplanets
ExoplanetsSource class
final class ExoplanetsSource extends HttpSource ExoplanetsSource.php:41
The NASA Exoplanet Archive (Caltech/IPAC), through its TAP service in ADQL: a confirmed planet by its name ("51 Peg b", "Kepler-22b", "Proxima Centauri b", "Dimidium" - the archive's alias service resolves the names its table does not hold), from the Planetary Systems Composite Parameters table (pscomppars: one row a planet, each parameter from the reference the archive chose): its mass, radius, density, orbit and equilibrium temperature with their units and uncertainties, how, when and by which facility it was found, its host star's parameters and the system's position, distance and magnitudes; the host star as a related thing, by every designation the archive gives it (its name, HD, HIP, TIC, Gaia DR3), which SIMBAD and omnilab/gaia read; a search by name, and planets() by simple criteria (outside the contract).
The core has no scheme for the archive's names: a planet is named in the simbad scheme, a name SIMBAD resolves for the planets it lists (51 Peg b, Kepler-22b, TOI-700 d...) - see docs/index.md.
No key, no account, no published rate: no throttle by default. One call an entity when the name is the archive's, three when its alias service resolves it.
const BASE_URI = 'https://exoplanetarchive.ipac.caltech.edu/'const MAX_LIMIT = 500The most planets a page holds.
const METHODS = ['Astrometry', 'Disk Kinematics', 'Eclipse Timing Variations', 'Imaging', 'Microlensing', 'Orbital Brightness Modulation', 'Pulsar Timing', 'Pulsation Timing…The archive's discovery methods, as it writes them.
const CRITERIA = ['host' => ['hostname', 'name'], 'method' => ['discoverymethod', 'text'], 'facility' => ['disc_facility', 'like'], 'year' => ['disc_year', '='], 'from_year' …What planets() filters on => [column, comparison].
ExoplanetsSource::__construct()
public function __construct(HttpClientInterface $http, string $baseUri = self::BASE_URI, array $headers = [], float $throttle = 0.0)ExoplanetsSource::getName()
public function getName(): stringExoplanetsSource::capabilities()
public function capabilities(): arrayExoplanetsSource::entity()
public function entity(Identifier|string $id): ?EntityA planet by its name: the archive's ("51 Peg b"), spaced otherwise ("Kepler-22b"), SIMBAD's ("* 51 Peg b", an Identifier of the simbad scheme), or another the archive's alias service knows ("Proxima Centauri b", "Dimidium"). An Identifier of the simbad scheme that does not end in a planet's letter (a star: "* 51 Peg", "HD 217014", "Gaia DR3 ...") is refused before any call; null when the archive lists no confirmed planet of that name.
ExoplanetsSource::search()
public function search(Query $query): PageThe planets whose name, or their host star's, holds the text ("trappist", "51 peg", "Kepler-22b": spaces and case aside), in the order of their names; when none does, the name the archive's alias service resolves the text to - a planet, or the planets of a star ("Proxima Centauri": Proxima Cen b and d). Another domain than astronomy answers nothing.
ExoplanetsSource::planets()
public function planets(array $criteria = [], int $limit = 25, ?string $cursor = null): PageThe planets that meet every criterion, in the order of their names, one page at a time (outside the contract: the core's Query is a text). Unknown keys are refused before any call.
$archive->planets(['method' => 'Transit', 'year' => 2024, 'min_radius' => 0.8, 'max_radius' => 1.25]);
Keys: host (the host star's name, spaces and case aside), method (one of METHODS), facility (a part of its name), year, from_year, to_year (of discovery), min_/max_mass (Earth masses, or M sin i), min_/max_radius (Earth radii), min_/max_period (days), min_/max_temperature (equilibrium, K), max_distance (pc). A planet whose value is unknown does not meet a criterion on it.
$cursorthe Page::$next of the page before
ExoplanetsSource::isPlanetName()
public static function isPlanetName(string $name): boolWhether a name ends as a planet's does: in its letter, "51 Peg b", "Kepler-22b", "NAME Proxima Centauri b", "PSR B1257+12 c" - a lower-case letter after a space, a digit, a capital or a bracket -, or in the number of a TESS or Kepler object of interest the archive keeps as a name ("TOI-4527.01"). A star's ("* 51 Peg", "* alf Ori", "HD 217014", "Gaia DR3 ...") does not.
ExoplanetsSourceFactory class
final class ExoplanetsSourceFactory extends SourceFactory ExoplanetsSourceFactory.php:20
The NASA Exoplanet Archive: confirmed planets by name, their mass, radius, orbit and temperature with uncertainties, their discovery, their host star - no key needed.
options: mailto: 'support@glitchr.io' # in the User-Agent: whom the archive writes to before it blocks a caller throttle: 0 # seconds between two calls: the archive publishes no rate base_uri: 'https://exoplanetarchive.ipac.caltech.edu/'
Options
| Option | Default | |
|---|---|---|
throttle | 0.0 | |
base_uri | ExoplanetsSource::BASE_URI |