Dürüstçe kullanarak bunu yapmak artık çok kolay gdalbuildvrt bir bölgesi subprocessya os.system.
Bunu Python ile yapmak isterseniz yapılabilir. GDAL Python içindeki standart veri kümesi oluşturma yöntemlerini kullanarak, temel veri kümesi VRT'sini kolayca oluşturabiliriz .
from osgeo import gdal
drv = gdal.GetDriverByName("VRT")
vrt = drv.Create("test.vrt", x_size, y_size, 0)
Başlangıçta bant içermeyen veri kümesini oluşturduğumuzu unutmayın. VRT'ler üzerindeki belgelerden, VRT veri kümelerinin AddBandbağımsız değişkenleri kabul edebilen birkaç veri kümesi türünden biri olduğu anlaşılmaktadır .
vrt.AddBand(gdal.GDT_Float32)
band = vrt.GetRasterBand(1)
Şimdi her bant için meta veri öğelerini manuel olarak ayarlamamız gerekiyor:
simple_source = '<SourceFilename relativeToVRT="1">%s</SourceFilename>' % source_path + \
'<SourceBand>%i</SourceBand>' % source_band + \
'<SourceProperties RasterXSize="%i" RasterYSize="%i" DataType="Real" BlockXSize="%i" BlockYSize="%i"/>' % (x_size, y_size, x_block, y_block) + \
'<SrcRect xOff="%i" yOff="%i" xSize="%i" ySize="%i"/>' % (x_offset, y_offset, x_source_size, y_source_size) + \
'<DstRect xOff="%i" yOff="%i" xSize="%i" ySize="%i"/>' % (dest_x_offset, dest_y_offset, x_dest_size, y_dest_size)
band.SetMetadataItem("SimpleSource", simple_source)
band.SetMetadataItem("NoDataValue", -9999)
SetMetadatItemiki argüman alır, ilki meta veri öğesinin bir dizesi, ikincisi öğenin kendisi. Bu, bir meta veri öğesini alt ayarlayamayacağınız anlamına gelir; bu nedenle veri kaynakları için tüm içeriği bir dize olarak ayarlamanız gerekir.
Bu yöntemi ComplexSource, değerlerin tablolarını içeren karmaşık kaynaklar ( KernelFilteredSource), rastgele boyut ve şekillerde Çekirdek filtre kaynakları ( ) ve Maske Bantları ( MaskBand) oluşturmak için kullanabileceğimizi unutmayın.