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

No sertão do CE, 'açude inteligente' não seca e garante água a comunidades

Fabiana Maranhão

Do UOL, em Canindé (CE)

24/03/2015 05h00Atualizada em 27/03/2015 07h49

Na comunidade rural cearense de Barra do Bento, a 23 km do centro de Canindé (a 115 km de Fortaleza), os moradores sabem que podem contar com a água que vem do açude porque ele nunca seca, faça chuva ou faça sol. Pelo menos tem sido assim desde que ele foi construído, há cinco anos.

A reportagem do UOL percorreu mais de mil quilômetros entre os Estados do Ceará, do Piauí e de Pernambuco em busca de exemplos de como é possível driblar a escassez de água. As experiências podem servir de lição para a região Sudeste, que enfrenta uma grave crise de falta de água desde o começo de 2014.

Os açudes fazem parte da paisagem do interior do Nordeste. Não é preciso andar muito para se deparar com essas construções simples usadas para armazenar água da chuva. Na maioria das vezes, são grandes buracos cavados em áreas mais baixas. Por causa da baixa precipitação, am grande parte do ano secos ou apenas com lama.

Mas o açude que abastece as 38 famílias de Barra do Bento tem estado cheio desde que foi feito. A explicação está em suas características. Ele é mais fundo (tem 15 metros de profundidade) e ocupa uma área menor (cerca de 500 metros de extensão) que os açudes comuns. Além disso, fica entre duas serras, o que o "livra" do sol, e consequentemente da evaporação, durante algumas horas do dia.

O engenheiro agrônomo José Maria Pimenta, nascido e criado no sertão cearense, batizou a ideia de "açude inteligente". Segundo ele, é preciso de apenas 300 milímetros de chuva para enchê-lo. 

Ele conta que idealizou o projeto depois de analisar os índices pluviométricos do Ceará ao longo de 120 anos e constatar que choveu menos de 300 milímetros em apenas quatro anos. "Então, a probabilidade de um açude inteligente verter, sangrar, encher todo ano é de 97%", diz.

"Eu chorei na primeira vez da sangria dele [açude]. Foi em 31 de janeiro de 2008. Eu chorei mais o meu filho", lembra o agricultor Raimundo Rodrigo de Souza, 47.

A dona de casa Raimunda Pinto, 36, conta que, antes do açude, era preciso andar entre três e cinco quilômetros para pegar água, que era levada para casa em recipientes carregados por jumentos. "Hoje nós temos [água] para repartir com os que não têm", comemora.

À frente da Ematerce (Empresa de Assistência Técnica e Extensão Rural do Ceará) durante quase oito anos, Pimenta viabilizou a construção de 40 açudes inteligentes em quatro cidades cearenses --Canindé, Madalena, Quixeramobim e Piquet Carneiro. Esse tipo de açude leva cerca de dois meses para ficar pronto e custa cerca de R$ 70 mil.

A água do açude é levada por meio de bombas até as comunidades. Antes de chegar às torneiras dos moradores, ela a por um processo de tratamento e depois é usada para beber, cozinhar, tomar banho, lavar roupa, além do cultivo de frutas e verduras e da criação de animais.

'Saímos da sequidão para a fartura de água', diz agricultor