\documentclass[a4paper, oneside, 10pt]{article}
\usepackage[english]{babel}
\usepackage[unicode]{hyperref}
\usepackage[utf8x]{inputenc}
\usepackage{listings}
\usepackage{graphicx}
\graphicspath{{media/}}
\date{\today}
\title{}
\author{}
\begin{document}



\section{\texorpdfstring{Angélica Robatino}{Angelica Robatino}}
\label{sec:angelica_robatino}


\includegraphics[keepaspectratio=true,width=0.8\textwidth]{bie5782/01_curso_atual/alunos/trabalho_final/rb.angelica/1011373_683738601652215_1479197151_n}


 Sou aluna de doutorado pela PG em Ecologia da Unicamp.

 Minha tese está relacionada à arquitetura hidráulica de plantas de Cerrado submetidas à disponibilidades hídricas contrastantes. Meu orientador é o Prof. Dr. Fernando R. Martins e meus co-orientadores são a Profa. Sandra M. Carmello- Guerreiro e o Prof. Dr. Rafael S. Oliveira.

\textbf{Meus exercícios:}  

\textbf{Proposta de Trabalho Final}

\textbf{Principal}

Parâmetros fitossociológicos são usados com freqüência na descrição da estrutura de comunidades vegetais. Tais parâmetros permitem a ordenação das espécies de acordo com sua importância relativa na estruturação da  comunidade. Minha proposta é criar uma função que calcule os parâmetros fitossociológicos (frequência, densidade e dominância (absolutas e relativas), além do índice de valor de importância (IVI) ), a partir de dados brutos.
O objeto de entrada seria um data.frame contendo nas colunas o código das unidades amostrais (parcelas por exemplo), as espécies e os valores de cap ou dap (cap= circunferência à altura do peito; dap= diâmetro à altura do peito). O objeto de saída seria um data.frame contendo os parâmetros calculados ordenados a partir dos valores de IVI [1]. Além disso, poderia ser gerado um gráfico mostrando a contribuição de cada parâmetro para o IVI.

[1] Trecho de uma tabela de parâmetros fitossociológicos para exemplificar o objeto de saída.
\includegraphics[keepaspectratio=true,width=0.8\textwidth]{bie5782/01_curso_atual/alunos/trabalho_final/rb.angelica/tabela}


Referências: Robatino, A. \emph{Estrutura da comunidade de trepadeiras de dois fragmentos de floresta estacional semidecidual em diferentes estágios de conservação}, 2010. Dissertação (mestrado em Botânica), UNESP, Botucatu.

Martins, F.R. \emph{Estrutura de uma floresta mesófila}. Campinas: Edunicamp, 1993.

\textbf{Plano B}

A densidade da madeira pode ser considerada um importante atributo funcional, por estar relacionada à estabilidade, defesa, estoque de C, crescimento potencial e arquitetura hidráulica. Em geral, plantas que apresentam baixa densidade da madeira associada a amplos vasos condutores, tendem a apresentar crescimento rápido, devido ao baixo custo de construção e à maior condutividade hidráulica. Por outro lado, uma elevada densidade da madeira associada a vasos condutores estreitos, pode aumentar as taxas de sobrevivência, devido à segurança biomecânica e hidráulica, além da maior resistência a diversos tipos de dano.

Sendo assim, meu plano B seria elaborar uma função que realizasse cálculos de densidade da madeira para diferentes espécies e relacionasse esses valores de densidade a valores de área do lume de vasos condutores através de uma regressão linear.
Considerando-se que a densidade da madeira é dada pela razão entre a massa seca e o volume, os dados de entrada seriam dois data.frames. No primeiro estariam em diferentes colunas, os nomes das espécies, os valores de massa seca e os valores de volume. No segundo data.frame estariam os nomes das espécies e os valores medidos da área do lume dos vasos condutores.
Os objetos de saída dessa função, seriam um data.frame contendo os valores calculados de densidade da madeira por espécie e o resultado da regressão com os devidos gráficos diagnósticos.

Referência: Pérez-Harguindeguy, N et al. New handbook for standardised measurement of plant
functional traits worldwide. \emph{Australian Journal of Botany}, 2013.

Angélica, suas propostas são um pouco específicas, mas parecem úteis. A proposta A está ok. Seria legal deixar a entrada dos dados no data frame bem explicada no help, para que a função fique aplicável para outras pessoas. Vai ter como optar por partir do cap ou do dap? Só não ficou claro o que é o gráfico da contribuição de cada parâmetro. É um gráfico para cada espécie? Ou é geral, para depois comparar áreas diferentes?

