Georeferenzierung von DXF mit QGIS? [Duplikat]

14

Ich habe mir einen DXF besorgt, der mit Einheiten im falschen Maßstab gebaut ist. Wie skaliere ich das in QGIS? Beachten Sie, dass es in QGIS nur in den falschen Karteneinheiten und Positionen geöffnet wird.

Willy
quelle
Die obige Antwort von nhopton zur Verwendung des qgsAffine-Plugins hat erst letzte Woche für mich funktioniert. Ich hatte einen DXF, der 1000-fach so skaliert war, wie ich es wollte. Ich habe das dxf mit dem Standard-Plugin in shp umgewandelt, dann X und Y durch Multiplizieren mit .001 in qgsAffine transformiert und das Problem wurde behoben. PS: Verspätet danke an nhopton für den Rat, den ich nicht verlängern durfte, bevor das QGIS-Forum geschlossen wurde!
Blackthorn
Ich habe auch ein paar DXFs, die ich affinieren möchte. Ich habe OpenJump einmal benutzt, weil ich für das QGIS-Plugin nicht rechnen konnte. Schließlich fand ich es jedoch einfacher, meine SHP-Ebene mit einer bekannten Projektion als DXF zu speichern, diese in (kostenlosem) QCAD zu öffnen, die erforderliche DXF-Datei zu importieren und die gesamte Skalierung, Drehung und Verschiebung der DXF-Datei dort vorzunehmen. Als alles in Ordnung war, habe ich es als DXF gespeichert und erneut in QGIS importiert, wobei die Projektion beibehalten wurde und mein DXF nun auch an der richtigen Position und im richtigen Maßstab angezeigt wurde. Ich könnte dann die DXF als SHP speichern.
Melissa

Antworten:

12

Du Georeferenzierst Raster und affine Vektoren :)

QGIS verfügt über ein affines Plug-In (qgsAffine), mit dem Sie Vektorebenen skalieren können. Sie können bei Bedarf auch x- und y-Offsets auf alle Scheitelpunkte in einer Vektorebene anwenden. Ich denke, Sie werden wahrscheinlich Ihr DXF in ein Shapefile konvertieren müssen, um es zu verwenden (klicken Sie mit der rechten Maustaste auf die Ebene im Ebenenbedienfeld und wählen Sie "Speichern unter ..."). Das Anwenden der Drehung auf eine Vektorebene ist etwas schwieriger.

nhopton
quelle
1
Hier sind einige Tipps zum Drehen mit qgsAffine: gis.stackexchange.com/q/21696/1872
Mike T
Hum ja, ich habe einen Beitrag zu diesem Thema geleistet, der nicht viel Gunst zu finden schien. Unter dem Strich bevorzuge ich aber immer noch den OpenJump-Ansatz, bei dem alle sieben Transformationsparameter berechnet und dann auf den interessierenden Vektor angewendet werden. Ich denke, ich habe einen QGIS GSoC-Vorschlag für das gleiche in QGIS gesehen, der hilfreich wäre.
Nhopton
Ja, ich sehe, was die OpenJump-Leute benutzen und es ist viel schlauer!
Mike T
9

Eine weitere - interaktivere - Option ist das Vector Bender-Plugin . Es

tut Vektoren an, was Georeferenzierer mit Raster tun. Diese Funktion wird auch als "Gummiplatte" bezeichnet.

Es gibt sogar ein Video, das zeigt, wie es funktioniert: https://vimeo.com/96142479

Underdunkel
quelle
3

Ich glaube, dass dies in QGIS erreicht werden kann.
Ich benutze jedoch CAD-Software mit meiner GIS-Software und würde das folgende darin tun.
In jedem Fall benötigen Sie einige grundlegende Informationen zum DXF.
1. Sie sollten die Einheiten des DXF kennen.
2. Sie sollten eine Reihe bekannter Punkte im DXF haben. (mindestens 2 Punkte).

1a. Wenn das ursprüngliche Koordinatensystem (oder Nicht-System) identifizierbar ist, sollten Sie es in ein ähnliches bekanntes System transformieren.
(Wenn die Zeichnung nur in keinem System sondern in einem 0,0-Basissystem gezeichnet wurde, nehmen Sie eine Art von gleicher Fläche an.) Entweder Alambert oder Albers (abhängig von der Abdeckfläche [Größe])
2a. Stellen Sie sicher, dass alle Elemente in der Zeichnung angezeigt werden (keine Ebenen deaktiviert).
3a. Wählen Sie alle Funktionen aus.
4a. Verschieben Sie alle Features von einem bekannten Punkt zu einem bekannten Punkt.
5a. Nach dem Bestimmen des ursprünglichen Maßstabs werden alle ausgewählten Objekte empirisch verändert.
6a. Alle ausgewählten Objekte empirisch drehen.
Speichern und / oder exportieren Sie die ausgewählten Objekte mit einem bekannten CRS.

