Gostaria de ajudar?
Mostrando postagens com marcador Software. Mostrar todas as postagens
Mostrando postagens com marcador Software. Mostrar todas as postagens

segunda-feira, 22 de junho de 2015

Plot TSM, Gelo Marinho e Cobertura de Neve - GrADS


Você dificilmente vai fazer uma determinada figura se você não precisa dela. Recentemente eu precisei plotar a cobertura de Gelo Marinho a partir de dados de TSM. Vasculhando a internet encontrei um exemplo de um plot bem legal:

Os dados utilizados neste exemplo são do GFS e para ler os dados mais recentes eu irei utilizar o exemplo mostrado aqui no blog no post anterior.

Para que este script funcione perfeitamente é necessário ter as seguinte funções do Kodama em sua maquina: color.gs, xcbar.gs e colormap.gs.

Os primeiros comandos irão pegar a informação de data no sistema e abrir os dados de TSM e Gelo do GFS com resolução 0.25.

'reinit'
'! date +%Y%m%d > date.txt'
date=read('date.txt')
vardate=sublin(date,2)

arqgfs='http://nomads.ncep.noaa.gov:9090/dods/gfs_0p25/gfs'vardate'/gfs_0p25_00z'
arqgelo='http://nomads.ncep.noaa.gov:9090/dods/ice/ice'vardate'/ice.00z'

'sdfopen 'arqgfs
'sdfopen 'arqgelo

'!rm date.txt'

Com os dados lidos iremos "setar" algumas funções para plotar os dados utilizando a projeção robinson.

'set gxout shaded'
'set mpdset hires'
'set lon -180 180'
'set lat -90 90'
'set grads off'
'set map 0 1 6'
'set mproj robinson'
'colormaps -l 272 307 0.5 -map jet'
'd tmpsfc'
'xcbar -fs 4'

Após estes comandos o plot exibido é +/- assim:



Agora iremos criar uma mascara para os continentes:

'set rgb 73 80 80 80'
'basemap L 73 0 M'

O que geramos a partir destes comandos é algo assim:



Em seguida iremos plotar o Gelo Marinho, para isto utilizamos os comandos:

'set gxout shaded'
'set dfile 2'
'set z 1'
'set t 1'
'set map 0 1 6'
'color 0 0.6 0.1 -kind dimgray->seashell->white'
'd maskout(icecmsl,icecmsl-0.05)'

O que iremos obter é o seguinte plot:



Por último iremos plotar a Cobertura de Neve e os últimos comandos do script são os seguintes:

'set dfile 1'
'color 5 100 5 -kind dimgray->seashell->white'
'set z 1'
'set t 1'
'set map 0 1 6'
'd maskout(weasdsfc,weasdsfc-5)'

E a última figura exibida tem o seguinte formato:



Espero que seja útil para vocês. 

Boa Sorte e Bom trabalho a Todos!

quinta-feira, 30 de abril de 2015

Imagem de Satelite no Grads

Pergunta do Arthur Lucas,

Olá Cristiano,

tenho visto em alguns artigos com campos meteorológicos sobrepostos a imagens de Satélites, é possível fazer isso no Grads ?

Obrigado,

É sim possível desde que o dado da imagem de satélite seja disponibilizado no formato que seja possível o Grads ler, por exemplo: Binário, Netcdf e etc.

Alguns Institutos disponibilizam algumas imagens em formato binário. Durante meu doutorado eu utilizei dados de temperatura de brilho e consegui plotar algumas figuras de TB com vento e etc. Segue um exemplo: Eu plotei a temperatura de brilho com o shaded do Grads mas e com um RGB em tons de cinza que fica "quase igual" a uma imagem de satélite.





Abraço e Bom Trabalho a Todos!!


quarta-feira, 18 de fevereiro de 2015

Alterando os níveis verticais com CDO

Sugestão do Guilherme Martins!

O CDO sempre me surpreendendo!!!!
Alterando os níveis verticais com CDO.
Os níveis verticais dos modelos do CMIP5 estão em "Pa", e normalmente utilizamos em "hPa". Vamos usar o operador "setzaxis" para realizar essa alteração.
Carreguei neste tópico o arquivo "exemplo.nc" para vocês fazerem o teste.
Informações vista com "ncdump -h exemplo.nc"
double plev(plev) ;
plev:bounds = "plev_bnds" ;
plev:units = "Pa" ; <===== unidade do nível vertical
plev:axis = "Z" ;
plev:positive = "down" ;
plev:long_name = "pressure" ;
plev:standard_name = "air_pressure" ;
Informações vista com "ncdump arquivo.nc | more"
plev = 100000, 85000, 70000, 50000, 25000, 10000, 5000, 1000 ; => "Pa"
Segue a dica:
Crie um arquivo texto, e adicione as 6 linhas abaixo:
zaxistype = pressure
size = 8
name = lev
longname = pressure
units = hPa
levels = 1000 850 700 500 250 100 50 10
Salve com um nome qualquer, por exemplo, "nivel". Esse arquivo será lido pelo operador "setzaxis":
Utilize o comando abaixo:
cdo setzaxis,nivel exemplo.nc saida.nc
Esse comando altera a estrutura do seu arquivo netCDF com as novas informações em "hPa".
Para visualizar as novas alterações:
ncdump -h saida.nc

Arquivo: exemplo.nc

