====== Marcos Enoque ====== {{:bie5782:01_curso_atual:alunos:trabalho_final:marcosenoque:dscn0211_ed.jpg?200|}} 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 {{:bie5782:01_curso_atual:alunos:trabalho_final:marcosenoque: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. {{:bie5782:01_curso_atual:alunos:trabalho_final:marcosenoque: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 {{:bie5782:01_curso_atual:alunos:trabalho_final:marcosenoque:silvigenese_help.txt|}} Código da Função {{:bie5782:01_curso_atual:alunos:trabalho_final:marcosenoque:silvigenese.r|}} Referencial teórico {{:bie5782:01_curso_atual:alunos:trabalho_final:marcosenoque:silvigenese_referencial_teorico-.txt|}} Dados utilizados para elaborar a função {{:bie5782:01_curso_atual:alunos:trabalho_final:marcosenoque:p1_silv.csv|}} Dados para testar a função {{:bie5782:01_curso_atual:alunos:trabalho_final:marcosenoque:teste_funcao_silvigenese.csv|}}