Wie durchlaufe ich zwei Geodatenrahmen, um die Anzahl der Schnittpunkte zwischen einer bestimmten Linie in einem GDF und
Posted: 28 Dec 2024, 17:56
Ich habe zwei Geodatenrahmen mit Linienfeatures. Für jede Zeile im ersten Datenrahmen möchte ich herausfinden, wie viele Zeilen aus dem zweiten Datenrahmen sie schneiden, und diese Zahl an eine neue Spalte im Datenrahmen anhängen.
Zum Beispiel, wenn ich haben zwei Geodatenrahmen wie diesen:

(df = blue , df2 = red)
Ich hätte gerne eine Ausgabe, die so aussieht:

nach dem Ausführen des Skripts.
Ich habe diese Frage gefunden von vor einigen Jahren, die etwas Ähnliches fragten. Mir gefällt die Idee, mithilfe des Puffers die Verarbeitungszeit zu verkürzen. Als ich jedoch versuchte, es mithilfe meiner Liniendaten zu implementieren, war die Liste der Endergebnisse leer. Hat jemand Ideen für Möglichkeiten, diese Datenrahmen zu durchlaufen?
Zum Beispiel, wenn ich haben zwei Geodatenrahmen wie diesen:
Code: Select all
from shapely.geometry import LineString
import geopandas as gpd
df = gpd.GeoDataFrame([['a',LineString([(1, 0.25), (2,1.25)])], ['b', LineString([(1.2, 1.0), (1.4, 1.5)])]], columns = ['name','geometry'])
df = gpd.GeoDataFrame(df, geometry = 'geometry')
df2 = gpd.GeoDataFrame([['c', LineString([(2.0, 0.5), (1.0, .75)])], ['d', LineString([(2, 0.75), (1.25, 0.8)])]], columns = ['name', 'geometry'])
df2 = gpd.GeoDataFrame(df2, geometry = 'geometry')

(df = blue , df2 = red)
Ich hätte gerne eine Ausgabe, die so aussieht:

nach dem Ausführen des Skripts.
Ich habe diese Frage gefunden von vor einigen Jahren, die etwas Ähnliches fragten. Mir gefällt die Idee, mithilfe des Puffers die Verarbeitungszeit zu verkürzen. Als ich jedoch versuchte, es mithilfe meiner Liniendaten zu implementieren, war die Liste der Endergebnisse leer. Hat jemand Ideen für Möglichkeiten, diese Datenrahmen zu durchlaufen?