Ich habe ein Python-Skript erstellt, das aus einer Shapefile ein Geotiff-Raster erstellt. Derzeit enthält das produzierte Geoteich nicht den räumlichen Bezug des Shapefiles. Wie kopiere ich den Raumbezug von der Shapefile zum Geotiff? Ich habe versucht, den räumlichen Bezug der Shapefile auf den Geotiff über den Befehl kopieren: target_ds.SetProjection (source_layer.GetSpatialRef())
Ich denke, dass das räumliche Referenzobjekt mit der Shapefile ist anders als die Geotiff, aber, don ' Ich weiß, wie man von einem zum anderen geht.Wie kopiert man den Raumbezug von einem Shapefile in ein Geotiff-Raster?
# This code creates a raster from a shapefile.
# Every feature in the shapefile is included in the raster.
import os
import gdal
import ogr
os.chdir(r'C:\Users\pipi\Documents\Rogaine\Tarlo\gpx') #folder containing gpx files
vector_fn = 'gpxcollection.shp' #filename of input shapefile
pixel_size = 25 #same unit as coordinates
raster_fn = 'test.tif' # Filename of the raster Tiff that will be created
#______Open's the data source and reads the extent________
source_ds = ogr.Open(vector_fn)
source_layer = source_ds.GetLayer() #returns the first layer in the data source
x_min, x_max, y_min, y_max = source_layer.GetExtent()
#______Create the destination raster file__________
x_res = int((x_max - x_min)/pixel_size)
y_res = int((y_max - y_min)/pixel_size)
# create the target raster file with 1 band
target_ds = gdal.GetDriverByName('GTiff').Create(raster_fn, x_res, y_res, 1, gdal.GDT_Byte)
target_ds.SetGeoTransform((x_min, pixel_size, 0, y_max, 0, -pixel_size))
band = target_ds.GetRasterBand(1)
#______Populates the raster file with the data from the shapefile____
gdal.RasterizeLayer(target_ds, [1], source_layer, burn_values=[1])
del target_ds #flushes data from memory. Without this you often get an empty raster.
Danke. Es funktioniert jetzt mit dem Wkt-Format. Das Exportieren meiner bestimmten räumlichen Referenz in das Proj.4-Format führt zu einem fehlerhaften räumlichen Bezug. –