Traduções desta página:

Ferramentas do usuário

Ferramentas do site


05_curso_antigo:r2014:alunos:trabalho_final:guilherme.antar:start

Guilherme de Medeiros Antar

397010_401247593224860_100000188684660_1806964_680050600_n.jpg

Mestrando em Botânica no IB-USP. Projeto intitulado“ Composição florística de campo sujo e diversidade do estrato herbáceo-subarbustivo em áreas sujeitas à ação do fogo e áreas protegidas na região do Jalapão, TO”

exec

Trabalho Final

Plano A – Retirar espécies raras

Para análises ecológicas nas quais se testa o efeito de um fator em uma comunidade, por vezes, é interessante analisar os resultados sem computar as espécies raras. Propõe-se uma função que tenha como entrada um array, contendo as listas de espécies que ocorrem nos diferentes tratamentos. Essa função terá como argumento o que é considerado raro (por exemplo, aquela espécie que ocorre menos de três vezes em cada tratamento) e terá como output um novo array sem as espécies raras além de uma lista de quais foram essas espécies e quantas vezes elas apareceram por tratamento.

Artigo que estimulou propor o plano: LOIOLA, P.P.; CIANCIARUSO, M.V.; SILVA, I.A. & BATALHA, M.A. 2010. Functional diversity of herbaceous species under different fire frequencies in Brazilian savannas. Flora 205: 674-681

Plano B – Área basal e Índice de Valor de Importância

Provavelmente um forma piorada de uma função que já existe…

A área basal é a área de uma seção transversal do tronco de uma árvore, comumente medida a 1,30 m do solo. É um valor representativo da densidade de plantas em determinada área. Propõe-se uma função que tem como input um data.frame trazendo nas colunas: espécie, número da parcela, valores de PAP (perímetro na altura do peito) e altura. Será feito então o cálculo do DAP e da área basal, inserindo assim duas novas colunas, uma com o DAP e outra com a área basal. Existira um argumento permitindo que o cálculo seja feito por indivíduos ou por fustes e outro argumento que possibilite restringir o valor mínimo de CAP tolerado para o indivíduo ser considerado árvore. A mesma função poderá então calcular o Índice de Valor de Importância (IVI) para cada espécie por meio da seguinte fórmula:

IVI = DR + FR + DoR

Na qual: - DR é a densidade relativa de uma espécie - FR é a frequência, ou seja o número de parcelas no qual ocorre aquela espécie - DoR é a dominância relativa, expressa pela razão da área basal da espécie e a soma da área basal de todas as espécies.

O output da função será então, um novo data frame contendo as novas colunas DAP, área basal e IVI.

Plano C – Otimização de tabelas de cadastramento arbóreo

Dependendo da área, o cadastramento arbóreo é necessário para se conseguir o licenciamento ambiental, sendo muito utilizado em locais com número relativamente pequeno de indivíduos, os quais não estão agrupados em bosques ou outras formações. Para a realização desse cadastramento, normalmente é desejado uma tabela, contendo as seguintes informações: Número Nome Científico Nome Popular DAP Origem Estado Fitossanitário Altura Grau de Ameaça de Extinção

A obtenção de algumas informações é um processo muito trabalhoso, pois todas as espécies devem ser procuradas, uma a uma em um banco de dados. O grau de ameaça de extinção é uma dessas. Proponho uma função (não sei se é factível) que tenha como entrada um data frame contendo uma tabela de cadastramento arbóreo com a coluna Grau de Ameaça de Extinção não preenchida e, por meio de consultas, por exemplo, a lista vermelha da IUCN (http://www.iucnredlist.org/) possa fornecer como output um data frame com essa coluna preenchida.

Oi Pi!
Me parece que a proposta B está melhor estruturada e você tem mais clareza de como realizá-la. Eu sugiro que você siga com ela. Mas você chegou a verificar o que já existe de semelhante? Se ela for realmente uma versão de algo que já existe, mas uma versão melhor adaptada para o uso que você quer fazer, tudo bem!

A proposta A também parece simples e factível, mas faltou detalhar algumas coisas:
1) o que estaria em cada dimensão do seu array de entrada?
2) Como seria aplicado seu limiar que define “raro”? O que aconteceria com um exemplo como esse:

Tratamento 1
sp1 5
sp2 8
sp3 6
sp4 0
sp5 0
sp6 0

Tratamento 2
sp1 0
sp2 0
sp3 0
sp4 10
sp5 7
sp6 12


Por fim, parece que você tem menos familiaridade com a implementação da proposta C. Assim, mantenho a sugestão de seguir com a B.

