Editar - Este código ya no funciona en la nueva versión de QGIS (QGIS 3.0) Si lo pego en la consola de python, genera una serie de solicitudes para el CRS pero luego no importa nada. QGIS 3.0 se ha trasladado a una versión más nueva de Python y el código que tengo es incompatible.
¿Cómo lo edito para que funcione de nuevo?
Pregunta original:
Acabo de fusionar varios cientos de capas en QGIS que se habían importado usando este código:-
import glob, os
path = "H:/aOsmap/Miltkeyn/2012 ntfs/all/"
for layer in glob.glob(path + "*.dxf"):
vlayer = QgsVectorLayer(layer, 'name', 'ogr')
subLayers = vlayer.dataProvider().subLayers()
for subLayer in subLayers:
geom_type = subLayer.split(':')[-1]
uri = "%s|layername=entities|geometrytype=%s" % (layer, geom_type,)
dfx_file_name = os.path.splitext(os.path.basename(layer))[0]
layer_name = "%s - %s" % (dfx_file_name,geom_type,)
sub_vlayer = QgsVectorLayer(uri, layer_name, 'ogr')
QgsMapLayerRegistry.instance().addMapLayer(sub_vlayer)
La fusión fue difícil porque la ventana de fusión (vector-combinar capas) mezcla las capas de líneas y las capas de puntos, por lo que seleccionar solo las capas de puntos o solo las capas de líneas, entre más de 600 capas, es laborioso y propenso a hacer clic en la capa incorrecta.
Sería más fácil y rápido importar todos los puntos de mis dxfs de una vez y fusionarlos (guardando el archivo fusionado) y luego importar todas las líneas de los dxfs y fusionarlas.
Sin embargo, no entiendo el código así que no tengo idea de qué cambiar para seleccionar solo puntos o solo líneas.
¿Alguien puede ayudarme?