Traduções desta página:

Ferramentas do usuário

Ferramentas do site


05_curso_antigo:r2013:alunos:trabalho_final:marcosenoque:start

Marcos Enoque

dscn0211_ed.jpg

Mestre em Biodiversidade Vegetal e Meio Ambiente - Instituto de Botânica de São Paulo atualmente Doutorando pelo mesmo programa.

exec

Links relacionados: Programa de Pós-graduação em Biodiversidade Vegetal e Meio Ambiente do Instituo de Botânica de São Paulo - http://www.biodiversidade.pgibt.ibot.sp.gov.br/Web/default.aspx

PROPOSTA TRABALHO FINAL

SILVIGÊNESE COM R

imagem_silvigenese.pdf

Direto ao assunto:

PLANO A

Elaborar uma função para classificar as árvores de um levantamento segundo os critérios da silvigênese (ver imagem silvigenese acima). As medidas utilizadas para isso são Altura total (Ht) e Altura do fuste (Hf). Com base nestas medidas e em caracteristicas da copa e da arquitetura das árvores, elas são classificadas em árvores do presente, passado e futuro. Conjuntos destas árvores são agrupadas para classificar as manchas dentro da florestas em eco-unidades em desenvolvimento, em degradação ou em equilibrio. A área coberta por cada uma destas manchas é então medida e ao final obtem-se a proporção de cada uma destas manchas na área avaliada. Finalmente serão elaborados gráficos de abundancia das árvores em cada uma destas categorias, graficos de área de cobertura de cada uma das ecounidades e se possivel o mosaico silvático.

PLANO B

Elaborar uma função que mostre a relação entre Ht, Hf e DAP, buscando alguma correlação com os critérios de classificação de árvores da silvigenese.

====== Seguindo os comentários sobre a proposta do trabalho final, a seguir são apresentadas as propostas melhoradas da função que se pretende fazer

PLANO A.2

O QUE A FUNÇÃO VAI FAZER? QUE TIPOS DE DADOS PRECISA RECEBER?

Imagino uma função que a partir de uma relação de dados obtidos em campo, sobre Altura total (Ht), altura do fuste (Hf) e caracteristicas sobre a arquitetura arbórea (ver texto anexo) de uma amostragem de árvores, me forneça um objeto com a classificação silvigenica de cada uma das arvores da amostragem.

A silvigenese (ver texto anexo) leva em consideração a classificação das arvores quanto a reiteação (ramificação). As árvores reiteradas, são subclassifcadas a partir da Ht e Hf de cada árvore em relação a metade da altura da floresta.

A primeira etapa para elaboração dos mosaicos silvigenicos é saber quais árvores estão classificadas nas respectivas categorias, e em seguida conjunto de árvores na mesma classificação são agrupados para estabelecer as diferentes ecounidades dentro do mosaico do trecho que será avaliado.

A saída portanto será um objeto que forneça esta classificação tanto das árvores nas respectivas classifcações arquiteturais quanto do conjunto de árvores em ecounidades.

PLANO B.2

Muitas questões surgem no momento da avaliação silvigenica, dentre elas:

Existe uma relação do diametro da árvore com sua respectiva classificação silvigencia? Árvores do futuro limitam-se a árvores de DAP menores (até 10 cm p.ex.)? Árvores com diametros menores devem ter fustes mais altos em relação à sua altura total? Árvores de grandes diametros também terão a maior Ht?

Uma função que demonstre algumas destas correlações seria o foco do Plano B, Não sei exatamente se uma correlação linear poderia fornecer este resultado.

Novamente os dados de entrada seriam altura total (Ht), altura do fuste (Hf) e o novo dado de entrada seria DAP.

Para saída, como resultado, algum fator que apresentasse uma correlação e que determinasse em qual das categorias silvigenicas cada árvore pertenceria.

silvigenese_referencial_teorico-.txt

Comentários

Primeira versão

Não ficou claro o que a função vai fazer e que dados ela precisa receber para isto. Na primeira proposta, qual(is) das etapas da análise de silvigênese a função vai realizar, e quasi dados são necessários? Na segunda, não entendi como a correlação entre medidas e classificação pode ser medida.

Em resumo, são promissoras, mas ainda estão vagas. Pense em funções que tenha generalidade, e defina claramente as entradas e saídas (seções 'arguments' e 'values' da página de ajuda).

Segunda versão

A.2

A função então receberia uma planilha com medidas de cada árvore e retornaria a classificação de cada uma, certo? Além de altura total e do fuste que outra medidas entram? No texto q vc deixou estão indicadas várias, mas ainda não está claro para mim quais são usadas e como. Se para vc está claro, vá em frente.

Parece que a primeira parte da função será uma sequência de testes lógicos ou 'if' s, o que é bem simples. Já para a segunda parte vc vai precisar da informação de posição da árvores e de algum critério para agregá-las em econunidades, o que pode ser complicado. Sugiro que vc feche a primeira parte em uma função + página de ajuda para então partir para a segunda, se tiver tempo.

Se os dados tibverem também a classificação de cada árvore feita pelo pesqusiador em campo, vc poderia incluir em sua função algum tipode comparação entre isto e o resultado da própria função.

B.2

A saída da função não está clara, enm como a entrada poderia gerá-la.

Função Silvigenese

Considerações a respeito da função Silvigenese

Os comentários e sugestões a respeito da função silvigênese não foram seguidos a risca seja em parte pela dificuldade encontrada no trabalho no ambiente do R, seja pelo prazo de entrega da função.

Assim, optei por apresentar uma função (“que julgo bem simples”) para classificação das árvores segundo os critérios silvigenicos.

*Página de ajuda*


silvigenese                package:nenhum                    R Documentation


Função para classificação das arvores de acordo com critérios silvigenicos proposto por Torquebiau (1986)

Descrição:

