.. _astroquery.solarsystem.pds: *********************************************************************************** PDS Ring-Moon Systems (RMS) Node Queries (`astroquery.solarsystem.pds`) *********************************************************************************** Overview ======== The :class:`~astroquery.solarsystem.pds.RMSNodeClass` provides an interface to the ephemeris tools provided by the `NASA Planetary Data System's Ring-Moon Systems (RMS) Node `_ hosted by the SETI institute. Ephemeris ----------- In order to query information for a specific Solar System body, a ``RMSNode`` object is instantiated and the :meth:`~astroquery.solarsystem.pds.RMSNodeClass.ephemeris` method is called. The following example queries the ephemerides of the rings and small moons around Uranus as viewed from ALMA: .. doctest-remote-data:: >>> from astroquery.solarsystem.pds import RMSNode >>> import astropy.units as u >>> bodytable, ringtable = RMSNode.ephemeris(planet='Uranus', ... epoch='2024-05-08 22:39', ... location = (-67.755 * u.deg, -23.029 * u.deg, 5000 * u.m)) >>> print(ringtable) ring pericenter ascending node deg deg ------- ---------- -------------- Six 293.129 52.0 Five 109.438 81.1 Four 242.882 66.9 Alpha 184.498 253.9 Beta 287.66 299.2 Eta 0.0 0.0 Gamma 50.224 0.0 Delta 0.0 0.0 Lambda 0.0 0.0 Epsilon 298.022 0.0 ``planet`` must be one of ['mars', 'jupiter', 'uranus', 'saturn', 'neptune', 'pluto'] (case-insensitive) .. doctest-remote-data:: >>> bodytable, ringtable = RMSNode.ephemeris(planet='Venus', ... epoch='2024-05-08 22:39', ... location = (-67.755 * u.deg, -23.029 * u.deg, 5000 * u.m)) Traceback (most recent call last): ... ValueError: illegal value for 'planet' parameter (must be 'Mars', 'Jupiter', 'Saturn', 'Uranus', 'Neptune', or 'Pluto') ``epoch`` is the datetime to query. Accepts a string in format 'YYYY-MM-DD HH:MM' (UTC assumed), or a `~astropy.time.Time` object. If no epoch is provided, the current time is used. ``location`` is the observer's location. Accepts an `~astropy.coordinates.EarthLocation`, or any 3-element array-like (e.g. list, tuple) of format (longitude, latitude, elevation). Longitude and latitude should be anything that initializes an `~astropy.coordinates.Angle` object, and altitude should initialize a `~astropy.units.Quantity` object (with units of length). If ``None``, then the geocenter is used. ``neptune_arcmodel`` is the choice of which ephemeris to assume for Neptune's ring arcs. accepts a float. must be one of 1, 2, or 3 (see https://pds-rings.seti.org/tools/viewer3_nep.shtml for details). default 3. has no effect if planet != 'Neptune' Outputs --------- ``bodytable`` is a `~astropy.table.QTable` containing ephemeris information on the moons in the planetary system. Every column is assigned a unit from `~astropy.units`. We can get a list of all the columns in this table with: .. doctest-remote-data:: >>> print(bodytable.columns) ``ringtable`` is a `~astropy.table.QTable` containing ephemeris information on the individual rings in the planetary system. Every column is assigned a unit from `~astropy.units`. We can get a list of all the columns in this table with: .. doctest-remote-data:: >>> print(ringtable.columns) Note that the behavior of ``ringtable`` changes depending on the planet you query. For Uranus and Saturn the table columns are as above. For Jupiter, Mars, and Pluto, there are no individual named rings returned by the RMS Node, so ``ringtable`` returns None; ephemeris for the ring systems of these bodies is still contained in ``systemtable`` as usual. For Neptune, the ring table shows the minimum and maximum longitudes (from the ring plane ascending node) of the five ring arcs according to the orbital evolution assumed by ``neptune_arcmodel``, e.g.: .. doctest-remote-data:: >>> bodytable, ringtable = RMSNode.ephemeris(planet='Neptune', epoch='2022-05-24 00:00') >>> print(ringtable) ring min_angle max_angle deg deg ---------- --------- --------- Courage 53.4818 54.4818 Liberte 44.68181 48.78178 Egalite A 33.88179 34.88179 Egalite B 30.0818 33.0818 Fraternite 16.0818 25.68181 System-wide data are available as metadata in both ``bodytable`` and ``ringtable`` (if ``ringtable`` exists), e.g.: .. doctest-remote-data:: >>> systemtable = bodytable.meta >>> print(systemtable.keys()) dict_keys(['sub_sun_lat', 'sub_sun_lat_min', 'sub_sun_lat_max', 'opening_angle', 'phase_angle', 'sub_sun_lon', 'sub_obs_lon', 'd_sun', 'd_obs', 'light_time', 'epoch']) Reference/API ============= .. automodapi:: astroquery.solarsystem.pds :no-inheritance-diagram: