R – Triangulation to Estimate Location Using Lat/Long Coordinates and Bearings

rtriangulation-survey

I would like to get an estimated location using lat/long coordinates and bearings at each of those coordinates using R.

In this case I would be approximating the location of a turkey nest that I have marked using radio telemetry by taking 5-8 bearings around the nesting hen so that the nest can be found after the hen has completed the incubation period and left.

Here is an example of what this might look like when plotted in google earth (northern most point not visible):
enter image description here

Full list of coordinates and bearings for the above example:

   Coord.(UTMs)......Bearing.(Aizmuth).

1….473789, 4485636…….26

2….473755, 4485659…….50

3….473728, 4485717…….80

4….473730, 4485788…….134

5….473848, 4485866…….196

6….473926, 4485796…….236

7….473925, 4485702…….291

8….473850, 4485660…….326

Best Answer

Here's one (probably very naive) way of doing it using the sigloc package.

Once the sigloc package is installed the following should work

library("sigloc")

df <- data.frame(
    Date = '1/11/2016',
    Observers = 'MickyT',
    GID = 1,
    Time = c(1,2,3,4,5,6,7,8),
    Easting = c(473789,473755,473728,473730,473848,473926,473925,473850),
    Northing = c(4485636,4485659,4485717,4485788,4485866,4485796,4485702,4485660),
    Azimuth = c(26,50,80,124,196,236,291,326)
    )

receivers <- as.receiver(df)
turkey_nest <- locate(receivers)

turkeynest <-findintersects(receivers)
plot(receivers, bearings=TRUE, xlab="Easting",ylab="Northing", asp=1)
plot(turkey_nest, add=TRUE, errors=TRUE, badcolor=TRUE, xlab="Easting",ylab="Northing", asp=1)

When this is run the following plot is produced enter image description here and turkey_nest has the following data in it

         X       Y BadPoint Var_X Var_Y Cov_XY AngleDiff Date Time
1 473839.7 4485733        1     0     0      0         0    1    4

There is also a warning message produced for a bad point being detected.