PS: caso o arquivo tenha dados UNDEF (que é caso), utilize o operador fillmiss ==> cdo -fillmiss -setzaxis,nivel exemplo.nc saida.nc

Boa Sorte e Bom Trabalho a Todos!

terça-feira, 28 de outubro de 2014

cdo merge levels

Olá a Todos,

Recentemente estive tentando usar o comando merge do cdo para criar um arquivo com vários níveis. O problema era o seguinte:

Eu possuo 10 arquivos de vento em formato binário sendo cada arquivo contendo 100 tempos e um nível.

A primeira coisa que eu fiz foi criar arquivos netcdf a partir dos arquivos descritores .ctl através do comando cdo import_binary -f nc *.ctl. No entanto desta forma o cdo não definia o nível referente ao arquivo e sempre atribuía nível 0 (zero). Com os arquivos criados com a descrição de nível 0 (zero) ao juntar (merge) os 10 arquivos o resultado era sempre um arquivo com somente um nível.

Eu não consegui resolver este problema de maneira mais simples o que fiz foi o seguinte:

Utilizei o comando sdfwrite do GrADS para gerar os arquivos netcdf que precisava.

Ex:

set x 1 144
set y 1 73
set t 1 100
set z 1
define uwnd = uwnd
set sdfwrite -4d arquivo1.nc
sdfwrite uwnd
quit

OBS1: É necessário inserir a função -4d do comando sdfwrite, desta forma você força que o arquivo de saída tenha 4 dimensões (lat, lon, tempo, nível)

OBS2: O nível no arquivo ctl precisa ser definido de maneira correta, por exemplo:

          zdef 1 linear 200 1

          Qualquer definição diferente disso deu errado.

Agora que possuía os 10 arquivos .nc utilizei o merge para gerar meu arquivo com os 10 níveis e 100 tempos:

cdo merge arquivo1.nc arquivo2.nc ... arquivo10.nc saida.nc

Boa Sorte e Bom Trabalho a Todos!!

terça-feira, 7 de outubro de 2014

Dado Texto ou ASCII no GrADS

Olá Pessoal,

Através do GrADS é possível escrever e ler arquivos textos e em algum momento isto pode ser de grande utilidade. Recentemente a Giulia de Salve me escreveu com uma dúvida exatamente sobre este contexto.

O Guilherme Martins em sua Apostila já colocou um exemplo bem explicativo e também existe um guia no site do GrADS que é mais explicativo ainda. O que eu vou colocar aqui é exatamente o que esta na página neste guia do site GrADS.

PS. Eu irei utilizar como exemplo o arquivo model.ctl para quem possui o GrADS 2 (opengrads) instalado ele fica na pasta (grads-2.0.1/Contents/Resources/SampleDatasets/).

O GrADS não possui uma função intrínseca para ler arquivos texto como o sdfopen, por exemplo, por isso é necessário alguns ajustes para isso:

Imagine que você possua um arquivo texto/ascii (my_ascii_file.txt) que tenha uma coluna com valores de 1 a 30:

1
2
3
4
...

Você pode transformar este arquivo em um binário e criar um ctl para ler no GrADS.

'open model.ctl'
file = 'my_ascii_file.txt'
datafile = 'my_binary_file.dat'
'set gxout fwrite'
'set fwrite -ap 'datafile
'!/bin/rm -f 'datafile
while (1)
         res = read(file)
         line1 = sublin(res,1)
         line2 = sublin(res,2)
         rc1 = subwrd(line1,1)
         if (rc1); break; endif
              val = subwrd(line2,1)
              'd 'val
endwhile
rc = close(file)
'disable fwrite'

O ctl para ler o dado gerado (my_binary_file.dat), imaginando que você queira plotar os dados com relação ao eixo X, ficaria assim:

dset ^my_binary_file.dat
title Sample of ASCII data converted to binary
undef -9.99e8
xdef 100 linear 1 1
ydef 1 linear 1 1
zdef 1 linear 1 1
tdef 1 linear 01jan0001 1dy
vars 1
a 0 99 ascii variable
endvars

Se você abrir o ctl acima e plotar vai gerar uma figura semelhante a esta:

Uma outra opção é criar arquivos textos a partir de qualquer dado binário através da função 'set gxout print'. A formatação desta função pode ser feita através da função 'set prnopts'. A saída é plotada no terminal mas pode ser armazenada em uma variável e posteriormente através do script ser escrita em um arquivo. O exemplo a seguir escreve 72 números por linha que representa os 72 pontos de grade em X.

'open model.ctl'
'set x 1 72'
outfile = my_ascii_file.txt'
'set gxout print'
'set prnopts %7.3f 72 1'
'd ts'
rc = write(outfile,result)

Desta forma o arquivo my_ascii_file.txt irá conter algo como isso:

Printing Grid -- 3312 Values -- Undef = -9.99e+08
258.493 258.493 258.493 258.493 258.493 258.493 258.493 258.493 258.493 258.493 258.493 <etc.>

No caso anterior, observe que a primeira linha do arquivo de saída contem algumas informações sobre o número de valores escritos e valores indefinidos que você pode não querer que seja escrito. O exemplo a seguir omiti essa linha, ou seja, pula a primeira linha de informações de diagnóstico. Além disso neste exemplo a saída será delimitada por vírgulas para importar para uma planilha (excell) por fim a variável apresentada agora é uma expressão em vez de um nome. 

