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



\section{\texorpdfstring{Nielson Pasqualotto}{Nielson Pasqualotto}}
\label{sec:nielson_pasqualotto}


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


Doutorando da Ecologia Aplicada da ESALQ/CENA (USP), sob a orientação do Prof. Dr. Adriano G. Chiarello. Em minha tese vou investigar o efeito do ciclo das culturas agrícolas do nordeste paulista nos padrões espaciais de ocorrência da lebre europeia, espécie exótica e potencialmente invasora, assim como sua coocorrência com o único lagomorfo nativo que ocorre no Brasil, o tapiti.
\\

\begin{center}
\line(1,0){250}
\end{center}



\subsection{\texorpdfstring{I. Meus exercícios}{I Meus exercicios}}
\label{sec:i_meus_exercicios}


Aqui você pode acessar meus \href{http://ecor.ib.usp.br./doku.php?id=05_curso_antigo:r2019:alunos:trabalho_final:pasqualotto:exercicios_resolvidos}{.:Exercícios Resolvidos}.
\\

\begin{center}
\line(1,0){250}
\end{center}



\subsection{\texorpdfstring{II. Trabalho Final}{II Trabalho Final}}
\label{sec:ii_trabalho_final}


\subsubsection{\texorpdfstring{II.I Plano A: Horário de atividade de espécies por local e data}{III Plano A Horario de atividade de especies por local e data}}
\label{sec:iii_plano_a_horario_de_atividade_de_especies_por_local_e_data}


\paragraph{\texorpdfstring{Contextualização}{Contextualizaao}}
\label{sec:contextualizaao}


Distúrbios antropogênicos podem causar mudanças de comportamento em espécies silvestres. Recentemente, há um crescente número de estudos (Gaynor et al. 2018) investigando se as espécies estão aumentando sua noturnalidade em ambientes intensamente modificados pelo homem e, portanto, evitando estarem ativas quando a maior parte da população humana também está. Todavia, investigar essa pergunta pressupões um tratamento apropriado dos registros de atividade das espécies, classificando os em diurnos, noturnos e crepusculares em função da localização geográfica e data e hora dos registros. Isso se faz necessário já que a posição do sol vista de um planeta qualquer depende, essencialmente, da posição do observador em determinado tempo, assim como de variáveis astronômicas intrínsecas do planeta em questão (e.g., velocidade de deslocamento em sua órbita em torno do Sol, ângulo entre o eixo de rotação e plano de órbita, etc.).

Frente a esse contexto, a proposta de função aqui apresentada terá como objetivo classificar os registros de atividade de uma determinada espécie foco em diurnos, noturnos ou crepusculares para qualquer localização geográfica do globo terrestre. Para isso, será utilizado como dado de entrada um \texttt{data.frame} contendo necessariamente colunas com a data e hora do registro, latitude, longitude e nome da espécie. Neste \texttt{data.frame}, cada linha corresponderá a um registro diferente (i.e., uma data e hora diferente) das espécies, podendo certamente haver mais de um registro da mesma espécie. A função retornará, para a espécie de interesse, uma \texttt{lista} contendo dois objetos. Na primeira posição haverá um \texttt{data.frame} com todos os dados de entrada mais uma coluna nova contendo a classificação dos registros em quatro níveis (diurno, noturno, crepuscular matutino e crepuscular vespertino). Na segunda posição, por sua vez, haverá outro \texttt{data.frame} contendo as variáveis astronômicas calculadas (colunas) para cada registro (linhas) e necessárias para a essa classificação, caso o usuário necessite consultá-las.

\textbf{Entrada:} dayNightR (\texttt{dados}, \texttt{especie}, \texttt{fuso})
\begin{itemize}
  \item \texttt{dados}: \texttt{data.frame} contendo pelo menos quatro colunas:

  \begin{itemize}
    \item \texttt{time}: data, hora e fuso de cada registro em um único objeto (classe: POSIX.ct).
    \item \texttt{lat}: latitude de cada registro em graus decimais (classe: numeric).
    \item \texttt{lon}: longitude de cada registro em graus decimais (classe: numeric).
    \item \texttt{especie}: nome da espécie foco de cada registro com uma categoria (classe: character)
  \end{itemize}
  \item \texttt{fuso}: vetor contendo o nome do fuso horário (\emph{time zone}) de onde os registros foram coletados (classe:  character).
\end{itemize}


\textbf{Verificando os parâmetros:}
\begin{itemize}
  \item O objeto \texttt{dados} é um \texttt{data.frame}? Senão, retorne a mensagem: “O objeto dados precisa ser um data.frame)”.
  \item O objeto \texttt{dados} contém as colunas data e hora dos registros (\texttt{time}), latitude (\texttt{lat}), longitude (\texttt{lon}) e espécie (\texttt{especie})? Senão, retorne a mensagem: “O objeto dados deve conter, no mínimo, as colunas time, lat, lon e especie)”.
  \item A coluna \texttt{time} é da classe \texttt{POSIXct}? Senão, retorne a mensagem: “O objeto time deve ser da classe POSIXct”.
  \item A coluna \texttt{lat} é um vetor numérico? Senão, retorne a mensagem: “O objeto lat deve ser da classe numeric”.
  \item A coluna \texttt{lon} é um vetor numérico? Senão, retorne a mensagem: “O objeto lon deve ser da classe numeric”.
  \item A coluna \texttt{especie} é um vetor de caracteres? Senão, retorne a mensagem: “O objeto especie deve ser da classe character”.
