Armazenamento
de dados estratigráficos e construção de colunas
Um
novo pacote recém lançado vai revolucionar como lidamos com dados
estratigráficos, se trata do SDAR (Stratigraphical
Data Analysis in R, Ortiz & Jaramillo 2016, www.cgares.org/sdar/). Ele
permite o manejo e produção de colunas estratigráficas de forma muito eficiente
e com alta resolução gráfica.
Vamos
instalar o pacote e utilizar os dados nele próprio para visualizarmos a coluna
estratigráfica. A função data() extrai do pacote um conjunto de dados chamado beds_SDAR_SC, que é uma matriz composta de
informações estratigráficas e litológicas como número, tipo de rocha,
granulometria, cor, etc, e é feita cama a cama. Em seguida utiliza-se a função
strata(), para
converter o conjunto de dados para a classe strata, que foi desenhada especificamente
para o pacote, a fim de gerar a coluna estratigráfica com a função plot.strata(). Alguns outros pacotes são exigidos
na instalação do SDAR, veja abaixo:
> install.packages("grImport")
> install.packages("RGraphics")
>
install.packages("openxlsx") #importa
tabelas em .xlsx
> install.packages("SDAR")
> library(RGraphics)
> library(openxlsx)
> library(grImport)
> library(SDAR)
> data(beds_SDAR_SC) #carrega os dados
> x<-strata(beds_SDAR_SC)
#transforma-os em classe strata
> fix(beds_SDAR_SC)
> summary(x) #gera um sumário das capas
> summary(x,grain.size=T) #adiciona
granulometria ao sumário
> plot.strata(x) #gera a coluna (‘plot(x)’
também funciona)
Pronto, agora procure um PDF (SDAR_SC.pdf) no seu
diretório.
O
plot é feito com bastante facilidade, porém o mais importante é saber tabular
os dados para que eles sejam carregados corretamente para o SDAR. No exemplo
acima, usamos dados inbutidos no pacote, agora vamos importar tabelas em excel
e gerar colunas novamente, adicionando mais informação a elas. Há duas tabelas
que DEVEM ter uma formatação própria em SDAR, uma delas constrói a coluna
básica, a outra adiciona informações fundamentais. Comecemos com a coluna
básica, importando o arquivo ‘basic_SDAR_table’:
> beds_table<- read.xlsx("basic_SDAR_table.xlsx")
> beds_table_stra<- strata(beds_table)
> fix(beds_table)
> plot(beds_table_stra, file.name= "SDAR_RIO_2016")
Os
dados ‘basic_SDAR_table’ são bastante simples e geram uma coluna básica. Vamos
importar um arquivo semelhante ao anterior, mas com mais detalhes, e refazer a
coluna:
> beds_demo_SC <-read.xlsx("SDAR_beds_demo_column_meters.xlsx")
> beds_demo_SC_stra <-
strata(beds_demo_SC)
> fix(beds_demo_SC_stra)
> plot(beds_demo_SC_stra, file.name=
"SDAR_RIO_2016")
A
função para desenhar as colunas (plot.strata()) tem muitos argumentos que permitem a edição
das colunas, adição de informações, etc. Vejamos esses argumentos e usemos
alguns deles:
> ?plot.strata
> plot(beds_demo_SC_stra, d.scale=200, d.barscale=1,
bed.number=TRUE, notes=TRUE, file.name= "SDAR_RIO_2016")
Algumas
variáveis da nossa coluna podem ser adicionadas importando-se tabelas simples
em excel. Vamos fazer isso para a curva gamma e alguns elementos. A curva gamma
é importada e adicionada separadamente (pelo argumento ‘gamma.ray=’), pois tem um “display” específico
na coluna produzida pelo SDAR; já a abundância de certos elementos (K, Fe, etc,
ou na verdade qualquer variável desejada) se importa em outro arquivo do tipo
matriz e é adicionado pelo argumento ‘abun.data=’. Nenhum deles precisa ser transformado para a
classe strata.
> gamma_sdar <-
read.csv("GRdemo.csv")
> plot(beds_demo_SC_stra, d.scale=100, d.barscale=1,
d.legend=TRUE, bed.number=TRUE, gamma.ray = gamma_sdar, file.name=
"SDAR_RIO_2016")
> abun_sdar <- read.csv("elements_abundance.csv")
> plot(beds_demo_SC_stra, d.scale=100,
d.barscale=1,bed.number=TRUE, gamma.ray = gamma_sdar, abun.data=abun_sdar,
file.name= "SDAR_RIO_2016")
Seguindo
a mesma lógica acima, podemos adicionar informações à legenda da coluna.
Criaremos isso diretamente no script, sem necessidade de importar dados, e
usaremos o argumento ‘metadata=’.
> metadata_sdar <- list(SiteName =
"Borehole core: SALTARIN 1A", Latitude
= 48.54, Longitude = 28.45, Elevation= "1280 meters", Author =
"Bayona, et al. 2008", References= "Bayona, G.2008.")
> plot(beds_demo_SC_stra, d.scale=100,
d.barscale=1, d.legend=TRUE, bed.number=TRUE, gamma.ray = gamma_sdar,
abun.data=abun_sdar, metadata=metadata_sdar, file.name=
"SDAR_RIO_2016")
Ao
passo que as informações que adicionamos às colunas até agora são opcionais
(gamma ray, geoquímica, etc), outras características são praticamente
obrigatórias. É o caso de estruturas sedimentares, fósseis, bioturbação, entre
outras. Para adicionarmos esse tipo de informação, vamos usar uma segunta
tabela em excel que tem uma formatação estrita, onde cada tipo de informação é
armazenado em uma aba diferente do arquivo. O arquivo usado será o "SDAR_intervals_demo_column_meters.xlsx".
Abra-o em excel para visualização, depois vamos importá-lo ao R. Para
importarmos uma aba específica, usamos o argumento ‘sheet=’ da função read.xlsx().
#
fossils
> demo_SDAR_fos <- read.xlsx ("SDAR_intervals_demo_column_meters.xlsx",
sheet="fossils")
> plot(beds_demo_SC_stra, d.scale=100, d.barscale=1,
d.legend=TRUE, bed.number=TRUE, fossil=demo_SDAR_fos, file.name=
"SDAR_RIO_2016")
# bioturbation
> demo_SDAR_bio <-
read.xlsx("SDAR_intervals_demo_column_meters.xlsx",
sheet="bioturbation")
> plot(beds_demo_SC_stra, d.scale=100, d.barscale=1,
d.legend=TRUE, bed.number=TRUE, fossil=demo_SDAR_fos,
bioturbation=demo_SDAR_bio, biotur.sc="Reineck", file.name=
"SDAR_RIO_2016")
# time scale
> demo_SDAR_crono <-
read.xlsx("SDAR_intervals_demo_column_meters.xlsx",
sheet="cronostra")
> plot(beds_demo_SC_stra, d.scale=100, d.barscale=1, d.legend=TRUE,
bed.number=TRUE, fossil=demo_SDAR_fos,
bioturbation=demo_SDAR_bio, biotur.sc="Reineck",
geo.time.model=demo_SDAR_crono,
file.name=
"SDAR_RIO_2016")
# litho stratigraphy
> demo_SDAR_litho <-
read.xlsx("SDAR_intervals_demo_column_meters.xlsx",
sheet="lithostra")
> plot(beds_demo_SC_stra, d.scale=100, d.barscale=1,
d.legend=TRUE,
bed.number=TRUE, fossil=demo_SDAR_fos, bioturbation=demo_SDAR_bio,
biotur.sc="Reineck",
geo.time.model=demo_SDAR_crono,
litho.stra=demo_SDAR_litho, file.name=
"SDAR_RIO_2016")
Se
quisermos adicionar todas as informações de uma vez (todas abas do arquivo
anterior), podemos fazer isso direta e facilmente, criando um objeto em um novo
tipo de classe, a ‘intervals’ com a função
read_SDAR_intervals().
> path_int <-
"SDAR_intervals_demo_column_meters.xlsx"
> int <- read_SDAR_intervals(path_int)
> plot(beds_demo_SC_stra, SDAR.intervals=int,
biotur.sc="Reineck", file.name= "SDAR_RIO_2016")