O movimento de um organismo é definido como uma mudança na localização espacial do indivíduo no tempo, impulsionado por processos que atuam em múltiplas escalas espaciais e temporais. Os animais se movem motivados pela necessidade de executar atividades em diferentes tipos de habitat em um determinado intervalo de tempo. Um passo fundamental na Ecologia do Movimento é a descrição dos padrões de movimentação e a identificação de seus impulsores proximais e distais, a partir de dados de telemetria. Com o cálculo do ângulo de giro médio e a auto-correlação de velocidade e direção podemos fazer inferências sobre os estados comportamentais. Movimentos altamente direcionais possuem ângulos de giro próximos a 0 ° e são consistentes a longas distâncias, provavelmente representando trânsitos através de habitat ou entre habitats distintos, ou seja, movimentos de trânsito. Movimentos localizados, mais variáveis e com uma taxa mais alta de ângulos de virada agudos, próximos a 180°, representam um comportamento de busca e exploração, consistindo em movimentos mais convolutos.
Legenda da imagem: a → movimentos direcionais; b → movimentos localizados
Essa função visa, a partir de dados de localização, estabelecer estados comportamentais para cada trajetória de diferentes indivíduos e associá-los ao gênero dos animais marcados com transmissores. Testando, a hipótese que propõe diferenças nos padrões de movimentação ou atividade entre machos e fêmeas.
estcomp (dados,coord, date, id,gen, sistcoord= CRS()).
dados → data frame com os dadoscoord → coluna com coordenadas de localização (latitude e longitude).date → coluna com informações de dia e horário de cada localização #já que dados de telemetria as localizações obtidas são tipicamente dependentes da localização anterior e por isso espacial e temporalmente autocorrelacionadas.id → identificação de cada animal.gen → coluna com os gêneros dos animais.sistcoord → sistema de coordenadascoord) == “numeric”.gen) == “character”. coord) == length(gen).na.omit) e colocar um warningdate) == POSIXcttraj ← as.ltraj(xy = coord, date= date, id= id, burst= id) # transformando em trajeto.traj) #plotar a trajetória. traj.df ← ld(traj) # a função “ld” converte ltraj em dataframe para melhor manejo dos pontos.dist = distancia de cada passo. rel.angle = angulo relativo (radianos), angulo entre um passo e outro (mudança de direção).dt = tempo entre localizações sucessivas (em segundos).traj.df$vel ← (dist/dt)*3.6 #Calcular a velocidade entre um ponto e outro.média de velocidade das fêmeas e a média de velocidade dos machos.média dos ângulos de machos e fêmeas.“p-valor”<box 100% blue| Comentários Pamela Santana >
Sobre sua proposta 2: ela tá bem bacana também! Tem alguns pontos pra pensarmos:
i) No pseudo-código o que são os seus dados? coord é um vetor? date é um vetor também? E a entrada de dados das coordenadas, será em minuto e segundo?
ii) Você faz alguns testes lógicos (class(coord) == “numeric”) e se a resposta for FALSE?
iii) Ao plotar a trajetória, você faz isso para vários indivíduos? Essa função seria para testar sempre a variação intra-específica? A inter-específica não?
iv) Para retornar o dataframe com os valores de velocidade, distância do passo, ângulo, você precisa criar este dataframe. Você cria traj.df, mas este objeto não tem a distancia de cada passo e o ângulo.
v) Como você vai calcular o seu p-valor?
Ambas as suas propostas estão legais! Tem pequenos pontos em que tem uma divergência entre o que se obtém e o objetivo da função ou o que se calcula na função, mas tudo são coisas que podem ser alinhadas rapidinho. Mas é importante inserirmos controle de fluxo nas suas propostas. Eu seguiria com o plano A.
Qualquer dúvida que você tenha, me escreva (pcsantana@ib.usp.br).
Um abraço!
</box>