Вы находитесь на странице: 1из 2

Roteiro para aula prática: - Funções 3D: Análogo para funções 2D mas criando uma função f(x,y)

Visualização de projeções cartográficas


com o aplicativo GNUPLOT - Ex. de funções: a = 6378160
f = 1/298.25
E2 = 2*f - f**2
Disciplina: Projeções, Curso: Engenharia Cartográfica, 2017 f(x) = 1 - E2*(sin(x*pi/180)**2)
N(x) = a / (f(x)**0.5)
1. Introdução - Características básicas e instalação do aplicativo Gnuplot M(x) = a*(1 - E2) / ( f(x)**1.5 )
g(x,y) = sin(10+x*pi/45)*cos(y/8)
Características O GnuPlot é um aplicativo de uso livre, destinado a visualização de funções e
Básicas Visualização - Comando básico > splot [Função]
superfícies. São disponíveis versões para diferentes sistemas operacionais como
Windows, Linux, Unix, OS2, etc. Os gráficos e superfícies podem ser gerados a partir de superfícies
- Exemplos: crie as funções > plot f(x)
de funções analíticas ou por dados lidos em arquivo e os comandos podem ser
f(x), N(x), M(x) e f2(x,y) e > plot N(x)
digitados no prompt, como no MatLab, Octave, SciLab; ou lidos a partir de um arquivo
ative os comandos ao lado > plot M(x)
script; ou ainda executados a partir de um programa em C/C++.
> splot g(x,y)
> splot f(x)*g(x,y)
Instalação Os arquivos originais da última versão podem ser obtidos a partir da página oficial (em
www.gnuplot.info). Como alternativa pode-se usar o arquivo instalador disponível na
página www2.fct.unesp.br/docentes/carto/galo/web/gnuplot/. Nesta página também tem 4. Leitura de dados em arquivo / Mudança de diretório
disponível um tutorial em Português com os comandos iniciais. Caso você seja usuário
do Octave (http://www.gnu.org/software/octave/) observe que o Gnuplot é Leitura de - Comando básico: O comando básico é o mesmo (plot) e para fazer a visualização
automaticamente instalado ao instalar o Octave uma vez que a saída gráfica do Octave dados em basta definir o nome do arquivo entre ‘’ ou “” e depois associar uma
é feita usando o Gnuplot. arquivo coluna do arquivo com a abscissa e outra com a ordenada.
- Arquivo de dados Copie o arquivo dado (sp.txt) para o diretório de trabalho. Abra o
2. Visualização de funções pré-definidas e comandos básicos (sp.txt) arquivo e veja que ele possui duas colunas, onde x deve ser
associado à primeira coluna e y à segunda.
Visualização - Comando básico: plot
de funções - Exemplo de utilização: > plot sin(x) - Visualização (diferentes > plot 'sp.txt'
situações e opções): > plot 'sp.txt' with lines 7
Observação: notar que a cor da linha, a unidade, o domínio,
> plot 'sp.txt' using ($1):($2) with lines 3
etc; não foram definidos pelo usuário, sendo utilizados os
valores padrão. - Mudança de diretório: Para mudar de diretório pode-se usar o comando cd ‘diretório’
- Exemplo: > cd “D:\usuarios\cartoI”
Comandos - Mudança do domínio: set xrange [inicio:fim] / set yrange [...]
básicos - Ativação do grid: set grid (para desativar: set nogrid) 5. Projeção plana ortográfica / Equação e visualização
- Mudar tics nas bordas: set xtics / set ytics
- Para ativar mais de uma usar a opção rep (de replot) Equações da projeção x = R (cos ϕ0 sen ϕ − sen ϕ0 cos ϕ cos(λ − λ 0 )) m 0 = cos δ
função simultaneamente:
set title “Uso do gnuplot”
Azimutal Ortográfica com
y = R cos ϕsen (λ − λ 0 ) m 90 = 1
- Inserir título ponto de tangência numa
- Exemplo: > set grid posição (ϕ0, λ0) definida (ϕ, λ ) – Latitude e longitude dos pontos a serem representados.
> set xtics 20 pelo usuário (ϕ0, λ0) – Latitude e longitude do ponto de tangência.
> set xrange [0:360]
> set title “Funções Seno e Coseno” 5.1. Visualização da Projeção Ortográfica - Caso Geral
> plot sin(x*pi/180)
> rep cos(x*pi/180) Exemplo reset
set grid
- Outras funções: abs, sqrt, exp, log, log10, sin, cos, tan, ...(Ver barra de tarefas)
set noxtics
- Para ver opções de cores: > test set noytics
- Uso de linhas, pontos, with (points, lines, linespoints, impulses, etc) set noborder
impulso, etc: set angles degrees
- Exemplos: set size square
Função seno: cor 3 tipo 5 > plot sin(4*x*pi/180) with points 3 5
Função coseno: cor 1 > rep cos(x*pi/180) with impulses 1 r=20
lat0=90
3. Criação de funções e visualização de superfícies lon0=0
dlon(lon)=lon-lon0
Criação de - Funções 2D: Basta definir uma função na forma f(x), usando as funções x(lat,lon)=r*( cos(lat0)*sin(lat) - sin(lat0)*cos(lat)*cos(dlon(lon)))
funções (abs sqrt exp log log10 sin cos tan ...) e as operações y(lat,lon)=r*cos(lat)*sin(dlon(lon))
básicas ((+ - * / ...)

1/4 2/4
set title " Projeção Ortográfica / Ponto de tangência: Polo" 6. Visualização da Projeção de Mercator e Projeção Cônica Conforme de Lambert
# Assume-se que os arquivos abaixo estão no diretório de trabalho.
Equações da   1 − esenϕ  
plot 'world.par' using (y($2,$1)):(x($2,$1)) t'' with lines 9 e/2

rep 'world.mer' using (y($2,$1)):(x($2,$1)) t'' with lines 9 Projeção de x = a. ln tg (45o + ϕ / 2)   y = a (λ − λ 0 )
rep 'world.dat' using (y($2,$1)):(x($2,$1)) t'' with lines 3 Mercator:   1 + esenϕ  
pause -1 "Fechar"
Exemplo reset
5.2. Distância esférica
set grid
set noxtics
Distância δ - Distância esférica entre (ϕ0,λ0) e (ϕ,λ):
esférica set noytics
set noborder
δ = arccos(senϕsenϕ0 + cos ϕ cos ϕ0 cos(λ − λ 0 )) set angles degrees
set size square
5.3. Operador ternário
r=20
Sintaxe: (Expressão A) ? B : C A Expressão A é verdadeira?
lon0=0

- SIM: O valor retornado é B. dlon(lon)=(lon-lon0)*pi/180


- NÃO: O valor retornado é C. t(lat)=tan(45+lat/2)
xp(lat)=r*log(t(lat))
Exemplo: xp(lat,lon) = ( lat >= 0 ) ? x(lat,lon) : 1/0 yp(lon)=r*dlon(lon)

5.4. Visualização – Projeção Plana Ortográfica x(lat,lon)= ( abs(lat) <= 80 ) ? xp(lat) : 1/0
y(lat,lon)= ( abs(lat) <= 80 ) ? yp(lon) : 1/0
Processamento que considera a distância esférica entre o ponto a ser mapeado (φ, λ) e o ponto de
tangência (φ0, λ0). set title "Projeção de Mercator"
plot 'world.par' using (y($2,$1)):(x($2,$1)) t'' with lines 9
rep 'world.mer' using (y($2,$1)):(x($2,$1)) t'' with lines 9
rep 'world.dat' using (y($2,$1)):(x($2,$1)) t'' with lines 3
Exemplo reset
pause -1 "Fechar"
set grid
set noxtics Atividades extra sala
set noytics
set noborder (1) Utilizando os mesmos dados, fazer a visualização da Projeção Cônica Conforme de Lambert com um
set angles degrees Paralelo Padrão (PP), para o caso esférico.
set size square
Equações da projeção:
r=20 senϕ 0
 T 
lat0=90 ρ(ϕ) = N 0 cot ϕ0  ϕ 
lon0=0  Tϕ 0 
dlon(lon)=lon-lon0 x (ϕ, λ ) = ρ 0 − ρ cos ν = N 0 cot ϕ 0 − ρ cos ν
ν(λ ) = senϕ0 .(λ − λ 0 )
y(ϕ, λ ) = ρsenν
d(lat,lon)=acos(sin(lat0)*sin(lat)+cos(lat0)*cos(lat)*cos(dlon(lon))) e/2
 1 + esenϕ 
x(lat,lon)=r*( cos(lat0)*sin(lat) - sin(lat0)*cos(lat)*cos(dlon(lon))) T (ϕ) = tan(45o − ϕ / 2) 
y(lat,lon)=r*cos(lat)*sin(dlon(lon))  1 − esenϕ 

xp(lat,lon)= ( d(lat,lon) <= 90 ) ? x(lat,lon) : 1/0 (2) - Fazer a visualização da Projeção Cônica Conforme de Lambert, com dois PP, usando o modelo
yp(lat,lon)= ( d(lat,lon) <= 90 ) ? y(lat,lon) : 1/0 elipsoidal e fazer a sobreposição com o resultado para o caso esférico.

set title "Projeção Ortográfica / Caso Oblíquo" - Escrever os scripts que permitem a visualização das projeções azimutais gnomônica e
estereográfica. Utilize a equações mais gerais (caso oblíquo) e faça a visualização para os seguintes
# Assume-se que os arquivos abaixo estão no diretório de trabalho.
pontos de tangência: nos pólos, no equador e no vértice PPTE da RBMC.
plot 'world.par' using (yp($2,$1)):(xp($2,$1)) t'' with lines 9
rep 'world.mer' using (yp($2,$1)):(xp($2,$1)) t'' with lines 9 - A partir do resultado anterior compare as projeções em termos de deformação. Sugestão: para um
rep 'world.dat' using (yp($2,$1)):(xp($2,$1)) t'' with lines 3 mesmo ponto de tangência, sobreponha as duas projeções.
pause -1 "Fechar"
Fim do roteiro.

3/4 4/4

Вам также может понравиться