সত্যি এটি ব্যবহার করে এই কাজ করা আরো সহজ gdalbuildvrt একটি subprocess
বা os.system
।
পাইথনের মাধ্যমে যদি আপনি এটি করতে চান তবে এটি করা যেতে পারে। জিডিএল পাইথনের মধ্যে স্ট্যান্ডার্ড ডেটাসেট তৈরির পদ্ধতি ব্যবহার করে আমরা সহজেই বেস ডেটাसेट ভিআরটি তৈরি করতে পারি ।
from osgeo import gdal
drv = gdal.GetDriverByName("VRT")
vrt = drv.Create("test.vrt", x_size, y_size, 0)
নোট করুন যে আমরা প্রাথমিকভাবে কোনও ব্যান্ড ছাড়াই ডেটাসেট তৈরি করছি। উপর ডকুমেন্টেশন থেকে VRTs VRT ডেটাসেট কয়েক ডেটা সেটটি ধরনের যে গ্রহণ করতে পারে এক যে AddBand
আর্গুমেন্ট।
vrt.AddBand(gdal.GDT_Float32)
band = vrt.GetRasterBand(1)
এখন প্রতিটি ব্যান্ডের জন্য আমাদের মেটাডেটা আইটেমগুলি ম্যানুয়ালি সেট করতে হবে:
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
দুটি আর্গুমেন্ট গ্রহণ করে, প্রথমটি মেটাটাটা আইটেমের একটি স্ট্রিং, দ্বিতীয়টি নিজে আইটেম। এর অর্থ হ'ল আপনি কোনও মেটাডেটা আইটেমটি সাবসেট করতে পারবেন না, সুতরাং ডেটা উত্সগুলির জন্য আপনাকে পুরো বিষয়বস্তুকে স্ট্রিং হিসাবে সেট করতে হবে।
নোট করুন যে আমরা জটিল উত্স তৈরি করতে এই পদ্ধতিটি ব্যবহার করতে পারি ( ComplexSource
) যাতে মানগুলির চেহারা-সারণী KernelFilteredSource
, স্বেচ্ছাসেবী আকার এবং আকারের কার্নেল ফিল্টার উত্স ( ) এবং মাস্ক ব্যান্ড ( MaskBand
) থাকে।