domingo, 21 de julho de 2013

Sismologia em Tempo Real - Parte 1

Desde a época da graduação, a Sismologia me chamou atenção, tanto que nos primeiros semestres comecei a construir um sismógrafo do tipo Lehman (Dados para Construção), mas por diversos motivos acabei não terminando, principalmente por ter sido convidado a participar do projeto para construção de uma Caixa de Tiro.

Recentemente, voltei a trabalhar com sismologia, principalmente no monitoramento de sismos naturais e induzidos em grandes obras de engenharia. Com isso realizei alguns estudos a fim de encontrar alguns softwares que pudessem me auxiliar nesta tarefa.

Um destes softwares foi o SeisGram, desenvolvido em JAVA por Anthony Lomax, podendo ser executado na maioria dos sistemas operacionais com suporte a JAVA. Este software pode ser utilizado para visualizar sismogramas em diferentes formatos, disponibiliza algumas ferramentas para processamento, visualização do movimento de partículas em 3D, etc. Mas uma das principais características que me chamou a atenção é a possibilidade de visualizar dados sismológicos em tempo-real através de uma ou mais conexões com servidores seedlink.

Em minhas pesquisas descobri que o Centro de Sismologia - USP disponibiliza acesso aos dados de suas estações em tempo real por meio de um servidor seedlink. Irei demonstrar como visualizar estes dados por meio do SeisGram executando-o tanto em maquinas rodando o Microsoft Windows como no Linux.


1º Passo - Preparar o Sistema:
A primeira coisa que temos que fazer é descobrir se temos o Java instalado em nossa maquina. No Windows (XP e Vista), vá em Iniciar > Executar e no Windows 7 vá em Iniciar > pesquisar. Digite "cmd" depois tecle "enter", será mostrado o "prompt do MSDOS" neste você deve digitar "java -version", se a maquina virtual Java estiver instalada deverá aparecer a versão, caso apareça algo informando que o comando ou o programa não foi encontrado, provavelmente a maquina Java não esta instalada. Instale o Java e tente novamente;

No linux abra o shell de sua preferência e digite "java -version", como no caso acima se aparecer a versão está tudo pronto, caso contrário instale o Java e tente novamente.

Também é possível verificar se o Java esta instalado diretamente do site do JAVA através do link TestJava.

2º Passo - Baixar e Preparar o SeisGram:


A última versão do SeisGram pode ser baixada neste link: Download Seisgram2K60.

Após baixar o SeisGram não descompacte o arquivo!

Irei explicar como executar o SeisGram somente no modo de visualização de dados em tempo-real, para mais informações sobre como executar o SeisGram em outros modos acesse Stand-alone and Applet Configuration.


No Windows e/ou Linux crie uma pasta dentro da sua pasta de usuário conforme exemplo:


- 1º Windows: c:\users\fulano\seisgram


- 2º Linux: /home/fulano/seisgram


O usuário "fulano" é o usuário criado em seu sistema durante a instalação do mesmo ou criado por você, já a pasta "seisgram" é a pasta que você deve criar, pode ser qualquer nome de sua escolha.


O próximo passo é copiar o SeisGram, para a pasta que você criou.




3º Passo - Selecionar a Estação:
Como eu falei, vamos usar os dados das estações disponibilizadas pelo Centro de Sismologia - USP, nada impede de você utilizar dados de outros centros sismológicos.


Acesse a Lista de Estações, procure uma de sua preferência, na coluna "Local" é dada informações da localidade onde a estação está instalada. Após escolher a estação olhe na primeira coluna "Rede.Estações[#canais]" e anote, no meu caso escolhi a de Caçapava do Sul - RS, onde na primeira coluna ela é identificada por "BL.CPSB".



4º Passo - Executar o SeisGram em Tempo-Real:

O SeisGram, pode ser executado diretamente via linha de comando (Windows-MSDOS ou Linux-shell), ou através de um arquivo em lote do Windows ou um script no Linux. Primeiro vamos executar o SeisGram diretamente via linha de comando.

- 1º Dependendo do Sistema Operacional, acesse o prompt do MSDOS ou o shell do Linux, conforme explicado no 1º passo.

