Mehr

Mehrere Dateien gleichzeitig in QGIS exportieren?

Mehrere Dateien gleichzeitig in QGIS exportieren?


Ich habe viele .TAB-Dateien in QGIS geöffnet und möchte sie in .SHP speichern, damit ich mit ihnen in ArcMap arbeiten kann.

Gibt es eine Möglichkeit, alle diese Dateien gleichzeitig zu speichern/exportieren oder muss ich wirklich für jede einzelne Datei separat "speichern unter"?


Versuchen Sie diese Frida:

  1. Erstellen Sie einen Ordner, um Ihre Shapefiles dort zu speichern (z. B. habe ich den Ordner erstellt/tmp/daten/, ich verwende GNU/Linux).

  2. Öffnen Sie in QGIS die QGIS Python-Konsole.

  3. Schreiben Sie die folgende Zeile und bearbeiten Sie die rechte Seite so, dass sie dem vollständigen Pfad zu Ihrem Ordner entspricht (stellen Sie sicher, dass Sie den abschließenden Schrägstrich/Backslash einfügen):

    myDir = '/tmp/data/'

  4. Drücken Sie Enter.

  5. Kopieren Sie die folgenden Zeilen in die QGIS Python-Konsole:

    für vLayer in iface.mapCanvas().layers(): QgsVectorFileWriter.writeAsVectorFormat( vLayer, myDir + vLayer.name() + ".shp", "utf-8", vLayer.crs(), "ESRI Shapefile" )
  6. Drücken Sie ein paar Mal die Eingabetaste.

Sie sollten jetzt Ihre Shapefiles in dem Ordner haben, den Sie in Schritt 1 erstellt haben.

Wenn Sie Probleme haben, teilen Sie mir Ihr Betriebssystem und den vollständigen Pfad zu Ihrem Ordner mit.


from qgis.core import * suffix = "_foo" pathToFile = "/path/to/wherever/" layer = iface.legendInterface().layers() für Layer in Layern: newName = layer.name() + suffix + ". shp" ret = QgsVectorFileWriter.writeAsVectorFormat(layer, pathToFile + newName, "utf-8", None, "ESRI Shapefile") if ret == QgsVectorFileWriter.NoError: print newName + " gespeichert in " + pathToFile + "!"

Verwenden Sie für Raster Layer QgsRasterFileWriterrit

€: Ein ausführlicheres Beispiel finden Sie im Kochbuch.


Nur eine kleine Ergänzung: Wenn Sie auch den CRS der exportierten Datei ändern und weitere Präfixe und Suffixe hinzufügen möchten, können Sie das Skript wie folgt ändern:

from qgis.core import * import os pathToFile = "S:pathway" trs = QgsCoordinateReferenceSystem() trs.createFromId(31370) suffix = "_Lambert1972_Versie2016-01-04" prefix = "Transect_Vuursalamander_" layer = iface.legendInterface( ).layers() für Layer in Layern: newName = Präfix + Layer.name() + Suffix + ".shp" ret = QgsVectorFileWriter.writeAsVectorFormat(layer,pathToFile + newName,'utf-8',trs,'ESRI Shapefile' ) if ret == QgsVectorFileWriter.NoError: print newName + " gespeichert in " + pathToFile + "!"

Die 31370 kann durch die EPSG des CRS ersetzt werden, in dem die exportierte Datei gespeichert werden soll.


geht das auch mit .gpkg-Layers zu .xlsx?

Ich habe es versucht:

für vLayer in iface.mapCanvas().layers(): QgsVectorFileWriter.writeAsVectorFormat( vLayer, myDir + vLayer.name() + ".xlsx", "utf-8", vLayer.crs())

Aber ich erhalte diese Fehlermeldung:

'Erstellen der Datenquelle fehlgeschlagen (OGR-Fehler: sqlite3_open(P:x01_Projektordnerx819x819128_IEK_Augsburgx05_DatenGISShapeFNP_bestand_nach Gemeinden_Tabellengemeinde_Adelsried.xlsx.gpkg) fehlgeschlagen: Datenbankdatei kann nicht geöffnet werden)')

Schau das Video: Using QGIS with PostGIS