Python para oceanógrafos/Exemplos: diferenças entre revisões

[edição não verificada][edição não verificada]
Conteúdo apagado Conteúdo adicionado
Sem resumo de edição
Linha 7:
A primeira linha do código que iremos escreve é a importação da biblioteca '''pylab'''. Com ela, será possível fazer com que o Python desenhe o perfil:
 
<nowiki>
import pylab # importando a biblioteca PyLab
</nowiki>
 
Feito isso, vamos então montar os vetores de dados de temperatura e suas respectivas profundidades. Aqui, vamos utilizar dados obtidos do WOA09 (grade de 5°), na latitude -27,5 e longitude -37,5. Para mais informações sobre o WOA09, clique [http://www.nodc.noaa.gov/OC5/WOA09/pr_woa09.html aqui]:
 
<nowiki>
temp = [23.4859, 23.4130, 23.2890, 23.1366, 22.4640, 21.1481, 20.1275, 19.2069, 18.2899, 16.6416, 15.4535, 14.5209, 12.7510, 10.6054, \
8.3869,temp 6.4448,= 5[23.07894859, 423.24324130, 323.72632890, 323.38101366, 322.17034640, 321.06941481, 320.05191275, 319.05222069, 318.14402899, 316.15276416, 315.01664535, 214.76365209, 212.21917510, 110.11466054, 0.2896]; # Vetor temperatura\
8.3869, 6.4448, 5.0789, 4.2432, 3.7263, 3.3810, 3.1703, 3.0694, 3.0519, 3.0522, 3.1440, 3.1527, 3.0166, 2.7636, 2.2191, 1.1146, 0.2896]; # Vetor temperatura
 
prof = [0, 10, 20, 30, 50, 75, 100, 125, 150, 200, 250, 300, 400, 500, 600, 700, 800, 900, 1000, 1100,\
1200, 1300, 1400, 1500, 1750, 2000, 2500, 3000, 3500, 4000, 4500]; # Vetor profundidade
</nowiki>
 
O uso da '''\''' na construção dos vetores é só para quebrar a linha do comando para fins de visualização.
Linha 21 ⟶ 25:
Bom, agora vamos plotar os dados. Para isso vamos utilizar o comando '''plot''' e '''show''' da biblioteca pylab:
 
<nowiki>
pylab.plot(temp, prof, label='Temp')
pylab.showplot(temp, prof, label='Temp')
pylab.show()
</nowiki>
 
Isso vai fazer com que seja desenhado uma linha em azul ligando os pares temperatura X profundidade. O resultado será esse:
 
[[File:Perf 1 etapa.png|tumb|Perf 1 etapa]]
 
Como dá para perceber, o perfil já está desenhado, porém ainda mal apresentado (''i.e.'' sem titulo, labels, unidades das variáveis, orientacao dos eixos etc). Para melhorar a aparência do grafico vamos adicionar alguns comandos:
xmin=min(temp); # acha o valor mínimo da temperatura
<nowiki>
xmax=max(temp); # acha o valor máximo da temperatura
import pylab
 
temp = [23.4859, 23.4130, 23.2890, 23.1366, 22.4640, 21.1481, 20.1275, 19.2069, 18.2899, 16.6416, 15.4535, 14.5209, 12.7510, 10.6054, \
pylab.xlim(xmin-((xmax-xmin)*0.05), xmax+((xmax-xmin)*0.05)); """ informa os intervalos de temperatura a serem apresentados no plot. So para deixar um
8.3869, 6.4448, 5.0789, 4.2432, 3.7263, 3.3810, 3.1703, 3.0694, 3.0519, 3.0522, 3.1440, 3.1527, 3.0166, 2.7636, 2.2191, 1.1146, 0.2896]; # Vetor temperatura
espaço evitando que a linha do perfil fique colada aas bordas do grafico """
 
prof = [0, 10, 20, 30, 50, 75, 100, 125, 150, 200, 250, 300, 400, 500, 600, 700, 800, 900, 1000, 1100,\
ymin=min(prof); # acha o valor mínimo da profundidade
1200, 1300, ymax=max(prof);1400, #1500, acha1750, o2000, valor2500, máximo3000, 3500, 4000, 4500]; # daVetor profundidade
 
pylab.plot(temp, prof, label='Temp')
pylab.ylim(0, ymax+((ymax-ymin)*0.1)); # alterando os intervalos da profundidade. O valor zero costuma ser o inicio. Sem espaco na parte superior do perfil.
pylab.xlabel('Temperatura ($^\circ$C)') # label do eixo X
pylab.ylabel('Profundidade (m)') # label do eixo Y
pylab.title('Perfil de Temperatura') # titulo do grafico
pylab.grid(True) # colocando uma grade
pylab.gca().invert_yaxis() # invertendo a orientacao do eixo Y, assim, o topo será o menor valor (''i.e.'' zero) e a base será o maior valor de profundidade.
 
xmin=min(temp); # acha o valor mínimo da temperatura
pylab.legend(loc=4) # inserindo uma legenda para o perfil. A opcao loc=4 intrui o Python a colocar a legenda no canto inferior direito.
xmax=max(temp); # acha o valor máximo da temperatura
pylab.xlim(xmin-((xmax-xmin)*0.05), xmax+((xmax-xmin)*0.05)); """ informa os intervalos de temperatura a serem apresentados no plot. So para deixar um
espaço, evitando que a linha do perfil fique colada aas bordas do grafico """
 
ymin=min(prof); # acha o valor mínimo da profundidade
pylab.show()
ymax=max(prof); # acha o valor máximo da profundidade
pylab.ylim(0, ymax+((ymax-ymin)*0.1)); # alterando os intervalos da profundidade. O valor zero costuma ser o inicio. Sem espaco na parte superior do perfil.
pylab.xlabel('Temperatura ($^\circ$C)') # label do eixo X
pylab.ylabel('Profundidade (m)') # label do eixo Y
pylab.title('Perfil de Temperatura') # titulo do grafico
pylab.grid(True) # colocando uma grade
pylab.gca().invert_yaxis() # invertendo a orientacao do eixo Y, assim, o topo será o menor valor (''i.e.'' zero) e a base será o maior valor de profundidade.
pylab.legend(loc=4) # inserindo uma legenda para o perfil. A opcao loc=4 intrui o Python a colocar a legenda no canto inferior direito.
 
pylab.show()
</nowiki>
 
O resultado final será o seguinte:
 
[[File:Perf final.png|Perf final]]