obstools.neocp_ephem module

NEO Confirmation Page Object Ephemeris Generator Module

LDTObserverTools contains python ports of various LDT Observer Tools

Lowell Discovery Telescope (Lowell Observatory: Flagstaff, AZ) https://lowell.edu

This file contains a tool for querying the JPL Scout database for short-shelf- life NEOs that have not yet been assigned a Horizons identifier and turning the returned ephemeris into a file that can be ingested into the LDT TCS for observations.

The NEOCP (NEO Confirmation Page at the Minor Planet Center):

https://www.minorplanetcenter.net/iau/NEO/toconfirm_tabular.html

The JPL Scout API Definition:

https://ssd-api.jpl.nasa.gov/doc/scout.html

The result from a query of JPL Scout is a dictionary with the following structure:

count: <str>         # Number of ephemeris time points
object: <dict>       # Various information about the object
signature: <dict>    # Signature of JPL Scout, including the version #
eph: <list>          # The list of ephemeris points
data-fields: <list>  # List of the data field names for each time point / orbit
orbit-count: <int>   # The number of Monte Carlo orbits used to compute medians

The eph member is a list of count ephermeris time points. Each point is a dictionary with the following structure:

sigma-pos: <str>     # The 1-sigma plane-of-sky uncertainty (arcmin)
limits: <dict>       # Minimum / Maximum results from the Monte Carlo orbits
time: <str>          # Time for this ephemeris position
data: <list>         # List of the ``orbit-count`` individual Monte Carlo vals
sun-flag: <str>      # Flag of where the sun is (null, a, n, c, *)
median: <dict>       # Medial results from the Monte Carlo orbits
sigma-limits: <dict> # The 1-sigma minimum/maximum results

It is likely that the pieces of this that we really need are the median values for each timestamp to convert into something the LDT TCS can ingest. The format of this dictionary is as follows:

ra: <str>        # J2000 RA (degrees)
dec: <str>       # J2000 Dec (degrees)
dra: <str>       # Change in RA (arcsec/min)  (accounts for cos(Dec) factor)
ddec: <str>      # Change in Dec (arcsec/min)
rate: <str>      # Plane of sky motion (arcsec/min)
pa: <str>        # Position angle of motion (computed from dra/ddec)
vmag: <str>      # Visual magnitude
elong: <str>     # Solar elongation (degrees)
moon: <str>      # Lunar separation (degrees)
el: <str>        # Elevation above the local horizon

Assuming:

result = requests.get(f"https://ssd-api.jpl.nasa.gov/scout.api", params=query).json()

then the pieces we need to be concerned about are:

for point in result['eph']:
    time = datetime.datetime.fromisoformat(point['time'])
    coord = astropy.coordinates.SkyCoord(
        point['median']['ra']*u.deg,
        point['median']['dec']*u.deg,
        frame='fk5'
    )

    <write appropriate versions to the output file>

The output format for LDT TCS is:

yyyy mm dd hh mm ss αh αm αs.sss ±δd δm δs.ss

Warning

This module is not yet functional!

class obstools.neocp_ephem.NeocpEphem[source]

Bases: ScriptBase

Script class for neocp_ephem tool

Script structure borrowed from pypeit.scripts.scriptbase.ScriptBase.

classmethod get_parser(width=None)[source]

Construct the command-line argument parser.

Parameters:
  • description (str, optional) – A short description of the purpose of the script.

  • width (int, optional) – Restrict the width of the formatted help output to be no longer than this number of characters, if possible given the help formatter. If None, the width is the same as the terminal width.

  • formatter (HelpFormatter) – Class used to format the help output.

Returns:

ArgumentParser – Command-line interpreter.

static main(args)[source]

Main Driver

Simple function that calls the main driver function.

obstools.neocp_ephem.neocp_ephem(neocp_id)[source]

NEO Confirmation Page Ephemeris Generator

_extended_summary_

Parameters:

neocp_id (Any) – The NEOCP ID for the object