Receiver & GPS at Topside and Transmitter Deepside
Last updated
Last updated
This is the canonical, or "normal" configuration.
latitude_rx :: from GPS co-located with receiver (in degrees that include minutes and seconds)
longitude_rx :: from GPS co-located with receiver (in degrees that include minutes and seconds)
bearing :: true bearing (not compass bearing) from $USRTH message
elevation :: elevation from $USRTH message
slant_range :: slant range from $USRTH message
depth (best, if available) :: from ROV depth sensor (minus depth of receiver unit)
depth (use if ROV depth sensor not available) = abs( sin(elevation) x slant_range ) [note 1]
map_radius = cos(elevation) x slant_range
CE = 40,074,000 m // Circumference of earth in meters
lat_m_per_deg = CE / 360 // meters per degree of latitude
long_m_per_deg = lat_m_per_deg x cos(latitude_rx) // meters per degree of longitude [note 1]
latitude_tx = latitude_rx + (sin(bearing) x map_radius / lat_m_per_deg) [note 1, 2]
longitude_tx = longitude_rx + (cos(bearing) x map_radius / long_m_per_deg [note 1, 2]
Note 1: Remember, most computer functions require you to convert degrees to radians
Note 2: the signs of the degrees as noted above are needed in the computations
Note 3: longitude degrees that are West are negative, East are positive. Latitude degrees that are North are positive, South are negative.