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

Amazônia registra novo recorde de alertas de desmatamento em fevereiro

iStock/Getty Images
Imagem: iStock/Getty Images

Do UOL, em São Paulo

24/02/2023 11h34Atualizada em 24/02/2023 11h34

A Amazônia registrou um novo recorde de alertas de desmatamento para fevereiro mesmo antes do mês acabar, mas os dados podem ser influenciados por nuvens que cobriram parte da região em janeiro, diz um especialista.

Até esta sexta-feira (24), foram desmatados 208,75 km², aponta o sistema Deter (Sistema de Detecção de Desmatamento em Tempo Real), do Inpe (Instituto Nacional de Pesquisas Espaciais).

O último recorde era de fevereiro de 2022, quando os alertas apontaram para a destruição de 198,67 km². O fechamento oficial dos dados do mês será feito apenas na próxima sexta-feira (3).

Dos estados da Amazônia Legal, Mato Grosso acumula, até o momento, 129 km² de alertas de destruição da floresta.

Ações de Lula ainda não refletem nos dados

Para Márcio Astrini, secretário-executivo do Observatório do Clima —uma organização que reúne entidades da sociedade civil relacionadas ao clima —, os dados avaliados nesses dois primeiros meses de 2023 não podem ser atribuídos a ações ou omissões da atual gestão.

No mês ado, em contraste com os dados de fevereiro, o Deter havia apontado queda de 61% de desmatamento em relação a dezembro.

No sistema Deter, você pode ter muitas nuvens em um mês, e depois o mês seguinte acaba fazendo a leitura desses locais que, por conta das nuvens, ficaram impossibilitados de serem lidos. Pode ter dado essa diferença."
Márcio Astrini, secretário-executivo do Observatório do Clima

"Era óbvio que em janeiro a gente não veria, nos números de alertas, as ações do governo.", pontua.

Astrini estima que os reflexos do governo Lula, para a queda no desmatamento ou para a manutenção da curva de crescimento, podem ser avaliados mais para frente —"em dois ou três meses", avalia.

O desmatamento zero é uma das principais bandeiras do atual governo após anos de recordes negativos registrados na gestão de Jair Bolsonaro (PL).