\end{itemize}


\textbf{Pseudocódigo:}
\begin{enumerate}
  \item Checa se o pacote \texttt{suncalc} está instalado. Se sim, carrega o pacote. Do contrário, para a função e retorna a mensagem de erro “pacote \texttt{suncalc} não encontrado, favor instalar”.
  \item Cria o objeto \texttt{dados.sp} após restringir o objeto \texttt{dados} em função da espécie de interesse.
  \item Cria a coluna \texttt{date} (classe \texttt{Date}) no objeto \texttt{dados.sp} a partir da coluna \texttt{time}.
  \item Cria o \texttt{data.frame} \texttt{sunNighTimes}, por meio da função \texttt{getSunlightTimes} do pacote \texttt{suncalc}, utilizando as colunas \texttt{date}, \texttt{lat} e \texttt{lon} do objeto \texttt{dados.sp}.

  \begin{enumerate}
      \item A função \texttt{getSunlightTimes} calculará, para cada registro do objeto \texttt{dados.sp}, as variáveis astronômicas:

          \begin{itemize}
        \item\texttt{sunriseEnd} (horário em que o sol terminou de nascer em determinado dia e local; fim do crepúsculo matutino e \textbf{início do dia}).
        \item\texttt{sunset} (horário em que o sol não pode mais ser visto no horizonte em determinado dia e local; fim do dia e \textbf{início do crepúsculo vespertino}).
        \item\texttt{night} (horário em que está escuro suficiente para observações astronômicas ao ar livre em determinado dia e local; fim do crepúsculo vespertino e \textbf{início da noite}).
        \item\texttt{nightEnd} (horário em que não mais está escuro suficiente para observações astronômicas ao ar livre em determinado dia e local; fim da noite e \textbf{início do crepúsculo matutino}). 
      \end{itemize}
      \item O \texttt{data.frame} \texttt{sunNighTimes} terá, portanto, além das colunas \texttt{date}, \texttt{lat} e \texttt{lon}, colunas contendo as variáveis astronômicas acima descritas e necessárias para classificar os registro do objeto \texttt{dados.sp}.
    \end{enumerate}
  \item Cria o vetor \texttt{dayNightTwil} contendo, em cada posição, a classificação de cada registro do objeto \texttt{dados.sp} em noturno, diurno, crepuscular vespertino ou crepuscular matutino. Para isso:

  \begin{enumerate}
      \item Se o valor da coluna \texttt{times} do objeto \texttt{dados.sp} (data e hora do registro da espécie) é maior ou igual \texttt{nightEnd} e menor que \texttt{sunriseEnd}, classifica o registro como \textbf{crepúsculo matutino};
      \item Se o valor da coluna \texttt{times} do objeto \texttt{dados.sp} (data e hora do registro da espécie) é maior ou igual \texttt{sunriseEnd} e menor que \texttt{sunset}, classifica o registro como \textbf{diurno};
      \item Se o valor da coluna \texttt{times} do objeto \texttt{dados.sp} (data e hora do registro da espécie) é maior ou igual \texttt{sunset} e menor que \texttt{night}, classifica o registro como \textbf{crepúsculo vespertino};
      \item Do contrário, classifica cada um dos demais registros como \textbf{noturno}.
    \end{enumerate}
  \item Armazena esse vetor como uma nova coluna do objeto \texttt{dados.sp}.
