Так как нам известна ориентация обеих систем координат (т.е. направление «север-юг»), задача существенно упрощается.
Могу предложить такие варианты:
1. Геометрический — посредством кросс-корреляционной функции (ККФ). Суть его в следующем: координатная сетка положений датчиков квантуется по какому-то определенному уровню и каждый датчик на ней представляется одним пикселем. Получаем базовое изображение. Исходя из измерений наблюдателя мы получаем аналогичное (но маленькое) изображение — эталон. Эталон по сути является частью базового изображения. Нам остается найти положение эталона на базовом изображении. А для этого мы строим ККФ и по ее максимуму с точностью до кванта расстояния получаем смещение наблюдателя. Уточнить его — уже простейшая задача.
Этот вариант будет тем более выгодным, чем больше точек мы имеем (т.к. он зависит не от количества датчиков, а от их размещения).
2. Аналитический. Этот вариант сильно зависит от количества датчиков. Пусть N — общее количество датчиков, а M — количество датчиков, замеченных наблюдателем.
2а. Сначала — найти расположение двух случайно выбранных точек из обнаруженных датчиков на общем поле (таких положений может быть несколько == k); затем — перебором отождествить остальные точки, чтобы однозначно определить, что за датчики засек наблюдатель. Здесь можно как «тупо» перебирать все вектора, выбрав одну из точек в качестве базы, так и пойти по другому пути: «вырисовать» произвольный векторный «рисунок», проходящий через все обнаруженные точки (так, чтобы каждая точка была соединена с одной или двумя соседними), затем пробежаться по всем N точкам в поисках первого подходящего совпадения (т.е. если сумма положения i-й точки и 0-го вектора «рисунка» даст положение другой точки, считаем, что совпадение найдено), далее, подставляя 1-й вектор к найденной второй точке, ищем третью. Если она найдена — ищем далее. Нет — продолжаем перебор в поисках 0-го вектора. А можно сделать «рисунок», так же взяв за основу одну из найденных точек, но проводя вектора к остальным точкам от нее. Это уменьшит погрешность округления координат (которая может давать ложные совпадения в случае прохода по «рисунку»-траектории).
2б. Заранее построить упорядоченные (скажем, по углу или по расстоянию) массивы положений (в полярной СК) датчиков друг относительно друга. Получим N массивов из (N-1) векторов. По обнаруженным датчикам строим аналогичный массив, но один: взяв за опорную любую из обнаруженных точек. Далее нам нужно лишь сравнить наш массив из (K-1) векторов с N массивами.
Эту операцию можно ускорить, если опять-таки провести квантование (скажем, по углу): мы строим N псевдогистограмм, допустим, с шагом по 10 градусов (получится псевдогистограмма из 36 «столбцов), каждая ячейка псевдогистограммы будет массивом длин векторов, имеющих угловую координату в данном интервале или NULL, если таковых нет. В этом случае поиск будет иметь сложность где-то O(KN). Но для однозначности требуется строгая неравномерность распределения датчиков.