;(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

Foto de Júpiter: a imagem extraordinária do planeta gigante que os astrônomos construíram com mosaico de fotos

Os cientistas usaram uma técnica de alta resolução usada em astronomia chamada em inglês de lucky imaging, que envolve a geração e a combinação de imagens obtidas de várias exposições ultrarrápidas - Gemini Observatory
Os cientistas usaram uma técnica de alta resolução usada em astronomia chamada em inglês de lucky imaging, que envolve a geração e a combinação de imagens obtidas de várias exposições ultrarrápidas Imagem: Gemini Observatory

Jonathan Amos - Repórter de Ciência da BBC

11/05/2020 10h12

Cientistas usaram técnica chamada 'lucky imaging' para obter uma perspectiva de Júpiter de rara nitidez, como nunca visto antes na Terra.

Os astrônomos criaram uma nova imagem extraordinária de Júpiter, rastreando as regiões de calor que se encontram sob as gigantescas nuvens de gás do planeta vizinho.

A imagem foi obtida com o Telescópio Gemini North, localizado no Havaí, e é um dos avistamentos mais nítidos do planeta já obtidos na Terra.

Para alcançar essa resolução, os cientistas usaram uma técnica de alta resolução usada em astronomia chamada em inglês de lucky imaging, que envolve a geração e a combinação de imagens obtidas de várias exposições ultrarrápidas, minimizando os efeitos de turbulências na atmosfera na composição de uma única imagem final — um mosaico de fotos.

O estudo que produziu essa imagem infravermelha foi liderado por cientistas da Universidade da Califórnia, em Berkeley.

Ele foi parte de um programa conjunto de observações que envolveram o telescópio Hubble e da sonda espacial Juno, que atualmente orbita Júpiter.

O infravermelho tem um comprimento de onda maior que a luz visível obtida pelo Hubble.

júpiter - Nasa - Nasa
Planeta Júpiter
Imagem: Nasa

É usado para ver além da neblina e nuvens no topo da atmosfera de Júpiter, dando aos cientistas a oportunidade de observar o planeta gigante mais de perto.

Os pesquisadores buscam entender melhor como os sistemas climáticos da gigante de gás são gerados e mantidos, e em particular as grandes tempestades que podem ser desencadeadas por décadas e até séculos.

Alguns dados sobre Júpiter:

  • Júpiter tem um diâmetro 11 vezes maior que a Terra e é 300 vezes maior.
  • Leva 12 anos terrestres para dar uma volta em torno do Sol, e um "dia" nesse planeta dura 10 horas.
  • Sua composição é semelhante à de uma estrela, com hidrogênio e hélio como seus principais elementos.
  • Quando o hidrogênio está sob pressão, ele se transforma em um estado semelhante ao metal
  • Esse "hidrogênio metálico" pode ser a fonte do campo magnético do planeta.
  • A maioria das nuvens visíveis contém amônia e sulfeto de hidrogênio.
  • As faixas de baixa latitude de Júpiter abrigam fortes ventos na direção leste-oeste.
  • A Grande Mancha Vermelha é um vórtice gigante de tempestade maior que a Terra.