Skip to content

spatial_index_task

juanb edited this page Dec 13, 2025 · 1 revision

Task: Optimización con Índice Espacial

Objetivo

Implementar QgsSpatialIndex para filtrado espacial en filter_features_by_buffer, reemplazando native:extractbylocation.

Motivación

  • Solicitud explícita del usuario: "Consider using spatial indexing (QgsSpatialIndex)"
  • native:extractbylocation crea una capa en memoria intermedia (copia datos)
  • QgsSpatialIndex permite iterar sobre la capa original (zero copy)
  • Mayor rendimiento para datasets grandes de puntos

Tareas

Fase 1: Implementación en Utils

  • Diseñar nueva función filter_features_using_index
  • Implementar usando QgsSpatialIndex
  • Retornar generador/lista en lugar de capa

Fase 2: Integración

  • Modificar project_structures en algorithms.py
  • Adaptar código para manejar lista/generador
  • Eliminar dependencias de QgsVectorLayer intermedio

Fase 3: Verificación

  • Verificar que el filtrado funciona igual
  • Confirmar mejora de rendimiento (teórica)

Notas

  • QgsSpatialIndex acelera consultas espaciales (R-tree)
  • Se combinará index.intersects(bbox) + geometry.intersects(exact)

Clone this wiki locally