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:
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
toolScript 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.