У меня есть облако точек, координаты которого относительно локальной системы координат. У меня также есть наземные контрольные точки со значениями GPS. Могу ли я преобразовать эти локальные координаты в глобальную систему координат, используя PROJ.4 или любую другую библиотеку?
Любой код на Python для вышеупомянутой проблемы был бы большим подспорьем.
python
coordinate-system
gps
proj
ground-control
user18953
источник
источник
Ответы:
Похоже, вы пытаетесь провести аффинное преобразование между вашей локальной системой координат и системой координат с географической привязкой.
Аффинные преобразования лежат в основе всех систем координат и могут быть представлены матричным уравнением ниже.
Однако у вас есть двухэтапная проблема.
Proj.4 превосходит на # 2: перенос между системами координат с привязками с известными матрицами преобразования. Насколько мне известно, он не может быть использован для поиска матрицы преобразования из точечных данных. Тем не менее, вы можете сделать все это легко с помощью некоторой легкой линейной алгебры (инверсия матрицы наименьших квадратов) в Numpy. Я использовал версию этого класса для сокращения данных из нескольких полевых исследований:
Может использоваться как таковой:
projected_coordinates
теперь в WGS84, UTM или в любой другой системе координат, записанной вашим GPS. Главной особенностью этого метода является то, что его можно использовать с любым количеством точек привязки (3 или более), и он получает точность при использовании большего количества точек привязки. По сути, вы находите наилучшее соответствие через все ваши точки привязки.источник
Функция преобразования травы делает именно то, что вам нужно, даже если она не основана на python или proj, как было запрошено:
http://grass.osgeo.org/grass65/manuals/g.transform.html
источник
Всегда проще определить локальную систему координат, как мы это делали здесь:
Стереографическая проекция эллипсоида WGS84 на плоскость [питон]
GDAL теперь может преобразовывать векторные данные, используя точки GCP.
источник
Я застрял в той же проблеме несколько недель назад, я нашел сценарий Python, который может помочь. Оригинальное решение здесь
источник