Конвертирование Пулково-42 (метры) в WGS-84 (градусы)
Добавлено: 13 ноя 2013, 17:58
В ходе выполнения прикладной задачи возникла данная проблема.
Если ArcMap открывает набор файлов tiff, tfw, rrd, aux (возможно два последних не играют роли) и автоматически определяет проекцию СК-42 и зону 16. И потом легко можно сделать преобразование в том же ArcMap посредством встроенных функций. То в tfw файле он не записывают новую проекцию и вообще никак не изменяет его. И единственный найденный способ экспорта - это экспорт экрана с world file и огромным разрешением (иногда 1000 dpi), чтобы карта читалась. При этом еще карта сплющивается по вертикали.
В связи с чем вопрос, чтобы не изголяться с arcmap. Могут ли умельцы составить формулу для конвертирования СК-42 (метры) в WGS-84 (градусы).
На входе: tiff, tfw файл вида:
2.6340884255248476
-0.0592806869778963600
-0.0592806869778963600
-2.6340884255248476
593801.22604253364
6132007.8971877638
На выходе нужны координаты в градусах четырех точек на карте (ну или трех, не суть принципиально), чтобы посредством mapbasic создавать tab файлы к tif (их много, операция планируется пакетная). Сам mapbasic уже умеет брать координаты из tfw файла непосредственно (см. приведенные числа выше).
Саму широкоизвестную функцию конвертации из СК в WGS я нашел, но там в градусах (как я понял).
Речь идет об этой функции:
B=Bd*Pi/180
L=Ld*Pi/180
M=a*(1-e2)/(1-e2*Sin(B)^2)^1.5
N=a*(1-e2*Sin(B)^2)^-0.5
dB=ro/(M + H) * (N / a * e2 * Sin(B) * Cos(B) * da + (N ^ 2 / a ^ 2 + 1) * N * Sin(B) * Cos(B) * de2 / 2 - (dx * Cos(L) + dy * Sin(L)) * Sin(B) + dz * Cos(B)) - wx * Sin(L) * (1 + e2 * Cos(2 * B)) + wy * Cos(L) * (1 + e2 * Cos(2 * B)) - ro * ms * e2 * Sin(B) * Cos(B)
Print "dB = "+dB
SK42_WGS84_Lat=Bd+dB/3600
Может ли кто помочь с функцией, позволящией решать задачу?
Если ArcMap открывает набор файлов tiff, tfw, rrd, aux (возможно два последних не играют роли) и автоматически определяет проекцию СК-42 и зону 16. И потом легко можно сделать преобразование в том же ArcMap посредством встроенных функций. То в tfw файле он не записывают новую проекцию и вообще никак не изменяет его. И единственный найденный способ экспорта - это экспорт экрана с world file и огромным разрешением (иногда 1000 dpi), чтобы карта читалась. При этом еще карта сплющивается по вертикали.
В связи с чем вопрос, чтобы не изголяться с arcmap. Могут ли умельцы составить формулу для конвертирования СК-42 (метры) в WGS-84 (градусы).
На входе: tiff, tfw файл вида:
2.6340884255248476
-0.0592806869778963600
-0.0592806869778963600
-2.6340884255248476
593801.22604253364
6132007.8971877638
На выходе нужны координаты в градусах четырех точек на карте (ну или трех, не суть принципиально), чтобы посредством mapbasic создавать tab файлы к tif (их много, операция планируется пакетная). Сам mapbasic уже умеет брать координаты из tfw файла непосредственно (см. приведенные числа выше).
Саму широкоизвестную функцию конвертации из СК в WGS я нашел, но там в градусах (как я понял).
Речь идет об этой функции:
B=Bd*Pi/180
L=Ld*Pi/180
M=a*(1-e2)/(1-e2*Sin(B)^2)^1.5
N=a*(1-e2*Sin(B)^2)^-0.5
dB=ro/(M + H) * (N / a * e2 * Sin(B) * Cos(B) * da + (N ^ 2 / a ^ 2 + 1) * N * Sin(B) * Cos(B) * de2 / 2 - (dx * Cos(L) + dy * Sin(L)) * Sin(B) + dz * Cos(B)) - wx * Sin(L) * (1 + e2 * Cos(2 * B)) + wy * Cos(L) * (1 + e2 * Cos(2 * B)) - ro * ms * e2 * Sin(B) * Cos(B)
Print "dB = "+dB
SK42_WGS84_Lat=Bd+dB/3600
Может ли кто помочь с функцией, позволящией решать задачу?