\documentclass[a4paper, oneside, 10pt]{article} \usepackage[unicode]{hyperref} \usepackage[utf8x]{inputenc} \usepackage[english]{babel} \usepackage{listings} \date{\today} \title{} \author{} \begin{document} \section{\texorpdfstring{Fernando Silvério Ribeiro}{Fernando Silverio Ribeiro}} \label{sec:fernando_silverio_ribeiro} Mestrando em Ecologia, Laboratório de Diversidade e Conservação de Mamíferos, IB, USP \subsection{\texorpdfstring{Trabalho Final}{Trabalho Final}} \label{sec:trabalho_final} \textbf{Proposta A} - Seleção aleatória de pontos de amostragem com restrições de distâncias A partir de uma matriz contendo todos os possíveis pontos de amostragem de uma área com suas respectivas coordenadas geográficas, a função pretende selecionar aleatoriamente um determinado número de pontos que estejam localizados a, no mínimo, uma determinada distância entre eles. Além disso, caso o usuário acrescente informações à matriz, como o estrato a que os pontos pertencem e um valor para este estrato, como por exemplo sua área, a função será capaz de realizar uma seleção alocando a quantidade de pontos proporcionalmente ao valor de cada estrato. Os argumentos da função serão o número de pontos a ser sorteado, a distância mínima entre pontos e se a seleção será estratificada ou não. \textbf{Proposta B} - Padrões temporais de atividade Em trabalhos com armadilhas fotográficas, além de dados de presença/ausência por sítio, também é possível obter dados sobre o padrão de atividade temporal das espécies. A partir de uma matriz contendo os sítios das câmeras, as espécies e o horário de registro de cada fotografia, a função pretende construir gráficos que demonstrem esses padrões e que sejam facilmente comparáveis entre espécies, ou seja, os gráficos devem apresentar o padrão de atividade a partir de valores proporcionais. Nos argumentos, além da escolha da espécie, o usuário terá a opção de que a função retorne o padrão geral da espécie (incluindo todos os registros) ou o padrão para diferentes sítios (ou conjuntos de sítios). Fernando, achei sua proposta A bem interessante, mas vale notar que o usuário tem que fornecer as coordenadas dos pontos amostrais de alguma forma certo? Lembre-se de especificar no HELP o formato em que essas coordenadas tem que ser passadas pra função. A proposta B achei um pouco mais fraca, se você for perseguir esse plano acho que vale a pena permitir que o uruário escolha mais de uma espécie de cada vez e talvez incluir algum tipo de comparação ,,não gráfica" entre diferentes espécies. Se o horário em que a espécie tem atividade for importante, será que vale a pena partir pra estatística circular? (Não quero complicar sua vida, é só uma sugestão, caso você ache isso emocionante dê uma olhada no pacote circular.). ----\emph{\href{mailto:danilomuniz@usp.br}{ Danilo G. Muniz}} \textbf{Final: proposta A}\lstset{frame=single} \begin{lstlisting} #Cria uma função que faz sorteios aleatórios de pontos de amostragem com distâncias mínimas entre esses pontos. #O sorteio pode ser estratificado ou não sortptos <- function (x, n=10, dist=10, estratificado=FALSE) { #cria uma função semelhante a anterior, com a finalidade de aplicá-la diretamente ao data frame (caso o sorteio #não seja estratificado, ou a subsets do data frame (em caso de sorteio estratificado) func <- function (x, m=n, d=dist) { #carrega o pacote sp, necessário para o cálculo de distância a partir de coordenadas #pensei em criar uma função para este cálculo (por trigonometria), mas os resultados tinham um pequeno erro #(devido a curvatura da terra) que não consegui corrigir library("sp") #cria uma matriz de distâncias (em kms) entre todos os pontos mat.dist=spDists(as.matrix(x[,2:3]),longlat=TRUE) #cria um vetor para guardar os pontos sorteados que respeitem a distância mínima. O vetor é grande de modo a #garantir que muitos pontos sejam testados. resultado=rep(NA,nrow(mat.dist)) #cria um vetor de tamanho igual ao acima, para guardar todos os pontos sorteados (incluindo os que não #respeitam a distância mínima) #necessário criar dois vetores para facilitar o teste de distância pre.sort=rep(NA,nrow(mat.dist)) #sorteia o primeiro ponto entre todos os possíveis e o guarda no vetor de resultados resultado[1]=sample(1:nrow(mat.dist),1) #guarda o primeiro ponto no vetor pre.sort pre.sort[1]=resultado[1] #cria um loop que gera os próximos sorteios for (i in 2:nrow(mat.dist)) { #guarda no vetor pre.sort todos os outros pontos sorteados pre.sort[i]=sample(1:nrow(mat.dist),1) #um teste lógico que compara as distâncias entre os pontos sorteados (vetor pre.sort) e os que foram realmente #escolhidos (vetor resultado) #caso o ponto fique igual ou maior que a distância escolhida... if (sum(mat.dist[pre.sort[i],c(resultado[1:(i-1)])]