- 2º Para executar o SeisGram, digite o seguinte, não esqueça de alterar os comandos abaixo a fim de adaptá-los para as pastas onde se encontra o SeisGram:

Windows - Prompt MSDOS:

java -cp c:\users\fulano\seisgram\SeisGram2K60.jar net.alomax.seisgram2k.SeisGram2K -seedlink "seisrequest.iag.usp.br:18000#BL_CPSB:HH?#1200"


Linux - Shell:

java -cp /home/fulano/seisgram/SeisGram2K60.jar net.alomax.seisgram2k.SeisGram2K -seedlink "seisrequest.iag.usp.br:18000#BL_CPSB:HH?#1200"


Se não deu nenhum erro, após alguns segundos a janela do SeisGram deve aparecer e em breves segundos os dados devem começar a aparecer conforme demonstram as figuras 1 e 2:

Figura 1: SeisGram em funcionamento.

Figura 2: GAP nos dados.

Caso ocorra algum problema verifique se o caminho onde encontra-se o SeisGram esta correto!! Vale ressaltar, que mesmo o Windows não diferenciando letras maiúscula e minusculas o Java diferencia, então tanto no Windows como no Linux, digite exatamente como acima.


Segue as explicações de cada uma das seções do comando:


1. java -cp: chama o interpretador java e informa para chamar a classe principal do programa;

2. /home/fulano/seisgram/SeisGram2K60.jar: localização do programa;

3. net.alomax.seisgram2k.SeisGram2K: nome da classe principal, este deve ser digitado exatamente como demonstrei acima e como é demonstrado no site SeisGram - SeedLink;

4. -seedlink "seisrequest.iag.usp.br:18000: endereço do servidor seedlink o qual disponibiliza os dados em tempo real;

5. #BL_CPSB:HH?: Indica a rede "BL", a estação "CPSB" e os canais "HH?" (HHZ=vertical, HHN=horizontal1, HHE=horizontal2 e HH?=todos os canais), a qual o servidor seedlink deve enviar os dados. Altere este parâmetro conforme a estação que você escolheu no site, não esqueça que no site aparece "BL.CPSB" mas no programa você deve usar "BL_CPSB".

6. #1200: Janela de tempo máximo em segundos, influência na taxa de download dos dados.





5º Passo - Executar SeisGram via Lote ou Script:

Uma maneira de facilitar a execução de programas executados via linha de comando é a execução destes por meio de arquivos que contenham os comandos a serem executados em sequência:

1º - No Windows utilize o notepad, cole o comando utilizado acima e salve o arquivo com o nome de sua preferência mas com a extensão ".bat", no meu caso salvei como "seisgram.bat". Assim toda vez que for necessário executar o programa basta dar dois cliques neste, caso necessite alterar algum parâmetro, basta abrir o arquivo alterar e salvar;

2º - No Linux a criação de scripts é muito comum a fim de automatizar algumas tarefas. Para criar o script basta utilizar qualquer editor de texto disponível em sua distribuição Linux, no meu caso como utilizo o Ubuntu utilizo o gedit (modo gráfico) e o VI (modo texto). Abra o editor de texto e na primeira linha coloque "#!/bin/bash" que indica qual interpretador irá executar os comandos, se necessário altere para o interpretador que você utiliza, após cole o comando conforme descrito no 4º passo para execução em Linux, salve o arquivo com o nome de sua preferência, no meu caso salvei como "scriptSeisGram", no Linux não é necessário colocar uma extensão no arquivo.

Feito isto, você deve dar a permissão de execução para o arquivo que você criou, por meio do console entre na pasta onde salvou o arquivo e digite o comando "chmod +x nomedoseuscript", não esquecer que o Linux diferencia maiúscula de minuscula.

> chmod +x scriptSeisGram

Para executar basta digitar a localização do script, ou se estiver na pasta basta fazer:

> ./scriptSeisGram






Espero ter ajudado, assim que possível irei postar informações de outro software que estou testando, que além de demonstrar os dados em tempo real, reconhece quando houve um sismo e salva os dados automaticamente disponibilizando para um pós-processamento.


Qualquer dúvida não exite em entrar em contato!
  


 


Nenhum comentário:

Postar um comentário