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

Esse conteúdo é antigo

Turbulência: Especialistas tentam explicar o que ocorreu em voo da Latam

O avião da Latam teve um dos motores, parte da fuselagem, o nariz e o para-brisa avariado pela tempestade de granizo - Reprodução/Redes Sociais
O avião da Latam teve um dos motores, parte da fuselagem, o nariz e o para-brisa avariado pela tempestade de granizo Imagem: Reprodução/Redes Sociais

Do UOL, em São Paulo

28/10/2022 18h53Atualizada em 28/10/2022 18h53

Os radares meteorológicos do avião que enfrentou uma tempestade para chegar a Assunção, no Paraguai, poderiam mostrar que havia condições severas para voar, dizem especialistas. A aeronave da Latam Airlines, com 48 ageiros a bordo, sofreu graves danos após enfrentar uma tempestade de granizo na região da fronteira do Paraguai com o Brasil e teve que realizar um pouso de emergência após um dos motores e a fuselagem enfrentarem avarias, que incluíram rachaduras no para-brisa.

Ao MetSul, o meteorologista Luiz Fernando Nachtigall, especialista em Meteorologia Aeronáutica, disse que seria possível observar pelos radares uma "situação perigosa".

"O que víamos sobre o Paraguai nos radares de superfície e satélites mostrava uma situação extremamente perigosa para voar. Havia um alinhamento de células de temporal de difícil desvio porque formavam uma verdadeira linha contínua de tempestade em rota, condição que será objeto da investigação aeronáutica", afirmou Nachtigall.

Ao ABC Color, Vicente Quiñónez, ex-comandante de aviões Airbus A320 da Latam, disse que a utilização de radares ajuda a compreender as condições do tempo, mas nem sempre é possível obter as informações com exatidão.

"O radar meteorológico vai informar sobre as diferentes temperaturas exteriores que existe. Ele pode ter conhecimento de como está a meteorologia por fotografias, que não indicam onde há granizo ou turbulência severa, apenas diferencia a temperatura e onde estão as condições mais pesadas. O piloto não é um kamikaze, vai buscar desviar o máximo possível, ninguém quer entrar em uma turbulência pesada, como foi nesse caso".

Declarar emergência diante da situação, no entanto, foi uma atitude correta para os especialistas. Osvaldo Salinas, expert em Aeronáutica, disse que um voo pode declarar emergência em situações realmente desastrosas, quando há problemas no ar ou quando "o comandante verdadeiramente se assusta por esses inconvenientes".

Segundo ele, os aviões "quase nunca" am por uma tempestade, exceto que não haja outra alternativa. Para ele, não é possível entender a decisão de não ter esperado mais tempo no desvio, em Foz do Iguaçu, até que a tempestade acalmasse.