=('./csv') pasta_ctd
CTD
Primeiramente, todos os arquivos devem ser salvos em uma pasta.
Dois pacotes devem ser carregados. Se der erro tem que instalar os pacotes.
library(readr)
library(lattice)
Armazenando os caminhos dos arquivos na variável arquivos_csv
=list.files(pasta_ctd,pattern = '*.Csv',full.names = T) arquivos_csv
Criando dataframes vazios.
=c()
arquivos_txt=c() dadosF
Lendo cada arquivo Csv e escrevendo uma tabela com a datahora.
for (i in 1:length(arquivos_csv)) {
=read_lines(arquivos_csv[i],skip=0,n_max=16)
ArqCabeca=substr(ArqCabeca[15],11,29) #Tira da linha 15 o valor
datahora=read_lines(arquivos_csv[i], skip=43)
ArqDados=gsub('Csv','txt',arquivos_csv[i])
arquivos_txt[i]write_lines(ArqDados,arquivos_txt[i])
=read.csv(arquivos_txt[i], header = T)
dados$datahora=datahora
dados$tempo=as.POSIXct(dados$datahora,format = "%Y/%m/%d %H:%M:%S")
dadosif (i==1) {
= dados
dadosF else {
} = rbind(dadosF,dados)
dadosF
} }
Quem faz a mágica é o pacote Lattice. Há como melhorar a interpolação usando o próprio pacote.
levelplot(dadosF$Sal..... ~ as.numeric(format(dadosF$tempo,"%H"))*-dadosF$Depth..m.,
data = dadosF,
xlab = "X Coordinate (feet)", ylab = "Y Coordinate (feet)",
main = "Surface elevation data",
col.regions = colorRampPalette(c("blue","red"))(30))
Plotando gráficos de perfil de cada campanha.
=subset(dadosF,
dadosas.numeric(format(dadosF$tempo,'%H'))==10)
par(mfrow=c(1,5))
plot(dados$Sal.....,-dados$Depth..m.,ty='l',
xlab='Salinity (psu)',
ylab='Depth (m)')
plot(dados$Temp...deg.C.,-dados$Depth..m.,ty='l',
xlab='Temperature (oC)',
ylab='')
plot(dados$Chl.a..ug.l.,-dados$Depth..m.,ty='l',
xlab='Chlorophyl (ug/L)',
ylab='')
plot(dados$Turb.M..FTU.,-dados$Depth..m.,ty='l',
xlab='Turbidity (FTU)',
ylab='')
plot(dados$DO....,-dados$Depth..m.,ty='l',
xlab='Oxygen (%)',
ylab='')