От apple16
К All
Дата 25.09.2001 15:50:45
Рубрики Прочее; WWII; 1941;

для Валерия Мухина по карте 1941

добрый день

Что мы хотим:
растровую карту в любой заранее выбранной проекции.

Что есть:

У нас есть набор неких растровых листов с какой-то
картой.

Для простоты возьмем один из них.
Систему координат на нем обзовем X1,Y1.
(точки растра)

Мы знаем что это карта в некоторой проекции
(знает ли кто в каких проекциях немцы карты делали?)
Координаты в метрах проекции
X2,Y2

Они связаны соотношением
X2 = A1 * X1 * Y1 + A2 * X1 + A3 * Y1;
Y2 = A4 * X1 * Y1 + A5 * X1 + A6 * Y1;
(в простейшем случае - билинейное преобразование
описывает все огрехи сканирования)
(это будет соотношение 1 - С1)

Далее метры проекции связаны обратным уравнением
с геодезическими координатами (с градусами)
(широта, долгота)
Lon = F1(X2,Y2)
Lat = F2(X2,Y2)
(соотношение С2)
и обратно
X2 = G1(Lon,Lat)
Y2 = G2(Lon,Lat)
(соотношение C3)

(кстати похоже что наша карта в проекции Гаусса-Крюгера но это почти тоже самое что и UTM :))

Далее мы имеем еще одну проекцию
(в которую хотим согнать все растры)
X3 = G3(Lon,Lat)
Y3 = G4(Lon,Lat)
(соотношение С4)
и из метров этой проекции в точки растра
опять же

X4 = B1 * X3 * Y3 + B2 * X3 + B3 * Y3;
Y4 = B4 * X3 * Y3 + B5 * X3 + B6 * Y3;
(соотношение C5)

Если мы знаем первую проекцию задача выглядит
достаточно просто:
(т.е. я знаю как написать медленный но работающий вариант растрового трансформатора)

Выбираем размер результирующего растра
(пусть 10000 на 10000).
Для каждой из точек этого растра делаем обратное
преобразование - лезем сначла в градусы,
потом в метры проекции нашей исходной карты
и наконец получаем цвет точки на исходной карте.
Этим цветом и закрашиваем наш пиксел.
Понятно что мы получаем координаты пиксела
на исходной карте в плавающем виде -
что-то типа 100,78 и 56,89 но тут мы усредняем цвет
по такой схеме:
берем цвета 4х (а можно и 25 :)) соседних точек,
перегоняем их RGB в YCbCr как в JPEG
и по каждой компоненте (Y,Cb,Cr) делаем усреднение
пропорционально расстояним до реальных точек.
Потом вновь собираем RGB.

Если у нас нет проекции (как я понимаю рамку карты Вы не сканировали и данных легенды нет)
то вместо соотношений C1,C2 мы должны опираясь
на эталонные точки (благо их навалом)
подобрать уже не билинейное а некое другое преобразовани
(с тригонометрией или со степенными рядами) с некоторым
количеством неопределенных коэффициентов.

Также вроде легче всего гнать все фрагменты в градусы
- потом уже со второй прокцией разберемся.

Что касается точности то вопрос датумов/эллипсоидов
не стоит так как различие между Bessel'ем на котором
скорее всего данная карта сделана и модным WGS84
(ну или Пулково 1942 - Крассовского)
максимум сотни метров - а наша карта как пить дать
склеена из миллионнок (а может и из 200000/500000)
и вообще у нас размер пикселя 200 метров.

Вот такие пироги - если набрать по какому-нибудь
фрагменту точек привязки
типа X1,Y1 - Lon,Lat
то можно попробовать провернуть эту операцию
я в выходные (в субботу буду посвободнее)
займусь - особенно если нормальный трансформер не будет еще найден. :(

_______
Apple

От Валерий Мухин
К apple16 (25.09.2001 15:50:45)
Дата 25.09.2001 17:00:16

Re: для Валерия...

>(т.е. я знаю как написать медленный но работающий вариант растрового трансформатора)

Вообще РТР с которым я работал делал еще проще он просто растягивал изображение (разбитое на треугольники) так что бы вершины легли в заранее намеченные репейные точки (я использовал абсолютные координаты городов).

>Если у нас нет проекции (как я понимаю рамку карты Вы не сканировали и данных легенды нет)

Нет. Карту я фотографировал полностью.

>займусь - особенно если нормальный трансформер не будет еще найден. :(

Вообще то тут у меня случилась катастрофа – я раскатал свой рейд на отдельные диски и пока не скатал его обратно:
http://web.referent.ru/nvi/forum/0/co/BD79C9EB/115
Исходные снимки остались, вот те полкарты, что я сделал недоступны (как и многое другое), есть только 1/4 карты на моей странице.
Если можно повторите ссылку на трансформер и киньте по новой крак.

C уважением, Валерий Мухин. http://mukhin.vif2.ru

От apple16
К Валерий Мухин (25.09.2001 17:00:16)
Дата 25.09.2001 17:06:35

Re: для Валерия...

крак - в копилке

http://vif2ne.ru/nvk/forum/files/Apple16/N_geotransf42.zip

а качать надо
http://www.bluemarblegeo.com/download/Transformer42.exe
сам трансформер

и getting starting к нему:
http://www.bluemarblegeo.com/download/gsTransformer.exe
http://www.bluemarblegeo.com/download/gsTransfDataA.exe
http://www.bluemarblegeo.com/download/gsTransfDataB.exe
http://www.bluemarblegeo.com/download/gsTransfDataC.exe
http://www.bluemarblegeo.com/download/gsTransfDataD.exe
http://www.bluemarblegeo.com/download/gsTransfDataE.exe


От Валерий Мухин
К apple16 (25.09.2001 17:06:35)
Дата 25.09.2001 17:40:15

Спасибо (-)