\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{Luciana de Campos Franci}{Luciana de Campos Franci}}
\label{sec:luciana_de_campos_franci}


\includegraphics[keepaspectratio=true,width=0.8\textwidth]{bie5782/01_curso_atual/alunos/trabalho_final/lucianafranci/dsc07389}

Aluna de doutorado em Ecologia.
Departamento de Botânica, Instituto de Biologia, UNICAMP.

Título do projeto de pesquisa: Estrutura populacional e história de vida da espécie de liana \emph{Bignonia campanulata} Cham. (Bignoniaceae) em um fragmento de Floresta Estacional Semidecídua no Sudeste do Brasil

Orientador: Fernando Roberto Martins

\subsection{\texorpdfstring{Meus exercícios}{Meus exercicios}}
\label{sec:meus_exercicios}




\subsection{\texorpdfstring{Proposta de Trabalho Final}{Proposta de Trabalho Final}}
\label{sec:proposta_de_trabalho_final}


\paragraph{\texorpdfstring{Código da Função (Plano A)}{Codigo da Funao Plano A}}
\label{sec:codigo_da_funao_plano_a}


Uma função para analisar o design mecânico de plantas utilizando o cálculo do fator de segurança. O fator de segurança é a razão entre o diâmetro observado (Dobs) e o diâmetro crítico. O diâmetro crítico (Dcrit) é calculado pela fórmula Dcrit = 0,109H3/2, onde H é a altura e 0,109 é produto da constante de proporcionalidade (0,792) multiplicada pela razão entre o módulo de elasticidade (E) e a densidade da madeira (ρ). Portanto, se os dados de E e ρ não estiverem disponíveis para a espécie é recomendável usar  o valor 0,109, calculado por McMahon (1973), pois segundo e Niklas (1993) E. ρ-1 é constante em gimnospermas e dicotiledôneas arbóreas. A entrada dos dados seria um data frame composto por: Dobs, Dcrit, H, E e ρ. O default será para considerar como existentes os dados de E e ρ , caso eles não existam será utilizada na equação a constante 0,109. O output da análise deverá resultar nos valores de fator de segurança para cada indivíduo e em um gráfico de dispersão no qual a variável independente deverá ter a altura e na variável dependente, o fator de segurança, ambos logaritmizados.

\paragraph{\texorpdfstring{Plano B}{Plano B}}
\label{sec:plano_b}


Uma função para dividir uma população em classes de tamanho. Para isso será utilizada a regra de Sturges: k= 1+ 3,322(log10n), onde n é o número de indivíduos, para se saber o número de classes. A amplitude das classes será calculada através da fórmula ac= At.k-1, sendo At o número de classes. A entrada dos dados deverá ser um data frame com as altura de cada indivíduo em cada linha. O output deverá resultar nas classes já divididas e um histograma com as classes no eixo x.

\paragraph{\texorpdfstring{Comentários}{Comentarios}}
\label{sec:comentarios}


Ótimas propostas: gerais, factíveis mas não triviais. Para a primeira (que prefiro), considere que o usuário pode querer fazer o cálculo para uma única árvore, então a entrada não precisa ser necessariamente um dataframe. Muitas funções tem argumentos de entrada alterantivos, como \texttt{cor}. Outro aprefeiçoamento (se vc tiver tempo) é não repetir o valor da densidade para indivíduos da mesma espécie. 

\subsection{\texorpdfstring{Código da Função (Plano A)}{Codigo da Funao Plano A}}
\label{sec:codigo_da_funao_plano_a2}
\lstset{frame=single}
\begin{lstlisting}

safety.factor <- function (h, d, E = NULL, ro = NULL) {

  if(!is.numeric(h)&!is.integer(h)){ # Verificando se h é inteiro ou numérico
    stop("h não é númerico ou inteiro")
  }
  
  if(!is.numeric(d)&!is.integer(d)){ # Verificando se d é inteiro ou numérico
    stop("d não é númerico ou inteiro")
  }
  
  if(!is.null(E) & !is.null(ro)){ # se E e ro não são nulos verificar se são numéricos ou inteiros
    if(!is.numeric(E)&!is.integer(E)){ # Verificando se E é inteiro ou numérico
      stop("E não é númerico ou inteiro")
    }
    if(!is.numeric(ro)&!is.integer(ro)){ # Verificando se ro é inteiro ou numérico
      stop("ro não é númerico ou inteiro")
    }
  }
  
  if(is.null(E) & !is.null(ro)){ # Verificar se a pessoa informou o E e o ro.
    stop("Valores de E estão informados mas valores de ro não estão informados")
  }
  
  if(is.null(ro) & !is.null(E)){ # Verificar se a pessoa informou o E e o ro.
    stop("Valores de ro estão informados mas valores de E não estão informados")
  }
  
  if(is.null(E) & is.null(ro)){ # comparando os comprimentos de h e d quando não tem valores de E e ro
    if(length(h) != length(d)){
      stop("vetores h e d não tem mesmo comprimento")
    } 
  }
  
  if(!is.null(E) & !is.null(ro)){ # comparando os comprimentos de h e d quando tem valores de E e ro
    if(length(E) != length(ro)){
      stop("Vetores E e ro não tem mesmo comprimento")
    }
    if(length(E) != length (h)){ # Comparando se E tem o mesmo comprimento de h e d
      stop("Vetor E não tem mesmo comprimento de h e d")
    }
    if(length(ro) != length(h)){ # Comparando se ro tem o mesmo comprimento de h e d
      stop("Vetor ro não tem mesmo comprimento de h e d")
    }
  }
  
  if(is.null(E) & is.null(ro)) { # se os valores de E e ro não existirem
    dcrit <- 0.109*(h^1.5) # vetor do diâmetro crítico
  }
  
  if(!is.null(E) & !is.null(ro)){
    dcrit  <- 0.792*(E/ro)*(h^1.5) # vetor do diâmetro crítico quando existe E e ro no dataframe
  }
  
  dif <- d - dcrit # verificando se há valores observados menores que os valores críticos
  
  if(sum(dif < 0) > 0){ # somando quantos valores são menores que zero
    cat("Há valores de diâmetro observado menores que valor de diâmetro crítico calculado")
  }
  
  bending <- d/dcrit # cálculo do fator de segurança  
  windows()
  plot(h, bending, xlab = "Altura", ylab = "Fator de segurança", ylim = c(0,max(bending)))
  abline(h=1, col = "red")
  return(bending)
}
\end{lstlisting}