'open model.ctl'
'set x 1 72'
outfile='my_ascii_file.txt'
'!/bin/rm -f 'outfile
'set gxout print'
'set prnopts %g, 72 0'
'd ts-273.15'
i=1
while (1)
    line = sublin(result,i)
    if (line = ''); break; endif
    if (i>1)
    rc = write(outfile,line,append)
    endif
    i=i+1
endwhile

Neste caso o arquivo my_ascii_file.txt conterá algo como:

-14.6567,-14.6567,-14.6567,-14.6567,-14.6567,-14.6567,-14.6567,-14.6567,-14.6567,<etc.>

Obs. A função append serve para inserir os dados no final do arquivo caso ele exista. Se você não utilizar a função append e existir um arquivo de mesmo nome ele será sobrescrito. Para mais informações leia "append".

Por fim é possível escrever informações sobre a grade (lat x lon) além dos dados de mais de uma variável, para isso é necessário salvar o resultado da exibição de cada variável/expressão (incluindo longitude e latitude), para cada ponto de grade individualmente, organizar a estrutura que será escrito no arquivo texto de saída e depois escrevê-lo. Neste exemplo será escrito a longitude, latitude, temperatura da superfície, pressão de superfície e precipitação:

'open model.ctl'
'set x 1 72'
outfile='my_ascii_file.txt'
'!/bin/rm -f 'outfile
'set gxout print'
fmt='%8.3f'
numcols=72
'set prnopts 'fmt' 'numcols' 1'
'd lon'
lon_data = result
'd lat'
lat_data = result
'd ts'
v1_data = result
'd ps'
v2_data = result
'd p'
v3_data = result
i=1
while (1)
    lons = sublin(lon_data,i)
    lats = sublin(lat_data,i)
    line1 = sublin(v1_data,i)
    line2 = sublin(v2_data,i)
    line3 = sublin(v3_data,i)
    if (lons='' | lats='' | line1='' | line2='' | line3=''); break; endif
    if (i>1)
        j=1
        while (j<=numcols)
            str = subwrd(lons,j); lon = math_format(fmt,str)
            str = subwrd(lats,j); lat = math_format(fmt,str)
            str = subwrd(line1,j); v1 = math_format(fmt,str)
            str = subwrd(line2,j); v2 = math_format(fmt,str)
            str = subwrd(line3,j); v3 = math_format(fmt,str)
            record = lon' 'lat' 'v1' 'v2' 'v3
            rc = write(outfile,record,append)
        j=j+1
        endwhile
    endif
i=i+1
endwhile

Obs. A função append serve para inserir os dados no final do arquivo caso ele exista. Se você não utilizar a função append e existir um arquivo de mesmo nome ele será sobrescrito. Para mais informações leia "append".

Neste caso a saída my_ascii_file.txt apresentará a seguinte estrutura:

0.000     -90.000     258.493     669.911     0.000
5.000     -90.000     258.493     669.911     0.000
10.000   -90.000     258.493     669.911     0.000
15.000   -90.000     258.493     669.911     0.000
20.000   -90.000     258.493     669.911     0.000
25.000   -90.000     258.493     669.911     0.000
30.000   -90.000     258.493     669.911     0.000
35.000   -90.000     258.493     669.911     0.000
40.000   -90.000     258.493     669.911     0.000

A um tempo atrás coloquei a disposição uma função que ajuda a escrever um arquivo texto sem muitas complicações. No entanto o arquivo de saída não possui formatação, veja aqui.

Boa Sorte e Bom Trabalho a Todos!

Cristiano






quinta-feira, 2 de outubro de 2014

Terminator: Dividindo seu terminal em várias janelas


Segue uma excelente sugestão do Mercel José e o Thomas Martin.

Uma "dificuldade" encontrada por algumas pessoas que trabalha com Linux é a necessidade de abrir vários terminais. O terminal atual do Linux possibilita que você abra várias abas e desta forma você precisa migrar para cada aba sempre que precisa efetuar uma atividade e etc. Com um terminal chamado de Terminator você consegue dividir seu terminal em vários terminais e isto pode ser de grande ajuda.

O Terminator é um software leve não ocupa muita memoria, no entanto em telas de computadores pequenas deve ficar um pouco difícil de enxergar. O grande diferencial é ter uma janela dividida em vários terminais.


Para instalar é fácil:

Ubuntu ou Debian:

>sudo apt-get install terminator

Fedora:

>sudo yum install terminator 

Para utilizar também é simples:

Ctrl+Shift+X -  Alterna entre mostrar todos os terminais ou apenas um;
Ctrl+Shift+O - Divide a janela em terminais horizontais;
Ctrl+Shift+E - Divide a janela em terminais verticais;
Ctrl+Shift+Right - Redimensiona o terminal para direita;
Ctrl+Shift+Left - Redimensiona o terminal para esquerda;
Ctrl+Shift+Up - Redimensiona o terminal para cima;
Ctrl+Shift+Down - Redimensiona o terminal para baixo;
Ctrl+Shift+W - Fecha o terminal que esta sendo utilizado;
Ctrl+Shift+T -   Abre uma nova aba;
Ctrl+Plus (+) -  Aumenta o tamanho da fonte;
Ctrl+Minus (-) - Diminui o tamanho da fonte;
Ctrl+Zero (0) - Restaura o tamanho original da fonte;

