Ja, Sie können die GDAL-Dienstprogramme in Python aufrufen. Je nachdem, ob es sich bei dem Dienstprogramm um eine eigenständige Exe oder um einen Python-Code handelt, gibt es nur geringfügige Unterschiede in der Vorgehensweise. In beiden Fällen müssen Sie das Unterprozessmodul verwenden :
import subprocess
# constants
gdalTranslate = r'C:\Program Files\GDAL\gdal_translate.exe'
src = r"C:\somefolder\somefile.tif"
dst = r"C:\someotherfolder\myresul.tif"
cmd = "-ot float32 -outsize 25 25" # just for example!
# see note below
def youCanQuoteMe(item):
return "\"" + item + "\""
fullCmd = ' '.join([gdalTranslate, cmd, youCanQuoteMe(src), youCanQuoteMe(dst)])
subprocess.popen(fullCmd)
Sie werden feststellen, dass ich meine Pfade in Anführungszeichen setze. Dies liegt daran, dass ich unter Windows Probleme mit Pfaden hatte, insbesondere mit Leerzeichen oder wenn eines der Zeichen '\' ein anderes versehentlich maskiertes Zeichen erzeugt. Also behalte ich sozusagen den richtigen Weg in aspec.
Wenn Sie eines der Python-Dienstprogramme verwenden, tun Sie dasselbe, mit der Ausnahme, dass Ihre Exe am Anfang der Unterprozessbefehlszeichenfolge jetzt "C: \ python32 \ python.exe" lautet (oder welche Version Sie auch haben) und Ihr zweites Element lautet das Python-Dienstprogramm, das Sie verwenden möchten.
Natürlich können Sie auch über Ihr Dateisystem iterieren, anstatt hartcodierte Konstanten zu verwenden, aber dies ist nur ein Beispiel.
BEARBEITEN - Generalisieren für QGIS-Plugins
QGIS erstellt / ändert beim Start eine Reihe von Umgebungsvariablen. Sie können also verallgemeinerte Pfadvariablen für die GDAL-Bibliotheken / -Dienstprogramme erstellen, indem Sie diese anstelle der fest codierten Pfade im obigen Beispiel verwenden (siehe Einstellungen-> Optionen-> System).