Obs

class sbpy.data.Obs[source]

Bases: sbpy.data.Ephem

Class for querying, storing, and manipulating observations

Methods Summary

from_mpc(targetid[, id_type])

Load available observations for a target from the Minor Planet Center using get_observations.

supplement(self[, service, id_field, …])

Supplement observational data with ephemerides queried from the selected service.

Methods Documentation

classmethod from_mpc(targetid, id_type=None, **kwargs)[source]

Load available observations for a target from the Minor Planet Center using get_observations.

Parameters
targetidstr

Target identifier, resolvable by the Minor Planet Ephemeris Service.

id_typestr, optional

'asteroid number', 'asteroid designation', 'comet number', 'comet designation', or None. None attempts to automatically identify the target id type using Names. Default: None

**kwargsoptional

Additional keyword arguments are passed to query_object

Returns
Obs object

The resulting object will be populated with the same fields defined in get_observations.

Examples

>>> from sbpy.data import Obs
>>> obs = Obs.from_mpc('12893') # doctest: +REMOTE_DATA
>>> orb[:3]  # doctest: +SKIP
number   desig   discovery note1 ...         DEC         mag band observatory
                                 ...         deg         mag
------ --------- --------- ----- ... ------------------- --- ---- -----------
 12893 1998 QS55        --    -- ...  -15.78888888888889 0.0   --         413
 12893 1998 QS55        --    -- ... -15.788944444444445 0.0   --         413
 12893 1998 QS55         *     4 ...   5.526472222222222 0.0   --         809
supplement(self, service='jplhorizons', id_field='targetname', epoch_field='epoch', location='500', modify_fieldnames='obs', **kwargs)[source]

Supplement observational data with ephemerides queried from the selected service.

Parameters
servicestr, optional

Service from which to acquire data: 'jplhorizons', 'mpc', or 'miriade', corresponding to the JPL Horizons system (using from_horizons), the Minor Planet Center ephemeris service (using from_mpc), and the IMCCE Miriade service (using from_miriade). Default: 'jplhorizons'

id_fieldstr, optional

Field name that corresponds to a suitable target identifier in this Obs object. Default: 'targetname'

epoch_fieldstr, optional

Field name that corresponds to a suitable epoch identifier in this Obs object. The corresponding column must be of type Time. Default: 'epoch'

locationstr, optional

Location of the observer for the data stored in this Obs object. Default: '500' (geocenter)

modify_fieldnamesstr, optional

Defines whether field names in this Obs object ('obs') or in the supplemental data to be queried ('eph') will be modified by adding a suffix in case of field name collisions. Default: 'obs'

**kwargsoptional

Additional keyword arguments are passed to the corresponding ephemerides query service.

Returns
Obs object

The resulting object will contain all data from this Obs object as well as the queried ephemeris data.

Notes

  • Not all available service are equally suited for this kind of query: only the JPL Horizons system enables quick queries for a large number of epochs. Queries using the other services may take a long time depending on the number of epochs and targets.

Examples

>>> from sbpy.data import Obs
>>> obs = Obs.from_mpc('2019 AA', id_type='asteroid designation') # doctest: +SKIP
>>> data = obs.supplement(id_field='designation') # doctest: +SKIP
>>> data.field_names # doctest: +SKIP
<TableColumns names=('number','desig','discovery','note1','note2','epoch','RA_obs','DEC_obs','mag','band','observatory','target','RA','DEC','delta','V','alpha','elong','RAcosD_rate','DEC_rate','delta_rate')>