Boa Sorte e Bom Trabalho a Todos!!

Cristiano

sexta-feira, 22 de novembro de 2013

Instalação PyFerret com Python 2.6


Mais uma contribuição do Paulo Henrique e Marcelo Rodrigues, encaminhada pelo Dr. Antonio Carlos Santana dos Santos - Prof. Adjunto Vice-Coordenador do Curso de Física da Universidade Estadual do Ceará.

Um Tutorial da instalação do PyFerret para Debian 7 com o Python 2.6.

PS. Segundo os autores esta instalação funcionará para qualquer distribuição Linux desde que tenha o Python 2.6 instalado.

Clique aqui.

Mai uma vez obrigado ao Paulo Henrique e Marcelo Rodrigues pelo desenvolvimento e ao Dr. Antonio Carlos Santana dos Santos pela divulgação e contribuição.

Boa Sorte e Bom Trabalho a Todos!!




segunda-feira, 10 de setembro de 2012

Como instalar/Usar o g2ctl.pl e o wgrib2 no linux

Olá a todos,

Irei mostrar um excelente script em linguagem perl (g2ctl.pl) que nos possibilita gerar um arquivo descritor .ctl ou um template a partir de dados GRIB2. Para utilizar este script é preciso seguir alguns passos.

Primeiro é preciso ter isntalado em seu sistema o Software GrADS na versão 2.0 você pode fazer isso seguindo o post da instalação do GrADS. Ressaltando que é necessário criar uma variável de ambiente para o "gribmap" para isso insira a linha abaixo em seu .bashrc (que vocêencontra em seu /home).

alias gribmap='/usr/local/grads-2.0.1/Contents/gribmap'

Segundo é preciso baixar o script g2ctl.pl no link http://www.cpc.ncep.noaa.gov/products/wesley/g2ctl.html.

Terceiro é preciso instalar o wgrib2, para isso vamos fazer o download do wgrib a partir do link http://www.cpc.ncep.noaa.gov/products/wesley/wgrib2/ ou clicando em wgrib2. Após o download execute o seguintes comandos:

> tar -zxvf wgrib.gz

Ao descompactar será preciso mover o diretorio criado para a pasta /usr/local

> sudo mv grib2 /usr/local/

Agora vá até o diretorio

> cd /usr/local/grib2
> sudo make
>sudo make install


Após terminar a instalação verifique a presença do binario wgrib2 na pasta:

>ls -la /usr/local/grib2/wgrib2/wgrib2 “.

Quarto abra o arquivo g2ctl.pl e altere a seguinte linha:

de:
wgrib2=’wgrib2′;
para:
wgrib2=’/usr/local/grib2/wgrib2/wgrib2′;

Feito isso precisamos transformar o script g2ctl.pl em um executável e depois criar uma variável de ambiente para que possamos usar o g2ctl em qualquer diretorio que estejamos, para isso siga os passos:

>chmod +x g2ctl.pl
>sudo mv g2ctl.pl /usr/local/bin

Feito isso abra novamente seu .bashrc e insira a seguinte linha:

export G2CTL=/usr/local/bin

Salve e depois execute:

>source .bashrc

Ok, agora você pode usar o g2ctl.pl, para testar digite no terminal:

>g2ctl.pl -v

Agora que já instalamos o g2ctl e o wgrib vamos usar um pouco:

Arquivos de análise:

ga>g2ctl.pl -0 arquivo_grib2 > arquivo_grib2.ctl (nenhuma opção)

ga>gribmap -0 -i arquivo_grib.ctl (nenhuma opção)

Arquivos de previsão:

ga>g2ctl.pl arquivo_grib2 > arquivo_grib2.ctl

ga>gribmap -i arquivo_grib.ctl

Agora abra o GrADS e teste o ctl para verificar se esta funcionando.

Para template:

ga>g2ctl gfs.t00z.pgrb2bf%f2 > previsao.ctl

ga>gribmap -i previsao.ctl

ou

ga>g2ctl -0 pgb.%y4%m2%d2%h2.f00 > analise.ctl

ga>gribmap -0 -i analise.ctl

Para o template você pode usar as seguintes funções:

%y4 - código para ano com 4 digitos
%y2 - código para ano com 2 digitos
%m2 - código para mês com 2 digitos
%m1 - código para ano com 1 ou 2 digitos
%h2 - código para hora com 2 digitos
%h1 - código para hora com 1 ou 2 digitos
%f3 - código para hora com 3 digitos
%f2 - código para hora com 2 ou 3 digitos
%e - nome do ensemble (especifico para opção -ens).

As principais diferenças entre a sintaxe do grib2ctl.pl e do g2ctl.pl são:
Para arquivos grib versão 2, usamos o script g2ctl.pl para criar ctl. A opção de usar -0 (zero) são passados, para ambos os comandos tanto o g2ctl.pl quanto o gribmap para os arquivos de análise e não para os arquivos de previsão na versão grib 2.
Para arquivos na versão 1, usamos o script grib2ctl.pl para criar ctl. A opção de uso -0 (zero) é passado no comando gribmap para arquivos de análise e a opção -verf é passado no comando grib2ctl.pl para arquivos de previsão. Para saber mais sobre o uso do grib2ctl.pl, como instalar e como usar, clique aqui.

PS. O que é o formato de arquivo GRIB e ctl

