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

Update util functions

parent ca6a73e5
No related branches found
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