Carregando...
Essa API, mantida pela NASA (National Aeronautics and Space Administration - EUA) e aplicada aqui pela Arca Tecnologia, disponibiliza imagens e informações reais coletadas pelos rovers Curiosity e Perseverance nas missões em Marte. Nosso objetivo é compartilhar conhecimento de webservices de forma aplicada, para que a comunidade possa explorar remotamente o planeta vermelho.
O rover Curiosity faz parte da missão Mars Science Laboratory (MSL), lançada em 2011 e pousada em Marte em agosto de 2012. Seu objetivo principal é investigar se Marte já teve condições de abrigar vida microbiana, analisando a geologia e a química do solo e das rochas.
.
Ele opera com várias câmeras especializadas:
.
Lançado em julho de 2020 e pousado em fevereiro de 2021, o Perseverance tem como missão principal buscar sinais de vida microbiana passada e coletar amostras do solo para retorno à Terra. Possui câmeras avançadas e instrumentos científicos:
.
.
Essas imagens permitem estudar a superfície marciana em detalhes, documentar alterações do solo e rochas em diferentes sóis (dias marcianos), e compreender melhor a história geológica e climática de Marte. Cada foto é registrada com precisão em Sol e data terrestre, permitindo análises científicas e comparativas ao longo do tempo.
.
A importância dessas imagens inclui: planejar futuras missões tripuladas, estudar a habitabilidade passada do planeta, testar tecnologia de exploração remota e inspirar educação e pesquisa científica em Marte.
.
As câmeras Mastcam (Curiosity) e Mastcam-Z (Perseverance) passam por processos de calibração regulares para garantir a qualidade científica das imagens.
Nas fotos de calibração é possível ver uma placa com círculos coloridos e padrões em preto e branco. Esse alvo funciona como uma “referência de cores e contraste”, permitindo que os cientistas ajustem o balanço de branco, a fidelidade cromática e a exposição das câmeras, mesmo em condições variáveis de luz solar em Marte.
📷 Alvo de calibração da Mastcam-Z no rover Perseverance (NASA/JPL-Caltech).
Assim como em um webservice é necessário validar dados de entrada e saída para garantir a integridade da comunicação, a calibração da Mastcam assegura que as “respostas visuais” enviadas de Marte à Terra tenham valor científico e confiável.
.
.
Os dados capturados pelos rovers não chegam diretamente à Terra. Primeiro, eles são enviados via rádio para satélites em órbita marciana, como o Mars Reconnaissance Orbiter (MRO). Esses satélites retransmitem as informações para a Deep Space Network (DSN), uma rede de antenas gigantes distribuídas nos EUA, Espanha e Austrália. A DSN garante comunicação contínua com espaçonaves em diferentes posições orbitais.
Ao chegar na Terra, os dados passam por processamento, decodificação e verificação de integridade. As imagens são então catalogadas com metadados detalhados (data, Sol, rover, câmera) e armazenadas em servidores da NASA, tornando-se disponíveis publicamente por meio de APIs.
.
A transmissão de dados de Marte para a Terra é análoga ao funcionamento de APIs e webservices:
.
.
Essa analogia reforça a importância prática dos webservices: entender como dados complexos podem ser transmitidos, processados e consumidos de forma confiável, seja de Marte ou de qualquer outro sistema remoto.
.
Este exemplo mostra como consultar fotos do rover Curiosity usando a API pública da NASA e exibir algumas informações básicas em HTML. Este código é apenas educativo e não acessa nossa API real.
// URL de exemplo (API pública NASA)
const API_KEY = 'DEMO_KEY';
const rover = 'curiosity';
const earth_date = '2025-08-14';
const url = `https://api.nasa.gov/mars-photos/api/v1/rovers/${rover}/photos?earth_date=${earth_date}&api_key=${API_KEY}`;
fetch(url)
.then(res => res.json())
.then(data => {
const photos = data.photos || [];
const container = document.getElementById('example-photos');
container.innerHTML = '';
photos.slice(0, 5).forEach(photo => {
const img = document.createElement('img');
img.src = photo.img_src;
img.alt = photo.camera.full_name;
img.style.width = '120px';
img.style.margin = '4px';
img.style.borderRadius = '4px';
container.appendChild(img);
});
})
.catch(err => console.error('Erro ao buscar fotos:', err));
Exemplo de container HTML para exibir as fotos:
<div id="example-photos"></div>
Explicação:
fetch
para a API pública.JSON
.<img>
para exibição..
.
.
.
.
Sua opinião é essencial para aprimorarmos nossas futuras apresentações. Responda ao formulário abaixo — leva menos de 2 minutos e suas respostas serão analisadas de forma anônima.