You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

40 lines
1.0 KiB
Python

import requests
class Asteroid:
BASE_API_URL = "https://api.nasa.gov/neo/rest/v1/neo/{}?api_key=DEMO_KEY"
def __init__(self, spk_id):
self.api_url = self.BASE_API_URL.format(spk_id)
def get_data(self):
return requests.get(self.api_url).json()
@property
def name(self):
return self.get_data()["name"]
@property
def diameter(self):
return int(
self.get_data()["estimated_diameter"]["meters"][
"estimated_diameter_max"
]
)
@property
def closest_approach(self):
closest = {"date": None, "distance": float("inf")}
for approach in self.get_data()["close_approach_data"]:
distance = float(approach["miss_distance"]["lunar"])
if distance < closest["distance"]:
closest.update(
{
"date": approach["close_approach_date"],
"distance": distance,
}
)
return closest