Grib é o formato de arquivo binário para armazenar os dados de análise e previsão em algum tipo de forma estruturada. Ctl é um arquivo de controle no formato ASCII que pode ser usado para ler o arquivo Grib.

Ambos os formatos são normalmente utilizados em centros de previsão do tempo e estudos de meteorologia.
Os arquivos CTL pode ser lido e visualizado através do software GRADS, CDAT e outros softwares meteorológicos. Ambos GrADS e CDAT são software livre.

É isso!
Boa Sorte e Bom Trabalho a Todos!



terça-feira, 31 de julho de 2012

Introdução ao Latex - parte 2

Dando continuidade a utilização do Latex segue uma Apostila com dicas e sugestões passo a passo de como redigir seus textos com Latex. Agora vamos ao primeiro passo:

Um arquivo de entrada (texto) do Latex tem que ser salvo com a extensão .tex. Use o editor de texto de sua preferência para criar um arquivo com o nome teste.tex.

A primeira coisa a saber sobre a formatação de um texto em Çatex é que sempre que iniciar um texto inicie com a seguinte linha de comando:

\documentclass[ estilo ]{ tipo de documento }

no lugar da palavra estilo inclua o tamanho das letras do seu texto (10pt, 11pt, 12pt, sendo 10pt o padrão) e o tipo de papel (a4paper, letter, twoside e etc) entre outros. O tipo de documento será de acordo com o tipo de texto que pretende ser elaborado carta, livro, relatório e etc para escolher é só inserir os seguintes tipos: article, report, book e letter. Para artigos ciéntificos o mais usado é article. Logo a linha acima pode ser escrita como:

\documentclass[a4paper,12pt]{article}

Após a definição das opção (linha acima) o proxímo comando é o seguinte:

\begin{document}

e você já pode digitar seu texto logo em seguida sem obedecer nenhuma formatação além da gramatical. Inicialmente claro. E finalizar o "programa" com a seguinte linha de comando:

\end{document}

Sempre iniciar o comando \begin é preciso finalisar como o comando \end. Logo o menor texto redigido em Latex tem a seguinte estrutura:

\documentclass[a4paper,12pt]{article}
\begin{document} 
Menor Texto com acentuação.
\end{document}  

Como você instalou o pacote abntex seguindo o post anterior (Introdução ao Latex - parte 1) não é necessário nenhum caractere para formatar a palavra "acentuação", caso você não tivesse instalado o pacote abntex a formatação seria a seguinte:

\documentclass[a4paper,12pt]{article}
\begin{document} 
Menor Texto com acentua\c{c}\~{a}o.
\end{document}  

Salve as alterações e pronto. E agora o que fazer? É só executar e teremos o texto pronto, como? Segue o passo a passo:

No terminal digite:

>latex teste.tex     (compila o arquivo teste.tex e gera o arquivo teste.dvi)
>dvips teste.dvi   (compila o arquivo teste.dvi e gera o arquivo teste.ps)
>ps2pdf teste.ps    (converte .ps em .pdf)
>envice teste.pdf   (abre o arquivo teste.pdf)

Pronto agora você já fez seu primeiro texto no proxímo post veremos mais detalhes.

Boa Sorte e Bom Trabalho a Todos!!

segunda-feira, 30 de julho de 2012

Introdução ao Latex - parte 1

Sempre que precisamos escrever textos, seja ciéntificos ou não, recorremos ao bom e velho Word. Sem querer fazer apologia ao uso de software livre (e já fazendo) existe uma outra opção muito eficiente para redigir textos, ela se chama Latex. Dificilmente as pessoas do meio acadêmico não ouviram falar do Latex, mesmo assim muitas pessoas "torcem" o nariz ao ouvir falar do Latex porque é muito difícil, complicado e etc, em parte isso é até verdade por isso sugiro:

"Se você já está escrevendo e portanto não tem muito tempo para se dedicar a aprender como se utiliza o Latex o conselho é: escreva seu texto no Word, não se aventure no Latex. No entanto, se você ainda tem tempo e pode se dedicar um pouco para aprender todos os meandros do Latex sugiro que arregace as mangas e mãos a obra."

E o que é o Latex? O Latex é um sistema que produz documentos técnicos, ou não, através de uma estrutura de comandos e tags (liguagem de programação) capaz de formatar textos em estrutura de seções, capitúlos, fórmulas e etc. Diferente do Word no Latex o que você faz não é observado de imediato e somente quando você "compila" o programa e ele cria seu texto. Independente do editor (nedit, kate, gedit, vi, vim e etc) utilisado para criar seu texto, ele será somente um arquivo de entrada (input) do Latex.

"Para muitos escrever uma dissertação, tese, ou inserir as referências no texto, criar a lista de referências bibliográficas e etc é sem dúvida uma das piores partes da escrita do trabalho final, sem falar na numeração das figuras e tabelas, criação das listas de figuras, tabelas, sumário e etc. O Latex faz essa etapa se tornar a mais fácil do texto!!!"

Parece complicado? Longe de mim dizer que não é, mas com o tempo e prática você verá que vale muito a pena aprender, entender e usar o Latex.

Hoje iremos ver como instalar e fazer algumas configurações necessárias para escrever seu textos nas normas da ABNT e em português (aceitando a acentuaçãosem precisar de caracteres especiais).

Para instalar o Latex é preciso instalar os seguintes pacotes:

