Actualmente estoy tratando de convertir mis scripts de ArcGIS a QGIS pero un aspecto que es extremadamente lento es tratar de intersectar un polígono con una característica de línea. Siento que debe haber una mejor manera de lograr tratando de recortar las polilíneas voronoi con el propio polígono original es decir:
por
Estas son algunas de las pruebas de banco que he hecho con estas dos capas.
ArcGIS 10.1 Intersect 2min 24seg
Grass 7 v.Overlay abandonar después de ~1 hora (~70% Seleccionando líneas...) - Actualmente no es compatible con el procesamiento (Sextante)
Grass 7 v.split + v.Overlay ~2min + 45min
QGIS 1.9 lo dejé después de unas 3 horas
ogr2ogr -clipsrc abandonar después de > 1 hora
SAGA GIS Intersect Line-Polygon ~15min -- aceptable, pero sigue siendo 7 veces más lento que ArcGIS y produce resultados erróneos? Las imágenes de abajo muestran SAGA GIS Intersect (con los colgantes eliminados) y la misma área con ArcGIS Intersect - Claramente SAGA no intersectó la línea y el polígono correctamente ya que no debería haber ninguna conexión de las líneas. ¡¡Estos errores están dispersos por toda la nueva salida!! Además Line-Polygon no retiene los atributos de intersección del polígono a la línea a diferencia de los otros métodos mencionados anteriormente...
He colocado el conjunto de datos original en un repositorio de GitHub aquí así que espero que otros puedan hacer sus propios puntos de referencia y, por tanto, aportar sugerencias
He observado que ArcGIS Desktop divide (agrieta) la featureclass por lo que no sé si es otra posibilidad para mejorar la velocidad de intersección dentro de alguna de las alternativas opensource mencionadas anteriormente.
***La razón por la que menciono QGIS aquí es que he hecho algunos scripts dentro de la caja de herramientas de procesamiento (formalmente conocida como Sextante) y me gustaría permanecer en ese entorno si es posible.
Sistema - CPU Intel Core i7-2760QM a 2,40 GHz y 8 GB de ram
0 votos
Deberías probar un benchmark usando OGR directamente: darrencope.com/2011/03/31/clipping-large-shapefiles-using-ogr - también puede utilizarlo en la caja de herramientas de Processing.
1 votos
¿Qué tal la función SAGA de la caja de herramientas? Parece que son muy rápidas y fiables. La intersección por defecto y otras herramientas por defecto en QGIS son un verdadero dolor en el a..
3 votos
@BJEBN: ¿Puedes poner el conjunto de datos en línea para que podamos compararnos?
0 votos
@Darren/@Bernd/@markusN ver post actualizado
1 votos
@BJEBN; desgraciadamente no tengo tiempo ahora mismo para probar un benchmark, pero otra idea puede ser probar la versión de 64 bits de QGIS disponible como build experimental desde trac.osgeo.org/osgeo4w (asumiendo que estás en una máquina de 64 bits) y ver si el tiempo de procesamiento es más rápido. Si no, puedes añadir GRASS v.split y v.overlay a la caja de herramientas de Processing - no es tan difícil de hacer siguiendo las instrucciones aquí: fossies.org/linux/misc/qgis-2.0.1.tar.gz:a/qgis-2.0.1/python/
0 votos
@DarrenCope Gracias por eso he añadido la funcionalidad que quería de GRASS...
0 votos
Genial. Puedes enviar tus archivos de descripción a @Victor Olaya (desarrollador de Sextante/Processing) y él los incluirá en la versión para que otros puedan beneficiarse. - Darren Cope hace 29 minutos
0 votos
Un "concurso de recortes" anterior: lin-ear-th-inking.blogspot.ru/2012/11/
0 votos
He trabajado en el mismo problema. Tomé algunos (aprox. 100) polígonos, algunos de los cuales son bastante muy complejos (unos 100K vértices y muchos cientos de agujeros, etc). Los polígonos son en realidad una capa de trama vectorizada (se compara con la segunda imagen). Intersecté una capa de polígonos de red de pesca con ella. - En ArcGIS esta intersección tomó unos 30 segundos. - ¡En PostGIS tardó cerca de 1 hora! - Lo mismo en QGis (probablemente el mismo algoritmo) Parece que el algoritmo de ArcGIS es mucho mejor aquí, cuando se trata de geometrías complejas. Por el contrario, cuando luego tomé el resultado de la intersección (es decir, la mega red de pesca
0 votos
Creo que esta podría ser una pregunta muy útil, porque creo que lo que estás preguntando es "¿Puede QGIS recortar más rápido de lo que lo hace actualmente?" y estás utilizando la velocidad de las operaciones comparables para tratar de mostrar por qué crees que no es lo suficientemente rápido. ¿Podría revisar su pregunta para tratar de hacerla más clara, por favor?