Já na proposta B, pelo que eu entendi, você espera uma relação negativa entre densidade e área dos vasos. Por que você terá dois data frames separados? Não daria para juntar em um só? Mas achei interessante!

----\emph{\href{mailto:sheinak@gmail.com}{ Sheina}}

\textbf{Página de ajuda}\lstset{frame=single}
\begin{lstlisting}
 fito.tab              package:nenhum                R Documentation



Description:

     	Calcula os parâmetros fitossociológicos, frequência, densidade e dominância (absolutas e relativas), além do índice de valor de importância (IVI).
 Permite a utilização de valores de diâmetro (dap) ou circunferência/perímetro (cap) do caule para cálculo de área basal, além da possível remoção de dados
 relativos a plantas mortas.


Usage:

fito.tab (x, dap= T, rm.mortas= T, col= F)


Arguments:


x	Data frame contendo nas colunas os códigos das unidades amostrais, nomes dos taxa de interesse e valores de diâmetro (dap) ou circunferência/perímetro (cap)
 dos caules. A coluna contendo os códigos das unidades amostrais deve receber o nome “parcelas". A coluna com dados de taxa deve receber o nome “taxon" e a coluna 
 com os valores de diâmetro ou circunferência do caule deve receber o nome “dap" ou “cap" respectivamente. A nomeação das colunas deve respeitar a grafia citada; não
 devem ser colocados acentos nem as aspas.

dap	Permite a realização do cálculo de área basal a partir de valores de diâmetro ou circunferência (perímetro) do caule. O default é a realização dos cálculos a 
 partir de dados de diâmetro 

rm.mortas	Permite a remoção de linhas do data frame que contém  dados referentes a plantas mortas(rm.mortas= T, default). Caso haja dados associados a essas plantas 
 é possível mantê-los para a realização dos cálculos, neste caso rm.mortas= F. 

col	Permite que o gráfico de saída seja colorido ou em tons de cinza, sendo este o default. 


Details:

	É indiferente o número de colunas e tipos de dados presentes no data frame de entrada na função, desde que existam colunas contendo os códigos das unidades amostrais, 
	os taxa de interesse e os valores de diâmetro ou circunferência do caule. Além disso, tais colunas devem ser nomeadas da seguinte forma “parcelas", “taxon" e “dap" ou 
	 “cap", respectivamente, sem o acréscimo de acentos ou aspas.
	A coluna “dap" ou “cap" é numérica e será tratada como tal. Para isso, o símbolo “." deve ter sido previamente definido como o separador de decimais no data frame de entrada.
	Caso haja indivíduos mortos, deve ser escrita a palavra “morta" (em letra minúscula, sem as aspas), na coluna “taxon", na linha referente a tal indivíduo. Isso permitirá a exclusão
	desse(s) indivíduo(s) dos cálculos, ou sua inserção nos cálculos pertencendo à categoria  de plantas mortas junto com outros indivíduos na mesma condição.

Value:
	fito.tab retorna um barplot com os 5 maiores valores de IVI, onde é possível observar o quanto cada parâmetro (De.R, Freq.R e Do.R) influência o IVI de cada táxon. Retorna ainda um 
	data frame com os seguintes parâmetros fitossociológicos calculados:

	De.A	Densidade absoluta - Número de indivíduos de cada táxon na área amostrada

	De.R	Densidade relativa - Porcentagem com que um táxon é encontrado na amostragem em relação ao   total de indivíduos amostrados (ni/N*100)

	Freq.A	Frequência absoluta - Porcentagem de unidades amostrais onde foi amostrado um determinado táxon (Pi/Pt*100)
	
	Freq.R	Frequência relativa - Porcentagem de ocorrência de um táxon em relação ao total de ocorrências (Freq.Ai/∑Freq.A*100)

	Do.A	Dominância absoluta - Área basal total (em m2) que um táxon ocupa na área amostral 

	Do.R	Dominância relativa - Porcentagem da área basal total ocupada por indivíduos de um determinado táxon (ABTi/ABT*100)

	IVI	Índice de valor de importância (De.R + Freq.R + Do.R)


## onde: 
	Ni= número de indivíduos do táxon “i"
	N= total de indivíduos amostrados
	Pi= unidades amostrais onde o táxon “i" foi encontrado
	Pt= total de unidades amostrais
	∑Freq.A = somatório das freqüências absolutas de todas as espécies
	ABTi= somatório da área basal do caule de todos os indivíduos do táxon “i"
	ABT= somatório da área basal do caule de todos os indivíduos amostrados


