Skip to content
Snippets Groups Projects
Commit 935d2db7 authored by nguyed99's avatar nguyed99
Browse files

Update util functions

parent ca6a73e5
Branches jn/nasa-data
No related tags found
No related merge requests found
!$$SOF
MAKE_EPHEM=YES
COMMAND=10
EPHEM_TYPE=VECTORS
MAKE_EPHEM='YES'
COMMAND='10'
EPHEM_TYPE='VECTORS'
CENTER='coord@399'
COORD_TYPE=GEODETIC
COORD_TYPE='GEODETIC'
SITE_COORD='13.35075983141236,52.497297553950155,0.0354'
START_TIME='2023-12-24'
STOP_TIME='2024-01-01'
......@@ -16,5 +16,5 @@ CAL_TYPE='M'
OUT_UNITS='KM-S'
VEC_LABELS='YES'
VEC_DELTA_T='NO'
CSV_FORMAT='NO'
OBJ_DATA='YES'
\ No newline at end of file
CSV_FORMAT='YES'
OBJ_DATA='NO'
\ No newline at end of file
"""
This module contains functions to query JPL Horizons
on-line solar system data (see https://ssd.jpl.nasa.gov/horizons).
Example:
python jobs/src/jpl_data_query.py jobs/inputs/mars_ephemeris.txt > results.txt
"""
import sys
import requests
f = open(sys.argv[1])
url = "https://ssd.jpl.nasa.gov/api/horizons_file.api"
r = requests.post(url, data={'format': 'text'}, files={'input': f})
print(r.text)
f.close()
"""
This module contains functions to query and parse JPL Horizons
on-line solar system data (see https://ssd-api.jpl.nasa.gov/doc/horizons.html).
"""
import requests
import numpy as np
def query_data(input_file: str) -> str:
"""
Send request to the Horizons API with settings for the desired ephemeris results saved in an input file.
"""
with open(input_file, 'r') as f:
file = f.read()
url = "https://ssd.jpl.nasa.gov/api/horizons_file.api"
r = requests.post(url, data={'format': 'json'}, files={'input': file})
return r.json()['result']
def parse_output(output: str) -> np.ndarray:
"""
Parse output of API calls for positions and velocities
"""
output = list(filter(bool, output.split("\n")))
vector_list = [line.split(",") for line in output if line[0].isdigit()]
vector_list = [vector[2:8] for vector in vector_list]
r = np.zeros((len(vector_list), 3), dtype=float)
v = np.zeros((len(vector_list), 3), dtype=float)
for i, vector in enumerate(vector_list):
r[i][0] = float(vector[0])
r[i][1] = float(vector[1])
r[i][2] = float(vector[2])
v[i][0] = float(vector[3])
v[i][1] = float(vector[4])
v[i][2] = float(vector[5])
return r, v
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment