Как записать параметры перехода в файл MAPINFOW.PRJ

Системы координат, проекции, преобразования, привязка
Ответить
Chrome
Новоприбывший
Сообщения: 7
Зарегистрирован: 16 сен 2022, 08:25
Репутация: 0
Откуда: Нижний Новгород

Как записать параметры перехода в файл MAPINFOW.PRJ

Сообщение Chrome » 16 сен 2022, 09:30

Добрый день!
Буду очень признателен помощи!
С мая месяца во многих субъектах РФ с УСК начался процесс перехода на МСК.
Большое количество оформленных в MAPINFO слоев необходимо пересчитать в МСК.
Раньше никогда не сталкивался с необходимостью записывать официальные параметры перехода в файл MAPINFOW.PRJ
Есть ключи в виде:
Параметры от УСК Тамаринский к МСК-65:
X1=118500,601; Y1=94760,19; X2=800472,831; Y2=1255643,588; α= 1°18' 24,01483" ; m=0,99990513
где:
X1 Y1 - координаты точки в УСК Тамаринский;
X2 Y2 - координаты точки в МСК-65;
α - угол поворота;
m - масштабный коэффициент.
Как из этих данных получить строчку параметров для файла MAPINFOW.PRJ ?

trir
Гуру
Сообщения: 5271
Зарегистрирован: 09 апр 2010, 19:30
Репутация: 1013
Ваше звание: просто мимо прохожу
Откуда: Ё-бург

Re: Как записать параметры перехода в файл MAPINFOW.PRJ

Сообщение trir » 16 сен 2022, 11:17

https://ru.wikipedia.org/wiki/%D0%90%D1 ... 0%B8%D0%B5
viewtopic.php?f=38&t=5236&start=15
и немножко школьной математики
Изображение

почему у меня точка в море попадает?

Chrome
Новоприбывший
Сообщения: 7
Зарегистрирован: 16 сен 2022, 08:25
Репутация: 0
Откуда: Нижний Новгород

Re: Как записать параметры перехода в файл MAPINFOW.PRJ

Сообщение Chrome » 16 сен 2022, 14:13

Так понятно, что для небольшого количества точек их координаты можно вычислить по формулам:
x = Х2 + m cos α dX - m sin α dY,
y = y2 + m sin α dX + m cos α dY
где
dX = X - X1, dY = Y - Y1,
X2, Y2 - координаты начального пункта (X1, Y1) в новой системе координат;
X, Y - преобразуемые координаты.
А вот как это сделать для полсотни слоев MAPINFO с миллионом точек?

trir
Гуру
Сообщения: 5271
Зарегистрирован: 09 апр 2010, 19:30
Репутация: 1013
Ваше звание: просто мимо прохожу
Откуда: Ё-бург

Re: Как записать параметры перехода в файл MAPINFOW.PRJ

Сообщение trir » 16 сен 2022, 14:53

формулы привёл, а теперь рассчитай параметры и запиши их в MAPINFOW.PRJ
MapInfo
<название проекции>, <номер проекции + 1000>, <параметры
проекции (см. предыдущий раздел)>, <единицы
измерения>, A, B, C, D, E, F, x1, y1, x2, y2

x’ = Ax + By + C
y’ = Dx + Ey + F
A = m cos α
B = -m sin α
C = Х2
А вот как это сделать для полсотни слоев MAPINFO с миллионом точек?
наверно лучше через OGR https://proj.org/operations/transformations/affine.html

Chrome
Новоприбывший
Сообщения: 7
Зарегистрирован: 16 сен 2022, 08:25
Репутация: 0
Откуда: Нижний Новгород

Re: Как записать параметры перехода в файл MAPINFOW.PRJ

Сообщение Chrome » 16 сен 2022, 15:09

trir писал(а):
16 сен 2022, 14:53
A = m cos α
B = -m sin α
C = Х2
Спасибо!
а как посчитать D E F?

trir
Гуру
Сообщения: 5271
Зарегистрирован: 09 апр 2010, 19:30
Репутация: 1013
Ваше звание: просто мимо прохожу
Откуда: Ё-бург

Re: Как записать параметры перехода в файл MAPINFOW.PRJ

Сообщение trir » 17 сен 2022, 14:14

из y = y2 + m sin α dX + m cos α dY

Chrome
Новоприбывший
Сообщения: 7
Зарегистрирован: 16 сен 2022, 08:25
Репутация: 0
Откуда: Нижний Новгород

Re: Как записать параметры перехода в файл MAPINFOW.PRJ

Сообщение Chrome » 19 сен 2022, 12:05

Записал строчку преобразования параметров в таком виде:
"МСК-Томаринский_афинное", 8, 1001, 7, 0.9996451146699948, -0.0228015666101349, 1255643.588, 0.0228015666101349, 0.9996451146699948, 800472.831
При этом просто поменял значения Х и У, так как в ключе данные в географической СК, а мапинфо работает с математической.
Попробовал пересчитать кадастровый слой ЗУ из УСК в МСК-65 с параметрами:
"МСК-65 зона 1", 8, 1001, 7, 142.71666666667, 0, 1, 1300000, -4516586.439
Результат неверный, все ЗУ слились в вертикальную линию с координатами -6 900 000, -4 600 000,
а должны быть в районе 1 255 000, 800 500.
Понял, что надо не только Х и У менять местами но и угол поворота.
Понимаю, что переход от геодезиской к математической описывается как поворот осей на 90 градусов по часовой с умножением значений У на -1.
Но каким тогда будет α= 1,306670786?
α= -1,306670786; или 88,693329214; или 91,306670786 ???

trir
Гуру
Сообщения: 5271
Зарегистрирован: 09 апр 2010, 19:30
Репутация: 1013
Ваше звание: просто мимо прохожу
Откуда: Ё-бург

Re: Как записать параметры перехода в файл MAPINFOW.PRJ

Сообщение trir » 19 сен 2022, 12:17

параметры аффинного надо дописать в конец описания МСК-65

как то так:
"МСК-65 зона 1", 8, 1001, 7, 142.71666666667, 0, 1, 1300000, -4516586.439, 7, 0.9996451146699948, -0.0228015666101349, 1255643.588, 0.0228015666101349, 0.9996451146699948, 800472.831, 0, 0

Chrome
Новоприбывший
Сообщения: 7
Зарегистрирован: 16 сен 2022, 08:25
Репутация: 0
Откуда: Нижний Новгород

Re: Как записать параметры перехода в файл MAPINFOW.PRJ

Сообщение Chrome » 19 сен 2022, 14:16

trir писал(а):
19 сен 2022, 12:17
как то так:
"МСК-65 зона 1", 8, 1001, 7, 142.71666666667, 0, 1, 1300000, -4516586.439, 7, 0.9996451146699948, -0.0228015666101349, 1255643.588, 0.0228015666101349, 0.9996451146699948, 800472.831, 0, 0
Попробовал, слой остался там же - в УСК. Координаты вообще не изменились!

trir
Гуру
Сообщения: 5271
Зарегистрирован: 09 апр 2010, 19:30
Репутация: 1013
Ваше звание: просто мимо прохожу
Откуда: Ё-бург

Re: Как записать параметры перехода в файл MAPINFOW.PRJ

Сообщение trir » 19 сен 2022, 14:38

неправильно параметры посчитал

Chrome
Новоприбывший
Сообщения: 7
Зарегистрирован: 16 сен 2022, 08:25
Репутация: 0
Откуда: Нижний Новгород

Re: Как записать параметры перехода в файл MAPINFOW.PRJ

Сообщение Chrome » 19 сен 2022, 14:54

Нашел информацию по записи аффинного преобразования:
https://studfile.net/preview/5722147/page:117/
Как минимум - надо изменить название проекции:
<номер проекции + 3000>
Попробовал преобразование - все ЗУ слились в одну точку с координатами -1 273 000, -771 000
Хоть координаты и с минусом, но по абсолютной величине похоже!
Осталось разобраться с уточнением A B C D E F

Chrome
Новоприбывший
Сообщения: 7
Зарегистрирован: 16 сен 2022, 08:25
Репутация: 0
Откуда: Нижний Новгород

Re: Как записать параметры перехода в файл MAPINFOW.PRJ

Сообщение Chrome » 19 сен 2022, 15:45

нет, <номер проекции + 3000> это для аффинного с границами, в моем случае надо <номер проекции + 1000>:
"МСК-Томаринский_афинное", 1008, 1001, 7, 142.71666666667, 0, 1, 1300000, -4516586.439, 7, 0.9996451146699948, -0.0228015666101349, 1255643.588, 0.0228015666101349, 0.9996451146699948, 800472.831, 0, 0
Попробовал - преобразование почти правильное - только все координаты отрицательные,
а по абсолютной величине 1 700 000, 600 000 - очень похоже!
Осталось с углом поворота разобраться)

Ответить

Вернуться в «Координаты и привязка»

Кто сейчас на конференции

Сейчас этот форум просматривают: Semrush [Bot] и 3 гостя