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

Águas de abril? Nova frente fria pode causar chuvas intensas no Sudeste

Chuvas seguem atingindo o sudeste neste início de outono - Pixabay
Chuvas seguem atingindo o sudeste neste início de outono Imagem: Pixabay

Colaboração para o UOL, em São Paulo

05/04/2022 12h23Atualizada em 05/04/2022 16h25

As fortes chuvas que atingiram a região Sudeste do Brasil na virada de março para abril poderão voltar a aparecer ainda neste mês, segundo previsão da Climatempo. Já nos próximos dias, a pressão atmosférica irá intensificar as instabilidades, o que aumenta a possibilidade de chuva na região entre hoje e amanhã. O sol só deverá voltar a predominar na quinta, mas ainda haverá possibilidade de chuvas fortes no fim do dia.

A previsão do tempo para os dois próximos dias no Sudeste inclui instabilidades, por causa da baixa pressão atmosférica na costa. Tanto em São Paulo quanto no Rio de Janeiro, a expectativa é de sol com muitas nuvens pela manhã e pancadas de chuva à tarde e à noite nos próximos dias.

Apesar das nuvens e chances de chuva, hoje São Paulo tem previsão de temperaturas altas, com máxima de 28ºC. No restante da semana, incluindo sábado e domingo, os termômetros devem variar entre 19º e 29º - com a sexta-feira podendo chegar aos 30ºC. No Rio, as máximas podem chegar a 35ºC hoje e o calor persiste, com máximas de 30ºC a 32ºC, até o fim de semana.

Já na região Sul do país, existe o risco de fortes temporais nos estados do Rio Grande do Sul, Santa Catarina e Paraná.

O que está causando as chuvas

Os grandes volumes de chuva sobre o centro-sul dos estados Rio de Janeiro e São Paulo estão relacionados a uma combinação de fatores, iniciados pela agem de uma forte frente fria pela costa dos estados. Uma intensa massa de ar frio de origem polar foi trazida pela pressão atmosférica que ficou sobre o oceano, acarretando em uma grande circulação de ar marítimo e acúmulo de unidade sobre as áreas costeiras dos dois estados.

Outros fatores favoreceram o forte temporal, que causou 19 mortes no estado do Rio de Janeiro após as chuvas entre a noite do dia 31 de março e a madrugada de sábado (2 de abril).

A produção de nuvens foi alimentada por um bolsão de água quente com temperatura acima do normal e também houve um choque térmico, já que a atmosfera do Sudeste estava previamente aquecida. Ambas as situações colaboram para uma maior evaporação e resultam em mais vapor de água na atmosfera. Além disso, o revelo dos litorais paulista e carioca favorecem a concentração de nuvens de chuva nos locais.

Municípios como Nova Iguaçu e Angra dos Reis, no Rio de Janeiro, decretaram estado de emergência e ativaram o alerta para a reincidência de chuvas fortes no decorrer do mês. Ainda segundo a Climatempo, outras frentes frias arão pela costa da Região Sudeste no mês de abril, mas nem todas serão fortes como a última.

Há atenção especial para possibilidade de novas chuvas fortes na segunda quinzena do mês. Se por um lado o choque térmico na atmosfera será menor do que o ocorrido no início do mês, por outro os solos ainda estarão com muita água acumulada. Portanto, ainda não é possível descartar o risco de deslizamentos de terra e alagamentos.