\subsection{\texorpdfstring{Página de Ajuda}{Pagina de Ajuda}}
\label{sec:pagina_de_ajuda}
\lstset{frame=single}
\begin{lstlisting}

safety.factor				package: nenhum					R Documentation


Função para análise da estabilidade mecânica de plantas


Description:

	Calcula o fator de segurança para plantas considerando o diâmetro crítico e observado. Plota 
	um gráfico do fator de segurança em função da altura das árvores. 


Usage:

	## Default method:
	safety.factor(x, y, E = NULL, ro = NULL)


Arguments:

	x	Altura de cada indivíduos em metros.
	y	Diâmetro de cada indivíduos em centímetros.
	E 	módulo de elasticidade de cada indivíduo.
	ro	densidade da madeira de cada indivíduo.


Details:

	A função é aplicável apenas quando a altura está em metros e o diâmetro em centímetros. 
	Se os valores de E e ro não estiverem disponíveis a função utilizará a constante 0.109, a qual é
	produto da constante de proporcionalidade (0,792) multiplicada pela razão entre o módulo de 
	elasticidade (E) e a densidade da madeira (ro). Quandos os dados de E e ρ não estão disponíveis
	para a espécie é recomendável usar o valor 0,109, calculado por McMahon (1973), pois segundo
	Niklas (1993) E.(ro^-1) é constante em gimnospermas e dicotiledôneas arbóreas. 
	A função retorna um vetor com os valores do fator de segurança (razão entre diâmetros observados
	e diâmetros críticos).
	A linha plotada no gráfico indica o limite crítico de tombamento elástico.


Author (s):

	Luciana de Campos Franci
	Aluna de Doutorado em Ecologia na Universidade Estadual de Campinas, Campinas, Brasil.


References:

	McMahon, T. 1973. Size and Shape in Biology. Science 179:1201-1204.
	Niklas, K. J. 1993. The scaling of plant height: a comparison among major plant clades and 
	anatomical grades. Annal of Botany 72:165-172.


Examples:

# Cálculo do fator de segurança quando os valores de E e ro não estão disponíveis. (Dados fictícios)
diametro <- c(0.9, 2, 2, 2.07, 2.71, 1.3, 2.05, 1.7, 1.08, 0.8) # Diâmetros dos indivíduos
altura <- c(0.66, 2.2, 1.46, 1.7, 1.78, 1.16, 1.8, 1.02, 0.71, 0.47) # Alturas dos indivíduos
safety.factor(h = altura, d = diametro)

# Cálculo do fator de segurança quando os valores de E e ro estão disponíveis. (Dados fictícios)
diametro <- c(0.9, 2, 2, 2.07, 2.71, 1.3, 2.05, 1.7, 1.08, 0.8) # Diâmetros dos indivíduos
altura <- c(0.66, 2.2, 1.46, 1.7, 1.78, 1.16, 1.8, 1.02, 0.71, 0.47) # Alturas dos indivíduos
elas <- c(0.2, 0.5, 0.6, 0.6, 0.5, 0.4, 0.5, 0.3, 0.2, 0.5) # Módulo de elasticidade dos indivíduos
densi <- c(0.7, 0.6, 0.6, 0.5, 0.5, 0.4, 0.6, 0.8, 0.7, 0.6) # Densidade da madeira dos indivíduos
p.decrit <- safety.factor(h = altura, d = diametro, E = elas, ro = densi)
\end{lstlisting}



\subsection{\texorpdfstring{Arquivo da função}{Arquivo da funao}}
\label{sec:arquivo_da_funao}


Arquivo da função \href{media/bie5782/01_curso_atual/alunos/trabalho_final/lucianafranci/funcao_fator_de_seguranca.r}{funcao\_fator\_de\_seguranca.r}
Arquivo contendo a ajuda da função \href{media/bie5782/01_curso_atual/alunos/trabalho_final/lucianafranci/help_da_função.txt}{help\_da\_funcao.txt}

\end{document}
