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

Trenzinho no céu: o que são as luzes vistas no Sul do Brasil? Veja vídeos

Estevan Duarte/Reprodução Instagram
Imagem: Estevan Duarte/Reprodução Instagram

Marcella Duarte

de Tilt, em São Paulo (SP)

03/02/2023 14h27

Moradores do Sul do Brasil foram surpreendidos por uma intrigante fileira de luzes, cruzando lentamente o céu, na noite de quarta-feira (1º). Algumas pessoas se assustaram, achando até que poderiam ser naves alienígenas.

Mas a explicação é simples e sem mistérios: os pontos brilhantes eram apenas satélites Starlink, rede de telecomunicações da SpaceX, do bilionário Elon Musk.

Nas redes sociais, há relatos de diversas cidades do Rio Grande do Sul, como Porto Alegre, Venâncio Aires, Gravataí, Santa Rosa e Rio Grande, e até de países vizinhos, como Paraguai e Uruguai.

As luzes apareceram por volta das 20h e levou mais de 15 minutos até o "trenzinho" inteiro cruzar o céu. Veja alguns dos vídeos:

Por que apareceram agora?

  • Há cerca de 3.500 minissatélites Starlink em órbita, que em geral não conseguem ser vistos da Terra a olho nu
  • Isso é possível apenas em uma ocasião: nas semanas seguintes ao lançamento, enquanto os novos equipamentos estão bem juntos e relativamente baixos (a menos de 300 km de altitude)
  • Eles são enviados para o espaço em lotes (entre 50 e 60 satélites)
  • Houve quatro lançamentos este ano: nos dias 19, 26 e 31 de janeiro e em 2 de fevereiro -- o 71º lançamento do projeto, iniciado em 2019
  • Todos estes ainda estão potencialmente visíveis
  • Nas próximas semanas, eles vão se separando e subindo para sua altitude operacional de 550 km, e deixarão de ser vistos a olho nu
  • Eles são pequenos (230 kg cada um) e não emitem luz própria -- o que vemos é a luz do Sol refletida em sua estrutura metálica

Como ver?

Eles am o tempo todo sobre nossas cabeças — mas às vezes isso ocorre de dia, ou com condições climáticas ruins, ou sobre outra região. Para saber quando um trenzinho de Starlinks poderá ser visto no lugar em que estamos, há alguns sites e apps que fazem o rastreamento.

Um deles é o Find Starlink. Além das datas e horários exatos de todas agens, ele mostra a direção do céu que os objetos seguirão, a condição de visibilidade (boa, média ou ruim) e qual é aquele grupo de satélites.

Hoje ele informa, por exemplo, 14 agens sobre São Paulo nos próximos dias, duas delas com boas condições de serem vistas:

  • 4/2 às 19h54; de sudoeste para norte (lote 69)
  • 6/2, às 4h54, de nordeste a sudoeste (lote 70)

Poluição e prejuízos à astronomia

Eles deixam de ser vistos a olho nu mas não pelos nossos olhos no espaço — os telescópios. Esta quantidade de absurda de satélites (Starlinks e muitos outros) em órbita, além de gerar muito lixo espacial e liberar gases poluentes pelos motores dos foguetes, tem sido prejudicial à astronomia.

Muitas imagens, como observações de planetas e asteroides, têm sido invadidas por estes objetos humanos — aparecem como riscos luminosos. Algumas são totalmente arruinadas por eles, como esta:

Veja quantos satélites cruzaram neste pequeno vídeo do cometa C/2022 E3 (ZTF), que está ando perto da Terra:

E o plano de Musk mal começou; ele quer criar uma verdadeira constelação de satélites, com pelo menos 12 mil deles — mas que pode chegar a 42 mil —, para oferecer internet de alta velocidade em todo o planeta. Para se ter uma ideia da dimensão disso, há cerca de 9.000 estrelas visíveis a olho nu ao redor da Terra.