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

Janeiro bate recorde e é o mês mais chuvoso em MG em 110 anos

Andréia Martins

Do UOL, em São Paulo

29/01/2020 12h15Atualizada em 30/01/2020 10h27

Janeiro de 2020 é o mês mais chuvoso em Minas Gerais desde que se começou a medir e acompanhar o índice pluviométrico no estado, em 1910. O recorde no acúmulo mensal histórico foi alcançado após a forte chuva da noite de ontem.

O acumulado de janeiro bateu 942,3 8 mm até o dia 28, segundo levantamento do Inmet (Instituto Nacional de Meteorologia). Choveu 183% a mais do que era esperado para todo o mês no estado. O recorde anterior era de 850,3 mm, registrado em janeiro de 1985.

A capital Belo Horizonte também foi surpreendida pelo volume de chuvas. Até ontem, choveu 50% do que é esperado para todo o ano, um volume estimado em 1602.6 mm.

O recorde de dia mais chuvoso (período de 24 horas) ainda pertence ao último dia 24 de janeiro, quando índice pluviométrico alcançou 171,8 mm. O volume ultraou a marca histórica de 14 de fevereiro de 1978, quando choveu 164,2 mm em um único dia.

54 mortes e 101 cidades em estado de emergência

Belo Horizonte foi a cidade mais afetada pelas chuvas de ontem, com ruas alagadas e com crateras abertas. Segundo a Defesa Civil, choveu 117.4 milímetros entre as 19h e as 22h, mais da metade prevista para todo o mês de janeiro, que é de 329,1mm. O Imnet não confirma a informação dada pela Defesa Civil.

A medição feita pela Defesa Civil até as 22h10 de ontem apontou as regiões Centro-Sul, Barreiro e Oeste como as que tiveram o maior índice pluviométrico da noite. Para hoje, a previsão é de pancadas de chuva (50 a 70 mm) com raios e rajadas de vento que podem superar os 50 km/h, até as 8h de amanhã.

De acordo com o balanço divulgado hoje pela Defesa Civil, 54 pessoas morrerm, 38.703 pessoas estão desalojadas, há 8.157 desabrigados, 65 feridos e uma pessoa desaparecida em Conselheiro Lafaiete.

Ontem, homem morreu após ficar soterrado em um desabamento no beco entre as ruas Lauro Magalhães Santeiro e a rua Lincoln Tolentino, no bairro Cristais, no município de Nova Lima. Hoje pela manhã, uma mulher morreu após seu carro cair em uma cratera na rodovia MG-133.

Do total das mortes no estado, 42 foram causadas por soterramentos, três por afogamentos e nove pessoas vieram a óbito após serem arrastadas pelas águas.

Um decreto do governo do estado colocou 101 municípios em estado de emergência devido às chuvas. Outros três também decretaram estado de calamidade pública. São eles: Orizânia, Ibirité e Catas Altas. Além desses, as prefeituras de outros 36 municípios decretaram situação de emergência.

Errata: este conteúdo foi atualizado
Ao contrário do que dizia o texto, até o dia 28 de janeiro choveu 50% do que é esperado para todo o ano em Belo Horizonte, e não 50% a mais. No mesmo dia, BH registrou 117.4 milímetros de chuva, e não 175 milímetros, como foi informado. As duas informações foram corrigidas.