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

Italianos descobrem lagos em Marte que podem esclarecer existência de vida

Imagem da Nasa mostra o planeta Marte - Nasa via AP
Imagem da Nasa mostra o planeta Marte Imagem: Nasa via AP

Da Ansa

Em Roma

29/09/2020 09h13

Um grupo de pesquisadores italianos descobriu uma rede de lagos de água salgada sob as geleiras localizadas no polo sul de Marte e a descoberta pode ajudar a reescrever a história do clima do planeta vermelho, ajudando a entender a eventual existência de formas de vida.

Ao redor de um lago descoberto em 2018, os estudiosos localizaram outros três, descritos ontem na revista "Nature Astronomy" pela mesma equipe que encontrou o lago há dois anos. Eles usaram o radar Marsis, da Agência Espacial Italiana (ASI), que faz parte da missão Mars Express da Agência Espacial Europeia (ESA).

"Em relação a 2018, nós ampliamos muito a área de estudo e utilizamos métodos diferentes de análises. Agora, os dados indicam que existe um sistema hídrico mais amplo", explicou Petinelli à ANSA. Há dois anos, os especialistas analisaram uma área de 20 quilômetros quadrados e agora foi detalhado um espaço de 250 km por 300 km.

"O fato de encontrarmos estruturas hidrológicas complexas nos sugere que devem existir outras", pontua a pesquisadora.

Para Enrico Flamini, presidente da Escola Internacional de Pesquisas para as Ciências Planetárias (IRSPS), da Universidade de Chieti-Pescara e entre os autores da missão de 2018, a descoberta daquele ano "foi só a primeira prova de um sistema muito mais amplo de corpos hídricos líquidos no subsolo marciano".

"É exatamente o que estava esperando: um verdadeiro grande resultado", comemorou Flamini.

O responsável científico do radar Marsis, Roberto Orosei, também revelou sua empolgação com a descoberta porque ela "mostra um inteiro sistema de lagos, o que implica que o seu processo de formação tenha sido relativamente simples e comum".

"E esses lagos devem ter existido em grande parte da história de Marte. Por isso, poderiam conservar ainda hoje traços de eventuais formas de vida que puderam evoluir quando Marte tinha uma atmosfera densa, um clima mais ameno e a presença de água líquida na superfície, similar à Terra nos primórdios", destaca Orosei.

O estudo foi coordenado pelos pesquisadores da Universidade Roma Tre, Elena Pettinelli e Sebastian Emanuel Lauro, e pelo professor Roberto Orosei, do Instituto Nacional de Astrofísica (Inaf).

Também participaram da descoberta pesquisadores do Conselho Nacional de Pesquisas da Itália (CNR) e estudiosos italianos que trabalham na Universidade do Sul de Queensland, na Austrália, e da Universidade Jacobs, da Alemanha.