texlive;
texlive-latex-extra; 
texlive-lang-portuguese.

No terminal digite:

>sudo apt-get install texlive texlive-latex-extra texlive-lang-portuguese

Com os pacotes acima instalados já é possível escrever seus textos, mas para aqueles que necessitam de informações matemáticas mais expressivas é necessário instalar o seguinte pacote:

>sudo apt-get install texlive-math-extra
Agora precisamos instalar o pacote abntex, para isso fazemos o download do pacote no link. Para usuários Debian/Ubuntu. Após fazer o download precisamos instalar.

>dpkg -i abntex_0.9~beta2-3.1_all.deb


Alguns usuários de Latex sugerem a instalação de um editor especifico como o kile. Eu sugiro que vocês redijam seus textos nos editores comuns ao Linux.

No proxímo tópico (Introdução ao Latex - parte 2) iremos ver como fazer os primeiros textos.

Boa Sorte e Bom Trabalho a Todos!!

segunda-feira, 2 de julho de 2012

Comandos úteis do editor de Texto Vi

Algumas pessoas utilisam editores de texto com parte gráfica (nedit, gedit, kate e etc) para desenvolver seus scripts, programs e etc. No entanto, muitos desenvolvedores preferem utilizar o editor vi que não possui parte gráfica e é utilizado diretamente no terminal do Linux. Na minha opinião a vantagem de se utilizar o vi é devido ao fato de não ser necessário abrir mais um programa para editar/criar seus scripts. Sem falar no fato de que fazer tudo através de linhas de comando da a sensação de dominar ainda mais o sistema :). Bom segue alguns comandos escenciais para quem usa o vi.

Para fazer uma pesquisa por alguma palavra no texto utilize:

/read -> o comando /read irá procurar a palavra read a partir do começo de seu script/programa/texto/arquivo;
?read -> o comando ?read irá procurar a palavra read a partir do fim de seu script/programa/texto/arquivo;
n -> após encontrar a palavra read se você digitar "n" ele irá procurar a proxíma;
N -> Irá inverter o sentido da pesquisa.

Para mover ou inserir texto utilize:

:1,4d      -> este comando irá apagar as linhas de 1 a 4;
:1,4m 8 -> este comando irá mover as linhas de 1 a 4 para a linha 8;
:1,4t 8  -> diferente do comando acima este copia as linhas de 1 a 4 para a linha 8;
:1,4w <teste>-> agora as linhas de 1 a 4 serão escritas no arquivo "teste";
:r <teste> -> lê o arquivo 'teste' e insere seu conteúdo no documento atual.

Para adicionar texto a um arquivo já existente utilize:

a -> para inserir texto depois do cursor;
A -> para inserir texto no final da linha;
i  -> para inserir texto antes do cursor;
I  -> para inserir texto no começo da linha.

Para substituir um texto já escrito utilize:

cw   -> para mudar uma palavra;
4cw -> para mudar 4 palavras;
C     -> para mudar uma linha;
r      -> para sobrescrever um caractere;
R     -> para sobrescrever a linha inteira;
:%s/existente/nova/g -> este comando serve para substituir todas as palavras "existente" pela palavra "nova".
 
Para cancelar uma função/operação e voltar atrás utilize:

u -> para desfazer a última operação;
.  -> para repetir a última operação.

Para salvar os arquivos ou sair dos arquivos já editados/finalizados utilize:

:w   -> para salvar o que esta na memória em um arquivo/disco;
:q    -> para sair do editor;
:wq -> para salvar e sair do editor;
:x    -> para salvar e sair do editor;
:e!   -> para reeditar, desprezando as mudanças;
ZZ   -> para salvar e sair do editor.
 
Para movimentar o cursor pelo texto (tela/linha) utilize:

0 -> para ir direto para o começo da linha;
$ -> para ir direto para o final da linha;
g -> para ir para a primeira linha do arquivo;
G -> para ir para a última linha do arquivo;
5G -> para ir vai para a linha 5.
 
Para copiar e inserir textos utilize:

yy   -> para copiar uma linha inteira;
5yy -> para copiar 5 linhas;
p     -> para colar logo abaixo do cursor;
P     -> para colar logo acima do cursor.


Para inserir uma linha em branco utilize:

o -> para inserir uma linha logo abaixo do cursor;
O -> para inserir uma linha logo acima do cursor.
 
Para apagar caracter/texto/linha e etc utilize:

x     -> para apagar um caractere;
dw  -> para apagar uma palavra;
dd   -> para apagar uma linha;
5dd -> para apagar 5 linhas;
dG  -> para apagar do cursor até o final do arquivo.
 
Para configurar a sua sessão utilize:

:set nu      -> para mostrar o número de linhas;
:set nonu -> para desligar o comando acima;
:set all      -> para mostrar todas as configurações;
:set list     -> para mostrar os caracteres ocultos.
 
Para rolar o texto/página utilize:

CTRL+f -> para rolar uma tela para baixo;
CTRL+b -> para rolar uma tela atrás;
CTRL+d -> para rolar meia-tela (1/2) para baixo;
CTRL+u -> para rolar meia-tela (1/2) atrás.

Bom galera espero que seja útil.

Boa Sorte e Bom Trabalho a Todos!!

quinta-feira, 7 de junho de 2012

Utilizando o Cron (Crontab)