Realiza o agrupamento das árvores segundo  classificação silvigenica [presente(P1A,P1B,P2A,P2B), passado (Pas) e futuro(Fut)] baseado nas caracteristicas da arquitetura da copa (simpodial, monopodial e ausente), na relação entre a altura de cada individuo (ht) em relação ao ponto de inversão ecológica (pie=Maior valor de ht/2) e da relação da altura do fuste (hf) e altura (ht). A função retorna uma tabela e um plot com a abundancia de arvores em cada uma das classes.


  Uso:

      silvigenese(dados)

 
   Argumentos:
   
   
   dados     dados é um objeto de classe     (data.frame) com n observações e 3 variaveis       
             obrigatórias: ht, hf e copa.
           
  
 Detalhes:
 
           ht = corresponde a altura total de cada individuo amostrado
           hf = altura do fuste de cada    individuo amostrado
           copa = classificação da copa   quanto a arquitetura se simpodial,     
           monopodial ou ausente - Para esta   classificação foram usados critérios     
           adotados em Bell,A.D.& Bryan,A.    (2008)
  
  
  Os Critérios de classificação silvigênica  estão baseados na arquitetura das árvores e na  relação entre estas árvores, sua ramificação e  a luz nos diferentes estratos da floresta.
  
  - Na silvigênese existe dentro da floresta uma região considerada como transição   
   entre uma condição de maior luminosidade    para uma outra com menos luz, esta zona 
   de transição é chamada de ponto de    inversão ecologica = pie
  
   Portanto: Após a leitura dos dados, o   passo seguinte é calcular o (pie) que   
   equivale a metade da altura da floresta 
 
 -pie = Maior valor de altura de arvores /2
 
 -ht.pie - relação entre altura de cada    arvore em relação ao pie
     
 A primeira classificação a partir de dados   da copa dados$copa
  
       - simpodial == presente 
 
       - monopodial == futuro
 
       - ausente == passado
 
       As arvores do presente são também                   subclassificadas de acordo com a ht em relação    à pie.   
     
           - Arvores do presente com ht <= pie   são classificadas como Presente 1
     
                ht/pie  <= 1  (Presente 1)
  
       - Arvores do presente com ht > pie são classificadas como Presente 2
 
             ht/pie  > 1  (Presente 2)
 
 
 Cada uma destas Classes do presente são ainda subclassificadas em função do fuste em relação a altura de cada arvore.
    
    Assim tanto arvores do Presente 1 ou       Presente 2 podem ser classificadaas em Alta ou    Baixa.   
    
    Esta distinção é dada com relação à altura do fuste e a metade da altura de cada individuo.   
    
    Quando o fuste do individuo está acima da metade da altura da arvore ele receberá a subclassificação "A" de alta e se o fuste está  localizado abaixo da metade da altura da  arvore, esta arvore será classificada como "B"  de baixa (Torquebiau 1986).
 
 Portanto ao final teremos as arvores do    Presente classificadas em:
 
       - Presente 1A (P1A) = árvore baixa de    fuste alto
 
              hf/ht > 0.5    
   
            - Presente 1B (P1B) = árvore baixa de    fuste baixo                         
                
                    hf/ht <= 0.5
              
         
       - Presente 2A (P2A) = árvore alta de    fuste alto
  
           hf/ht > 0.5
           
                                                  
                                                    
    - Presente 2B (P2B) = árvore alta de fuste baixo
 
           hf/ht <= 0.5
 
 
 Valores:
 
   - Retorna uma tabela e um gráfico (plot) com abundância nas classes silvigenicas apenas exibido na tela. 
 
   
 Autor:
 
 Marcos Enoque Leite Lima
 
 
 
 marcosenoque@gmail.com
 
 
 
 
 
 References:
 
 Bell, A.D. 2008. Plant Form: an illustrated    guide to flowering plant morphology. 2    London:Oxford University, Pp 431.
 
 
 Torquebiau, E.F. 1986. Mosaic patterns in    dipteriocarp rainforest in Indonesia and their implications for pratical forestry. Journal of Tropical Ecology 2:(4):301-325.
 
 
 
 Exemplos
 
 teste_funcao_silvigenese.csv
 
 
 
 

Função Silvigenese