\end{enumerate}


\textbf{Saída:}
\begin{itemize}
  \item Uma \texttt{lista} com duas posições:

  \begin{itemize}
    \item \texttt{data.frame}= dados de entrada com a coluna nova de classificação dos registros.
    \item \texttt{data.frame}= variáveis utilizadas para a classificação dos registros.
  \end{itemize}
  \end{itemize}


\textbf{Referências:}
      \begin{itemize}
  \item Gaynor, K. M., Hojnowski, C. E., Carter, N. H. \& Brashares, J. S. The influence of human disturbance on wildlife nocturnality. Science 360, 1232–1235 (2018).
\end{itemize}


\\

\begin{center}
\line(1,0){250}
\end{center}



\begin{center}
\line(1,0){250}
\end{center}



\subsubsection{\texorpdfstring{II.II Plano B: Métricas de paisagem em múltiplas escalas espaciais}{IIII Plano B Metricas de paisagem em multiplas escalas espaciais}}
\label{sec:iiii_plano_b_metricas_de_paisagem_em_multiplas_escalas_espaciais}


\paragraph{\texorpdfstring{Contextualização}{Contextualizaao}}
\label{sec:contextualizaao2}


Planejamento de ações de conservação e manejo de vida silvestre tem maior chance de sucesso quando se conhece, dentre muitos outros aspectos, os requerimentos mínimos de habitat de cada espécie foco. Modelos de habitat são frequentemente utilizados para investigar tais requisitos, estimando a força de associação entre abundância e/ou ocorrência de determinada espécie com variáveis preditoras ambientais. Estudos prévios sugerem que a quantificação dessas preditoras em escalas espaciais apropriadas (i.e., escala de efeito; escala cuja força de associação entre variável preditora e resposta é maior) é determinante para se obter estimativas realistas e confiáveis (Jackson and Fahrig 2015; Miguet et al. 2016).

\centering\includegraphics[keepaspectratio=true,width=0.8\textwidth]{bie5782/01_curso_atual/alunos/trabalho_final/pasqualotto/escala_efeito}

\textbf{Fonte:} Miguet et al. 2016.

Assim, o objetivo da proposta de função aqui apresentada é criar variáveis preditoras para análises de escala de efeito. As escalas espaciais serão representadas aqui por círculos concêntricos (i.e., polígonos circulares de diferentes raios), gerados ao redor de cada unidade amostral (centro dos círculos). Para isso, será utilizado como dado de entrada 1) mapa vetorial de cobertura do solo, georreferenciado, contendo a identificação de cada polígono em relação a uma das classes de cobertura (mapa vetorial de polígono; \texttt{SpatialPolygonsDataFrame}); 2) mapa vetorial, georreferenciado no mesmo sistema de referência do mapa de cobertura, contendo a localização geográfica e o nome das unidades amostrais (mapa vetorial de ponto; \texttt{SpatialPointsDataFrame}). O usuário definirá o tamanho, dado pelo raio (i.e., 309 m e 798 m), e o nome (i.e., 30 ha e 200 ha) das escalas espaciais de interesse. Para cada raio diferente será gerado um \texttt{SpatialPolygonsDataFrame} diferente referente a cada escala espacial. Assim, em cada \texttt{SpatialPolygonsDataFrame} de cada escala haverá polígonos circulares de mesma área. Após a intersecção do mapa de cobertura do solo com cada \texttt{SpatialPolygonsDataFrame}, gerados pelos diferentes raios, será calculada a área ocupada por cada classe de cobertura do solo em relação a cada unidade amostral. A função deve retornar um \texttt{data.frame} contendo, para cada unidade amostral (linhas), a quantidade de área ocupada, em hectares, por cada classe de cobertura do solo de interesse, em cada escala espacial de interesse (colunas).

