apostila_INPE2
-
Upload
josh-santos -
Category
Documents
-
view
10 -
download
1
Transcript of apostila_INPE2
Generic Mapping Tools: um µcurso
Paulo S. Polito e Olga T. Sato
22 de Marco de 2002
Conteudo
1 Objetivo 3
2 O que e, para que serve e por que eu usaria o GMT? 3
3 Estrutura deste µcurso 3
4 Mais informacoes sobre o GMT 3
5 Notacao 4
6 UNIX 4
6.1 Abrindo uma Sessao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
6.2 Editando um arquivo texto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
6.3 Criando um shell script . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
6.3.1 C-shell e invocado . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
6.3.2 Comentarios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
6.3.3 Criando variaveis locais . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
6.3.4 Imprimindo o conteudo de uma variavel . . . . . . . . . . . . . . . . . . . . . . . . . . 7
6.3.5 Redirecionadores em C-shell (csh) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
6.4 Programando com shell scripts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
6.4.1 Iteracoes Iteracoes Iteracoes ... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
6.4.2 Mas e se... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
6.5 Manipulacao de arquivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
6.5.1 awk, nawk e gawk . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
6.5.2 Pipe (|): conectando comandos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
6.5.3 Trocando as bolas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
1
7 Generic Mapping Tools 12
7.1 Entrada e saida . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
7.2 Exercicio Comentado 1: Grafico Cartesiano . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
7.2.1 Exercicio 1: . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
7.3 Exercicio Comentado 2: Varios graficos em uma pagina . . . . . . . . . . . . . . . . . . . . . 14
7.3.1 Exercicio 2: . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
7.4 Exercicio Comentado 3: Utilizacao de variaveis . . . . . . . . . . . . . . . . . . . . . . . . . . 15
7.4.1 Exercicio 3: . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
7.5 Exercicio Comentado 4: Projecoes , continentes e texto . . . . . . . . . . . . . . . . . . . . . 17
7.5.1 Exercicio 4: . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
7.6 Exercicio Comentado 5: Pontos e contornos em mapas . . . . . . . . . . . . . . . . . . . . . . 19
7.6.1 Exercicio 5: . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
7.7 Exercicio Comentado 6: Vetores e interpolacao . . . . . . . . . . . . . . . . . . . . . . . . . . 20
7.7.1 Exercicio 6: . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
7.8 Exercicio Comentado 7: Relevo iluminado de uma sub-regiao . . . . . . . . . . . . . . . . . . 23
7.8.1 Exercicio 7: . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
8 O proximo passo 25
2
1 Objetivo
Este µcurso introduz o uso do GMT - Generic Mapping Tools a usuarios nao necessariamen-
te familiarizados com ambiente UNIX ou Linux. Linux nao e UNIX mas a similaridade e grande e por
conveniencia vou simplesmente me referir ao UNIX.
O GMT foi desenvolvido por:
Pal Wessel
School of Ocean and Earth Science and Technology, University of Hawai’i at Manoa
.
Mahalo Pal !!!
2 O que e, para que serve e por que eu usaria o GMT?
O GMT e composto por uma serie de programas para preparar, processar e plotar dados em ambiente UNIX.
Nao existe um ”programa principal”nem interface grafica.
O GMT foi escrito por e para geofisicos, inclui dezenas de projecoes diferentes e pode plotar pontos,
linhas, elipses, contornos, trajetorias, vetores, imagens, superficies 3D com ou sem iluminacao , mascaras,
etc.. O pacote inclui a definicao dos continentes e nos incluimos dados topograficos globais com resolucao
de 5 minutos (ETOPO5).
Os programas para interpolacao sao confiaveis, se baseiam em algoritmos descritos em publicacoes
cientificas e contam com o olho critico da comunidade academica para corrigi-los. Alem de corrigido, por ser
software aberto (GNU Public License) o GMT pode ser extendido para atender necessidades especificas.
3 Estrutura deste µcurso
Comecaremos por uma breve introducao aos comandos UNIX que serao usados para escrever scripts (pro-
graminhas simples) para uso do GMT. Estes comandos sao de aplicacao geral e podem ser usados para uma
infinidade de tarefas nao relacionadas ao tema aqui abordado.
A programacao de tarefas com C-shell e introduzida como meio de se automatizar e facilitar o processo
de criacao , leitura e manipulacao de arquivos.
O uso dos comandos do GMT e introduzido atraves de uma serie de exemplos e exercicios de fixacao ,
nao dispensando de forma alguma a consulta ao manual.
4 Mais informacoes sobre o GMT
O manual do GMT esta instalado localmente:
file:/home/gmt/GMT3.3.6/www/gmt/doc/html/GMT_Docs/GMT_Docs.html
3
e e essencial , deem uma olhada nos topicos ”cookbook”e ”quick reference”. No ”cookbook”voce encontrara
uma lista de exemplos que da uma boa ideia da capacidade deste programa e e uma extensao dos exemplos
aqui apresentados.
O web site original, um mapa dos locais onde se usa o GMT e a errata estao aqui:
http://imina.soest.hawaii.edu/gmt/
Neste local voces tambem encontrarao tudo que e necessario para instalar o GMT em outras maquinas.
Basta preencher um formulario online e rodar um script de instalacao criado automaticamente pelo for-
mulario.
Para uma consulta rapida ha sempre o comando man do UNIX para cada um dos programas que compoe
o GMT. Falando em UNIX...
5 Notacao
Nesta apostila os URLs, nomes de comandos e excertos de programas sao escritos com esta fonte. O
negrito e usado para realcar conceitos e ideias. Nos comandos o prompt e ignorado.
Nos programas a notacao ... indica continuacao de uma linha que nao coube na pagina e nao deve ser
transcrita ao programa. No texto corrido a notacao ... tem o sentido usual de preguica de escrever.
As figuras aqui reproduzidas estao reduzidas para poupar espaco.
6 UNIX
O GMT roda em ambiente UNIX, portanto e necessario saber alguns comandos e conceitos deste sistema
operacional. E indispensavel a leitura dos capitulos iniciais de algum livro basico de UNIX, que fica
inteiramente a escolha do leitor.
No MS-Windows o acesso ao sistema e feito atraves de menus e icones. No UNIX o modo preferencial
de acesso ao sistema e o terminal onde o usuario digita comandos. Menus e icones tem um papel menos
relevante, embora estejam plenamente implementados.
O UNIX e um sistema operacional modular. Seus comandos sao pequenos programas que fazem tarefas
especificas. Com eles voce pode abrir sessoes de trabalho, editar arquivos, enviar e-mail, processar imagens,
etc.. A seguir veremos alguns comandos em acao .
6.1 Abrindo uma Sessao
O GMT pode ser usado em qualquer estacao UNIX. Para este exercicio vamos trabalhar remotamente. Nao
equeca (a) de autorizar o lagavulin junto a sua maquina com xhost + lagavulin e (b) de apontar o servidor
X para a sua maquina com o comando
4
setenv DISPLAY nome_da_maquina:0
O seguinte monologo ilustra alguns comandos do UNIX :
Em que maquina estou trabalhando? echo $HOST
Vou para a lagavulin. rlogin lagavulin
Em que maquina estou trabalhando? echo $HOST
Em que diretorio estou? pwd
Que arquivos tenho neste diretorio? ls
Vou criar um diretorio para este curso. mkdir ge-eme-te
Nao gostei. rmdir ge-eme-te
Vou criar outro. mkdir gmt
Vou entrar neste diretorio e... cd gmt
... separar programas, dados e figuras. mkdir pgms dados figs
Criei tudo certinho? ls
O que faz o comando ls? man ls
O que faz o comando pwd? man pwd
O que faz o comando mkdir? man mkdir
OK, vou voltar para meu diretorio raiz. cd
6.2 Editando um arquivo texto
Ha varios editores1 de texto no UNIX, os mais populares sao o ”vi”e o ”emacs”e suas variantes (jove, Xemacs,
VIper, etc.). Vamos usar o xemacs.
Para abrir o xemacs simplemente digite xemacs no terminal. O xemacs possui um menu razoavelmente
intuitivo. Ao lado dos itens de cada menu aparecem os comandos equivalentes (C e a tecla control e M e
alt). O uso do teclado e mais eficiente que o uso do mouse.
O xemacs pode ser usado como um simples editor de texto, apesar de ser capaz de muitas outras peripecias
fora do escopo deste µcurso.
Rode o xemacs, crie um texto qualquer e salve-o, so para se acostumar com o editor.
1Editor de texto em UNIX e editor de arquivos ASCII, nao sao introduzidos caracteres ”extras”com em processadores de
texto (e.g. MS-Word). Esta apostila foi editada no Xemacs e processada no LATEX.
5
6.3 Criando um shell script
Usando o xemacs crie um arquivo chamado prog1. O arquivo deve ser exatamente assim:
#!/bin/csh -f
# cria a variavel linha
set linha = "23.54 12.33 23 99 A"
# cria a variavel arquivo
set nome_do_arquivo = "dados.ASCII"
# escreve 23.54 12.33 23 99 A no arquivo dados.ASCII
echo $linha >! $nome_do_arquivo
# por enquanto e so pessoal
No UNIX os arquivos tem permissoes de acesso2. Um arquivo pode ser lido, gravado ou executado. Este
que foi criado agora ainda nao pode ser executado. Por ora nao nos preocuparemos com o conteudo do script
prog1, vamos apenas transforma-lo num arquivo executavel:
chmod +x prog1
e executa-lo:
prog1
Se tudo ocorreu como esperado, voce deve ter o arquivo dados.ASCII no seu diretorio. Verifique com:
ls dad*
O conteudo deste arquivo e listado com:
cat dados.ASCII
Agora nos resta entender o que o prog1 fez.
O UNIX possui varios dialetos3 ou shells que permitem a programacao de tarefas simples. Sao linguagens
interpretadas e portanto os programas (scripts) sao executados linha por linha. Vejamos o que o script criado
acima faz:
6.3.1 C-shell e invocado
#!/bin/csh -f
Todo shell script comeca com uma linha similar a esta, invocando o shell que sera usado. E como se uma
nova sessao fosse iniciada so para rodar este script. O parametro -f (fast) carrega o shell sem ler os arquivos
de configuracao (.cshrc e .login). Se adicionarmos o parametro (-fv, verbose) veremos no terminal o que
o programa faz, passo a passo. Este e um bom modo para achar erros em um script. Altere o seu script e
teste-o.
2Para listar as permissoes de acesso, tamanho, etc. use o comando ls -l prog1 , as permissoes estao na primeira coluna:
r=read, w=write, x=execute.3e.g.: sh, bash, csh, tcsh e ksh
6
6.3.2 Comentarios
# cria a variavel linha
Toda linha de comentarios comeca com #. Comente todos os seus programas. Um programa sem co-
mentarios e um amontoado amorfo de comandos de utilidade limitada. Um programa com bons comentarios
pode sempre ser usado como exemplo, desmembrado, reescrito e otimizado. Comente cada linha de comando
que nao seja absolutamente trivial. Explique o que o programa faz, descreva os arquivos lidos e os arquivos
gravados, as subrotinas usadas e nao esqueca o nome do autor - a Cæsar o que e de Cæsar.
6.3.3 Criando variaveis locais
set linha = "23.54 12.33 23 99 A"
set nome_do_arquivo = "dados.ASCII"
Neste caso linha e nome_do_arquivo sao os nomes das variaveis cujo conteudo sao os caracteres
"23.54 12.33 23 99 A" e "dados.ASCII" respectivamente.
Nota: As aspas duplas (") delimitam caracteres possibilitando a substituicao de variaveis entre elas. As aspas
simples(’) nao permitem a substituicao de variaveis entre elas, neste sentido as aspas simples protegem as aspas
duplas. As crases (‘) delimitam comandos cujo resultado ocupara o espaco entre as crases.
6.3.4 Imprimindo o conteudo de uma variavel
echo $linha >! $nome_do_arquivo
No comando anterior as variaveis linha e nome_do_arquivo foram criadas. Para se referir a elas e
necessario prefixa-las com um $. O valor das variaveis e substituido e o comando efetivamente executado e:
echo "23.54 12.33 23 99 A" >! "dados.ASCII"
Neste comando usamos um recurso muito importante, o redirecionador >! .
6.3.5 Redirecionadores em C-shell (csh)
Um exemplo do uso de redirecionadores para se criar4 um arquivo texto curto:
echo "lon lat z" >! lixo
echo "10.5 -23.4 -1021" >>! lixo
echo "10.9 -22.9 -4057" >>! lixo
echo "11.1 -21.2 -4029" >>! lixo
echo "---- ----- -----" >>! lixo
4Ha um metodo mais elegante apelidado de here-file.
7
Para ver no que deu tudo isso use o comando cat que lista um arquivo no terminal:
cat lixo
Entendamos pois o que aconteceu. O comando echo "bla bla bla" simplesmente escreve o argumento
"bla bla bla" no terminal.
O redirecionador >! cria o arquivo ”lixo”e joga a saida do comando echo "bla bla bla" nele.
Redirecionadores sao muito uteis, eles funcionam assim:
[comando] > [arquivo] escreve saida do comando no arquivo.
[comando] >! [arquivo]escreve saida do comando no arquivo, incondicionalmente5.
[comando] >> [arquivo] adiciona saida do comando o arquivo.
[comando] >>! [arquivo] adiciona saida do comando o arquivo, incondicionalmente.
[comando] < [arquivo] usa arquivo como entrada do comando.
6.4 Programando com shell scripts
Shell scripts sao usados para tarefas pequenas e relativamente simples. Para qualquer aplicacao onde a
performance seja importante recomenda-se o uso de linguagens compiladas (e.g. fortran, C, C++).
Vejamos agora os mecanismos basicos para controle em C-shell:
6.4.1 Iteracoes Iteracoes Iteracoes ...
Para fazer loops ha pelo menos dois metodos: while e foreach.
O while funciona assim:
while (teste)
comando ...
end
O foreach funciona assim:
foreach variavel (lista_de_variaveis)
comando ...
end
Abra o xemacs e crie exatamente o seguinte arquivo:
#!/bin/csh -f
set i = 4
while ($i <= 9)
@ j = ($i - 3)
set nome = "lixo$j"
5Mesmo se o comando set noclobber estiver ativado.
8
echo "$i $j $nome" >! $nome
@ i++
end
foreach trash (‘ls lixo[2-5]‘)
echo $trash " contains:"
cat $trash
end
Use chmod +x nome_do_arquivo para torna-lo executavel e execute-o. Este script cria os arquivos lixo[1-6]
usando o while e lista-os usando o foreach. Vejamos o que ha de novo nesse script, passo a passo:
while literalmente significa enquanto: execute os comandos entre while e end enquanto o teste $i <= 9
for verdadeiro. Comparacoes ou testes validos sao:
== igual != diferente
<= menor ou igual >= maior ou igual
> maior < menor
@ j = ($i - 3) Expressoes aritmeticas sao precedidas de @ .
foreach literalmente significa para cada. Executa os comandos entre foreach e end para cada um dos
elementos da lista resultante de ‘ls lixo[2-5]‘. Experimente este comando (sem as crases) no terminal.
O resultado e uma lista de nomes de arquivos. A cada iteracao um destes nomes de arquivos e carregado na
variavel $trash ate que a lista termine.
6.4.2 Mas e se...
O condicional if funciona assim:
if (teste) then
comando ...
else if (outro_teste) then
comando ...
else
comando ...
end
Se ”teste”e verdadeiro, o primeiro bloco de comandos e executado; se ”teste”e falso e ”outro teste”e
verdadeiro, o segundo bloco e executado; caso os dois testes sejam falsos o terceiro bloco e executado.
Vejamos na pratica como funciona o uso de condicionais em C-shell. Altere o arquivo previamente criado
para incluir um condicional:
#!/bin/csh -f
9
set i = 4
while ($i <= 9)
@ j = ($i - 3)
set nome = "lixo$j"
if ( $i == 4 ) then
echo "Quatro $i $j $nome" >! $nome
else if ( $i == 5 ) then
echo "Cinco $i $j $nome" >! $nome
else
echo "$i $j $nome" >! $nome
endif
@ i++
end
foreach trash (‘ls lixo[2-5]‘)
echo $trash " contains:"
cat $trash
end
6.5 Manipulacao de arquivos
Por manipulacao de arquivos estamos nos referindo a operacoes triviais em arquivos ASCII dispostos em
colunas. Especificamente focamos em tarefas como selecionar e rearranjar colunas, operacoes matematicas
entre colunas, selecao de linhas, edicao de separadores de campo, reformatacao , etc..
Operacoes matematicas menos triviais podem ser feitas atraves dos comandos (GMT) grdmath e gmtmath
que nao sao abordados neste µcurso. Uma alternativa ainda melhor e o uso de uma linguagem compilada.
6.5.1 awk, nawk e gawk
O awk e um utilitario UNIX para processamento de arquivos ASCII linha por linha. Os comandos de awk
podem ser dados de duas formas: na propria linha de comando ou em um arquivo separado. Vamos discutir
apenas tarefas simples para as quais a linha de comando e suficiente. O nawk (new awk) e o gawk (GNU
awk) sao versoes melhoradas do awk e em muitas maquinas ja o substituem. A sintaxe geral e:
awk ’{comando comando comando}’ arquivo.velho >! arquivo.novo
Noventa por cento dos erros de awk sao por causa da sintaxe que inclui aspas simples, duplas, crases,
dois-pontos, ponto-e-virgual, etc..
Neste exemplo iniciaremos com um arquivo chamado dados_awk de 5 colunas separadas por espacos, nao
necessariamente alinhadas verticalmente:
10
10 201 130 40 504
10 202 310 00 540
10 203 301 00 540
...
Para selecionar as colunas 1 e 3 tente isto6:
awk ’{print $1,$3}’ dados_awk
Neste caso o resultado e mostrado no terminal. Redirecione para o arquivo dados.tmp e confira no
terminal:
awk ’{print $1,$3}’ dados_awk >! dados.tmp
more dados.tmp
Suponha que e necessario escalar a coluna 4 para melhorar a aparencia dos graficos. Para criar um
arquivo (dados.tmp) com as colunas 1, 2 e 4 sendo que a coluna 4 deve ser dividida por 100 tente isto:
awk ’{print $1 " " $2 " " $4/100}’ dados_awk >! dados.tmp
more dados.tmp
Vamos agora selecionar todas as linhas onde a coluna 5 e maior que 501 e imprimir as colunas 1, 2 e 5:
awk ’{if ($5 > 501) print $1 " " $2 " " $5+’ dados_awk
6.5.2 Pipe (|): conectando comandos
Pipe e mais um recurso interessante do UNIX que joga a saida de um comando na entrada de outro comando7.
Para apreciarmos o uso do pipe, vejamos primeiro o comando:
wc -l lixo
ele conta quantas linhas tem o recem-criado arquivo ”lixo”. Experimente com outros arquivos ASCII em
seu diretorio.
Vamos tentar algo diferente com um comando ja conhecido:
ls -al
Ele mostra detalhes de todos os arquivos deste diretorio em uma coluna.
Agora podemos usar o pipe:
ls -al | wc -l
A laconica resposta conta o numero de arquivos no seu diretorio pois o resultado do ”ls”vai direto para
o ”wc”como se fosse um arquivo. Isto permite o encadeamento de comandos e evita a criacao de arquivos
temporarios agilizando o processamento.
6Se as colunas fossem separadas por ”;”o comando seria awk -F; ’print $1,$3’ dados awk7O redirecionador faz isso com arquivos.
11
6.5.3 Trocando as bolas
Muitas vezes os arquivos de dados possuem caracteres indesejaveis ou convencoes do tipo virgula/ponto que
precisam ser corrigidas.
O comando tr substitui, complementa ou deleta um ou mais caracteres de um arquivo ASCII. A sintaxes
que usaremos mais sao :
cat arquivo_original | tr ’a’ ’b’ >! arquivo_corrigido
cat arquivo_original | tr -d ’x’ >! arquivo_corrigido
No primeiro caso o caracter ’a’ e substituido por ’b’. No segundo caso o caracter ’x’ e deletado.
Caracteres invisiveis sao particularmente chatos. Geralmente trata-se do caracter ”CR”(carriage return)
que e o caracter ASCII correspondente ao numero octal 15 ou decimal 13. Para exorcisarmos nossos arquivos
deste mal eis a solucao :
cat arquivo_original | tr -d ’\015’ >! arquivo_corrigido
Para detetar os caracteres invisiveis de forma inequivoca use o comando od -c arquivo_original
(mostra caracteres) e/ou od -b arquivo_original (mostra octais), use man od para obter mais informacoes
.
Embora nao seja tratado aqui, e bom notar que existe tambem o comando sed que faz edicoes sofisticadas
em arquivos ASCII.
7 Generic Mapping Tools
Certifique-se que em seu diretorio ”home”existe o arquivo .cshrc e que o mesmo contem estas linhas:
stty sane
setenv GMTHOME "/home/gmt/GMT3.3.6/"
setenv GS_LIB "/home/local/share/ghostscript/5.50/ : /home/local/share/ghostscript/fonts"
set path=($path /home/gmt/GMT3.3.6/bin /home/gmt/netcdf-3.4/bin )
Estes comandos dizem ao sistema operacional onde encontrar o GMT.
Para testar se o sistema consegue achar o GMT, digite psxy. A resposta deve ser algumas telas de ”help”.
Outro ingrediente e o ghostscript, usado para visualizar os graficos postscript gerados pelo GMT. Para
invocar o ghostscript digite gs. Para sair do ghostscript digite quit ou simplesmente mate-o com CTRL-C.
Qualquer bom pacote que consiga abrir arquivos postscript serve (Xpsview, ghostview, etc.).
7.1 Entrada e saida
O GMT le os seguintes formatos de arquivos:
12
ASCII em colunas, com longitude na coluna 1, latitude na coluna 2 e dados nas demais colunas. Estas
coordenadas geograficas podem ser especificadas de varias maneiras (vide manual). A grade nao precisa
ser regular, o arquivo pode ter cabecalho e multiplos segmentos.
binario em colunas. Valem as observacoes feitas para arquivos ASCII, maiores detalhes na secao 9.1.2 do
manual.
grd ou netCDF e o formato preferido do GMT. Ha comandos para a conversao de/para netCDF. Maiores
detalhes na secao 9.2.1 do manual.
O uso de arquivos ASCII e mais facil e sera adotado sempre que possivel. Em geral e trivial converter
arquivos ASCII e binarios em netCDF e vice-versa.
Os graficos sao sempre gerados em formato postscript ou encapsulated postscript. Se for necessario
converter para outros formatos (jpeg, bmp, etc.) usaremos o ghostscript.
7.2 Exercicio Comentado 1: Grafico Cartesiano
Este primeiro exercicio visa: (a) familiariza-los com a sintaxe do GMT e (b) mostrar como se cria um grafico
cartesiano simples. O GMT nao faz apenas mapas!
Use o xemacs para criar o seguinte shell script:
#!/bin/csh -f
gmtset PAPER_MEDIA A4+
psxy -R1/10/0/25 -JX10c/7.5c -Ba2/a3WSne -P dados.1 >! fig1.ps
gs fig1.ps
Na linha 1 invocamos o C-shell com o parametro -f (fast). Na linha 2 indicamos o tamanho da folha A4 e o
formato EPS (+) para facilitar a inclusao do grafico neste documento. Na linha 3 executamos o comando
psxy. Na linha 4 executamos o ghostscript para visualizar a nossa obra. Entendamos pois a linha 3:
-R1/10/0/25 indica a regiao a ser plotada, limitando a extensao dos eixos. Portanto o eixo x vai de 1 a
10 e o y de 0 a 25.
-JX10c/7.5c indica a projecao e o tamanho do grafico. Como nao e um mapa usamos X, com o eixo x
de 10cm e o y de 7.5cm. Use c para centimetros e i para polegadas.
-Ba2/a3WSne controla as anotacoes dos eixos. No eixo x temos tics e anotacoes a cada 2 unidades e no
y a cada 3 unidades. Os eixos Oeste e Sul sao plotados e anotados, os demais sao apenas plotados.
-P indica formato de pagina portrait e so precisa ser dado uma vez (landscape e o default).
dados.1 e o arquivo ASCII de entrada, com 2 colunas (x, y = f(x)):
1 10
2 12
13
3 20
...
>! fig1.ps redireciona a saida do comando psxy para o arquivo fig1.ps que contera a figura.
0
3
6
9
12
15
18
21
24
2 4 6 8 10
Figura 1: Exercicio comentado 1: Grafico Cartesiano.
7.2.1 Exercicio 1:
Crie um grafico semelhante ao exemplo anterior, mas cujo eixo y tem escala logaritmica. Dica: olhe no
manual online do GMT, secao 5.1.2.
7.3 Exercicio Comentado 2: Varios graficos em uma pagina
Introduzimos aqui: (a) o uso dos parametros -X, -Y, -K, -O que permitem a movimentacao dos graficos
na pagina; (b) os nomes nos eixos e na figura e; (c) dos diferentes tipos de linhas e simbolos.
#!/bin/csh -f
gmtset PAPER_MEDIA A4+
psxy -R1/10/0/25 -JX15c/4c -Ba2:Tempo:/a5WSne:Plot1: -P dados.1 -K >! fig2.ps
psxy -R1/10/0/25 -JX15c/4c -Ba2g1/a5g5WsNe:Plot2: -Sa0.05 -P dados.1 ...
... -K -O -Y6c >> fig2.ps
psxy -R1/10/0/25 -JX15c/4c -Ba1/a4wSnE:Plot3: -P -Sc0.1 dados.1 ...
... -K -O -Y6c >> fig2.ps
psxy -R1/10/0/25 -JX15c/4c -Ba2/a5WSne:Plot4:,:.’Quatro Figura@!\316cas’: ...
... -W3/150/0/255t20_10:10 -P dados.1 -O -Y6c >> fig2.ps
gs fig2.ps
A maior parte dos erros de GMTistas em inicio de carreira ocorre por mau uso dos parametros -K
(keep=segura) e -O (overlay=escreve em cima). Valem as regras:
14
O primeiro comando que imprime usa -K >!
O ultimo comando que imprime usa -O >>
Os outros comandos que imprimem usam -O -K >>
Os graficos sao colocados na figura 2 sequencialmente. Os parametros -X, -Y controlam a posicao da origem
de cada grafico em relacao ao mais recente8. Portanto o primeiro psxy ... plota o grafico mais baixo,
o segundo psxy ... -Y6c ... move a origem 6cm acima do primeiro e assim por diante.
Comparando os quatro parametros -B podemos notar que sao colocados nomes nos eixos usando
:’nome_do_eixo’: e o nome da figura usando ,:.’nome_da_figura’:. O uso das ”sequencias de escape”,
e.g.: @!\316, e descrito no manual.
O parametro -S controla que simbolo sera desenhado (a=pentagrama, c=circulo) e e seguido de um fator
de escala que controla o tamanho do simbolo.
O parametro -W3/150/0/255t20_10:10 controla que tipo de linha sera desenhada no grafico mais acima.
No caso, 3 e a espessura da pena; /150/0/255 e a cor RGB roxa; t20_10:10 indica linha tracejada com
linhas de 20 pontos, espacos de 10 pontos comecando a 10 pontos da origem.
7.3.1 Exercicio 2:
Usando o exemplo anterior, crie um grafico semelhante com 2 figuras na mesma pagina. No primeiro
sobreponha a quadrados verde-escuros uma linha pontilhada vermelha e grossa. No segundo plote uma linha
do tipo traco-ponto.
7.4 Exercicio Comentado 3: Utilizacao de variaveis
A repeticao de longas linhas de comando torna a leitura tediosa e a eliminacao de erros dificil. O uso de
variavais melhora muito a leitura do programa. Vejamos um exemplo aplicado ao problema anterior:
#!/bin/csh -f
gmtset PAPER_MEDIA A4+
set dados = dados.1
set figura = fig3.ps
set regiao = "-R1/10/0/25"
set projecao = "-JX15c/4c"
set sobe = "-Y6c"
psxy $regiao $projecao -Ba2:Tempo:/a5WSne:Plot1: -P $dados -K >! $figura
psxy $regiao $projecao -Ba2g1/a5g5WsNe:Plot2: -Sa0.05 $dados -K -O $sobe >> $figura
psxy $regiao $projecao -Ba1/a4wSnE:Plot3: -Sc0.1 $dados -K -O $sobe >> $figura
8Este e o default, pode ser mudado para indicar posicao absoluta
15
0
5
10
15
20
25
Plo
t1
2 4 6 8 10
Tempo
0
5
10
15
20
25
Plo
t2
2 4 6 8 10
048
12162024
Plo
t3
1 2 3 4 5 6 7 8 9 10
Quatro Figuracas
0
5
10
15
20
25
Plo
t4
2 4 6 8 10
Figura 2: Exercicio comentado 2: Varios graficos na mesma pagina
psxy $regiao $projecao -Ba2/a5WSne:Plot4:,:.’Quatro Figura@!\316cas’: ...
... -W3/150/0/255t20_10:10 $dados -O $sobe >> $figura
gs $figura
Os nomes das variaveis foram escolhidos de modo a esclarecer a funcao de cada parametro, dispensando
comentarios. A figura gerada deve ser igual a figura 2.
7.4.1 Exercicio 3:
Termine o trabalho acima substituindo -K, -K -O e -O por variaveis com nomes mais inteligiveis. Teste o
script.
16
7.5 Exercicio Comentado 4: Projecoes , continentes e texto
Os objetivos deste script sao (1) demonstrar o uso de varias projecoes cartograficas; (2) introduzir o comando
pscoast para gerar mascaras continentais e; (3) introduzir o comando pstext para anotacoes livres.
E feito extensivo uso de variaveis, redirecionadores e pipes.
#!/bin/csh -f
gmtset PAPER_MEDIA A4+ HEADER_FONT_SIZE 12 DEGREE_FORMAT 3 FRAME_WIDTH 0.1c
set fig = fig4.ps
set reg = "-R-50/-31/-30/-20"
set grid = "-Ba5f2.5g5/a3f3g3/WSne"
set c = "-G200/200/0 -W0.25p/0/0/250 -S100/190/255"
set topo = "-Y19c"
set desce = "-Y-8c"
set vai = "-X10c"
set volta = "-X-10c"
#---------------------------------------------------------------------------
set pro = "-JC-40/-25/8c"
pscoast $reg"r" $pro $grid $c -P -K $topo >! $fig
echo ’-40 -19 12 0 1 2 1) Cassini cyl’ | pstext $reg"r" $pro -N -K -O >> $fig
set pro = "-JA-40/-25/8c"
pscoast $reg"r" $pro $grid $c -K -O $vai >> $fig
echo ’-40 -19 12 0 1 2 2) Lambert az equiarea’ | pstext $reg"r" $pro -N -K -O>> $fig
set pro = "-JM8c"
pscoast $reg $pro $grid $c -K -O $volta $desce >> $fig
echo ’-40 -19 12 0 1 2 3) Mercator conf’ | pstext $reg $pro -N -K -O>> $fig
set pro = "-JG-40/-25/8c"
pscoast $reg"r" $pro $grid $c -K -O $vai >> $fig
echo ’-40 -19 12 0 1 2 4) Orthographic’ | pstext $reg"r" $pro -N -K -O>> $fig
set pro = "-JY-40/-45/6c"
pscoast $reg $pro $grid $c -K -O $volta $desce >> $fig
echo ’-40 -19 12 0 1 2 5) Peters cyl equiarea’ | pstext $reg $pro -N -K -O>> $fig
set pro = "-JB-40/-25/-40/-10/8c"
pscoast $reg $pro $grid $c -O -K $vai>> $fig
echo ’-40 -19 12 0 1 2 6) Albers conic equiarea’ | pstext $reg $pro -N -O>> $fig
#---------------------------------------------------------------------------
gs $fig
17
Para algumas projecoes como a Mercator conformal precisamos indicar apenas o tamanho do grafico:
set pro = "-JM8c".
Para outras como a Albers conica equiarea e necessario fornecer tambem o centro de projecao (-40,-25) e
dois paralelos padrao (-40,-10) alem do tamanho do grafico (8cm): set pro = "-JB-40/-25/-40/-10/8c".
O tamanho dos graficos pode ser informado de duas maneiras. Em todos os exemplos deste texto o
tamanho final e diretamente estipulado. Para isso usamos uma letra maiuscula para identificar a projecao
(M) e informamos as unidades em centimetros (c), para trabalhar em polegadas use i. O outro metodo e
informar a escala, usando uma letra minuscula para identificar a projecao (m) e a escala em cm/grau (0.05c).
O comando pscoast serve para desenhar os contornos costeiros, continentes, rios, lagos e algumas fron-
teiras politicas. pscoast tem como parametros a regiao ($reg"r", o sufixo r faz o mapa retangular), a
projecao ($pro), os detalhes da grade e dos eixos ($grid) e as cores que queremos usar ($c).
pstext adiciona texto ao grafico. Neste exemplo a saida do comando echo e jogada como entrada do
pstext atraves do pipe (|). Os numeros indicam posicao x, posicao y, tamanho da fonte, angulo da fonte,
numero da fonte, justificacao e por fim o texto. Para um texto mais longo e conveniente salva-lo em um
arquivo.
O parametro -N indica que o texto fora do mapa nao deve ser deletado.
Este script deve produzir uma figura semelhante a figura 3.
50˚W 45˚W 40˚W 35˚W 30˚W
30˚S
27˚S
24˚S
21˚S
1) Cassini cylindrical
50˚W 45˚W 40˚W 35˚W 30˚W
30˚S
27˚S
24˚S
21˚S
2) Lambert azimuthal equal-area
50˚W 45˚W 40˚W 35˚W30˚S
27˚S
24˚S
21˚S
3) Mercator conformal
50˚W 45˚W 40˚W 35˚W 30˚W30˚W
30˚S
27˚S
24˚S
21˚S
4) Orthographic
50˚W 45˚W 40˚W 35˚W30˚S
27˚S
24˚S
21˚S
5) Peters cylindrical equal-area
50˚W 45˚W 40˚W 35˚W30˚S
27˚S
24˚S
21˚S
6) Albers conic equal-area
Figura 3: Exercicio comentado 4: Varias projecoes
18
7.5.1 Exercicio 4:
Produza 2 mapas globais na mesma pagina. Um mostrara a Terra em perpectiva, como se vista do infinito –
portanto 1 hemisferio – centrado em Sao Paulo. O outro mostrara os 2 hemisferios usando a projecao Eckert
IV, centrado de modo que o extremo Sul da Africa fique na borda esquerda.
7.6 Exercicio Comentado 5: Pontos e contornos em mapas
Este exercicio visa familiariza-los com: (1) o comando makecpt para criar palhetas de cores; (b) o uso do
awk para formatar um arquivo ASCII; (c) o uso do psxy para plotar dados de um arquivo ASCII em mapas;
e (d) o uso do pscontour para produzir isolinhas.
#!/bin/csh -f
gmtset HEADER_FONT_SIZE 12 DEGREE_FORMAT 3 FRAME_WIDTH 0.1c PAPER_MEDIA A4+
set F = fig5.ps
set R = "-R-50/-31/-30/-20"
set J = "-JL-40.5/-25/-30/-20/17c"
set B = "-Ba5f2.5g5/a3f3g3/WSne"
set G = "-G200/200/0 -W0.25p/0/0/250"
set C1 = "-Clixo1.cpt"
set C2 = "-Clixo2.cpt"
set col4 = "dados.2"
set tmp = "dados.2tmp"
makecpt -Crainbow -T0/.5/.05 >! lixo1.cpt
makecpt -Cjet -T-.3/.4/.01 >! lixo2.cpt
awk ’{printf " %3.0f %3.0f %5.2f %5.2f \n",$1,$2,$4/10,$3*$3/20 }’ $col4 >! $tmp
psxy $R $J $B -Sc $C2 $tmp -P -K -W1 >! $F
pscoast $R $J $B $G -K -O >> $F
echo ’-40 -19 12 0 1 2 Raio proporcional a coluna 3, cor a coluna 4’ | ...
... pstext $R $J -N -O -K >> $F
awk ’{printf " %3.0f %3.0f %5.2f \n",$1,$2,$3*$3/20}’ $col4 >! $tmp
pscontour $tmp $R $J $B $C1 -W+ -Y13c -K -O >> $F
pscoast $R $J $B $G -K -O >> $F
19
echo ’-40 -19 12 0 1 2 Contornos da coluna 3’ | pstext $R $J -N -O >> $F
/bin/rm $tmp lixo1.cpt lixo2.cpt
gs $F
O comando makecpt produz um arquivo ASCII que associa os intervalos indicados em -T0/.5/.05 com
as cores RGB. Por exemplo, digite cat lixo1.cpt. A primeira linha contem:
inicio vermelho verde azul final vermelho verde azul
0 255 0 255 0.05 255 0 255
portanto os dados entre 0 e 0.05 serao plotados em lilas. As 3 ultimas linhas indicam as cores para os
extremos superior e inferior (B,F) e para os dados inexistentes (N). Este arquivo pode ser editado para
manipulacao direta das cores, desde que se mantenha a estrutura geral do arquivo.
Uma maneira de se fazer operacoes matematicas simples em um arquivo ASCII e atraves do awk. No ex-
emplo acima o arquivo $col4 = dados.2 e reformatado pelo printf ..., que funciona como na linguagem
C ou no Matlab. As variaveis a imprimir correspondem as colunas 1,2, 4 dividida por 10 e 3 ao quadrado
dividida por 20. O resultado e jogado no arquivo ASCII $tmp = dados.2tmp, confira.
O comando psxy introduzido na secao 7.2 serve tambem para plotar simbolos em mapas, mudando-se
apenas a projecao . Compare este exemplo com o da secao 7.2. Neste caso ha mais um detalhe: como
fornecemos o nome de uma palheta de cores $C2 = -Clixo2.cpt os circulos -Sc sao pintados de acordo com
o valor da variavel da coluna 4 do arquivo de entrada.
No outro grafico temos os contornos coloridos criados por pscontour. A sintaxe geral e muito parecida
com a do psxy. A especificacao das linhas e feita pelo parametro -W+ que indica linha de espessura padrao
nas cores e intervalos especificados pela palheta de cores dada pela opcao $C1 = -Clixo1.cpt.
Este script deve produzir uma figura semelhante a figura. 4.
7.6.1 Exercicio 5:
Baseado no script acima produza um mapa de contornos com linhas azuis para valores acima de 0.25, uma
linha preta grossa para 0.25 e linhas de contorno vermelhas para valores abaixo de 0.25.
7.7 Exercicio Comentado 6: Vetores e interpolacao
Neste exemplo as ideias principais sao (a) selecionar colunas de dados usando awk; (b) plotar vetores; (c)
interpolar uma variavel para grade regular; e (d) a criar uma imagem com grdimage.
#!/bin/csh -f
20
50˚W 45˚W 40˚W 35˚W30˚S
27˚S
24˚S
21˚S
50˚W 45˚W 40˚W 35˚W30˚S
27˚S
24˚S
21˚S
Raio proporcional a coluna 3, cor a coluna 4
0.05
0.05
0.05
0.05
0.05
0.05
0.05
0.05
0.050.
05
0.05
0.05
0.05
0.050.05
0.1
0.1
0.1
0.1
0.1
0.1
0.1
0.1
0.1
0.1
0.1
0.1
0.1
0.1
0.1
0.15
0.15
0.15
0.15
0.15
0.150.
15
0.15
0.15
0.15
0.15
0.150.15
0.2
0.2
0.2
0.2
0.2
0.2
0.2
0.25
0.25
0.25
0.3
0.35
50˚W 45˚W 40˚W 35˚W30˚S
27˚S
24˚S
21˚S
50˚W 45˚W 40˚W 35˚W30˚S
27˚S
24˚S
21˚S
Contornos da coluna 3
Figura 4: Exercicio comentado 5: Pontos e contornos em mapas
gmtset HEADER_FONT_SIZE 12 DEGREE_FORMAT 3 FRAME_WIDTH 0.1c PAPER_MEDIA A4+
set inp = dados.3
set tmp1 = dados1.tmp
set tmp2 = dados2.tmp
set gtmp = dados.grd
set ctmp = tmp.cpt
set figura = fig4.ps
set regiao = "-R-53/-35/-32/-18"
set projecao = "-JM12c"
set grid = "-Ba5f2.5/a3f3/WSne"
set cores = "-G200/200/0 -W0.25p/0/0/250"
set topo = "-Y15c"
set desce = "-Y-12c"
set vai = "-X10c"
set volta = "-X-10c"
awk ’{print $1 " " $2 " " $3 " " $4/150}’ dados.3 >! $tmp1
pscoast $regiao $projecao $grid $cores -P -K $topo >! $figura
psxy $regiao $projecao $grid $tmp1 -Sv -G255/0/0 -W0/0/0/255 -K -O >> $figura
21
echo ’-46 -19 16 0 1 2 1) Vetores em grade irregular’ | ...
... pstext $regiao $projecao -N -O -K >> $figura
awk ’{print $1 " " $2 " " $4}’ dados.3 >! $tmp2
makecpt -Chaxby -T0/100/10 >! $ctmp
surface $tmp2 $regiao -I5m -G$gtmp -T0.25
grdimage $gtmp $projecao -C$ctmp $grid -K -O $desce >> $figura
pscoast $regiao $projecao $grid $cores -K -O >> $figura
psscale -D13c/4c/7.5c/.25c -C$ctmp -B10:Magnitude:/:cm/s: -E -K -O >> $figura
psxy $regiao $projecao $grid $tmp1 -Sv -G255/0/0 -W0/0/0/255 -K -O >> $figura
echo ’-46 -19 16 0 1 2 2) Magnitude interpolada’ | ...
... pstext $regiao $projecao -N -O >> $figura
/bin/rm $tmp1 $tmp2 $gtmp $ctmp
gs $figura
O arquivo original possui 4 colunas: longitude, latitude, direcao e magnitude de uma grandeza vetorial.
O awk e usado para escalar a coluna 4 para que os vetores plotados a seguir tenham um tamanho razoavel.
Os dados escalados sao jogados em um arquivo temporario ($tmp2 = dados2.tmp). O awk e usado uma
segunda vez para selecionar as colunas 1, 2 e 4 do arquivo de entrada.
No primeiro grafico sao criados vetores com o mesmo comando psxy usado anteriormente. Para plotar
vetores use o parametro -Sv. O psxy procurara a magnitude na coluna 4 e a direcao na coluna 3 em graus
no sentido anti-horario a partir da horizontal, ou convencao trigonometrica. Outra convencao
aceita pelo GMT (-SV) e o angulo como azimute em graus no sentido horario a partir do Norte.
Neste caso a direcao do vetor no papel dependera da projecao .
No segundo grafico e feita a interpolacao das magnitudes atraves do comando surface. A resolucao da
grade e definida no parametro -I5m, portanto 5 minutos. O surface cria uma superficie onde a curvatura
e minimizada, resolvendo a equacao abaixo para todo ponto z(x, y):
(1 − T )∇2(∇2(z)) + T ∗ ∇2(z) = 0 (1)
onde T e a tensao entre zero e um especificada com -T. Tensao -T0 resulta em curvatura minima, tensao
-T1 resulta numa superficie onde maximos e minimos so ocorrem sobre os dados originais.
Note que o arquivo de entrada no surface e ASCII mas o arquivo resultante ($gtmp = dados.grd)
indicado pelo parametro -G$gtmp e netCDF.
O comando grdimage e usado para plotar a superficie interpolada contida no arquivo dados.grd. Os
parametros nao apresentam novidade alguma.
Este script deve produzir uma figura semelhante a figura 5.
22
50˚W 45˚W 40˚W 35˚W
30˚S
27˚S
24˚S
21˚S
18˚S
50˚W 45˚W 40˚W 35˚W
30˚S
27˚S
24˚S
21˚S
18˚S1) Vetores em grade irregular
50˚W 45˚W 40˚W 35˚W
30˚S
27˚S
24˚S
21˚S
18˚S
50˚W 45˚W 40˚W 35˚W
30˚S
27˚S
24˚S
21˚S
18˚S2) Magnitude interpolada
0
10
20
30
40
50
60
70
80
90
100
Magnitude
cm/s
50˚W 45˚W 40˚W 35˚W
30˚S
27˚S
24˚S
21˚S
18˚S
Figura 5: Exercicio comentado 6: A magnitude dos vetores do grafico superior e interpolada em uma grade
regular e plotada como imagem sob os vetores do grafico inferior
7.7.1 Exercicio 6:
Usando o script anterior varie a tensao do interpolador entre 0 e 1 passo 0.25 e analize os 5 resultados. Faca
vetores com (a) pontas mais agudas e (b) coloridos de acordo com a magnitude usando uma palheta de cores
qualquer. Dica: de o comando makecpt no terminal para ver que palhetas de cores estao pre-definidas no
GMT.
7.8 Exercicio Comentado 7: Relevo iluminado de uma sub-regiao
Neste ultimo exercicio selecionamos uma sub-area do arquivo global de topografia ETOPO5 e criamos uma
imagem iluminada do relevo emerso e submerso. Alem de impressionar a torcida, este exemplo visa ilustrar
as vantagens do uso de arquivos .grd e demonstrar uma aplicacao estetica da funcao gradiente.
#!/bin/csh -f
gmtset HEADER_FONT_SIZE 22 ANOT_FONT_SIZE 12 LABEL_FONT_SIZE 14
23
gmtset DEGREE_FORMAT 3 PAPER_MEDIA A4+
#---------------------------------------------------------------------------
set in = etopo5.grd
set tmp = brasil.grd
set luz = tmp.grd
set F = fig7.ps
set R = "-R-50/-31/-30/-5"
set J = "-JM10c"
set B = "-Ba5f2.5/a3f3/WSne"
set G = "-W0.25p/0/160/250 -N2/2 -Ia/1/0/0/255"
set C = "-Clixo.cpt"
set E = -E150/60
#---------------------------------------------------------------------------
grdcut $R $in -G$tmp
grd2cpt $tmp -Csealand >! lixo.cpt
grdgradient $tmp -Nt1 -A45 -G$luz
grdview $tmp $R $J $B $C -K -P -Qsi -I$luz $E -Y6c >! $F
psscale -D7c/-1.5c/10c/0.5ch -O -K $C -I -E -B1000,:Altura:/:m: >> $F
pscoast $R $J $B,:."Topografia da Costa Brasileira": $G -O $E >> $F
#---------------------------------------------------------------------------
gs -sDEVICE=jpeg -dBATCH -dNOPAUSE -sOutputFile=fig7.jpg $F -q
xv fig7.jpg &
O arquivo $in = etopo5.grd e enorme, pois contem a topografia global com 5’ de resolucao . Para
extrairmos a parte que nos interessa, usamos o comando grdcut evidentemente com o parametro $R. O
arquivo gerado e bem menor (confira) e o processamento de arquivos netCDF e mais eficiente que o de
arquivos ASCII.
O comando grd2cpt e outro metodo de se criar uma palheta de cores, neste exemplo baseado apenas no
conteudo do arquivo de dados $tmp = brasil.grd e em uma palheta ”canonica”-Csealand.
O comando grdgradient calcula o gradiente do arquivo de entrada $tmp = brasil.grd. Neste caso
particular o gradiente e calculado na direcao φ indicada pelo parametro -A. Trocando em miudos, o arquivo
de saida contem z′ dado por:
z′(x, y) = −(∂z
∂xsinφ +
∂z
∂ycosφ) (2)
O sinal negativo gerara a iluminacao correta para ser usada no comando grdview. O parametro -Nt1 controla
a normalizacao do gradiente, fixando 1 como valor maximo.
grdview com o parametro -Qsi gera a imagem de uma superficie. A opcao padrao gera grades (mesh).
E possivel tambem controlar a resolucao dessa superficie para melhorar a impressao .
24
O parametro $E = -E150/60, aplicado a todos os comandos que geram mapas, controla a inclinacao e a
rotacao do grafico. Um grafico plano, normal, teria $E = -E180/90.
50˚W
45˚W
40˚W
35˚W
30˚S
27˚S
24˚S
21˚S
18˚S
15˚S
12˚S
9˚S
6˚S
-5000 -4000 -3000 -2000 -1000 0 1000
Altura
m
Topografia da Costa Brasileira
50˚W
45˚W
40˚W
35˚W
30˚S
27˚S
24˚S
21˚S
18˚S
15˚S
12˚S
9˚S
6˚S
Figura 6: Exercicio comentado 7: A iluminacao e obtida do gradiente da topografia. Note que rios, costa e
fronteiras estao presentes.
7.8.1 Exercicio 7:
No script anterior corrija a escala de cores de modo que a linha da costa coincida com a transicao do amarelo
para o verde, limitando a regiao para ressaltar a cadeia Vitoria-Trindade. Mude tambem a direcao daluz,
para que venha do Sul.
8 O proximo passo
Estes exercicios sao apenas uma maneira rapida de apresentar algumas caracteristicas do GMT. Neles uti-
lizamos uma pequena fracao do conjunto de programas que compoe o GMT e uma fracao ainda menor dos
comandos UNIX. Ha muito mais possibilidades do que as que foram aqui apresentadas. Para explora-las, a
melhor motivacao sao os problemas praticos que podem ser resolvidos com o uso destas ferramentas. Maos
a obra!
25