O "cron" é um software do sistema Unix (linux) que é responsável por efetuar tarefas agendadas pelo usuário, este sistema vem instalado em todas as distribuições Linux e é ativado logo no boot do sistema. Sua utilização é apropriada para quem deseja que alguma atividade/tarefa seja executada automaticamente pelo sistema no minuto/hora/dia/dia da semana/mês desejado pelo usuário. Você poderá por exemplo agendar a limpeza dos arquivos temporários para toda segunda feira, por exemplo, o o "cron" faz uma verificação a cada minuto para identificar alguma tarefa agendada e desta forma ele executa tal tarefa sempre no período determinado.

Para usar o "cron" você pode usar editores como vi, vim ou simplesmente digitar no terminal crontab -e e editar como se estivesse no vi, por exemplo. O crontab tem a seguinte estrutura de execução:

MM HH DD mm SS US tarefa
  |      |    |      |     |    |      |
  |      |    |      |     |    |      |___tarefa
  |      |    |      |     |    |______usuário
  |      |    |      |     |_________dia da semana
  |      |    |      |____________mês
  |      |    |_______________dia do mês
  |      |__________________hora
  |______________________minuto

A sintaxe é a seguinte:

MM: digite aqui minuto (0-59);
HH: digite aqui hora (0-23);
DD: digite aqui dia do mês (0-31);
mm: digite aqui mês (1-12);
SS: digite aqui dia da semana (0-7) vê Obs 1;
US: digite aqui o usuário responsável pela execução (não coloque nada caso o executor seja o usuário que esta criando a lista no crontab);
tarefa: digite aqui a tarefa a ser executada (script).

Obs 1: Em dia_da_Semana, 0 refere-se a domingo; e 6, ao sábado.
       No caso de dia da semana funciona também as três primeiras letras
       (em inglês) do dia da semana (SUN,MON,TUE,WED,THU,FRI,SAT)
Obs 2: Em qualquer posição pode-se usar o * (asterisco) quando não se
       importar com o campo em questão.
Obs 3: Pode-se utilizar intervalos nesses campos. O caracter para intervalo
       é o - (hifen).
Obs 4: Pode-se utilizar lista de valores nesses campos. O caracter para a
       lista é a , (vírgula).
Obs 5: Qualquer texto colocado após o programa que será executado será
       considerado comentário e não será interpretado pelo cron


Três comandos importantes de edição do crontab vocês precisam saber:

crontab -e usado para editar;
crontab -l usado para listar tarefas agendadas;
crontab -r usado para remover o arquivo ou lista existente no crontab.

Segue alguns exemplos de estrutura do crontab:

0       12      *       *       * /home/usuario/tarefa.sh

O exemplo acima significa que em qualquer mês, dia da semana, dia do mês sempre as 4 horas em ponto o programa tarefa.sh será executado.

Quando você quer que a tarefa seja executada sempre, por exemplo, todos os dias, você digita "*" no local reservado para que dia do mÊs e desta forma todos os dias do mês a tarefa será executada. Isto serve para todas as outras  condições.

Exemplo:

*          *          *          *           * /home/usuario/tarefa.sh

O exemplo acima significa que em qaulquer dia do mês ou da semana, qualquer mês, qualquer hora e minuto o programa tarefa.sh será executado, ou seja, a cada minuto que se passa o programa será executado.

Exemplo:

0       12      *       *       * /home/usuario/tarefa1.sh
0        4      15      *       * /home/usuario/tarefa2.sh 

Observe que no exemplo acima existem duas tarefas agendadas e é desta forma que tem que ser feito uma tarefa logo abaixo da outra, sendo que cada uma com sua configuração temporal especifica, obviamente que as duas tarefas poderiam ser executadas no mesmo momento.

Boa Sorte e Bom Trabalho a Todos!!

quinta-feira, 17 de maio de 2012

Instalando Software Impressora HP

Para quem tem uma impressora HP (o modelo da minha é HP OfficeJet 4400) e quer instalar o software proprietário para poder (manipular e digitalizar imagens) scanear, imprimir, tirar cópias mais facilmente segue um tutorial de como fazer a instalação do software open source da HP para estes fins:
OBS1: Os comandos dos itens 3 e 5 são grandes mesmo aconselho copiar e colar no terminal.
OBS1: Instalei este programa no ubuntu 11.10 para outros SO ou para verificar se é compativel com seu modelo de impressora HP clique aqui.
1 - A primeira coisa a se fazer é o download do programa, para isso clique no link Download the Regular Tarball
2 - Agora atualize seus repositórios:

>sudo apt-get update

3 - Instale algumas dependências:

Para ubuntu 8.04

>sudo apt-get install --assume-yes libcups2 cups libcups2-dev cups-bsd cups-client libcupsimage2-dev libdbus-1-dev build-essential gs-esp openssl libjpeg62-dev libsnmp-dev libtool libusb-dev python-imaging policykit policykit-gnome python-qt4 python-qt4-dbus python-dbus python-gobject python2.5-dev python-notify python python-reportlab libsane libsane-dev sane-utils xsane

Para ubuntu 10.04 ou versões mais recentes

> sudo apt-get install --assume-yes libcups2 cups libcups2-dev cups-bsd cups-client libcupsimage2-dev libdbus-1-dev build-essential ghostscript openssl libjpeg62-dev libsnmp-dev libtool libusb-dev python-imaging policykit-1 policykit-1-gnome python-qt4 python-qt4-dbus python-dbus python-gobject python-dev python-notify python python-reportlab libsane libsane-dev sane-utils xsane