\textbf{Entrada}: multQuantR (\texttt{map}, \texttt{amost}, \texttt{raio.esc}, \texttt{nome.esc}, \texttt{classe.uso})
\begin{itemize}
  \item \texttt{map}: um mapa de uso e cobertura do solo, georreferenciado, contendo polígonos com suas respectivas classes de cobertura (classe: \texttt{SpatialPolygonsDataFrame}).

  \begin{itemize}
      \item \texttt{Classe}: coluna do \texttt{data.frame} do objeto \texttt{map} contendo o nome da classe de cobertura do solo de cada polígono (classe: \texttt{character}).
    \end{itemize}
  \item \texttt{amost}: mapa vetorial de ponto, georreferenciado, contendo a localização das unidades amostrais e seus respectivos nomes (classe: \texttt{SpatialPointsDataFrame}).

  \begin{itemize}
      \item \texttt{Amostra}: coluna do \texttt{data.frame} do objeto \texttt{amost} contendo o nome de cada unidade amostral (classe: \texttt{character}).
    \end{itemize}
  \item \texttt{raio.esc}: raios das diferentes escalas espaciais de interesse (classe: \texttt{numeric}).
  \item \texttt{nome.esc}: nome das escalas espaciais de interesse, apresentados na mesma ordem em que os raios foram colocados no argumento \texttt{raio.esc} (classe: \texttt{character}).
  \item \texttt{classe.uso}: nome das classes de cobertura do solo de interesse (classe: \texttt{character}).
\end{itemize}


\textbf{Verificando os parâmetros:}
\begin{itemize}
  \item O objeto \texttt{map} é um \texttt{SpatialPolygonsDataFrame}? Senão, retorne a mensagem: “O objeto map precisa ser um SpatialPolygonsDataFrame”.
  \item O \texttt{data.frame} do objeto \texttt{map} contém uma coluna com o nome \texttt{Classe}? Senão, retorne a mensagem: “O data.frame do objeto map precisa ter uma coluna Classe”.
  \item A coluna \texttt{Classe} do \texttt{data.frame} do objeto ,,map" pertence à classe \texttt{character}? Senão, retorne a mensagem: “O objeto map precisa ter uma coluna Classe da classe character”.
  \item O objeto \texttt{amost} é um \texttt{SpatialPointsDataFrame}? Senão, retorne a mensagem: “O objeto map precisa ser um SpatialPointsDataFrame”.
  \item O \texttt{data.frame} do objeto \texttt{amost} tem uma coluna com o nome \texttt{Amostra}? Senão, retorne a mensagem: “O data.frame do objeto amost precisa ter uma coluna Amostra”.
  \item A coluna \texttt{Amostra} do \texttt{data.frame} do objeto ,,amost" pertence à classe \texttt{character}? Senão, retorne a mensagem: “O objeto amost precisa ter uma coluna Amostra da classe character”.
  \item Os sistemas de coordenadas dos objetos \texttt{map} e \texttt{amost} são os mesmos? Senão, retorne a mensagem: “Os sistemas de coordenadas devem ser idênticos”.
  \item O objeto \texttt{raio.esc} é da classe \texttt{numeric}? Senão, retorne a mensagem: “O objeto raio.esc precisa ser da classe numeric”.
  \item O objeto \texttt{nome.esc} é da classe \texttt{character}? Senão, retorne a mensagem: “O objeto nome.esc precisa ser da classe character”.
  \item O objeto \texttt{classe.uso} é da classe \texttt{character}? Senão, retorne a mensagem: “O objeto classe.uso precisa ser da classe character”.
\end{itemize}


