Al tener alrededor de 2000 filas con coordenadas de cadenas multilíneas, estoy implementando un código para ver dónde se cruzan.
0 MULTILINESTRING ((-2.50909 53.07879, -2.50867 ...
1 MULTILINESTRING ((-2.49312 53.06901, -2.49269 ...
código:
from shapely.geometry import *
import geopandas as gpd
import pandas as pd
import matplotlib.pyplot as plt
sample = gpd.read_file('cleaned_links_v2.geojson')
df = sample['geometry']
line_gdf = sample.iloc[0:2000]
ma = line_gdf.geometry.apply(lambda g: line_gdf.intersects(g))
ma
Ese código me da una matriz en la que tengo Verdadero o Falso si 2 líneas se cruzan entre sí.
0 1 2 3 4 5 6 7 8 9 ... 1990 1991 1992 1993 1994 1995 1996 1997 1998 1999
0 True False False False True False True False False False ... False False False False False False False False False False
1 False True False False False False False False False False ... False False False False False False False False False False
2 False False True True False True False True False False ... False False False False False False False False False False
3 False False True True False False False False False False ... False False False False False False False False False False
4 True False False False True False True False False False ... False False False False False False False False False False
... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...
1995 False False False False False False False False False False ... False False False False True True False False False False
1996 False False False False False False False False False False ... False False False False False False True False False True
1997 False False False False False False False False False False ... False False False False False False False True True False
1998 False False False False False False False False False False ... False False False False False False False True True True
1999 False False False False False False False False False False ... False False False False False False True False True True
Me gustaría tener una tabla en la que por cada nodo (intersección) obtuviera la lista de todas las aristas que se intesectan aquí. El recuento de ellos también sería bueno.
algo en cualquier forma de seguimiento: ID de nodo 1 | Borde 1 | Borde 2 | Borde 7 | cuenta = 3
Ahora tengo
import shapely
L1 = MultiLineString(df[2])
L2 = MultiLineString(df[2])
print(L1.intersection(L2))
Así puedo obtener las coordenadas de la intersección