Estoy escribiendo un script independiente para QGIS. En este script quiero importar un par de archivos de texto guardados como .xyz. Cuando los importo en QGIS tengo que usar "Importar capas como texto delimitado", por lo que no son rásters. Son archivos de texto con muchas filas y cada fila contiene coordenadas x,y y z.
Después de importarlos quiero comprobar una condición y exportarlos a una nueva carpeta. La parte de importación funciona bien pero no obtengo ningún archivo de exportación en mi carpeta de salida. Esa es la parte de exportación del script:
lyr = QgsVectorLayer(uri, name, "delimitedtext")
outDir = 'C:/Users/user/Desktop/output'
fields = lyr.fields()
QgsVectorFileWriter.writeAsVectorFormat(lyr, outDir, "utf-8", fields, "CSV",
layerOptions=['GEOMETRY=AS_XYZ'])
Cuando intento ejecutar el script, no me aparece ningún mensaje de error pero tampoco hay archivos en mi carpeta de salida. No veo el error. ¿Puede alguien ayudarme?
Estoy usando QGIS 3.4.13
EDITAR
He comprobado las respuestas y he modificado el código pero sigue sin funcionar. Todavía no hay mensaje de error y todavía no hay archivos en mi carpeta de salida.
Esta es la función completa sin la condición:
def moveFiles(self):
inputDir = self.dlg.input_folder.text() #directory of xyz files - "Users/denni/Desktop/xyz_data"
outDir = self.dlg.output_folder.text() #output directory - "C:/Users/denni/Desktop/output/"
crs = "EPSG:25832"
for file in glob.glob("*.xyz"):
uri = "file:///" + inputDir +"/"+ file + "?type=csv&delimiter=%s&crs=%s&xField=%s&yField=%s" % (" ", crs, "field_1", "field_2")
name = file.replace('.xyz', '')
lyr = QgsVectorLayer(uri, name, "delimitedtext")
outputPath = outDir + file
QgsVectorFileWriter.writeAsVectorFormat(lyr, outputPath, 'utf-8', lyr.crs(), "CSV",
layerOptions='GEOMETRY=AS_XYZ')
¿Cuál puede ser el problema?