4 days ago I decided to increase my Python knowledge by exploring JSON files. I found out that NASA give free access to data it collects (massive thank you to NASA!). I quickly signed up for an API key and decided that my first attempt at using the NASA data should be around NEOs. This was spurred on by the fact that 1) I used to do astronomy and 2) I watched Armageddon and Deep Impact a few too many times as a kid.
I hit a stumbling block whilst creating my NEO Python program in that I could not get my head around dictionaries, keys and lists. After some time (and a beer) this evening I made some head way (releasing V2 of my program) before finally getting it to do the majority of what of want in this (V3) release:
———
#!/bin/python3
#geektechstuff
#NASA NEO
#Big thanks to NASA API (https://api.nasa.gov/api.html), get your API key from this site.
import json, requests
#variables
api=”DEMO_KEY”
#I have an API Key but I don’t want to share it here!
start_date=””
end_date=””
result=””
n=””
#message to welcome the user
print(‘Hi and welcome to GeekTechStuff\’s NASA Near Earth Object (NEO) Python program’)
print(‘This programme uses NASA\’s open API system’)
print(‘This Python program searches a data for NEOs’)
print(“”)
#asks the users for dates, these must be in yyyy-mm-dd format
start_date=input(‘Please enter an eight digit date in yyyy-mm-dd format for the start date:’)
#end_date=input(‘Please enter an eight digit date in yyyy-mm-dd format for the end date:’)
end_date=start_date
#opens JSON file containing NEO data
url=’https://api.nasa.gov/neo/rest/v1/feed?start_date=’+start_date+’&end_date=’+end_date+’&api_key=’+api
response=requests.get(url)
response.raise_for_status()
neodata=json.loads(response.text)
number_of_neo=neodata[“element_count”]
nd=neodata[“near_earth_objects”]
nd2=nd[start_date]
print(‘Loading data from’,url)
print(”)
#uses the json loaded from get_json
print(‘On’,start_date,’there were’,number_of_neo,’near Earth objects’)
print(“”)
neo_range=range(number_of_neo)
for n in neo_range:
print(“Neo Ref:”)
print(nd2[n][‘neo_reference_id’])
print(“Neo Name:”)
print(nd2[n][‘name’])
print(“Check out the NASA page for the NEO at:”)
print(nd2[n][‘nasa_jpl_url’])
if nd2[n][“is_potentially_hazardous_asteroid”] == False:
print(‘It was not potentially hazardous’)
else:
print(‘It was potentially hazardous’)
print(“”)
——
One thought on “NASA NEO V3 (Python)”
Comments are closed.