Warning:

	É imprescindível a definição do símbolo “." como separador de decimais na coluna “dap" ou “cap". Caso contrário, a função pode não funcionar corretamente.


Author:

	Angélica Robatino  (rb.angelica@gmail.com)
	Aluna de doutorado pela PG Ecologia - Unicamp - SP
	

References:
	
	Felfili, J.M. et al. Fitossociologia  no  Brasil:  métodos  e  estudos  de  caso. Viçosa: Editora UFV, 2011.
	Martins, F.R. Estrutura de uma floresta mesófila. Campinas: Edunicamp, 1993.

Example:


taxon= sample(c("sp1","sp2","sp3","sp4","morta","sp5","sp6","sp7","sp8","sp9"))
parcelas= rep(c(1:5), each=4)
dap = sample(seq (from = 1, to = 5, length = 10))
cap= sample (seq (from= 5, to= 9, length= 10))
exemplo = data.frame (parcelas,taxon,dap,cap)

fito.tab (exemplo)
fito.tab (exemplo, col=T)
fito.tab (exemplo, dap=F, rm.mortas=F)

\end{lstlisting}



\textbf{Código da função (Proposta principal)}\lstset{frame=single}
\begin{lstlisting}

## função que gera a tabela de fitossociologia, e gráfico anexo, a partir de um data frame x ##

