Ich habe eine Punktwolke, deren Koordinaten sich auf ein lokales Koordinatensystem beziehen. Ich habe auch Bodenkontrollpunkte mit GPS-Werten. Kann ich diese lokalen Koordinaten mit PROJ.4 oder einer anderen Bibliothek in ein globales Koordinatensystem konvertieren?
Jeder Code in Python für das oben genannte Problem wäre eine große Hilfe.
python
coordinate-system
gps
proj
ground-control
user18953
quelle
quelle
Antworten:
Sie scheinen eine affine Transformation zwischen Ihrem lokalen Koordinatensystem und einem georeferenzierten Koordinatensystem durchzuführen .
Affine Transformationen liegen allen Koordinatensystemen zugrunde und können durch die folgende Matrixgleichung dargestellt werden.
Sie haben jedoch ein zweistufiges Problem.
Proj.4 zeichnet sich durch # 2 aus: Übertragung zwischen georeferenzierten Koordinatensystemen mit bekannten Transformationsmatrizen. Es kann meines Wissens nicht verwendet werden, um eine Transformationsmatrix aus Punktdaten zu finden. Sie können das Ganze jedoch problemlos ausführen, indem Sie in Numpy eine leichte lineare Algebra (eine Matrixinversion der kleinsten Quadrate) verwenden. Ich habe eine Version dieser Klasse verwendet, um Daten aus mehreren Feldstudien zu reduzieren:
Es kann als solches verwendet werden:
projected_coordinates
befindet sich jetzt in WGS84, UTM oder einem anderen Koordinatensystem, das Sie von Ihrem GPS aufgezeichnet haben. Ein Hauptmerkmal dieser Methode ist, dass sie mit einer beliebigen Anzahl von Verbindungspunkten (3 oder mehr) verwendet werden kann und mit zunehmender Anzahl von Verbindungspunkten an Genauigkeit gewinnt. Sie finden im Wesentlichen die beste Passform für alle Ihre Verbindungspunkte.quelle
Die Grass-Transformationsfunktion macht genau das, was Sie brauchen, auch wenn sie nicht wie gewünscht auf Python oder Projekt basiert:
http://grass.osgeo.org/grass65/manuals/g.transform.html
quelle
Es ist immer einfacher, das lokale Koordinatensystem zu identifizieren, wie wir es hier getan haben:
Stereographische Projektion des WGS84-Ellipsoids auf einer Ebene [Python]
GDAL kann jetzt Vektordaten mithilfe von GCP-Punkten transformieren.
quelle
Ich war vor ein paar Wochen in demselben Problem gefangen und habe ein Python-Skript gefunden, das helfen kann. Ursprüngliche Lösung von hier
quelle