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
Sem resumo de edição
Linha 62:
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]]
 
== Diagrama TS ==
 
O Diagram TS é uma importante ferramenta gráfica para os oceanógrafos. Neste exemplo, vamos construir um diagrama TS com valores obtidos do WOA09, no mesmo ponto de grade do exemplo Plot de perfis.
 
Além da biblioteca '''pylab''', vamos também importar o pacote de rotinas '''Gibbs Sea Water'''. Para instalação e mais informações sobre essa toolbox, clique [http://packages.python.org/seawater aqui]. Se quiser saber mais sobre a Thermodynamic Equation Of Seawater - 2010 (TEOS-10), clique [http://www.teos-10.org aqui]:
 
<nowiki>
import pylab # importando a biblioteca PyLab
from seawater.gibbs import * # importando a biblioteca Gibbs Sea Water
</nowiki>
 
Vamos agora fornecer os dados de temperatura e salinidade para a construção do diagrama:
 
<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, 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]
 
sal = [36.3923, 36.3707, 36.3762, 36.3995, 36.4141, 36.3823, 36.2633, 36.1235, 35.9743, 35.7269, 35.5702, 35.4497, 35.1857, 34.8950, \
34.6285, 34.4319, 34.3314, 34.3130, 34.3387, 34.3865, 34.4492, 34.5187, 34.5901, 34.6574, 34.7908, 34.8745, 34.9254, 34.9204, 34.8727, 34.7555, 34.6795]
</nowiki>
 
Agora uma parte que vai caracterizar o diagrama TS: o plot das isopicnais:
 
<nowiki>
sal_vet = linspace(32,38,100) # vetor salinidade
temp_vet = linspace(-2,32,100) # vetor temperatura
[S,T] = meshgrid(sal_vet,temp_vet) # criando a malha do campo temperatura e salinidade
DENS = rho(S,T,0) # obtendo a densidade a partir dos valores de temperatura e salinidade considerando a profundidade 0.
</nowiki>
 
O que foi feito aqui é a criação dos campos de temperatura, salinidade e calculando o campo de densidade a partir das equações da TEOS-10. Com isso, é possível criar um gráfico com as isolinhas de densidade. Isso ficará como o fundo do diagrama. Além disso, vamos plotar por cima destas isopicnais os pares TS representados por círculo azuis:
 
<nowiki>
CS = pylab.contour(S,T,DENS,20,colors='0.5') # contornado o gráfico com isolinhas de densidade
pylab.clabel(CS, inline=1, fontsize=10) # inserindo os valores de densidade nas linhas contornadas
pylab.plot(sal, temp,'o', label='TxS') # plotando os pares TS
</nowiki>
 
Para finalizar, vamos "arrumar" o diagrama para que ele fique um pouco mais apresentável:
 
<nowiki>
xmin=min(sal);
xmax=max(sal);
 
pylab.xlim(xmin-((xmax-xmin)*0.15), xmax+((xmax-xmin)*0.15));
 
ymin=min(temp);
ymax=max(temp);
 
pylab.ylim(ymin-((ymax-ymin)*0.15), ymax+((ymax-ymin)*0.15));
pylab.xlabel('Salinity')
pylab.ylabel('Temperatura ($^\circ$C)')
pylab.title('Diagrama TS')
 
pylab.show()