fito.tab= function (x, dap=T, rm.mortas=T, col=F) # objeto de entrada "x" deve ser um data frame, o default é fazer os cálculos de área basal a partir do dap,  
                                                  # e remover do data frame as linhas contendo plantas mortas
{
  dados = x  # transforma o data frame inserido, no objeto dados, manipulável pela função

  colnames(dados) <- tolower(colnames(dados)) # renomeia as colunas do data frame usando apenas letras minúsculas
  
  if (rm.mortas== T) # se a opção for remover as plantas mortas do data frame 
  {
  filtro = tolower(dados$taxon) == "morta" # transforma para letra minúscula todas as palavras "morta" no objeto dados 
  dados = dados[!filtro, ] # remoção das linhas contendo plantas mortas do data frame
  cat ("\n", sum(filtro), "morta(s) removida(s) da tabela \n") # exibe na tela uma mensagem com o número de "mortas" removidas do data frame
  }

  dados$parcelas= factor(dados$parcelas) # transforma a coluna parcelas em fator
  dados$taxon= factor(dados$taxon) # transforma a coluna taxon em fator

  tabela.fito= data.frame(taxon=unique(dados$taxon)) # cria o objeto (data frame) de saída dos dados
  tabela.fito$taxon= tabela.fito[order(tabela.fito$taxon),] # cria a primeira coluna do data frame resultante

  De.A= table (dados$taxon) # calcula a densidade absoluta
  tabela.fito$De.A= as.data.frame(De.A)[,2]  # insere os dados de densidade absoluta no data frame resultante
  
  De.R= (De.A/length(dados$taxon))*100   # calcula a densidade relativa
  tabela.fito$De.R = as.data.frame(De.R)[,2]  # insere os dados de densidade relativa no data frame resultante

  npar= ncol (table (dados$taxon, dados$parcelas))  # encontra o número total de parcelas 
  dens.par= table (dados$taxon, dados$parcelas)   # mostra a densidade de cada táxon por parcela
  rowSums(dens.par>=1)  #soma as linhas onde a densidade dos taxa é >=1

  Freq.A= (rowSums(dens.par>=1)/npar)*100  # calcula a frequência absoluta
  tabela.fito$Freq.A = as.data.frame(Freq.A)[,1]  # insere os dados de frequência absoluta no data frame resultante

  Freq.T= sum(Freq.A)  # somatória de todas as frequências
  Freq.R=(Freq.A/Freq.T)*100   # calcula a frequência relativa
  tabela.fito$Freq.R= as.data.frame(Freq.R)[,1]   # insere os dados de frequência relativa no data frame

  if (dap==F) # caso sejam inseridos dados de cap (circunferência) ao invés de dap (diâmetro)
  {
    AB= ((dados$cap)^2/4*pi)   # calcula a área basal a partir dos valores de cap
    dados$AB = ((dados$cap)^2/4*pi)*0.0001    # transforma a área basal em m² e insere os valores no objeto dados
  }
  else    # caso sejam inseridos valores de dap
  {
  AB= pi*(((dados$dap)^2)/4)   # calcula a área basal a partir dos valores de dap
  dados$AB= pi*(((dados$dap)^2)/4)*0.0001   # transforma a área basal em m² e insere os valores no objeto dados
  }
  Do.A= aggregate(dados$AB, FUN= sum, by= list(dados$taxon))   # calcula a dominância absoluta
  tabela.fito$Do.A = as.data.frame(Do.A)[,2]    # insere os dados de dominância absoluta no data frame resultante

  ABt= sum(dados$AB)   # calcula a área basal total
  Do.R= (Do.A$x/ABt)*100    # calcula a dominância relativa
  tabela.fito$Do.R = as.data.frame(Do.R)[,1]   # insere os dados de dominância relativa no data frame resultante

  IVI= De.R+ Freq.R+ Do.R   # calcula o índice de valor de importância (IVI)
  tabela.fito$IVI = as.data.frame(IVI)[,2]   # insere os dados de IVI no data frame resultante
  tabela.fito= tabela.fito[order(tabela.fito$IVI,decreasing=T), ]  # ordena de forma decrescente o data frame resultante a partir dos valores de IVI

### criando o gráfico ###
  if (length(tabela.fito$taxon)<=4) # se o número de nívels na coluna "taxon" do data frame for <=4
  {
  plot.tab= tabela.fito[,c("De.R", "Freq.R", "Do.R")]  # seleciona no data frame resultante, os dados dos parâmetros densidade relativa,
                                                      # freqência relativa e dominância relativa (componentes do IVI) 
  plot.tab= as.matrix(t(plot.tab))   # transpõe os elementos do data frame gerado e o transforma em "matrix", para que esteja adequado à função barplot
  colnames(plot.tab)= tabela.fito$taxon  # nomeia as colunas da matriz
  }
  else  # se o número de nívels na coluna "taxon" do data frame for >=5
  {
  plot.tab= tabela.fito[1:5, c("De.R", "Freq.R", "Do.R")]  # seleciona no data frame resultante, apenas os 5 primeiros valores dos parâmetros, densidade relativa,
                                                        # freqência relativa e dominância relativa (componentes do IVI)
  plot.tab= as.matrix(t(plot.tab))  # transpõe os elementos do data frame gerado e o transforma em "matrix", para que esteja adequado à função barplot
  colnames(plot.tab)= tabela.fito$taxon[1:5]  # nomeia as colunas da matriz
  }

  x11() # abre uma janela gráfica
  par (bty= "L", tcl= 0.3, tcl= -0.3)  # define parâmetros gráficos (borda e marcadores)
  par(mar= c(5.1,12,4,1.5))  # define as margens do gráfico

  if (col==T) # quando é selecionada a opção gráfico colorido
  {
    barplot(plot.tab, horiz= T, border= NA, font= 3, beside=F, las=1, col= c("darkcyan","turquoise","lightcyan"),  # plota um gráfico de barras horizontais com os componentes do IVI,
          legend.text = c("De.R (%)","Freq.R (%)", "Dom.R (%)"), args.legend = list(x = "topright", cex= 1, bty="n")) # usando tons de ciano, com legenda no canto superior direito
    mtext("IVI", side= 1, line = 2.5, font= 2)  # coloca legenda no eixo X
  }
  else  # quando é mantido o default (gráfico em tons de cinza)
  {
  barplot(plot.tab, horiz= T, border= NA, font= 3, beside=F, las=1, # plota um gráfico de barras horizontais com os componentes do IVI, em tons de cinza,
        legend.text = c("De.R (%)","Freq.R (%)", "Dom.R (%)"), args.legend = list(x = "topright", cex= 1, bty="n")) # com legenda no canto superior direito
  mtext("IVI", side= 1, line = 2.5, font= 2)  # coloca legenda no eixo X
  }
  return (tabela.fito)  # retorna na tela a tabela resultante
}
\end{lstlisting}



\href{media/bie5782/01_curso_atual/alunos/trabalho_final/rb.angelica/funcao_fitotab.r}{funcao\_fitotab.r} $\rightarrow$ script da função

\href{media/bie5782/01_curso_atual/alunos/trabalho_final/rb.angelica/help_fitotab.txt}{help\_fitotab.txt} $\rightarrow$ página de ajuda

\href{media/bie5782/01_curso_atual/alunos/trabalho_final/rb.angelica/simula_fitotab.csv}{simula\_fitotab.csv} $\rightarrow$ arquivo de dados para testes

\end{document}
