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

Para professor, buscar óleo com satélite é como 'míope querer ler longe'

Mancha de óleo em Sergipe - Brenda Dantas/Divulgação
Mancha de óleo em Sergipe Imagem: Brenda Dantas/Divulgação

Carlos Madeiro

Colaboração para o UOL, em Maceió

14/10/2019 20h17

Resumo da notícia

  • Há mais de um mês, manchas de óleo chegam ao litoral do Nordeste
  • Uma linha de investigação liga óleo encontrado aqui ao venezuelano
  • Universidade também suspeita de barris da Shell
  • EUA usaram satélite para tentar rastrear material
  • Mas até agora, não se sabe de onde vem o vazamento

Doutor em sensoriamento remoto e coordenador do Laboratório de Análise e Processamento de Imagens de Satélite na Ufal (Universidade Federal de Alagoas), o professor Humberto Barbosa avalia que a istração Nacional Oceânica e Atmosférica dos EUA não teria como detectar a origem do petróleo que atinge o Nordeste há um mês.

"É como uma pessoa com quatro graus de miopia tentando ler letras pequenas a oito metros de distância", comparou o pesquisador.

Hoje, o blogueiro do UOL Diogo Schelp revelou que a agência norte-americana usou tecnologia espacial para tentar encontrar de onde vem o óleo vazado, mas não teve sucesso.

Além da distância, Barbosa afirma que a consistência do óleo cru que chega ao litoral nordestino é inadequada à captura pelos satélites.

"Se fosse mais líquido ou pastoso, o petróleo [que chega às praias] teria uma textura muito mais homogênea e poderia ser detectado pelo satélite. Mas nesse formato achado, o satélite não enxerga", diz.

O material retirado das praias nas últimas semanas tem aspecto sólido e pegajoso, semelhante ao asfalto antes de ser aplicado nas ruas. Ele chega à costa em pequenos blocos, e ainda não se sabe de onde tem vindo.

Para Barbosa, os satélites poderiam ser úteis se comparassem as imagens atuais com as obtidas dois meses antes do aparecimento das manchas.

"Poderíamos tentar ver se nesse período encontramos alguma mudança no padrão que ajude. Se a gente tivesse a data certa, ou onde foi a origem do fenômeno, seria mais simples", afirma.

Mas nenhum desses dados ainda é conhecido.

Barbosa também lembra que os satélites podem ter esbarrado em problemas naturais como as nuvens.

"Há toda uma complexidade. O que deve estar acontecendo hoje é que esse petróleo está espalhado em pequenos pedaços. Esses blocos que estão chegando nas praias do Nordeste, o satélite não consegue detectar", finaliza.