\textbf{Pseudocódigo:}
\begin{enumerate}
  \item Checa se o pacote \texttt{rgdal} está instalado. Se sim, carrega o pacote. Do contrário, para a função e retorna a mensagem de erro “pacote rgdal não encontrado, favor instalar”.
  \item Checa se o pacote \texttt{rgeos} está instalado. Se sim, carrega o pacote. Do contrário, para a função e retorna a mensagem de erro “pacote rgeos não encontrado, favor instalar”.
  \item Checa se o pacote \texttt{raster} está instalado. Se sim, carrega o pacote. Do contrário, para a função e retorna a mensagem de erro “pacote raster não encontrado, favor instalar”.
  \item Checa se o pacote \texttt{reshape} está instalado. Se sim, carrega o pacote. Do contrário, para a função e retorna a mensagem de erro “pacote reshape não encontrado, favor instalar”.
  \item Seleciona do objeto \texttt{map} apenas os polígonos das classes de cobertura de interesse definidas pelo argumento \texttt{classe.uso}.
  \item Cria o objeto \texttt{lista}, da classe \texttt{list}, vazio.
  \item Executa dentro de um \texttt{for} (inicia em 1 e vai até o comprimento de \texttt{raio.esc}):

  \begin{enumerate}
      \item Cria, em cada ciclo, um objeto \texttt{buf} (\texttt{SpatialPolygonsDataFrame}) para cada valor de raio definido no argumento \texttt{raio.esc}. Cada objeto \texttt{buf} contém polígonos circulares de mesma área criados em torno das unidades amostrais.
      \item Cria o objeto \texttt{inters} (\texttt{SpatialPolygonsDataFrame}) contendo a intersecção do mapa de cobertura com o objeto \texttt{buf}.
      \item Cria a coluna \texttt{Area\_ha} no objeto \texttt{inters}, contendo o cálculo da área em hectares de cada polígono.
      \item Cria o \texttt{data.frame} \texttt{sum.area} agregando por soma a área dos polígonos (coluna \texttt{Area\_ha}) em função das unidades amostrais (coluna \texttt{Amostra}) e das classes de cobertura do solo (coluna \texttt{Classe}).
      \item Utiliza as funções \texttt{melt} e \texttt{cast} do pacote \texttt{reshape} para criar o \texttt{data.frame} \texttt{df.cast} que terá, para cada unidade amostral (coluna \texttt{Amostra}) a área ocupada pelos polígonos de cada classe de cobertura do solo (colunas com os respectivos nomes das classes).
      \item Reomeia as colunas do objeto \texttt{df.cast} para que incluam, junto ao nome das classes de cobertura (e.g. \textbf{cerrado}), o nome da escala espacial quantificada (e.g. \textbf{10ha}), facilitando a organização dos dados (e.g. \textbf{cerrado\_10ha}).
      \item Guarda cada \texttt{df.cast} de cada ciclo (i.e., gerado para cada raio e respectivo nome de escala) no objeto \texttt{lista}.
      \item Fecha o \texttt{for}.
    \end{enumerate}
  \item Adiciona um \texttt{data.frame} ao objeto \texttt{lista} contendo apenas o nome de todas as unidades amostrais (coluna \texttt{Amostra}). 
  \item Cria o objeto \texttt{df.merg}, por meio da função \texttt{merge\_recurse}, contendo a fusão de todos os \texttt{data.frames} do objeto \texttt{lista}. Como todos eles possuem a coluna \texttt{Amostra}, a fusão será feita com base nessa coluna.
  \item Cria o \texttt{data.frame} \texttt{df.merg.lin.ord} reordenando alfabeticamente as linhas do objeto \texttt{df.merg} com base na coluna \texttt{Amostra}.
  \item Cria o \texttt{data.frame} \texttt{df.merg.col.sort} reordenando alfabeticamente as colunas do objeto \texttt{df.merg.lin.ord}, mas mantendo a coluna \texttt{Amostra} na primeira posição.
  \item Substitui os valores \texttt{NA} do objeto \texttt{df.merg.col.sort} por zero (0). 
\end{enumerate}


\textbf{Saída:}
\begin{itemize}
  \item Retorna um \texttt{data.frame} contendo, na primeira coluna, o nome das amostras e, nas demais, a área ocupada, em hectares, por cada classe de cobertura de interesse, em cada escala espacial de interesse.
\end{itemize}


\textbf{Referências:}
\begin{itemize}
  \item Jackson, H. B. \& Fahrig, L. Are ecologists conducting research at the optimal scale? Glob. Ecol. Biogeogr. 24, 52–63 (2015).
  \item Miguet, P., Jackson, H. B., Jackson, N. D., Martin, A. E. \& Fahrig, L. What determines the spatial extent of landscape effects on species? Landsc. Ecol. 31, 1177–1194 (2016).
\end{itemize}


\\

\begin{center}
\line(1,0){250}
\end{center}



\begin{center}
\line(1,0){250}
\end{center}

 Vitor Rios

