Processando no R dados obtidos com um CTD: introdução ao pacote ‘oce’.
Oceanografia no R por Luis Macedo-Soares.
Você já precisou importar e trabalhar com dados medidos por um CTD (conductivity-temperature-depth) no R? Vamos ver como importar o arquivo de dados descarregado do CTD e como processar estes dados. De quebra vamos ver como produzir um perfil de temperatura e salinidade, e o diagrama T-S. Inicialmente instale e carregue o pacote. Lembre-se, sempre que você iniciar o R e for utilizar um pacote, você tem que carregá-lo.
install.packages("oce")
library(oce)
A importação do arquivo de dados de um CTD para o R é feita com a seguinte função:
ctd <- read.ctd(file="PLD209.cnv")
Aplicando a função plot() no objeto classe ‘ctd’, o R retorna um painel com três gráficos: (1) perfil de temperatura e salinidade em relação a pressão (profundidade); (2) perfil da densidade potencial e frequência de flutuabilidade - N2 (ou frequência de Brunt-Väisälä), em relação a pressão; e (3) diagrama T-S. O gráfico desejado pode ser selecionado com o argumento which.
plot(ctd)
plot(ctd, which=1)
install.packages("oce")
library(oce)
A importação do arquivo de dados de um CTD para o R é feita com a seguinte função:
ctd <- read.ctd(file="PLD209.cnv")
Aplicando a função plot() no objeto classe ‘ctd’, o R retorna um painel com três gráficos: (1) perfil de temperatura e salinidade em relação a pressão (profundidade); (2) perfil da densidade potencial e frequência de flutuabilidade - N2 (ou frequência de Brunt-Väisälä), em relação a pressão; e (3) diagrama T-S. O gráfico desejado pode ser selecionado com o argumento which.
plot(ctd)
plot(ctd, which=1)
Percebe-se que os dados do CTD não foram processados, pois podemos ver os dados registrados durante a estabilização do aparelho, descida e a subida. Podemos visualizar isto utilizando a função plotScan(). Nesta função o argumento which define a variável que será mostrada no gráfico (eixo y) contra a variável scan (eixo x). Neste caso escolhemos a pressão (which=1).
plotScan(ctd, which=1)
Para olharmos mais de perto a parte dos dados que queremos selecionar, vamos dar um “zoom” no gráfico:
plotScan(ctd, which=1, xlim=c(550,1300), ylim=c(0,250), xaxs="i")
Vamos delimitar apenas a descida após a estabilização do CTD utilizando a função ctdTrim().
ctd <- ctdTrim(x=ctd, method="range", parameters=list(item="scan",
plotScan(ctd, which=1)
Para olharmos mais de perto a parte dos dados que queremos selecionar, vamos dar um “zoom” no gráfico:
plotScan(ctd, which=1, xlim=c(550,1300), ylim=c(0,250), xaxs="i")
Vamos delimitar apenas a descida após a estabilização do CTD utilizando a função ctdTrim().
ctd <- ctdTrim(x=ctd, method="range", parameters=list(item="scan",
from=650, to=1200))
Antes de concluirmos, vamos interpolar os dados do CTD para valores específicos de pressão. O argumento p define o incremento na pressão, enquanto o argumento method o método utilizado na interpolação.
ctd <- ctdDecimate(x=ctd, p=0.5, method="unesco")
Finalizando, vamos ver como ficaram os perfis de temperatura e salinidade, e o diagrama T-S. Para o T-S use a função plotTS(), que permite maior liberdade para formatar a figura. Salve as figuras em arquivo jpg. Atenção! As figuras serão salvas na pasta na qual você direcionou o programa no início.
jpeg("Temp_sal_profile.jpg", width=160, height=160, bg="white",
res=300, units="mm")
plot(ctd,which=1)
dev.off()
jpeg("CTD_plotTS.jpg", width=160, height=160, bg="white",
plot(ctd,which=1)
dev.off()
jpeg("CTD_plotTS.jpg", width=160, height=160, bg="white",
res=300, units="mm")
plotTS(ctd, pch=19, col="darkorange")
dev.off()
Gostou? Curta, compartilhe e comente! Logo abaixo.
plotTS(ctd, pch=19, col="darkorange")
dev.off()
Gostou? Curta, compartilhe e comente! Logo abaixo.