4 - Vá até o diretório no qual você baixou o programa e descompacte-o

>tar xvfz hplip-X.XX.X.tar.gz  (x.xx.x é a versão do programa)
>cd hplip-X.XX.X

5 - Agora é necessário configurar o porgrama antes da instalação para isso:

Para ubuntu 8.04
    - 32 bits

>./configure --with-hpppddir=/usr/share/ppd/HP --prefix=/usr --enable-qt4 --enable-doc-build --enable-cups-ppd-install --disable-foomatic-drv-install --disable-foomatic-ppd-install --disable-hpijs-install --disable-policykit --disable-cups-drv-install --enable-hpcups-install --enable-network-build --enable-dbus-build --enable-scan-build --enable-fax-build

    -64 bits

>./configure --with-hpppddir=/usr/share/ppd/HP --libdir=/usr/lib64 --prefix=/usr --enable-qt4 --enable-doc-build --enable-cups-ppd-install --disable-foomatic-drv-install --disable-foomatic-ppd-install --disable-hpijs-install --disable-policykit --disable-cups-drv-install --enable-hpcups-install --enable-network-build --enable-dbus-build --enable-scan-build --enable-fax-build

Para ubuntu 10.04 ou versões mais recentes

    -32 bits
  
>./configure --with-hpppddir=/usr/share/ppd/HP --prefix=/usr --enable-udev-acl-rules --enable-qt4 --enable-doc-build --disable-cups-ppd-install --disable-foomatic-drv-install --disable-foomatic-ppd-install --disable-hpijs-install --disable-policykit --enable-cups-drv-install --enable-hpcups-install --enable-network-build --enable-dbus-build --enable-scan-build --enable-fax-build

    -64 bits
  
>./configure --with-hpppddir=/usr/share/ppd/HP --libdir=/usr/lib64 --prefix=/usr --enable-udev-acl-rules --enable-qt4 --enable-doc-build --disable-cups-ppd-install --disable-foomatic-drv-install --disable-foomatic-ppd-install --disable-hpijs-install --disable-policykit --enable-cups-drv-install --enable-hpcups-install --enable-network-build --enable-dbus-build --enable-scan-build --enable-fax-build

6 - Feito isso é preciso executar o comando make, observe que não precisa ser super usuario para este comando:

>make

No entanto para rodar o make install é necessário ser super usuario:

>sudo make install

7 - Após o tópico 6 a instalação esta completa, no entanto, para usuarios normais (não root) ter acesso ao programa execute o comando:

>sudo usermod -a -G lp $nomedousuario

PS. Se você ao executar os comando acima já estava com a impressora conectada ao USB, basta agora desconectar e conectar novamente, mas se você não estava com a impressora conectada será necessário reiniciar o computador e ai conectar a impressora a USB.
Feito isso agora precisamos configurar o Programa, para isso siga os seguintes passos:
1 - Execute o comando:

>sudo hp-setup

Após executar esse comando irá aparecer a seguinte imagem:


 Escolha a opção Universal Serial Bus (USB) e clique em NEXT>


 O Software irá reconhecer automaticamente sua HP é só clicar em Next>


 Por fim é só você dar um nome para sua impressora (pode deixar o que for sugerido).
A instalação/configuração está concluida, agora é só ir no menu aplicativo ou fazer uma busca pelo Natty (para usuarios ubuntu 11.10)

Boa Sorte e Bom Trabalho a Todos. Fonte HP_OpenSource.

Java para Ubuntu 11.1

Esta é uma forma rápida de instalar e configurar o Java em seu ubuntu 11.1. Este software é excencial para quem acessa o site de seus bancos (banco do brasil, santander e etc).
A primeira coisa a se fazer é baixar o binário no site do JAVA.
PS. i586 para rocessadores intel e x64 para AMD.
Agora você precisa ir até a pasta onde o arquivo foi baixado e executa-lo:
>sudo mkdir /usr/java
>sudo mv jre-****-linux-****.bin /usr/java/

PS. Os *** significa a versão e o tipo de processador do software que muda de tempos em tempos.

>cd /usr/java/
>sudo chmod +x jre-****-linux-****.bin
>sudo ./jre-****-linux-****.bin
>sudo update-alternatives --install "/usr/bin/java" "java" "/usr/java/jre*.*.*_**/bin/java" 1
>sudo update-alternatives --set java /usr/java/jre*.*.*/bin/java

Após terminar a instalação você poderá testar o programa digitando no Terminal java -version. Aparecendo as especificações do java significa que ocorreu tudo bem.
Exclua o arquivo .bin que você copiou para pasta /usr/java
>sudo rm jre-****-linux-****.bin

Pode ser necessário configura o plugin do Firefox, para isso siga:
>cd /usr/lib/mozila/plugins
>sudo ln -s /usr/java/jre*.*.*_**/lib/****/libnpjp2.so
 
Para testar se o plugin esta funcionado, feche o Firefox e após abrir novamente clique AQUI. Se a instalação foi feita corretamente aparecerá a seguinte imagem:
A necessidade de se fazer essa instalação é que possivelmente Java oficial da Oracle não poderá mais ser distribuído com distros Linux
Boa Sorte e Bom Trabalho a Todos.