—- Débora

Plano B - Proposta atualizada

Para estudos fitossociológicos, parâmetros importantes para a descrição da comunidade por espécie são: a área basal média, a densidade relativa, a frequência relativa, a dominância relativa e o Índice de Valor de Importância (IVI). Área basal média (AB)

A área basal média é um parâmetro importante para saber o grau de influência de uma espécie na densidade geral da comunidade, apontando assim, a influência na estruturação dessa comunidade. Pode ser obtida a partir da área basal total por espécie, ou seja, a soma de todos os valores de área basal individual da espécie, dividido pelo número de indivíduos amostrados daquela espécie. A área basal individual (AB) é facilmente obtida a partir através do Diâmetro da altura do peito (DAP), como a seguir:

AB = π * (DAP/2)²

Entretanto, o que se obtém diretamente das medidas no campo é o perímetro da altura do peito (PAP), o que pode ser transformado em Diâmetro na altura do peito dividindo-se o PAP por π.

Dominância relativa (DoR)

A dominância relativa é uma medida que indica a influência de cada espécie no ecossistema. É obtida a partir da razão da área basal da espécie e a soma das áreas basais de todas as espécies.

Densidade relativa (DR)

A razão com que uma espécie aparece na amostragem pelo total de indivíduos amostrados.

Frequência relativa (FR)

A frequência relativa pode ser obtida pela razão do número de unidades amostrais nos quais ocorre a espécie pelo total de ocorrências de todas as espécies.

Índice de Valor de Importância (IVI)

O Índice de Valor de Importância pode ser utilizado para se avaliar a estrutura das espécies na área amostrada e para relacionar as espécies a fatores ambientais. É calculado a partir da seguinte fórmula:

IVI = DR + FR + DoR

Propõe-se então uma função que tem como input um data frame trazendo nas colunas: espécie, número da parcela, valores de PAP (perímetro na altura do peito) e altura. Será primeiramente transformado o valor de PAP em DAP por indivíduo e calculado a área basal por indivíduo. Posteriormente, será feito o cálculo por espécie do DAP médio, da área basal média, da densidade relativa, da frequência relativa, da dominância relativa e do Índice de Valor de Importância. Também será dada a altura máxima por espécie. Haverá um argumento (capmin) que possibilite restringir o valor mínimo de CAP tolerado para o indivíduo ser contabilizado na análise. Outro argumento possibilitará que inputs contendo ordenação por fustes e número das árvores (plaqueadas) seja transformado em uma única linha, somando-se os CAPS.

Os outputs da função serão dois data frames. O primeiro contendo uma atualização de x, com informações de DAP e área basal por indivíduo e um novo data frame contendo as informações: espécie, área basal média, densidade relativa, frequência relativa, dominância relativa e Índice de valor de importância por espécie.

Bibliografia:

Martins, F.R. 1991. Estrutura de uma floresta mesófila. Editora da Universidade Estadual de Campinas. Campinas. Santos, M.F. 2009. Análise Florística em Floresta Estadual Semidecidual na Encosta Leste da Serra do Cipó, MG. Dissertação de Mestrado da Universidade de São Paulo. São Paulo.

Obrigado Débora.

FUNÇÃO FITOSOC

 


