NEO każdego dnia z Pythonem
-
jacek
11/11/2019
- Programowanie
- 2003 czytań 0 komentarzy
Tak. I to na dwa sposoby. Pierwszy jest prosty. Wystarczy kliknąć l ink i wejść na stronę NASA. Tam znajdziemy wszystkie wiadomości na temat takich obiektów. Jest ich czasem sporo, a jak wejdziemy głębiej w serwis to okaże się, że jest ich bardzo dużo. Ale możemy sobie to uprościć za pomocą języka Python, który systematycznie poznajemy na zajęciach sekcji astronomicznej. To jest dobry przykład jak przydaje się umiejętność programowania.
Poniższy skrypt połączy się z serwerem NASA i pobierze gotowe dane. Potem je sformatuje i wyświetli tak by by dla nas czytelne. Nie musi tego być wiele. Ale dzisiaj (10.11.2019) tych planetoid pojawiło się 12. Bywa, że nie ma żadnej.
Ale to nie znaczy, że ich nie może być. To w NASA nie wiedza nic o tych obiektach. Tak się może zdarzyć. Niektóre obiekty mogą być tak małe, lub zbliżać się do nas od strony Słońca i możemy ich nie wykryć nawet technikami radarowymi. Moim zdaniem służba ochrony Ziemi działa już całkiem sprawnie. Wiemy o wielu asteroidach przelatujących w naszym pobliżu. Skrypt wyświetli nam wiadomości o tych, które stanowią zagrożenie kolizją z Ziemią.
Sekcja Astronomiczna specjalizuje się w małych ciałach niebieskich (asteroidach). Bierzemy udział kilka razy w roku w projekcie poszukiwania planetoid IASC. To jest przedsionek naszych starań o poznanie tajemnic tych obiektów. Są one niezwykle ciekawe i mają wiele tajemnic. Wiedza o nich jest nam konieczna do poznania, bo warunkuje to czy przetrwamy czy tak jak dinozaury znikniemy z powierzchni na zawsze.
i kolejny skrypt:
Poniższy skrypt połączy się z serwerem NASA i pobierze gotowe dane. Potem je sformatuje i wyświetli tak by by dla nas czytelne. Nie musi tego być wiele. Ale dzisiaj (10.11.2019) tych planetoid pojawiło się 12. Bywa, że nie ma żadnej.
Ale to nie znaczy, że ich nie może być. To w NASA nie wiedza nic o tych obiektach. Tak się może zdarzyć. Niektóre obiekty mogą być tak małe, lub zbliżać się do nas od strony Słońca i możemy ich nie wykryć nawet technikami radarowymi. Moim zdaniem służba ochrony Ziemi działa już całkiem sprawnie. Wiemy o wielu asteroidach przelatujących w naszym pobliżu. Skrypt wyświetli nam wiadomości o tych, które stanowią zagrożenie kolizją z Ziemią.
Sekcja Astronomiczna specjalizuje się w małych ciałach niebieskich (asteroidach). Bierzemy udział kilka razy w roku w projekcie poszukiwania planetoid IASC. To jest przedsionek naszych starań o poznanie tajemnic tych obiektów. Są one niezwykle ciekawe i mają wiele tajemnic. Wiedza o nich jest nam konieczna do poznania, bo warunkuje to czy przetrwamy czy tak jak dinozaury znikniemy z powierzchni na zawsze.
#Real time Asteroid Watch - www.101computing.net/real-time-asteroid-watch/ fNbj5dugfaqytqHVLfpPagEWbsu1rmOkFNY6b6xh import json, urllib.request, time today = time.strftime('%Y-%m-%d', time.gmtime()) print("Date: " + today) #Our JSON request to retrieve data about asteroids approaching planet Earth. url = "https://api.nasa.gov/neo/rest/v1/feed?start_date=" + today + "&end_date=" + today + "&detailed=true&api_key=DEMO_KEY" ## klucz DEMO_KEY można zastąpić prywatnym kluczem po zarejestrowaniu usługi w NASA response = urllib.request.urlopen(url) result = json.loads(response.read()) print("Today " + str(result["element_count"]) + " asteroids will be passing close to planet Earth:") print("") #print(url) print("") asteroids = result["near_earth_objects"] #Parsing all the JSON data: for asteroid in asteroids: for field in asteroids[asteroid]: try: print("Asteroid Name: " + field["name"]) estimated = round((field["estimated_diameter"]["meters"]["estimated_diameter_min"]+field["estimated_diameter"]["meters"]["estimated_diameter_max"]),2) print("Estimated Diameter: " + str(estimated) + " meters") print("Close Approach Date & Time: " + field["close_approach_data"][0]["close_approach_date_full"]) print("Velocity: " + str(field["close_approach_data"][0]["relative_velocity"] ["kilometers_per_hour"]) + " km/h") print("Distance to Earth: " + str(field["close_approach_data"][0] ["miss_distance"]["kilometers"]) + " km") if field["is_potentially_hazardous_asteroid"]: print ("This asteroid could be dangerous to planet Earth!") else: print ("This asteroid poses not threat to planet Earth!") except: print("Unable to access all data.") print("--------------------")
i kolejny skrypt:
#!/bin/python3 #NASA NEO #Big thanks to NASA API (https://api.nasa.gov/api.html), get your API key from this site. import json, requests, time #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 today = time.strftime('%Y-%m-%d', time.gmtime()) start_date = today ## 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 NASA") 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("")
Dodaj komentarz
Zaloguj się, aby móc dodać komentarz.
Oceny
Tylko zarejestrowani użytkownicy mogą oceniać zawartość strony
Zaloguj się , żeby móc zagłosować.
Zaloguj się , żeby móc zagłosować.
Brak ocen. Może czas dodać swoją?