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

Por que choveu tanto em Petrópolis? Frente fria, umidade e relevo explicam

Nathan Lopes

Do UOL, em São Paulo

16/02/2022 14h59Atualizada em 16/02/2022 20h45

A chegada de uma frente fria junto com um corredor de umidade, e ar abafado, são dois fatores que explicam as fortes chuvas que atingiram ontem Petrópolis, na região serrana do Rio de Janeiro.

"Ela está relacionada com a chegada da frente fria até o litoral do Rio de Janeiro. É uma frente fria que ou pela costa de São Paulo bem rápido, mas, no Rio de Janeiro, ela conseguiu levar um pouco mais de chuva", diz Carine Gama, meteorologista da Climatempo. "Além disso, o ar, no interior do Brasil, estava bem abafado. A gente tinha um corredor de umidade voltado para o Sudeste brasileiro."

Carine Gama cita um outro motivo fator que influenciou no cenário: a orografia, que é o relevo acidentado, como acontece na região de Petrópolis. "Áreas de montanha têm condição para formação de nuvens de chuva forte de forma mais fácil porque o ar sobe por um lado e sai do outro."

A previsão do tempo indicava a chance de chuvas severas na região serrana, mas não há ferramenta, segundo as meteorologistas, que indiquem um volume tão intenso em um espaço tão curto de tempo.

Nenhum modelo meteorológico vai indicar 200 milímetros de chuva em três horas. Infelizmente, a gente não tem essa ferramenta em mãos"
Carine Gama, meteorologista da Climatempo

"O que a gente pode ver é monitorar o deslocamento, mas quando o radar mostra já é praticamente a nuvem já formada, precipitando", diz Marlene Leal, meteorologista do Inmet (Instituto Nacional de Meteorologia).

Mais chuva

A chuva deve voltar a aumentar em Petrópolis a partir de amanhã. Há uma estimativa de cerca de 100 milímetros de chuva distribuídos ao longo dos próximos dias até o final de semana.

Não se descarta a possibilidade de chuvas mais fortes até o final do verão, em março, mas um alento vem do fato de o fenômeno La Niña estar se enfraquecendo. É ele que tem contribuído para a formação de ZCAS (Zonas de Convergência do Atlântico Sul), que foram identificadas no sul da Bahia, em Minas Gerais e em São Paulo nas últimas semanas. "Mas o La Niña já teve seu ápice, que foi em janeiro. Ele começou a perder intensidade", diz Gama.

Três horas

Na terça, Petrópolis registrou em apenas três horas uma quantidade de chuva maior do que a média esperada para todo o mês de fevereiro. Ao menos 94 pessoas morreram no município.

Segundo o Cemadem (Centro Estadual de Monitoramento e Alerta de Desastres Naturais), foram registrados 250 milímetros de chuva em três horas ontem em Petrópolis. No total das 24 horas de 15 de fevereiro, foram 260 milímetros.

"A média climatológica para o mês de fevereiro de Petrópolis é de 185 milímetros", diz Gama. "Esse volume foi maior do que toda a chuva prevista para o mês. Choveu fevereiro inteiro mais um terço de fevereiro."

Além da intensidade, outro fator é destacado por meteorologistas: a chuva foi concentrada em áreas de Petrópolis, o que pode ter evitado uma tragédia maior.

"A abrangência foi muito maior em 2011, pegando toda a região serrana, Teresópolis, Nova Friburgo. Ontem, a situação foi muito localizada durante um período da tarde", diz Leal. Em 2011, foram mais de 900 mortes em decorrência das chuvas nas cidades da região.

Foi uma nuvem de chuva totalmente localizada que provocou essa chuva extremamente excepcional. Não foi na cidade inteira, em toda a região serrana. Foi uma chuva totalmente pontual, totalmente localizada
Carine Gama, meteorologista da Climatempo