Nielson, interessantes suas propostas, e me parecem ser bastante úteis. Faltam só alguns detalhes pra decidir qual vc deve seguir. Uma coisa importante: sua função não deve nunca, jamais, instalar nem atualizar nada no computador do usuário sem permissão, isso pode gerar problemas sérios de compatibilidade com outros scripts. Dependências de pacotes devem ser informadas no help, e vc pode testar se os pacotes estão presentes usando a função require:
if(!require(xxx))\{stop(,,pacote xxx não encontrado, favor instalar")

A sua proposta A,precisa ser mais bem elaborada, não dá pra entender como a classificação será feita. Parabéns pela coragem de mexer com valores data e hora, isso dá um trabalho do cão pra limpar os dados, principalmente dados de terceiros. Nos item 4 e 5, especifique as variáveis astronomicas de interesse, e como elas vão ser usadas nos cálculos. O que acontece se o bicho tiver observações em horários diferentes? Vc cita colunas lat e lon mas elas não aparecem em momento nenhum no seu pseudocódigo

Na sua proposta B, ao invés de passar os arquivos nos parâmetros, é melhor o usuário carregar os arquivos em objetos antes, e passar esses objetos para a função, assim ele pode fazer as edições e manipulações necessárias. ,,buf.raio" deve ser um vetor de raios? Não fica claro o que vc quer dizer com ,,nome da escala" no nome dos objetos. Me parece que sua função vai apenas chamar funções já existentes no pacote sp e juntar os resultados num objeto de saída, é isso? Se não for isso, explicite melhor os cálculos que você vai fazer, e as estruturas de controle que vai usar.

Quando vc tiver feito as modificações, me envie um email para eu olhar novamente
\href{mailto:vrios81@gmail.com}{Vitor Rios} Nielson Pasqualotto

Olá, Vitor.

Antes de mais nada, muitíssimo obrigado pelas sugestões. Elas foram muito úteis para que eu pudesse ajustar as propostas. De maneira geral, seguindo sua sugestão, removi a instalação de pacotes e adicionei apenas
um controle de fluxo para checar se eles já estão instalados. Além disso, busquei elaborar detalhadamente ambas propostas para que fique mais claro a sequência de modificações que pretendo executar.

Em relação à proposta A, adicionei as variáveis astronômicas a partir do item 4 do pseudocódico e mencionei explicitamente as colunas lat e lon. Sobre o bicho (espécie?) tiver observações em horários diferentes, não há problema, já que a proposta é classificar a atividade da espécie que pode apresentar variações (hora registrada no final da tarde, hora à noite, etc.) em função do grau de antropização das unidades amostrais. Especificamente, o data.frame dados pode conter, de fato, várias observações (linhas) de uma mesma espécie, as quais serão classificadas normalmente. Além disso, gostaria de destacar que não planejei a função para executar ,,limpeza" de dados de data e hora. A função está pensada para receber, dentre outros dados, um objeto POSIXct (coluna time) já manipulado/configurado, restando ao usuário informar o fuso via argumento da função. Tudo bem quanto a isso?

Da mesma forma, após sua sugestão, a proposta B terá como dados de entrada mapa vetoriais já carregados no R. Não mais carregarei esses mapas dentro da função, possibilitando que o usuário os edite/manipule antes de rodar a função. Sobre o argumento ,,buf.raio", ele é sim um vetor com o tamanho dos raios. Alterei seu nome para raio.esc (raio da escala espacial), pois achei mais informativo. Melhorei a definição desse argumento, assim como do argumento nome.escala (agora editado para nome.esc) e inclui uma melhor descrição do controle de fluxo e de modificações que ocorrerão dentro da função.

Aguardo seu retorno para prosseguir.

Muito obrigado. Vitor Rios

Nielson, suas propostas estão ótimas. Você pode seguir com a que preferir. Eu sugeriria vc seguir com a proposta B, mais por uma questão de gosto pessoal mesmo. 
\href{mailto:vrios81@gmail.com}{Vitor Rios}

\\

\begin{center}
\line(1,0){250}
\end{center}



\begin{center}
\line(1,0){250}
\end{center}



\subsection{\texorpdfstring{III. Links para acessar o trabalho final}{III Links para acessar o trabalho final}}
\label{sec:iii_links_para_acessar_o_trabalho_final}


Para o trabalho final escolhi desenvolver o Plano B (Métricas de paisagem em múltiplas escalas espaciais) criando a função \texttt{multQuantR}. A função, como já mencionado, realiza a quantificação da área (em hectares) ocupada por classe de cobertura do solo de interesse em múltiplas escalas espaciais circulares de diferentes tamanhos (raios).
\begin{itemize}
  \item Link para a acessar o código da minha função: \href{http://ecor.ib.usp.br./doku.php?id=05_curso_antigo:r2019:alunos:trabalho_final:pasqualotto:multquantr}{.:multQuantR}
  \item Link para a acessar o help da minha função: \href{http://ecor.ib.usp.br./doku.php?id=05_curso_antigo:r2019:alunos:trabalho_final:pasqualotto:help}{.:Help}
\end{itemize}


\end{document}
