Dürüstçe kullanarak bunu yapmak artık çok kolay gdalbuildvrt bir bölgesi subprocess
ya 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 AddBand
bağı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)
SetMetadatItem
iki 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.