Mehr

So legen Sie die Geotransformation mit GDAL in Python fest


Ich versuche, ein Bild aus einem numpy-Array zu erstellen und es zu georeferenzieren, damit ich es in qgis importieren kann. Ich habe den Breiten- und Längengrad in Grad für die obere linke Ecke des Arrays sowie den Abstand für die Gitter in Metern. Mein Verständnis ist, dass ich die SetGeoTransform-Funktion verwenden kann, um diese Werte festzulegen und dann die Projektion festzulegen, die in meinem Fall lcc ist. Das Problem ist, dass das Bild auf einem ganz anderen Teil der Leinwand landet. Für die

SetGeoTransform((originX, pixelWidth, 0, originY, 0, pixelHeight))

Ist es richtig, den Ursprung in Grad und die Breite in Metern einzustellen?

Können Sie sehen, was ich falsch mache?

Dies ist ein Beispiel für den Code:

import osr import numpy import gdal format = "GTiff" driver = gdal.GetDriverByName( format ) dst_ds = driver.Create( 'dst_filename.tif', 134, 164, 1, gdal.GDT_Float64) dst_ds.SetGeoTransform( [ -10, 8000 , 0, 45, 0, -8000 ] ) srs = osr.SpatialReference() srs.ImportFromProj4('+proj=lcc +lat_1=45 +lat_2=45 +lat_0=45 +lon_0=0 +x_0=0 +y_0= 0 +datum=WGS84 +units=m +no_defs') dst_ds.SetProjection( srs.ExportToWkt() ) raster = numpy.zeros( (164, 134), dtype=numpy.uint64) dst_ds.GetRasterBand(1).WriteArray( array) # Wenn wir fertig sind, schließen Sie den Datensatz dst_ds = None


Schau das Video: Rasterio, Geopandas, GDAL and Pysheds install for Anaconda in Windows - Tutorial (Oktober 2021).