Bei Verwendung der OGR-Bibliothek oder GDAL-Bibliothek mit Python-Skript ist es möglich, den Umfang einer Vektorschicht zu erhöhen, ohne dass tatsächlich neue Datenpunkte hinzugefügt werden? In meinem speziellen Fall möchte ich das Ausmaß der Vektorebenen erhöhen, die mit GPX-Dateien verbunden sind, so dass, wenn ich sie in Raster umwandle, sie alle dieselbe Pixelmatrix haben.Vergrößern der Vektorschicht mit OGR oder GDAL?
EDIT: Ein Versuch, von mir gdal.Rasterize
verwendet keine „tiff“ Datei erzeugt, noch einen Fehler verursacht werden, berichtet:
import os
import gdal
import ogr
import math
os.chdir(r'C:\Users\pipi\Documents\Rogaine\Tarlo\gpx') #folder containing gpx files
vector_fn = '6_hour_Autumngaine_w_Tom_Elle.gpx' #filename of input gpxfile
pixel_size = 20 #units are in m if gpx file is left in wgs84
raster_fn = '0011a.tif' # Filename of the raster Tiff that will be created
driver = ogr.GetDriverByName('GPX')
source_ds = driver.Open(vector_fn, 0)
source_layer = source_ds.GetLayer('track_points') #returns the 'track points' layer of the data source
SR = source_layer.GetSpatialRef().ExportToWkt()
#_______USING VALUES FROM THE FILE___________
x_min1, x_max1, y_min1, y_max1 = source_layer.GetExtent()
pixel_sizey = pixel_size/(111.2*math.pow(10,3)) #determines an approximate x and y size because of geographic coordinates.
pixel_sizex = pixel_size/(math.cos(((y_max1 + y_min1)/2)*(math.pi/180))*111.2*math.pow(10,3))
print (pixel_sizey, pixel_sizex)
x_res = int((x_max1 - x_min1)/pixel_sizex)
y_res = int((y_max1 - y_min1)/pixel_sizey)
print (x_res, y_res)
layer_list = ['track_points']
gdal.Rasterize(raster_fn, vector_fn, format='GTiff', outputBounds=[x_min1, y_min1, x_max1, y_max1], outputSRS=SR, xRes=x_res, yRes=y_res, burnValues=[1], layers=layer_list)
target_ds = None
vector_fn = None
source_layer = None
source_ds = None
Verwenden Sie 'gdal.Rasterize()'? – Benjamin
Nein, ich verwende 'gdal.RasterizeLayer()'. –
Ich würde gerne Hilfe oder eine Kopie von Python-Code, der mit gdal.Rasterize() funktioniert, auch wenn es für einen anderen Zweck ist. Meine Bemühungen, gdal.Rasterize() zu verwenden, führen nicht dazu, dass kein tiff erzeugt wird. –