;(function() { window.createMeasureObserver = (measureName) => { var markPrefix = `_uol-measure-${measureName}-${new Date().getTime()}`; performance.mark(`${markPrefix}-start`); return { end: function() { performance.mark(`${markPrefix}-end`); performance.measure(`uol-measure-${measureName}`, `${markPrefix}-start`, `${markPrefix}-end`); performance.clearMarks(`${markPrefix}-start`); performance.clearMarks(`${markPrefix}-end`); } } }; /** * Gerenciador de eventos */ window.gevent = { stack: [], RUN_ONCE: true, on: function(name, callback, once) { this.stack.push([name, callback, !!once]); }, emit: function(name, args) { for (var i = this.stack.length, item; i--;) { item = this.stack[i]; if (item[0] === name) { item[1](args); if (item[2]) { this.stack.splice(i, 1); } } } } }; var runningSearch = false; var hadAnEvent = true; var elementsToWatch = window.elementsToWatch = new Map(); var innerHeight = window.innerHeight; // timestamp da última rodada do requestAnimationFrame // É usado para limitar a procura por elementos visíveis. var lastAnimationTS = 0; // verifica se elemento está no viewport do usuário var isElementInViewport = function(el) { var rect = el.getBoundingClientRect(); var clientHeight = window.innerHeight || document.documentElement.clientHeight; // renderizando antes, evitando troca de conteúdo visível no chartbeat-related-content if(el.className.includes('related-content-front')) return true; // garante que usa ao mínimo 280px de margem para fazer o lazyload var margin = clientHeight + Math.max(280, clientHeight * 0.2); // se a base do componente está acima da altura da tela do usuário, está oculto if(rect.bottom < 0 && rect.bottom > margin * -1) { return false; } // se o topo do elemento está abaixo da altura da tela do usuário, está oculto if(rect.top > margin) { return false; } // se a posição do topo é negativa, verifica se a altura dele ainda // compensa o que já foi scrollado if(rect.top < 0 && rect.height + rect.top < 0) { return false; } return true; }; var asynxNextFreeTime = () => { return new Promise((resolve) => { if(window.requestIdleCallback) { window.requestIdleCallback(resolve, { timeout: 5000, }); } else { window.requestAnimationFrame(resolve); } }); }; var asyncValidateIfElIsInViewPort = function(promise, el) { return promise.then(() => { if(el) { if(isElementInViewport(el) == true) { const cb = elementsToWatch.get(el); // remove da lista para não ser disparado novamente elementsToWatch.delete(el); cb(); } } }).then(asynxNextFreeTime); }; // inicia o fluxo de procura de elementos procurados var look = function() { if(window.requestIdleCallback) { window.requestIdleCallback(findByVisibleElements, { timeout: 5000, }); } else { window.requestAnimationFrame(findByVisibleElements); } }; var findByVisibleElements = function(ts) { var elapsedSinceLast = ts - lastAnimationTS; // se não teve nenhum evento que possa alterar a página if(hadAnEvent == false) { return look(); } if(elementsToWatch.size == 0) { return look(); } if(runningSearch == true) { return look(); } // procura por elementos visíveis apenas 5x/seg if(elapsedSinceLast < 1000/5) { return look(); } // atualiza o último ts lastAnimationTS = ts; // reseta status de scroll para não entrar novamente aqui hadAnEvent = false; // indica que está rodando a procura por elementos no viewport runningSearch = true; const done = Array.from(elementsToWatch.keys()).reduce(asyncValidateIfElIsInViewPort, Promise.resolve()); // obtém todos os elementos que podem ter view contabilizados //elementsToWatch.forEach(function(cb, el) { // if(isElementInViewport(el) == true) { // // remove da lista para não ser disparado novamente // elementsToWatch.delete(el); // cb(el); // } //}); done.then(function() { runningSearch = false; }); // reinicia o fluxo de procura look(); }; /** * Quando o elemento `el` entrar no viewport (-20%), cb será disparado. */ window.lazyload = function(el, cb) { if(el.nodeType != Node.ELEMENT_NODE) { throw new Error("element parameter should be a Element Node"); } if(typeof cb !== 'function') { throw new Error("callback parameter should be a Function"); } elementsToWatch.set(el, cb); } var setEvent = function() { hadAnEvent = true; }; window.addEventListener('scroll', setEvent, { capture: true, ive: true }); window.addEventListener('click', setEvent, { ive: true }); window.addEventListener('resize', setEvent, { ive: true }); window.addEventListener('load', setEvent, { once: true, ive: true }); window.addEventListener('DOMContentLoaded', setEvent, { once: true, ive: true }); window.gevent.on('allJSLoadedAndCreated', setEvent, window.gevent.RUN_ONCE); // inicia a validação look(); })();
  • AssineUOL
Topo

Do tamanho de um carro: asteroide atinge a Terra duas horas após detecção

2022 EB5 tinha entre 2m e 4m de diâmetro e atingiu nossa atmosfera sobre a costa da Noruega - Pixabay
2022 EB5 tinha entre 2m e 4m de diâmetro e atingiu nossa atmosfera sobre a costa da Noruega Imagem: Pixabay

Marcella Duarte

Colaboração para Tilt, em São Paulo

16/03/2022 15h49Atualizada em 16/03/2022 15h57

Na última sexta-feira (11), às 18h22 (horário de Brasília) um pequeno asteroide atingiu a Terra, sobre o mar Ártico, na Noruega. Ele havia sido detectado apenas duas horas antes, pelo observatório húngaro Piszkéstet.

A rocha espacial, agora oficialmente chamada 2022 EB5, tinha entre 2 m e 4 m de diâmetro (mais ou menos o tamanho de um carro) e viajava a aproximadamente 18,5 km/s (66.600 km/h). O cálculo de sua trajetória indica que se tratava de um asteroide do tipo Apolo - que transitam entre o Sol e Marte -, com período orbital de 4,73 anos.

Veja nesta animação o local do impacto, a sudoeste da ilha norueguesa Jan Mayen:

A explosão gerada no momento da colisão com a atmosfera terrestre foi detectada por estações de infrassom da Groenlândia. Foram liberados de 2 a 3 quilotons de TNT - equivalente a dois pequenos mísseis nucleares tipo AIR-2 Genie. Para efeito comparativo, a bomba de Hiroshima liberou cerca de 15 quilotons de TNT.

"Caso houvesse uma detonação desta ordem em solo da cidade do Rio de Janeiro, todo material em um raio de 120 m seria vaporizado instantaneamente, com destruição de todas as construções a uma distância de 700 metros", de acordo com o Exoss, projeto brasileiro de monitoramento e pesquisa de meteoros, ligado ao Observatório Nacional.

Porém, um asteroide causa uma explosão bem distante do solo, em geral entre 20 km e 30 km de altitude, quando "bate" em nossa densa atmosfera. Se tivesse atingido a Terra sobre uma área habitada, não representaria perigo.

Moradores apenas ouviriam um estrondo e sentiriam um enorme estampido sônico: ondas de choque, que podem causar tremores e até quebrar janelas.

Por ser relativamente pequena, a rocha provavelmente foi vaporizada pelo atrito, em sua agem pelo nosso céu. Se sobraram fragmentos (meteoritos), eram pequenos e nunca devem ser encontrados - pois caíram no oceano.

Defesa planetária colaborativa

Este foi apenas o quinto asteroide descoberto momentos antes de seu impacto com a Terra, e o primeiro encontrado a partir da Europa.

Corpos maiores, com pelo menos 100 metros de diâmetro, são detectados com mais facilidade e antecedência pelas agências espaciais, que estão sempre procurando objetos com potencial destrutivo. Para localizar os menores, contam com o trabalho de astrônomos profissionais e amadores pelo mundo.

Krisztián Sárneczky, o astrônomo que descobriu o asteroide de aproximando, a menos de 50 mil km da Terra, relatou o achado ao Minor Planet Center - organização colaborativa que analisa dados de asteroides e cometas. Assim, a comunidade internacional, incluindo a Nasa e a ESA (Agência Espacial Europeia), acompanharam e calcularam a trajetória do objeto.

Todos voltaram os olhos para os céus da Noruega. Porém, o impacto aconteceu em um local muito remoto, a 700 km da costa, e em um momento em que nuvens de baixa altitude prejudicaram as observações.

Até agora, não há relatos de registros deste pequeno asteroide. Uma pena, pois esta agem deve ter gerado um meteoro bem brilhante, como uma linda bola de fogo no céu.