Это не так старомодно: я помню, что мне пришлось решать именно эту проблему еще в 80-х годах, когда у нас не было готовых сканеров, и нам приходилось снимать координаты и фасады с широкоформатных печатных карт для геостатистического анализа.
По сути, вы уже можете точно прочитать долготу вдоль любой линии долготы на карте. Вы хотите интерполировать эти измерения до четырех определенных точек (углов). То же самое для широты. Таким образом, эта проблема является частным случаем интерполяции между контурами на любой контурной карте . Поэтому вам не нужно ничего знать о проекции или данных, чтобы сделать это.
Поскольку это должно быть сделано просто, мы не можем легко использовать тот факт, что у нас есть полные контуры. Достаточно выделить несколько отдельных точек вдоль каждого контура и использовать их. Это делает проблему эквивалентной следующей:
Имеется набор точек на карте, каждая из которых помечена (плавно изменяющимся) числовым значением, чтобы оценить значение в одной другой указанной точке на карте.
Чтобы решить эту проблему, нам нужно установить систему координат для самой карты. Выбор не имеет значения, поскольку изолинии координат расположены равномерно (они даже не должны быть взаимно перпендикулярны!). Простой способ сделать это - использовать линейку для измерения расстояний от левого края (x) и нижний край (у) карты. (Если у вас есть отсканированное изображение, просто используйте индексы строк и столбцов пикселей.)
Интерполяция может быть выполнена путем подгонки тренда к данным.
Мы знаем, просто взглянув на карту (то есть наблюдая локально регулярные расстояния между контурами), что линейная оценка будет работать достаточно хорошо, а квадратичная оценка будет работать еще лучше. Возможно, излишне (и слишком много работы) использовать какую-либо оценку более высокого порядка. Для квадратичной оценки требуется не менее шести контрольных точек. Используйте набор точек, сгруппированных вблизи точки оценки: это обеспечит высокую точность. Используйте больше, чем минимум: это обеспечивает полезные перекрестные проверки и может даже давать оценки ошибок.
Это приводит к следующей процедуре , которая должна быть выполнена для широты и повторена для каждой угловой точки, а затем повторена снова для долготы:
Отметьте более шести точек вдоль соответствующих контурных линий в окрестности угловой точки. Используйте несколько разных уровней контура.
Измерьте (x, y) в отмеченных точках и в угловой точке.
Запишите (x, y, зависимое значение) в каждой отмеченной точке.
Вычислить наименьших квадратов данных, используя модель:
(lat or lon) = a + b*x + c*y + d*x*x + e*x*y + f*y*y + error
Примените подобранную модель к значению (x, y) для угловой точки.
Люди вычисляли подгонки методом наименьших квадратов гораздо дольше, чем у них были механические калькуляторы. Если у вас действительно нет компьютера или калькулятора, согласитесь на линейный тренд и для (простых) расчетов обратитесь к любому учебнику по регрессии, опубликованному до 1970 года. В противном случае вы можете сделать это с помощью графического калькулятора, электронной таблицы, или (самый лучший и самый простой) любой полнофункциональный статистический пакет. Последний сможет предоставить вам интервал прогнозирования для оценки неопределенности в оценках.
Например , я применил эту процедуру дважды, чтобы найти (широта, долгота) в верхнем левом углу, используя отмеченные точки (красный для долготы, синий для широты, желтый для угла):
Используя очевидные имена переменных, я получил прогнозируемые значения с помощью двух команд Stata 11 для каждого вычисления:
regress lat x y c.x#c.y c.x#c.x c.y#c.y if lat!=0
predict lathat
regress lon x y c.x#c.y c.x#c.x c.y#c.y if lon!=0
predict lonhat
Расчетная (широта, долгота) угловой точки равна (61,05, -136,80). Предполагаемая ошибка на удивление велика (около 0,04 градуса), примерно вдвое больше, чем можно было бы ожидать от разрешения изображения на экране. Эти контурные линии могут быть размещены не очень точно.