*Código da função *


   
  
    silvigenese<-function(dados)
{              
      {

        dados<-read.csv(dados, sep=",",   header=T) # Os dados deve conter ("n.arv",   "ht", "hf" e "copa"-monopodial/simpodial ou   ausente)           

        pie<-(max(dados$ht)/2) # pie - ponto  de inversão ecologica = Metade da altura da  floresta isto é: metade da altura da maior  arvore medida

        ht.pie<-dados$ht/pie  # relação  entre altura total de cada indivíduo (ht) e  Ponto de inversao ecologica (pie) 
                              # Esta relação  indica quais arvores são do presente 1 e quais  são do presente 2.
                              # Valores <= 1  (classifica as árvores em Presente 1)
                              # Valores > 1  (Classifica as árvores em Presente 2)      

        dados$copa<-as.character(dados$copa)   # Primeiro precisa transformar "copa" de   factor para character

        class.arv<-dados$copa # objeto para   guardar primeiras classificações das árvores

        class.arv[class.arv=="monopodial"]<- "futuro" # transforma o campo monopodial em  futuro
        class.arv[class.arv=="simpodial"]<- "presente" # transforma o campo simpodial em  presente
        class.arv[class.arv=="ausente"]<- "passado" # transforma o campo ausente em  passado
        str(class.arv)
        tabela<-table(class.arv) # Aqui  obtem-se a classificação geral das árvores sem  diferenciar as subclasses do Presente
      }
        
                    {
          
                       ht.pie<-  as.numeric(ht.pie)
                       hf.ht<-  as.numeric(dados$hf/dados$ht)
                       class.silv<-  as.data.frame(cbind(class.arv,ht.pie,hf.ht))
                       class.silv$ht.pie<-  as.character(class.silv$ht.pie)
                       class.silv$hf.ht<-  as.character(class.silv$hf.ht)
                        Presente1<-  class.silv[class.silv$class.arv=="presente"  [1]&class.silv$ht.pie<=1[1],] # selecionado de   acordo com a ecounidade e respectivo valor de   ht.pie
                      # na subclassificação   correspondente a arvores do presente 1
    
                    }
                

      
                              {
  
                                P1A<-  class.silv[class.silv$class.arv=="presente"  [1]&class.silv$ht.pie<=1[1]&class.silv$hf.ht>0  .5[1],] # selecionado de acordo com a   ecounidade e respectivo valor de hf.ht
  
                                # na   subclassificação correspondente a arvores do   presente 1A
  
                                  P1A$class.arv<-"P1A"
  
                                P1B<-  class.silv[class.silv$class.arv=="presente"  [1]&class.silv$ht.pie<=1[1]&class.silv$hf.ht<=  0.5[1],] # selecionado de acordo com a   ecounidade e respectivo valor de hf.ht
  
                                # na   subclassificação correspondente a arvores do   presente 1B
  
                                  P1B$class.arv<-"P1B"
  

                                }
  
  
      
                                        {
                                              Presente2<-  class.silv[class.silv$class.arv=="presente"  [1]&class.silv$ht.pie>1[1],] # selecionado de   acordo com a ecounidade e respectivo valor de   ht.pie
  
                                              # na subclassificação correspondente a arvores   do presente 2
  
  
                                        }
      
      
                                                {  P2A<-  class.silv[class.silv$class.arv=="presente"  [1]&class.silv$ht.pie>1[1]&class.silv$hf.ht>0.  5[1],] # selecionado de acordo com a   ecounidade e respectivo valor de hf.ht
  
                                                   # na subclassificação correspondente a arvores   do presente 2A
 
                                                   P2A$class.arv<-"P2A"
  
 
                                                   P2B<-  class.silv[class.silv$class.arv=="presente"  [1]&class.silv$ht.pie>1[1]&class.silv$hf.ht<=0  .5[1],] # selecionado de acordo com a   ecounidade e respectivo valor de hf.ht
  
                                                   # na subclassificação correspondente a arvores   do presente 2B
  
                                                   P2B$class.arv<-"P2B"
                                                 
                                                 
                                                   }
  
           
    
            {
                
              Fut<-  as.data.frame(class.silv$class.arv=="futuro")   # arvores do futuro
    
              Fut<-as.character(Fut)
    
              Fut<-  class.silv[class.silv$class.arv=="futuro",]
    
              Fut$class.arv<-"Fut"
      
              str(Fut)
    
              Pas<-  as.data.frame(class.silv$class.arv=="passado")   # arvores do passado
    
              Pas<-as.character(Fut)  
    
              Pas<-  class.silv[class.silv$class.arv=="passado",]
    
              Pas$class.arv<-"Pas"
   
              str(Pas)
    
              tabela.silvigenese<-  table(c(Fut$class.arv,Pas$class.arv,P1A$class.  arv,P1B$class.arv,P2A$class.arv,P2B$class.arv)  )
  
              }

          {
            plot(tabela.silvigenese,   xlab="class.silvigenica", ylab="número de   arvores", main="Analise silvigênica")
  
            }
{
        return(tabela.silvigenese)
        return(plot(tabela.silvigenese))
          }  

}

Função Silvigenese

*anexos *


Página de ajuda

silvigenese_help.txt

Código da Função

silvigenese.r

Referencial teórico

silvigenese_referencial_teorico-.txt

Dados utilizados para elaborar a função p1_silv.csv

Dados para testar a função

teste_funcao_silvigenese.csv

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