Brad Nesom
quelle
2

Dies kann auch mit GDAL 1.10 erfolgen. Der Ansatz verwendet Kontrollpunkte und ist weniger auf Skalierung als auf Georeferenzierung ausgerichtet (praktisch, wenn der DXF alle seine räumlichen Informationen verloren hat).

Dazu wird eine grundlegende Transformation in ogr2ogr durchgeführt und die Kontrollpunkte im -gcp-Tag angegeben. http://www.gdal.org/ogr2ogr.html

Eine Anleitung finden Sie unter: Georeferenzieren von Vektordaten mit QGIS

HeikkiVesanto
quelle
2

Ich habe OpenJump einmal benutzt, weil ich für das QGIS-Plugin nicht rechnen konnte. Schließlich fand ich es jedoch einfacher, meine SHP-Ebene mit einer bekannten Projektion als DXF zu speichern, diese in (kostenlosem) QCAD zu öffnen, die erforderliche DXF-Datei zu importieren und die gesamte Skalierung, Drehung und Verschiebung der DXF-Datei dort vorzunehmen. Als alles in Ordnung war, habe ich es als DXF gespeichert und erneut in QGIS importiert, wobei die Projektion beibehalten wurde und mein DXF nun auch an der richtigen Position und im richtigen Maßstab angezeigt wurde. Ich könnte dann die DXF als SHP speichern.

Melissa
quelle
2

Das Plugin AnotherDXF2Shape enthält ein Georeferenzierungsmodul: Bildbeschreibung hier eingeben

Parameter Bildbeschreibung hier eingeben

Durch X- und Y-Offset kann eine einfache Verschiebung des DXF erreicht werden. Dies ist nützlich, wenn die ursprünglichen Koordinaten im CAD / System gekürzt wurden.

Weltdateien für CAD-Datensätze

Eine Weltdatei (.wld) ist eine Textdatei mit Kontrollpunkten, die eine Koordinatentransformation beschreiben. Mit einer Weltdatei können die Eigenschaften einer CAD-Zeichnung um Georeferenzierungsinformationen erweitert werden. Die Informationen werden als Koordinatenwerte gespeichert, die einen oder zwei Verschiebungsvektoren definieren, die als Links bezeichnet werden. Die Daten umfassen zwei oder vier Koordinatenpaare, die in zwei Zeilen organisiert sind. Jede Zeile definiert einen Verschiebungslink mit der folgenden Syntax:. Das erste Koordinatenpaar in jeder Zeile entspricht den Quellkoordinaten, auch als Von-Koordinaten bezeichnet. Diese Werte repräsentieren die x, y-Position eines bekannten Kontrollpunkts in der CAD-Zeichnung. Das zweite Koordinatenpaar in jeder Zeile entspricht den Zielkoordinaten, auch als To-Koordinaten bezeichnet. Diese Werte repräsentieren einen neuen Ort im geografischen Raum. In der Regel ein Referenzpunkt in einem anderen Feature-Layer. Quelle: arcgis.com

Wenn die Koordinatentransformation aktiviert ist und das Plug-In eine entsprechende WLD-Datei findet, wird diese automatisch eingebunden und die DXF-Datei entsprechend transformiert. Bildbeschreibung hier eingeben

Transformation über 1-4 identische Punkte

Ähnlich wie beim CAD-Datensatz erfolgt eine Transformation über identische Punkte. Die Anzahl der Parameter für die Transformation hängt von der Anzahl der angegebenen Punkte ab. Hinweis: Eine Ausgabe der Residuen zur Überbestimmung erfolgt derzeit nicht.

Mike
quelle
1

Ich denke, der schnellste Weg ist, Ihre DXF-Datei (skalieren und in richtigen Koordinaten platzieren) mit einer CAD-Software zu ändern und sie dann in QGIS zu laden.

Sie können Ihre Features natürlich in QGIS verschieben, aber nicht skalieren. Hoffe das hilft.

Bradypus
quelle