Version: 1.0 (2021 March)
change log
The Small-Body Observability API provides a method of determining small-bodies that would be optically observable from a specified topocentric observatory during the specified night (determined from a specified date) or observable via radar or radiotelescopes during a specific time frame, meeting various user-specified constraints.
GET
https://ssd-api.jpl.nasa.gov/sbwobs.api
https://ssd-api.jpl.nasa.gov/sbwobs.api?mpc-code=F51&obs-time=2016-07-03
- observable objects from Pan-STARRS 1 (F51) on 2016-07-03.https://ssd-api.jpl.nasa.gov/sbwobs.api?mpc-code=568&obs-time=2016-12-17&vmag-max=22&helio-min=1.5&glat-min=10
- observable objects from the Mauna Kea Observatory on 2016-12-17 with maximum visual magnitude 22, heliocentric range greater than 1.5 au, and minimum galactic latitude of 10 deg.https://ssd-api.jpl.nasa.gov/sbwobs.api?mpc-code=F51&obs-time=2020-06-23&sb-group=neo&sb-kind=a&maxoutput=100&output-sort=vmag
- top 100 observable NEAs from Pan-STARRS 1 (F51) on 2020-06-23 based on their visual magnitude.You may specify the observer location on the Earth (topocentric) using either an MPC observatory code, geodetic coordinates (latitude, longitude, and altitude) or the parallax. For topocentric locations, you can specify “optical” or “radio/radar” where “optical” implies the requirement that the Sun be below the horizon and “radio/radar” does not.
For optical observations, optical=true
, you may specify the observing time-period
using a single date/time (anytime when the Sun is down) from which the
start time is taken as the prior sunset time and the stop time is taken
as the following sunrise time.
For radio observations, optical=false
, you must explicitly specify the observing
start and stop times where the time spanned is less than 24 hours and the
start time is before the stop time. A lower bound on the solar elongation is also required.
Location defined by MPC observatory code:
Parameter | Type | Default | Description |
---|---|---|---|
mpc-code | string | none | MPC observer location code (radar sites are also supported) |
Location defined by geodetic coordinates:
Parameter | Type | Default | Description |
---|---|---|---|
lat | number | none | geodetic latitude of observer (degrees, north-postive, [-90, 90]) |
lon | number | none | geodetic latitude of observer (degrees, east-postive, [-180, 180]) |
alt | number | 0 |
altitude above the reference ellipsoid {WGS-84/GPS} (km) |
Location defined by parallax:
Parameter | Type | Default | Description |
---|---|---|---|
lon | number | none | geodetic latitude of observer (degrees, east-postive, [-180, 180]) |
dxy | number | none | parallax constant perp. to Earth’s spin axis (au x 10^7) |
dz | number | none | parallax constant along Earth’s spin axis (au x 10^7) |
Parameter | Type | Default | Description |
---|---|---|---|
obs-time | string | none | [required] date/time of the observing night UT (formatted as YYYY-MM-DD[_hh:mm:ss] ) |
obs-end | string | none | date/time when observation ends (optional, formatted as YYYY-MM-DD[_hh:mm:ss] ) |
optical | boolean | true |
the Sun must be below the horizon |
elong-min | number | none | minimum solar elongation: the angle between the target and the Sun w.r.t. observer, in degrees [0, 180] (required for optical=false ) |
elong-max | number | none | maximum solar elongation: the angle between the target and the Sun w.r.t. observer, in degrees [0, 180] (required for optical=false ) |
glat-min | number | none | minimum angular distance from the galactic plane (degrees, [0, 180]) |
glat-max | number | none | maximum angular distance from the galactic plane (degrees, [0, 180]) |
elev-min | number | 30 |
minimum elevation angle (angle in degrees above the horizons, [0, 90]) [e.g., a value of 30 would exclude objects which never get at least 30-degrees above the horizon] |
time-min | int | 0 |
minimum number of minutes required for an exposure (e.g., 15 ) [0 implies no limit] |
vmag-min | number | none | visual magnitude lower-bound (objects must be at least this bright) |
vmag-max | number | none | visual magnitude upper-bound (objects must be at most this bright) |
mag-required | boolean | false |
require magnitude parameters |
helio-min | number | none | limit to objects whose heliocentric distance (au) is at least this value |
helio-max | number | none | limit to objects whose heliocentric distance (au) is at most this value |
dist-min | number | none | limit to objects whose distance (au) from the observer is at least this value |
dist-max | number | none | limit to objects whose distance (au) from the observer is at most this value |
Parameter | Type | Default | Description |
---|---|---|---|
fmt-ra-dec | boolean | true | use sexagesimal format for R.A. and dec. (if false, use decimal degrees) |
maxoutput | int | none | maximum number of records to be returned |
output-sort | string | none | sort records according to this variable. If maxoutput is specified, output-sort must be provided to specify how records are selected. Available options are: name (object name), rise (rise time), trans (transit time), set (set time), maxt (max. observable time), ra (right ascension), dec (declination), vmag (V-magnitude), helio (heliocentric range), topo (topocentric range), oes (solar elongation), oem (object-Earth-Moon angle), glat (galactic latitude) |
output-sort-r | boolean | false | sort in descending order |
Additional constraints on the orbital and physical parameters of the objects are available using the SBDB Filter.
F51
but never 500
‘geocentric’), orlat
) is specified in decimal degrees (north positive)lon
) is specified in decimal degrees (east positive)alt
) is specified in decimal kilometers (above the reference ellipsoid {WGS-84/GPS})lon
) of observer (degrees, east-postive)dxy
, au x 10^7)dz
, au x 10^7)NOTE: a topocentric observer location must be specified. Geocentric observations are not supported.
To request only NEOs, add the field sb-group=neo
to the query URL.
Please always check the JSON payload “signature” object for the API “version”. If the version does not match the version in this document (at the top), there is no guarantee that the format has not changed.
Example "signature" object with "version" value "1.0":
"signature":{"version":"1.0","source":"NASA/JPL ... API"}
A successful run of the SBWOBS code results in details related to the observer location (Summary Data) and a table of observable objects (Observable Objects)
These data relate to the specified observer location and date/time.
mpc-code
, the field location
contains the observatory or radar site namelat
, lon
, alt
, those three parameters will be available in the JSON output.
Observer constraints: contains any constraint specified in the “Observation Constraint Parametes” section
total_objects
- total number of observable small bodies.shown_objects
- number of observable small bodies shown.
obs_constraints
- summary of user-defined observer constraints. Output fields match the fields described in the “Query Parameters” table.
sort_by
- (only when output-sort
is defined) field used to sort observable bodies.
obs_night
- light conditions at the requested observation time (only for optical=true
). The group contains the following fields:
sun_set
- sunset time (UT).sun_rise
- sunrise time (UT).sun_set_az
- azimuth of sunset (deg).sun_rise_az
- azimuth of sunrise (deg).begin_astronomical
- begin astronomical twilight (UT).end_astronomical
- end astronomical twilight (UT).begin_civil
- begin civil twilight (UT).end_civil
- end civil twilight (UT).begin_nautical
- begin nautical twilight (UT).end_nautical
- end nautical twilight (UT).moon_rise
- Moon rise time (UT).moon_rise_phase
- Moon rise phase.moon_set
- Moon set time (UT).moon_set_phase
- Moon set phase.transit
- Moon transit time (UT).transit_phase
- Moon transit phase.begin_dark
- begin dark time (UT).mid_dark
- middle dark time (UT).end_dark
- end dark time (UT).dark_time
- total dark time duration (hh:mm).sb_constraints
- constraints from the SBDB filter.
fields
- column headers for the data
output array.
data
- list of observable objects in array form. Each row corresponds to a different small body and the columns are defined by the fields
list:
Additional notes:
Rise, Transit, and Set Times are the UT times of each event (shown as “hh:mm”, where “hh“=hours, “mm“=minutes, “*” indicates the event occurs when not dark, and “…” indicates the object never sets while dark). Rise/Set events are relative to the maximum zenith distance and NOT the horizon.
For comets, a trailing “N”=nuclear magnitude and “T”=total magnitude.
The following query
https://ssd-api.jpl.nasa.gov/sbwobs.api?sb-kind=a&sb-group=neo&mpc-code=F51&obs-time=2020-06-24&elev-min=30&time-min=10&vmag-max=25&helio-min=0.5&optical=true&fmt-ra-dec=true&mag-required=true
returns the output:
{
"signature" : {
"source" : "NASA/JPL Small-Body Observability API",
"version" : "1.0"
},
"location" : "Pan-STARRS 1, Haleakala",
"obs_constraints" : {
"elev-min" : "30",
"fmt-ra-dec" : "true",
"helio-min" : "0.5",
"mag-required" : "true",
"mpc-code" : "F51",
"obs-time" : "2020-06-24",
"optical" : "true",
"time-min" : "10",
"vmag-max" : "25"
},
"obs_night" : {
"begin_astronomical" : "2020-06-24 14:20",
"begin_civil" : "2020-06-24 15:20",
"begin_dark" : "2020-06-24 06:32",
"begin_nautical" : "2020-06-24 14:50",
"dark_time" : "07:47",
"end_astronomical" : "2020-06-24 06:32",
"end_civil" : "2020-06-24 05:32",
"end_dark" : "2020-06-24 14:20",
"end_nautical" : "2020-06-24 06:02",
"mid_dark" : "2020-06-24 10:26",
"moon_rise" : "2020-06-24 19:04 ",
"moon_rise_phase" : "0.15",
"moon_set" : "2020-06-24 07:42 ",
"moon_set_phase" : "0.10",
"sun_rise" : "2020-06-24 15:44",
"sun_rise_az" : "64.5",
"sun_set" : "2020-06-24 05:07",
"sun_set_az" : "295.5",
"transit" : "2020-06-24 00:54 ",
"transit_phase" : "0.09"
},
"sb_constraints" : {
"sb-group" : "neo",
"sb-kind" : "a"
},
"total_objects" : "3054",
"shown_objects" : "3054",
"fields" : [
"Designation",
"Full name",
"Rise time",
"Transit time",
"Set time",
"Max. time observable",
"R.A.",
"Dec.",
"Vmag",
"Helio. range (au)",
"Topo.range (au)",
"Object-Observer-Sun (deg)",
"Object-Observer-Moon (deg)",
"Galactic latitude (deg)"
],
"data" : [
["887","887 Alinda (A918 AA)","12:42","16:17*","19:52*","01:37","00:05:53","-07 27'21\"","18.7","2.52","2.22","94.97","133.3","-67.54"],
["1221","1221 Amor (1932 EA1)","09:41","13:40","17:40*","04:38","21:28:25","+05 33'55\"","19.7","1.65","0.845","124.59","153.4","-30.92"],
...
]
}
All errors are returned via appropriate HTTP response codes.
HTTP Code | Description | Typical Usage |
---|---|---|
200 | OK | normal successful result |
400 | Bad Request | the request contained invalid keywords, content, or results are invalid: details returned |
405 | Method Not Allowed | the request used an incorrect method (see the HTTP Request section) |
500 | Internal Server Error | the database is not available at the time of the request |
503 | Service Unavailable | the server is currently unable to handle the request due to a temporary overloading or maintenance of the server, which will likely be alleviated after some delay |