fitosoc <- function(x,capmin=15,fuste=FALSE)  ### Cria a função fitosoc, com 3 argumentos x, papmin e fuste.

  {
  
  if(fuste==TRUE)  ### caso o argumento fuste seja verdadeiro, as linhas entre chaves serão realizadas.
  
    { 
    
    s <- tapply(x$cap,x$arvore,sum)### Soma o cap entre os fustes por árvore e coloca no objeto s
    
    x <- x[x$fuste==1,]### seleciona apenas as linhas com fuste igual a 1, tornando assim o dataframe com o mesmo tamanho que o objeto s
    
    x$somacap <- s### Adiciona a coluna somacap no data frame x provinda dos dados presentes no objeto s
    
  }
  
  y <- x[ x$cap >= capmin, ]### retira as árvores que não tem o cap necessario, definido pelo argumento capmin, para serem consideradas na análise. 
  ###Criando assim o novo dataframe y.
  
  y[do.call(order, y),] ### ordena o dataframe y, colocando as espécies em ordem alfabética.
  
  y$dap <- y$cap/pi ### calcula o dap por indivíduo a partir do cap e cria uma nova coluna no dataframe y dos daps
  
  y$areabasal <- pi*(y$dap/2)^2 ### calcula a áreabasal individual e acrescenta no data.frame y a coluna com as áreas basais indivíduais
  
  z <- aggregate(y[,"areabasal"],by=list(y$especie),mean) ### Faz um novo data frame (z)com as área basal média por espécie
  
  names(z)[1] <- "especies" ### volta a chamar a coluna que ficou Group.1 de Espécies
  
  names(z)[2] <- "areabasalmedia" ### Nomeia a coluna 2 de areabasalmedia
  
  z$individuos <- table(y$especie) ### coloca no dataframe z o número de indivíduos por espécie (provindo do dataframe y) encontrados na área
  
  z$hmax <- tapply(y$h,y$especie,max) ### adiciona a coluna hmax no dataframe z contendo a altura máxima por espécie (retirado do dataframe y)
  
  z$DoR <- z$areabasal/sum(z$areabasal)### Cria a coluna com a Dominância relativa no dataframe z
  
  z$DR <- z$individuos/sum(z$individuos)### Cria a coluna com a Densidade relativa no dataframe z
  
  z$FR <- rowSums(table(x$especie,x$parcela)!=0)/sum(rowSums(table(x$especie,x$parcela)!=0)) ### cria a coluna com a frequência relativa no dataframe z
    
  z$IVI <-apply(z[5:7], 1,sum ) ### Cria a coluna com o IVI no dataframe z somando-se as linas das colunas 5 a 7 do dataframe z
    
    
    return(list(z,y)) ### retorna o dataframe z e o dataframe y. 
}

 

HELP

 


fitosoc               package:unknown                R Documentation

~~Cálculo de parâmetros fitossociológicos~~

Description:

Calcula, a partir de um data.frame contendo dados básico de análises fitossociológicas, os parâmetros área basal média, frequência relativa, dominância relativa, densidade relativa e Indice de Valor de Importância (IVI). 

Usage:

fitosoc <- function(x,capmin=15,fuste=FALSE)

Arguments:

x    Um data frame contendo como colunas a espécie, a parcela encontrada, a altura e a circunferência na altura do peito

capmin  Um valor, em cm, pelo qual só será considerado dado a árvore que possuir circuferência da altura do peito (CAP) maior ou igual a esse número. Dependendo da análise fitossociológica, o valor para considerar a árvore pode variar, sendo o mais comumente encontrado 15 cm.

fuste   Existe a possibilidade do dataframe input estar organizado não por indivíduos mas por fustes. Sendo assim, caso o argumento fuste seja TRUE, o data frame será transformado para indivíduos e o CAP será somado para o mesmo indivíduo.


Value:

     Retorna 2 dataframes

1 dataframe contendo : espécie, área basal média, densidade relativa, frequência relativa, dominância relativa e Índice de valor de importância por espécie.
 
1 dataframe contendo uma atualização de x, com de DAP e área basal por indivíduo



Author(s):

Guilherme de Medeiros Antar
guilherme.antar@gmail.com

References:

~Martins, F.R. 1991. Estrutura de uma floresta mesófila. Editora da Universidade Estadual de Campinas. Campinas.
Santos, M.F. 2009. Análise Florística em Floresta Estadual Semidecidual na Encosta Leste da Serra do Cipó, MG. Dissertação de Mestrado da Universidade de São Paulo. São Paulo~


Examples:

### Em caso de fuste=FALSE

x <- data.frame(especie= rep(c("Piptadenia gonoacantha", "Hymenea courbaril", "Schizolobium parayba","Inga vera","Euterpe edulis","Euterpe edulis"),2, each=5), parcela=rep(c(1:5,6)),cap=round(rnorm(30,16,1)),h= round(rnorm(30,9,3.5)))
x
a <- fitosoc(x,15,fuste=FALSE)
a

### Em caso de fuste=TRUE
x <- data.frame(especie= rep(c("Anadenanthera colubrina", "Hymenea courbaril", "Schizolobium parayba","Inga vera","Euterpe edulis","Euterpe edulis"),2, each=5), parcela=rep(c(1:5,6)),cap=round(rnorm(30,16,1)),h= round(rnorm(30,9,3.5)),fuste= c(1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2),arvore=c(1:59,59))
b <- fitosoc(x,15,fuste=TRUE)
b

 

trabalho_final_final.r

Tendo em vista o proposto, a função atinge os objetivos. Futuramente, a função poderia ser melhorada, colocando-se argumentos que possibilitem a entrada de dados coletados com outras metodologias.

05_curso_antigo/r2014/alunos/trabalho_final/guilherme.antar/start.txt · Última modificação: 2020/08/12 06:04 (edição externa)