Proposta 2
Inferindo estados comportamentais a partir da descrição de padrões de movimentação
Contextualização
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.
Planejamento da função
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 coordenadas
Pseudo-código
Pressupostos
- class(
coord) == “numeric”. - class(
gen) == “character”. - length(
coord) == length(gen). - Verificar a presença de NAs em alguma das colunas → retirá-los (
na.omit) e colocar umwarning - class(
date) ==POSIXct - require(adehabitatLT) → requer pacote adehabitatLT
Cálculos
traj← as.ltraj(xy =coord, date=date, id=id, burst=id) # transformando em trajeto.- plot(
traj) #plotar a trajetória. traj.df← ld(traj) # a função “ld” converte ltraj em dataframe para melhor manejo dos pontos.- A função ltraj retorna os valores (entre outros):
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 avelocidadeentre um ponto e outro.- Calcular a
médiadevelocidadedas fêmeas e a média develocidadedos machos. - Calcular a
médiadosângulosde machos e fêmeas. - Cálculo do
“p-valor”
Retornar
- plot da trajetória
- data frame contendo os valores de velocidade, distância do passo, ângulo
- p-valor: probabilidade de machos e fêmeas se movimentarem com padrões diferentes.
<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>