get_planet_position
Calculate a planet's position in the sky for any date, time, and location to plan observations or answer "where is [planet] tonight?" questions.
Instructions
Get position and observational data for a planet at a specific time and location.
Returns altitude, azimuth, distance, phase illumination, apparent magnitude, constellation, equatorial coordinates (RA/Dec), elongation from the sun, and visibility status. Essential for planning astronomical observations and answering "where is [planet] tonight?" questions.
Args: planet: Planet name. One of: Mercury, Venus, Mars, Jupiter, Saturn, Uranus, Neptune, Pluto date: Date in YYYY-MM-DD format (e.g., "2025-6-15") time: Time in HH:MM format, 24-hour (e.g., "22:30"). Interpreted as UTC unless timezone is specified. latitude: Observer's latitude in decimal degrees (-90 to 90) longitude: Observer's longitude in decimal degrees (-180 to 180) timezone: Timezone offset from UTC in hours (e.g., -8 for PST, 1 for CET). When provided, the time parameter is interpreted as local time.
Returns: PlanetPositionResponse: GeoJSON Feature containing: - geometry: Observer location - properties.data: Planet position data: - altitude: Degrees above horizon (negative = below horizon) - azimuth: Degrees clockwise from north (0=N, 90=E, 180=S, 270=W) - distance_au / distance_km: Distance from observer - illumination: Phase illumination percentage (0-100) - magnitude: Apparent visual magnitude (lower = brighter) - constellation: IAU constellation abbreviation - right_ascension / declination: Equatorial coordinates (J2000) - elongation: Angular distance from sun in degrees - visibility: "visible", "below_horizon", or "lost_in_sunlight" - artifact_ref: Reference to stored computation (if artifact store configured)
Tips for LLMs: - Lower magnitude = brighter. Venus can reach -4.4, Jupiter -2.7 - Elongation < 10-15 degrees means planet is too close to the sun to see - altitude > 0 means the planet is above the horizon - azimuth tells you where to look: 0=North, 90=East, 180=South, 270=West - For "where is Mars tonight?", use time="21:00" with appropriate timezone - Mercury is hardest to see (small elongation), Venus and Jupiter are easiest
Example: pos = await get_planet_position( planet="Mars", date="2025-6-15", time="22:00", latitude=47.6, longitude=-122.3, timezone=-7 ) data = pos.properties.data if data.visibility == "visible": print(f"Mars is at {data.altitude}° altitude, {data.azimuth}° azimuth") print(f"Magnitude: {data.magnitude}, in {data.constellation}")
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| planet | Yes | ||
| date | Yes | ||
| time | Yes | ||
| latitude | Yes | ||
| longitude | Yes | ||
| timezone | No |