Más

"Fusionar" 2 capas de LineString con divisiones en las intersecciones



Me gustaría "fusionar" 2 redes de líneas y estas líneas deben dividirse cuando se cruzan. Con imágenes debería ser más claro:

Qué hacer:

  • si una línea negra se cruza con una línea roja, deben dividirse
  • una línea se puede dividir en más de 2 partes
  • Me gustaría mantener las ID de línea (por ejemplo, una red_line_001 se puede dividir en red_line_001_01 + red_line_001_02 + red_line_001_03)

Restricciones:

  • cada red puede tener más de 100000 líneas
  • el algoritmo debe ser eficiente
  • Necesito hacerlo en Python
  • Si es posible, me gustaría usar Shapely, OGR-GDAL y / o Fiona
  • Si es posible, debería funcionar con más de 2 redes

Ya hice este trabajo con PostGIS y fue bastante eficiente (pero no genérico y funcionó solo para 2 redes). No quiero que me resuelva este problema, solo necesito algunos consejos y sugerencias sobre cuál es la mejor solución a mi problema.