VHF telemetry error

77 views
Skip to first unread message

Antonia E

unread,
Aug 18, 2022, 2:20:18 AM8/18/22
to ctmm R user group

Hi Chris,

I am new to using ctmm and would like to incorporate location errors from VHF triangulation into my home range analyses. I’ve already read a couple of other posts and as far as I understood this is only possible by treating the data like Argos data so far. However, I don’t have error ellipses to do something like you recommended here https://groups.google.com/g/ctmm-user/c/-71Ej-5mOAI/m/xWpBzt0YBAAJ but only the radius of an estimated error circle for each location.

Is there a way to incorporate this kind of error information using ctmm?

Thanks,

Antonia

Christen Fleming

unread,
Aug 18, 2022, 4:08:13 PM8/18/22
to ctmm R user group
Hi Antonia,

Error circles are even easier to deal with. Assuming the error radii correspond to x-y standard errors, then you set DATA$HDOP <- sqrt(2) * RADII before importing.
Then you fix the errors with uere(DATA) <- 1 after importing,
and you should get a new DATA$VAR.xy column that corresponds to RADII^2

If you don't exactly know what the error circles correspond to, then you will need to supply some calibration data or a prior.

Best,
Chris

Antonia E

unread,
Aug 19, 2022, 5:16:09 AM8/19/22
to ctmm R user group

Hi Chris,

Thanks a lot for your help!

I tried using a prior as I don’t have calibration data doing

bird1.csv$HDOP <- sqrt(2) * bird1.csv$error.radius

bird1 <- as.telemetry(bird1.csv)

uere(bird1) <- 50

UERE <- uere(bird1)

UERE$DOF[] <- 2

uere(bird1) <- UERE

guess <- ctmm.guess(bird1, CTMM=ctmm(error=TRUE), interactive=F)

fit <- ctmm.select(bird1, guess)

but this gives me only lots of zeros in fit and when I use akde(bird1, fit, weights=TRUE) I get the following warning:

Warning message:In akde(bird1, fit, weights = TRUE) : Fit object returned. DOF[area] = 0

I guess I did not understand how to correctly assign the prior... What would be the correct way to do it (sorry for the probably quite basic question)?

Best,

Antonia

bird1.csv

Christen Fleming

unread,
Aug 19, 2022, 5:42:41 PM8/19/22
to ctmm R user group
Hi Antonia,

What does your error radius correspond to, statistically? By assigning uere()<-50 you are saying that one standard error (of the location error process) is 50 times the error radius. The resulting fits are probably fitting all of the movement to the location error process.

Best,
Chris

Antonia E

unread,
Aug 20, 2022, 6:39:48 PM8/20/22
to ctmm R user group

Hi Chris,

Thanks for the explanation. I’m afraid I’m lacking some background in this whole topic… The error circle is the area in which we assumed (when using triangulation) or knew (when we saw or heard it) the bird to be. I know that this does not really answer your question but I hope it still helps.

Best,
Antonia

Christen Fleming

unread,
Aug 20, 2022, 11:11:43 PM8/20/22
to ctmm R user group
Hi Antonia,

In that case, I would just switch out to something like:
bird1.csv$HDOP <- sqrt(2) * bird1.csv$error.radius / sqrt(-2*log(0.05)) # 95% area @ 2.45 standard deviations
or
bird1.csv$HDOP <- sqrt(2) * bird1.csv$error.radius / sqrt(-2*log(0.01)) $ 99% area @ 3.03 standard deviations
and
uere(bird1) <- 1
which would interpret the error radii as correspond to 95% or 99% coverage areas.

This will be more than 100 times smaller than what you were using and should be much less likely to run into the same issues where all of the variance in the data is modeled as location error.

Best,
Chris

Antonia E

unread,
Aug 24, 2022, 1:06:07 PM8/24/22
to ctmm R user group
Thanks a lot, Chris, this makes sense and I get reasonable home range estimates now.
Best,
Antonia 

Reply all
Reply to author
Forward
0 new messages