Ich möchte ein Raster mit pythonund georeferenzieren GDAL. Mein aktueller Ansatz ist es, eine hässliche Liste von Bodenkontrollpunkten aufzurufen gdal_translateund zu gdalwarpverwenden os.system. Ich würde wirklich gerne einen Weg finden, dies von Haus aus zu tun python.
Dies ist der aktuelle Prozess, den ich verwende:
import os
os.system('gdal_translate -of GTiff -gcp 1251.92 414.538 -7.9164e+06 5.21094e+06 -gcp 865.827 107.699 -7.91651e+06 5.21104e+06 "inraster.tif" "outraster1.tif"')
os.system('gdalwarp -r bilinear -tps -co COMPRESS=NONE "outraster2.tif" "outraster3.tif"')
Es gibt eine frühere Frage und Antwort aus dem Jahr 2012, auf die gdal_translatenach dem Import zugegriffen werden kann gdal. Ich bin nicht sicher, ob es veraltet ist oder ob es falsch ist, aber wenn ich es ausführe, from osgeo import gdalsehe ich es nicht gdal.gdal_translateals Option.
Ich weiß nicht, ob es existiert, aber ich würde es lieben, wenn ich Raster auf pythonische Weise übersetzen und neu projizieren könnte. Zum Beispiel:
# translate
gcp_points = [(1251.92, 414.538), (-7.9164e+06, 5.21094e+06)]
gdal.gdal_translate(in_raster, gcp_points, out_raster1)
# warp
gdal.gdalwarp(out_raster1, out_raster2, 'bilinear', args*)
Ist ein solcher Ansatz möglich?