Dies ist eine großartige Frage. Ich musste in letzter Zeit etwas Ähnliches tun, allerdings mit einem viel kleineren Datensatz. Daher konnte ich eine einfache Kreuzung mit zusätzlichen visuellen Qualitätsprüfungen verwenden und es war in Ordnung.
Aber hier ist eine Idee dafür, obwohl ich keinen Code habe, und es ist eine Art heftiger Prozess. Testen Sie auf jeden Fall zuerst mit einer Probe aus dem vollständigen Datensatz. Hier können Sie wahrscheinlich nützlichen Code finden. (Die Einrückung wurde unten etwas seltsam.):
nimm den guten Geometriesatz (wo die Attribute enden sollen) und erstelle einen Puffer davon *
Durchlaufen Sie alle Pufferfunktionen:
2a. Berechnen Sie die allgemeine Ausrichtung des Features (max_y - min_y / max_x - min_x oder ähnliches)
2b. Treffen Sie mit dieser Funktion eine Auswahl nach Standortabfrage auf der anderen Ebene
Sie haben mehr als eine Funktion, die mit der Abfrage "Auswahl nach Standort" übereinstimmt. Durchlaufen Sie diese ausgewählten Funktionen und berechnen Sie die Ausrichtung der einzelnen Funktionen
Abrufen der Attribute von jedem Feature, dessen Ausrichtung der des Puffer-Features am nächsten kommt.
* Ich würde mit einer sehr kleinen Entfernung beginnen (eine Karteneinheit oder so) und diesen Vorgang dann mit zunehmender Entfernung ausführen, wobei ich darauf achten sollte, keine Attribute zu überschreiben, die Sie bereits übertragen haben.
** Sie könnten wahrscheinlich sogar auf die Erstellung der Pufferfunktionen verzichten und nur die Abfrage nach Speicherort mit einem Pufferabstand durchführen. Ich bin nicht sehr vertraut mit QGIS, aber ich bin mir sicher, dass Sie dazu in der Lage sind.
Es gibt keine Möglichkeit, dass dies für alle Ihre Funktionen perfekt funktioniert, aber es ist ein Anfang, und dann kommt es nur darauf an, eine gute QA / QC-Strategie zum Überprüfen und Abschließen der Übertragung zu entwickeln.
BEARBEITEN Wenn Sie mehr darüber nachdenken , ist hier ein grundlegendes Beispiel, das das System komplett zerstören würde, wenn Sie mit einem sehr kleinen Pufferabstand beginnen und die Funktion mit der von mir empfohlenen besten Ausrichtung auswählen:
Die Attribute von der falschen roten Linie würden genommen. Um dies zu vermeiden, möchten Sie möglicherweise eine Art Toleranz erstellen und die Attribute des Features nur dann übernehmen, wenn seine Ausrichtung (im Vergleich zur Ausrichtung des ursprünglichen blauen Features) innerhalb dieser Toleranz liegt.
EDIT 2 Ups, sind das Polygone? Ich nehme an, dass es sich nur um Linien auf grauem Hintergrund handelt. Wenn es sich um Polygone handelt, weiß ich nicht genau, ob dieses Orientierungskonzept gut ist. Sie können jedoch alle sich überschneidenden Features auswählen und herausfinden, welche die meisten Überlappungen aufweisen (führen Sie ein Werkzeug vom Typ Union aus und verwenden Sie dann das Polygon mit der größten Fläche ...).