Предложите алгоритм восстановления координат и высотной привязки исторической топографической карты, у которой есть только ориентиры и несколько контрольных точек с современными координатами

11 Ноя в 09:35
4 +4
0
Ответы
1
Алгоритм восстановления координат и высотной привязки исторической топографической карты (с учётом того, что доступны ориентиры и несколько контрольных точек с современными координатами):
1) Подготовка изображения
- Отсканировать карту в высоком разрешении, сохранить геометрически неизменённой (без обрезки/растяжения).
- Определить координаты пикселей опорных точек на растровом изображении (xi,yi)(x_i,y_i)(xi ,yi ).
2) Подбор и проверка опорных точек (GCP)
- Выбрать устойчивые ориентиры (перекрёстки дорог, углы зданий, церкви, мосты).
- Записать соответствующие современные координаты (Xi,Yi)(X_i,Y_i)(Xi ,Yi ) (в одной системе координат).
- Проверить соответствие и метки (минимум >2–6, см. ниже). Исключить очевидные ошибочные GCP.
3) Выбор модели преобразования (по числу и характеру искажений)
- Ригидное (перенос+поворот+масштаб, 2D Helmert / similarity) — параметров 4. Минимум 2 неколлинеарных GCP. Формула:
X=s(cos⁡θ x−sin⁡θ y)+tx,Y=s(sin⁡θ x+cos⁡θ y)+ty. X = s(\cos\theta\, x - \sin\theta\, y) + t_x,\quad
Y = s(\sin\theta\, x + \cos\theta\, y) + t_y.
X=s(cosθxsinθy)+tx ,Y=s(sinθx+cosθy)+ty .
- Аффинное (линейное искажение, сдвиг/скейл/сдвиг по осям/сдвиг по углу) — 6 параметров. Минимум 3 GCP:
X=a1x+a2y+a3,Y=b1x+b2y+b3. X = a_1 x + a_2 y + a_3,\quad Y = b_1 x + b_2 y + b_3.
X=a1 x+a2 y+a3 ,Y=b1 x+b2 y+b3 .
Решается как линейная СЛАУ: собрать матрицу AAA из (xi,yi,1)(x_i,y_i,1)(xi ,yi ,1) и вектор наблюдений LLL.
- Гомография (проективное преобразование, перспективные искажения) — 8 параметров. Минимум 4 GCP.
- Нелинейные (полиномиум 2-го порядка, thin‑plate spline, радиальные базисы) — для учёта локальных деформаций; требует больше GCP (полином 2-го порядка по каждой координате — по 6 коэффициентов → минимум 6 GCP).
- Практика: начать с similarity → affine → homography/TPS, смотреть остатки и распределение векторов сдвига.
4) Построение и решение системы (метод наименьших квадратов)
- Для аффинной: для всех точек собрать уравнения
{Xi=a1xi+a2yi+a3,Yi=b1xi+b2yi+b3 \begin{cases}
X_i = a_1 x_i + a_2 y_i + a_3,\\
Y_i = b_1 x_i + b_2 y_i + b_3
\end{cases}
{Xi =a1 xi +a2 yi +a3 ,Yi =b1 xi +b2 yi +b3
и решить Ap=L\mathbf{A}\mathbf{p}=\mathbf{L}Ap=L методом наименьших квадратов (SVD).
- Для homography: решить нелинейную систему через нормализацию и линейное решение/итерации.
- Для similarity: можно аналитически оценить s,θ,tx,tys,\theta,t_x,t_ys,θ,tx ,ty или решать как линейную задачу после линейной параметризации.
5) Оценка качества и фильтрация выбросов
- Вычислить остатки ΔXi=Xi−X^i, ΔYi=Yi−Y^i\Delta X_i = X_i-\hat X_i,\ \Delta Y_i = Y_i-\hat Y_iΔXi =Xi X^i , ΔYi =Yi Y^i .
- RMSE: RMSE=1n∑i=1n((ΔXi)2+(ΔYi)2)\displaystyle RMSE=\sqrt{\frac{1}{n}\sum_{i=1}^n\big((\Delta X_i)^2+(\Delta Y_i)^2\big)}RMSE=n1 i=1n ((ΔXi )2+(ΔYi )2) .
- Визуализировать векторы остатков; при больших локальных выбросах применить RANSAC для устойчивой оценки параметров или удалить проблемные GCP.
6) Применение трансформации к растровому изображению
- Использовать полученную модель для прямого преобразования пикселей в координаты и/или создать геореференцированный растр (например GDAL: задать GCP и выполнить warp).
- Для нелинейных деформаций использовать интерполяцию (cubic, TPS) при резэмплинге.
7) Высотная привязка
- Варианты в зависимости от наличия высот на карте:
a) Если карта содержит подписи высот отдельных точек/вершин контуров: сопоставить эти значения с современными точками (Zi)(Z_i)(Zi ). Подгонка линейного сдвига/масштаба:
Z=α zmap+β Z = \alpha\, z_{map} + \beta
Z=αzmap +β
оценить α,β\alpha,\betaα,β по МНК при наличии подписанных высот.
b) Если имеются контурные линии (полилинии) с известными уровнями — создать цифровую модель рельефа (TIN/интерполяция): размечать линии по пикселям → векторизовать → построить DEM (методы: TIN, IDW, Kriging, B-spline).
c) Если есть лишь отдельные контрольные высоты ZiZ_iZi — интерполировать высоту в произвольных точках: например IDW
Z(p)=∑iwiZi∑iwi,wi=1d(p,pi)p, Z(p)=\frac{\sum_i w_i Z_i}{\sum_i w_i},\qquad w_i=\frac{1}{d(p,p_i)^p},
Z(p)=i wi i wi Zi ,wi =d(p,pi )p1 ,
где обычно p=2p=2p=2.
- Учесть вертикальные системы (геоид/эллипсоид) — выполнить преобразование датумов при необходимости.
8) Проверка итоговой привязки
- Контроль: независимые контрольные точки (не использованные при построении) для валидации.
- Отчёт: RMSE по плану и высоте, карты векторов сдвига, графики остатков.
9) Рекомендации практические
- Минимум GCP: similarity — 2, affine — 3, homography — 4, полином 2-го порядка — 6; для TPS — желательно >10–15 ровно распределённых GCP.
- Если контрольных точек мало и карта сильно деформирована — применять локальные привязки: разбивать карту на пласты и гео-регионально выравнивать.
- Использовать инструменты: QGIS (Georeferencer), GDAL (gdal_translate + gdalwarp), специализированные пакеты (OpenCV для оценки матриц трансформации, SAGA/GRASS для DEM/контуров).
- Документировать все шаги, GCP и метрики качества.
Кратко: подобрать и проверить GCP → выбрать модель трансформации по характеру искажений → решить параметры МНК/устойчивым методом → оценить и удалить выбросы → применить трансформацию к растру → получить высоты через явные подписи/векторные контуры или интерполяцию, учитывая вертикальный датум.
11 Ноя в 10:57
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Гарантированные бесплатные доработки в течение 1 года
Быстрое выполнение от 2 часов
Проверка работы на плагиат
Поможем написать учебную работу
Прямой эфир