¿Dividir todas las líneas en la capa en los vértices usando QGIS?

11

Quiero dividir automáticamente todas las líneas en una capa QGIS en sus vértices ( como este ).

Hice una búsqueda en Google y encontré este artículo , que está bastante cerca, pero el flujo de trabajo es complicado. Debido a que tendré que capacitar a mis compañeros de trabajo (que no están familiarizados con GIS) para usar esta herramienta, quiero algo tan simple como un complemento o algo que no requiera GRASS. Dado que ha pasado mucho tiempo desde 2010, el tiempo de la respuesta anterior , me pregunto si hay una mejor manera de lograr el mismo resultado.

Cao Minh Tu
fuente
Puede usar las herramientas GRASS de QGIS hoy en día. Tal vez Vector-> Herramientas de geometría-> Piezas individuales a multiparte podrían ayudar. La caja de herramientas de Sextante debe tener "Desglosar capa de línea" Y hay un complemento "función dividida"
simplexio
Creo que la respuesta a la que se refirió es (aún) el procedimiento correcto. La herramienta vectorial "Parte individual a multiparte" no hará lo que desea. Divide una cadena de líneas múltiples en los nodos , no en cada vértice.
Micha
@simplexio: con la caja de herramientas Sextante, recibí un mensaje de error como en la respuesta de Bernd V. y no puedo encontrar el complemento 'función dividida' en ninguna parte de la red.
Cao Minh Tu
@Micha: ese procedimiento puede ser correcto, pero será demasiado complejo para mis compañeros de trabajo, que no están familiarizados con los SIG, por lo que lo consideraré como el último recurso, cuando todo lo demás falló :)
Cao Minh Tu
@Cao Minh Tu: probé nuevamente la 'función Split' en Linux Master y en Win7 1.8 con una capa de línea recién creada, y allí funciona. Cree una capa de prueba desde cero y aplíquela allí. ¿Quizás haya errores en sus capas originales que deben resolverse primero?
Bernd V.

Respuestas:

17

Explotar líneas desde la Caja de herramientas de procesamiento dividirá todas las líneas en sus vértices para separarlas.

Procesamiento de menús -> Caja de herramientas. Escriba "explotar" en el campo de búsqueda para encontrar la función. Seleccione su capa de línea del menú desplegable y comience. Esto producirá una nueva capa.

Seleccionar una o más líneas de la capa de línea producirá una capa dividida con solo estas características, descartando el resto.

Nota: Como QGIS se está moviendo rápidamente, todas las informaciones a continuación ya están desactualizadas.

Creo que las líneas de explosión serían la solución novata a través de la caja de herramientas SEXTANTE . QGIS Geoalgorithms > Vector geometry tools > Explode lines. Desafortunadamente, no parece funcionar en este momento, solo recibo un mensaje de error.

Traceback (most recent call last):
  File "path/.qgis//python/plugins\sextante\core\GeoAlgorithm.py", line 145, in execute
    self.processAlgorithm(progress)
  File "path/.qgis//python/plugins\sextante\algs\Explode.py", line 58, in processAlgorithm
    features = QGisLayers.features(layer)
NameError: global name 'layer' is not defined

Una solución de trabajo es el Split Feature-Plugin del repositorio "contribuido", que hace el trabajo por mí.

En general, prefiero las funciones de sextante a complementos separados, porque el flujo de trabajo con sextante es mucho más rápido y no produce archivos basura de pasos intermedios (siempre que funcione).

EDITAR: Desafortunadamente, muchos complementos aún no se movieron al repositorio oficial de complementos, pero todavía solo están disponibles a través del repositorio de complementos "contribuido": http://pyqgis.org/repo/contributed , que se eliminó de los repositorios predeterminados lista con la versión 1.8.

Allí puede descargarlos individualmente y descomprimirlos en su carpeta .qgis / python / plugins O agregar esta dirección a su lista de repositorios de complementos: Plugins -> Fetch python plugins -> Tab "Repositories" -> Add ... -> enter a name and the url.

Bernd V.
fuente
¿Puede decirme dónde encontrar el complemento 'Split Feature'? No puedo encontrarlo en el repositorio oficial de complementos. Con las líneas de explosión de SEXTANTE, recibí el mismo mensaje de error que el suyo: hay un informe de error aquí: hub.qgis.org/issues/7157
Cao Minh Tu
@Cao Minh Tu: lo siento, olvidé por completo que agregué el antiguo repositorio a mi lista, donde este complemento reside exclusivamente. ver mis ediciones
Bernd V.
Probé el complemento Split Feature, no hay ningún mensaje de error, pero la capa de salida no contenía nada.
Cao Minh Tu
Solo hay un error 404 en pyqgis.org/repo/contributed : ¿ha cambiado la URL?
til_b
@til_be ver mi edición
Bernd V.
4
  1. Abrir / Crear conjunto de mapas de GRASS (para que pueda ejecutar las herramientas en sus datos)
  2. Abra las herramientas de GRASS / Importe el archivo de forma que desea dividir en la base de datos de GRASS
  3. Ejecute v.split.vert (establezca el número máximo de vértices = 2)
user32879
fuente
Esta solución mantiene los valores z en las geometrías del segmento
Tamas Kosa
1
    segment_list = []
    for feature in feature_list:
        vertices = feature.geometry().asPolyline() # returns list of vertices comprising polyline
        for point in range(len(vertices)-1):
            segment = QgsFeature()
            segment.setGeometry(QgsGeometry.fromPolyline([vertices[point], vertices [point+1]]))
            segment.setAttributes(feature.attributes())
            segment_list.append(segment)
Steve
fuente