Executando verificação de segurança...
11

Como utilizar python para analizar dados da NASA e mostrar asteroides mais proximos da Terra!

Bom Dia! Tudo Bem? Hoje vou mostrar para vocês como usar Python para pegar dados da NASA, analisá-los e mostrar quais asteroides estão mais próximos da Terra.

Primeiros Passos

Inicialmente, precisamos instalar algumas bibliotecas.

  1. Requests: É uma biblioteca em Python que nos permite realizar requisições HTTP de maneira simples. Para instalá-la, basta abrir o terminal e digitar o comando pip install requests.

  2. JSON: Essa biblioteca irá nos ajudar a trabalhar com os dados retornados pela NASA, que são em formato JSON. Para instalá-la, basta digitar o comando pip install json.

O Código

O código começa importando as bibliotecas necessárias, como a da NASA para acessar seus dados e uma de análise de dados para analisar os dados. Em seguida, pode-se definir as variáveis, como a data atual ou o raio de distância para a Terra, para usar na análise. Em seguida, usa-se as funções dessas bibliotecas para acessar os dados da NASA e filtrá-los de acordo com as variáveis definidas. Por fim, é possível imprimir ou exibir os resultados da análise, mostrando quais asteroides estão mais próximos da Terra.

OBS: Você pode alterar o número de asteroides que serão exibidos.


import requests
import json

# Fazendo uma requisição na API da NASA
url = 'https://api.nasa.gov/neo/rest/v1/feed?start_date=2020-07-15&end_date=2020-07-22&api_key=DEMO_KEY'
response = requests.get(url)
data = json.loads(response.text)

# Armazenando os dados dos asteroides
asteroids = data['near_earth_objects']

# Inicializando uma lista para armazenar os asteroides mais próximos
closest_asteroids = []

# Percorrendo cada dia
for day in asteroids:
    # Percorrendo cada asteroide
    for asteroid in asteroids[day]:
        # Armazenando o nome e a distância do asteroide em quilômetros
        name = asteroid['name']
        distance = asteroid['close_approach_data'][0]['miss_distance']['kilometers']
        closest_asteroids.append((name, distance))

# Ordenando a lista de asteroides mais próximos pelo menor valor de distância
closest_asteroids.sort(key=lambda x: x[1])

# Imprimindo os 10 asteroides mais próximos
for i in range(10):
    print(closest_asteroids[i][0], closest_asteroids[i][1], 'km')

Até Mais!

Carregando publicação patrocinada...
1

ótima demonstração de como conectar com dados de APIs públicas.

Inclusive, acho que vale um projeto pra melhorar a visualização disso, troquei o seu "for" "# Imprimindo os 10 asteroides mais próximos" por um "for" que adiciona os dados em um dicionario e depois plota um gráfico de barras:

closest_asteroids_dict = {}
for i in range(10):
    closest_asteroids_dict[closest_asteroids[i][0]] = closest_asteroids[i][1]

e depois, pra gerar um gráfico de barras:

import matplotlib.pyplot as plt

labels = list(closest_asteroids_dict.keys())
values = list(closest_asteroids_dict.values())

plt.bar(labels, values)
plt.xlabel("Name")
plt.ylabel("kilometers")
plt.title("Bar Chart Example")
plt.xticks(rotation=45)

plt.show()

⚠️ O dicionario não está espaçado corretamente por km(apesar de estarem em ordem), então o gráfico fica estranho, mas é uma ótima melhoria pra implementar ai