GDAL_GRID(1) GDAL GDAL_GRID(1)

gdal_grid - ایجاد شبکه منظم (رستر) از داده‌های پراکنده

gdal_grid [--help] [--help-general]
          [-ot {Byte/Int16/UInt16/UInt32/Int32/Float32/Float64/
          CInt16/CInt32/CFloat32/CFloat64}]
          [-oo <NAME>=<VALUE>]...
          [-of <format>] [-co <NAME>=<VALUE>]...
          [-zfield <field_name>] [-z_increase <increase_value>] [-z_multiply <multiply_value>]
          [-a_srs <srs_def>] [-spat <xmin> <ymin> <xmax> <ymax>]
          [-clipsrc <xmin> <ymin> <xmax> <ymax>|<WKT>|<datasource>|spat_extent]
          [-clipsrcsql <sql_statement>] [-clipsrclayer <layer>]
          [-clipsrcwhere <expression>]
          [-l <layername>]... [-where <expression>] [-sql <select_statement>]
          [-txe <xmin> <xmax>] [-tye <ymin> <ymax>] [-tr <xres> <yres>] [-outsize <xsize> <ysize>]
          [-a {<algorithm>[[:<parameter1>=<value1>]...]}] [-q]
          <src_datasource> <dst_filename>

این برنامه یک شبکه منظم (رستر) را از داده‌های پراکنده خوانده‌شده از منبع داده OGR ایجاد می‌کند. داده‌های ورودی برای پر کردن گره‌های شبکه با مقادیر، درون‌یابی می‌شوند و شما می‌توانید از میان روش‌های مختلف درون‌یابی انتخاب کنید.

امکان تنظیم گزینه پیکربندی GDAL_NUM_THREADS برای موازی‌سازی پردازش وجود دارد. مقدار مشخص‌شده تعداد ریسمان‌های پردازشی (worker threads)، یا ALL_CPUS برای استفاده از تمام هسته‌ها/پردازنده‌های رایانه است.

نکته:

معادل در رابط خط فرمان جدید "gdal":

بخش gdal vector grid را ببینید.

نمایش این پیام راهنما و خروج.
--help-general
نمایش یک پیام کاربردی کوتاه برای گزینه‌های عمومی خط فرمان GDAL و خروج.
عدم نمایش پیام‌های پیشرفت و سایر خروجی‌های غیرخطا.
اجبار باندهای تصویر خروجی به داشتن یک نوع داده مشخص که توسط درایور پشتیبانی می‌شود؛ این مقدار می‌تواند یکی از موارد زیر باشد: Byte، Int8، UInt16، Int16، UInt32، Int32، UInt64، Int64، Float32، Float64، CInt16، CInt32، CFloat32 یا CFloat64.

اگر تنظیم نشود، یک نوع پیش‌فرض استفاده می‌شود که ممکن است توسط درایور مربوطه پشتیبانی نشود و موجب بروز خطا گردد.

انتخاب قالب خروجی. در صورت عدم تعیین، قالب از روی پسوند فایل تشخیص داده می‌شود. از نام کوتاه قالب استفاده کنید.
تنظیم محدوده زمین‌مرجع‌شده محور X برای فایل خروجی در حال ایجاد.
تنظیم محدوده زمین‌مرجع‌شده محور Y برای فایل خروجی در حال ایجاد.
تنظیم تفکیک‌پذیری فایل خروجی (بر حسب واحدهای زمین‌مرجع‌شده مقصد). توجه داشته باشید که -tr فقط در ترکیب با ورودی معتبر از -txe و -tye کار می‌کند.

در نسخه 3.2 اضافه شد.

تنظیم اندازه فایل خروجی بر حسب پیکسل و سطر. توجه داشته باشید که -outsize نمی‌تواند همراه با -tr استفاده شود.
بازنویسی سیستم تصویر فایل خروجی. srs_def می‌تواند هر یک از اشکال معمول GDAL/OGR، شامل WKT کامل، PROJ.4، EPSG:n یا فایلی حاوی WKT باشد. هیچ بازتصویرسازی انجام نمی‌شود.
مشخص‌کننده یک فیلد توصیفی در عوارض که برای دریافت مقدار Z استفاده می‌شود. این مقدار جایگزین مقدار Z خوانده‌شده از رکورد هندسه عارضه می‌شود (طبیعتاً اگر در هندسه مقدار Z داشته باشید، در غیر این صورت چاره‌ای ندارید و باید نام فیلدی حاوی مقدار Z را مشخص کنید).
مقدار افزایشی برای افزودن به فیلد توصیفی عوارض که برای دریافت مقدار Z به کار می‌رود. این افزایش باید هم‌واحد با مقدار Z باشد. مقدار حاصل برابر با مقدار Z + مقدار افزایش Z خواهد بود. مقدار پیش‌فرض 0 است.
ضریب ضرب برای فیلد Z است. این گزینه می‌تواند برای تغییر واحد (مثلاً فوت به متر) یا از ارتفاع به عمق استفاده شود. مقدار حاصل برابر با (مقدار Z + مقدار افزایش Z) * مقدار ضریب Z خواهد بود. مقدار پیش‌فرض 1 است.
تنظیم نام الگوریتم درون‌یابی یا سنجه داده و (به صورت اختیاری) پارامترهای آن. برای بررسی بیشتر گزینه‌های در دسترس، بخش‌های الگوریتم‌های درون‌یابی (INTERPOLATION ALGORITHMS) و سنجه‌های داده (DATA METRICS) را ببینید.
افزودن یک فیلتر مکانی برای انتخاب فقط عوارضی که درون کادر محصورکننده توصیف‌شده با (xmin, ymin) - (xmax, ymax) قرار دارند.
افزودن یک فیلتر مکانی برای انتخاب فقط عوارضی که در کادر محصورکننده مشخص‌شده (بیان‌شده در SRS مبدا)، هندسه WKT (از نوع POLYGON یا MULTIPOLYGON)، از یک منبع داده یا در محدوده مکانی گزینه -spat (در صورت استفاده از کلیدواژه spat_extent) قرار دارند. هنگام مشخص کردن منبع داده، عموماً می‌خواهید آن را در ترکیب با گزینه‌های -clipsrclayer، -clipsrcwhere یا -clipsrcsql به کار ببرید.
انتخاب هندسه‌های مورد نظر با استفاده از یک پرس‌وجوی SQL به جای آن.
انتخاب لایه نام‌برده از منبع داده برش مبدا.
محدود کردن هندسه‌های مورد نظر بر اساس یک پرس‌وجوی توصیفی.
نشان‌دهنده لایه(هایی) از منبع داده است که برای عوارض ورودی استفاده خواهد شد. می‌تواند چندین بار مشخص شود، اما حداقل یک نام لایه یا یک گزینه -sql باید مشخص گردد.
یک عبارت پرس‌وجوی اختیاری به سبک SQL WHERE برای اعمال جهت انتخاب عوارض مورد پردازش از لایه(های) ورودی.
یک دستور SQL برای ارزیابی روی منبع داده جهت تولید یک لایه مجازی از عوارض برای پردازش.
در نسخه 3.7 اضافه شد.

گزینه باز کردن مجموعه داده مبدا (وابسته به قالب)

بسیاری از قالب‌ها یک یا چند گزینه ساخت اختیاری دارند که می‌توان برای کنترل جزئیات فایل ایجادشده استفاده کرد. به عنوان مثال، درایور GeoTIFF از گزینه‌های ساخت برای کنترل فشرده‌سازی و اینکه آیا فایل باید به صورت تایل‌بندی‌شده باشد یا خیر پشتیبانی می‌کند.

گزینه‌های ساخت موجود بسته به درایور قالب متفاوت است و برخی قالب‌های ساده اصلاً هیچ گزینه ساختی ندارند. فهرستی از گزینه‌های پشتیبانی‌شده برای یک قالب را می‌توان با گزینه خط فرمان --format مشاهده کرد، اما مستندات مربوط به آن قالب منبع نهایی اطلاعات در مورد گزینه‌های ساخت درایور است. مستندات اختصاصی قالب در درایورهای رستر (Raster drivers) را برای گزینه‌های ساخت مجاز هر قالب ببینید.

<src_datasource>
هر منبع داده قابل خواندن که توسط OGR پشتیبانی می‌شود.
<dst_filename>
فایل خروجی پشتیبانی‌شده توسط GDAL.

تعدادی الگوریتم درون‌یابی برای انتخاب وجود دارد.

جزئیات بیشتر درباره آنها را نیز می‌توانید در آموزش شبکه GDAL (GDAL Grid Tutorial) بیابید.

توان عکس فاصله (Inverse distance to a power). این الگوریتم پیش‌فرض است و پارامترهای زیر را دارد:

  • power: توان وزن‌دهی (پیش‌فرض 2.0).
  • smoothing: پارامتر هموارسازی (پیش‌فرض 0.0).
  • radius1: اولین شعاع بیضی جستجو (محور X در صورتی که زاویه چرخش 0 باشد). برای استفاده از کل آرایه نقاط، این پارامتر را صفر تنظیم کنید. پیش‌فرض 0.0 است.
  • radius2: دومین شعاع بیضی جستجو (محور Y در صورتی که زاویه چرخش 0 باشد). برای استفاده از کل آرایه نقاط، این پارامتر را صفر تنظیم کنید. پیش‌فرض 0.0 است.
  • radius: تنظیم شعاع اول و دوم (مانعة‌الجمع با radius1 و radius2). پیش‌فرض 0.0 است. در GDAL 3.6 اضافه شد.
  • angle: زاویه چرخش بیضی جستجو بر حسب درجه (پادساعت‌گرد، پیش‌فرض 0.0).
  • max_points: حداکثر تعداد نقاط داده برای استفاده. نقاط بیشتری بیش از این تعداد جستجو نخواهد شد. این پارامتر فقط زمانی استفاده می‌شود که بیضی جستجو تنظیم شده باشد (هر دو شعاع غیرصفر باشند). مقدار صفر به این معنی است که تمام نقاط یافت‌شده باید استفاده شوند. پیش‌فرض 0 است.
  • min_points: حداقل تعداد نقاط داده برای استفاده. اگر تعداد نقاط کمتری یافت شود، گره شبکه خالی تلقی شده و با نشانگر NODATA پر خواهد شد. این پارامتر فقط در صورت تنظیم بیضی جستجو (هر دو شعاع غیرصفر) استفاده می‌شود. پیش‌فرض 0 است.
  • max_points_per_quadrant: حداکثر تعداد نقاط داده برای استفاده در هر ربع. پیش‌فرض 0 است. در GDAL 3.6 اضافه شد. در صورت مشخص شدن، در واقع از پیاده‌سازی invdistnn استفاده می‌شود.
  • min_points_per_quadrant: حداقل تعداد نقاط داده برای استفاده در هر ربع. پیش‌فرض 0 است. در GDAL 3.6 اضافه شد. در صورت مشخص شدن، در واقع از پیاده‌سازی invdistnn استفاده می‌شود.
  • nodata: نشانگر NODATA برای پر کردن نقاط خالی (پیش‌فرض 0.0).

توان عکس فاصله همراه با جستجوی نزدیک‌ترین همسایه، مناسب برای زمانی که max_points استفاده می‌شود. پارامترهای زیر را دارد:

  • power: توان وزن‌دهی (پیش‌فرض 2.0).
  • smoothing: پارامتر هموارسازی (پیش‌فرض 0.0).
  • radius: شعاع دایره جستجو که باید غیرصفر باشد. پیش‌فرض 1.0 است.
  • max_points: حداکثر تعداد نقاط داده برای استفاده. برای نقاط بیشتری بیش از این مقدار جستجو نکنید. نقاط یافت‌شده هنگام وزن‌دهی بر اساس فاصله از نزدیک‌ترین به دورترین رتبه‌بندی می‌شوند. پیش‌فرض 12 است.
  • min_points: حداقل تعداد نقاط داده برای استفاده. اگر تعداد نقاط کمتری یافت شود، گره شبکه خالی در نظر گرفته شده و با نشانگر NODATA پر می‌شود. پیش‌فرض 0 است.
  • max_points_per_quadrant: حداکثر تعداد نقاط داده برای استفاده در هر ربع. پیش‌فرض 0 است. در GDAL 3.6 اضافه شد. در صورت تعیین، الگوریتم برای هر یک از ربع‌های بالا-راست، بالا-چپ، پایین-راست و پایین-چپ نسبت به نقطه در حال درون‌یابی، حداکثر تا max_points_per_quadrant نقطه را لحاظ می‌کند.
  • min_points_per_quadrant: حداقل تعداد نقاط داده برای استفاده در هر ربع. پیش‌فرض 0 است. در GDAL 3.6 اضافه شد. اگر این تعداد حاصل نشود، نقطه در حال درون‌یابی با نشانگر NODATA تنظیم می‌شود. در صورت تعیین، الگوریتم حداقل min_points_per_quadrant نقطه را برای هر یک از ربع‌های بالا-راست، بالا-چپ، پایین-راست و پایین-چپ نسبت به نقطه در حال درون‌یابی جمع‌آوری می‌کند.
  • nodata: نشانگر NODATA برای پر کردن نقاط خالی (پیش‌فرض 0.0).

هنگامی که min_points_per_quadrant یا max_points_per_quadrant مشخص شود، جستجو با نزدیک‌ترین نقطه به نقطه در حال درون‌یابی از ربع اول شروع می‌شود، سپس نزدیک‌ترین نقطه به نقطه در حال درون‌یابی از ربع دوم و به همین ترتیب تا ربع چهارم، و با نزدیک‌ترین نقطه بعدی در ربع اول ادامه می‌یابد تا زمانی که به آستانه‌های max_points و/یا max_points_per_quadrant برسد.

الگوریتم میانگین متحرک (Moving average). پارامترهای زیر را دارد:

  • radius1: اولین شعاع بیضی جستجو (محور X در صورتی که زاویه چرخش 0 باشد). برای استفاده از کل آرایه نقاط، این پارامتر را صفر قرار دهید. پیش‌فرض 0.0 است.
  • radius2: دومین شعاع بیضی جستجو (محور Y در صورتی که زاویه چرخش 0 باشد). برای استفاده از کل آرایه نقاط، این پارامتر را صفر قرار دهید. پیش‌فرض 0.0 است.
  • radius: تنظیم شعاع اول و دوم (مانعة‌الجمع با radius1 و radius2). پیش‌فرض 0.0 است. در GDAL 3.6 اضافه شد.
  • angle: زاویه چرخش بیضی جستجو بر حسب درجه (پادساعت‌گرد، پیش‌فرض 0.0).
  • max_points: حداکثر تعداد نقاط داده برای استفاده. بیش از این تعداد نقطه جستجو نشود. نقاط یافت‌شده هنگام وزن‌دهی از نزدیک‌ترین به دورترین فاصله رتبه‌بندی می‌شوند. پیش‌فرض 0 است. در GDAL 3.6 اضافه شد. تنها در صورتی لحاظ می‌شود که یک یا هر دوی min_points_per_quadrant یا max_points_per_quadrant مشخص شده باشند.
  • min_points: حداقل تعداد نقاط داده برای استفاده. اگر تعداد نقاط کمتری یافت شود، گره شبکه خالی تلقی شده و با نشانگر NODATA پر خواهد شد. پیش‌فرض 0 است.
  • max_points_per_quadrant: حداکثر تعداد نقاط داده برای استفاده در هر ربع. پیش‌فرض 0 است. در GDAL 3.6 اضافه شد. در صورت تعیین، الگوریتم برای هر یک از ربع‌های بالا-راست، بالا-چپ، پایین-راست و پایین-چپ نسبت به نقطه در حال درون‌یابی، حداکثر تا max_points_per_quadrant نقطه را لحاظ می‌کند.
  • min_points_per_quadrant: حداقل تعداد نقاط داده برای استفاده در هر ربع. پیش‌فرض 0 است. در GDAL 3.6 اضافه شد. اگر این تعداد حاصل نشود، نقطه در حال درون‌یابی با نشانگر NODATA تنظیم می‌شود. در صورت تعیین، الگوریتم حداقل min_points_per_quadrant نقطه را برای هر یک از ربع‌های بالا-راست، بالا-چپ، پایین-راست و پایین-چپ نسبت به نقطه در حال درون‌یابی جمع‌آوری می‌کند.
  • nodata: نشانگر NODATA برای پر کردن نقاط خالی (پیش‌فرض 0.0).

توجه داشته باشید که تعیین بیضی جستجو برای روش میانگین متحرک ضروری است. این پنجره‌ای است که هنگام محاسبه مقادیر گره‌های شبکه میانگین‌گیری می‌شود.

هنگامی که min_points_per_quadrant یا max_points_per_quadrant مشخص شود، جستجو با نزدیک‌ترین نقطه به نقطه در حال درون‌یابی از ربع اول شروع می‌شود، سپس نزدیک‌ترین نقطه به نقطه در حال درون‌یابی از ربع دوم و به همین ترتیب تا ربع چهارم، و با نزدیک‌ترین نقطه بعدی در ربع اول ادامه می‌یابد تا زمانی که به آستانه‌های max_points و/یا max_points_per_quadrant برسد.

الگوریتم نزدیک‌ترین همسایه (Nearest neighbor). پارامترهای زیر را دارد:

  • radius1: اولین شعاع بیضی جستجو (محور X در صورتی که زاویه چرخش 0 باشد). برای استفاده از کل آرایه نقاط، این پارامتر را صفر قرار دهید. پیش‌فرض 0.0 است.
  • radius2: دومین شعاع بیضی جستجو (محور Y در صورتی که زاویه چرخش 0 باشد). برای استفاده از کل آرایه نقاط، این پارامتر را صفر قرار دهید. پیش‌فرض 0.0 است.
  • radius: تنظیم شعاع اول و دوم (مانعة‌الجمع با radius1 و radius2). پیش‌فرض 0.0 است. در GDAL 3.6 اضافه شد.
  • angle: زاویه چرخش بیضی جستجو بر حسب درجه (پادساعت‌گرد، پیش‌فرض 0.0).
  • nodata: نشانگر NODATA برای پر کردن نقاط خالی (پیش‌فرض 0.0).

الگوریتم درون‌یابی خطی (Linear interpolation).

روش خطی با محاسبه مثلث‌بندی دلونی (Delaunay triangulation) ابر نقاط، یافتن اینکه نقطه در کدام مثلث از مثلث‌بندی قرار دارد و انجام درون‌یابی خطی بر اساس مختصات گرانیگاهی (barycentric) آن در درون مثلث، عمل درون‌یابی خطی را انجام می‌دهد. اگر نقطه در هیچ مثلثی قرار نگیرد، بسته به شعاع، الگوریتم از مقدار نزدیک‌ترین نقطه یا مقدار nodata استفاده خواهد کرد.

پارامترهای زیر را دارد:

  • radius: در صورتی که نقطه مورد نظر برای درون‌یابی در هیچ مثلثی از مثلث‌بندی دلونی نگنجد، از این حداکثر فاصله برای جستجوی نزدیک‌ترین همسایه استفاده می‌شود، یا در غیر این صورت از nodata استفاده خواهد شد. اگر روی -1 تنظیم شود، فاصله جستجو نامحدود است. اگر روی 0 تنظیم شود، همیشه مقدار nodata استفاده خواهد شد. پیش‌فرض -1 است.
  • nodata: نشانگر NODATA برای پر کردن نقاط خالی (پیش‌فرض 0.0).

علاوه بر قابلیت‌های درون‌یابی، می‌توان از gdal_grid برای محاسبه برخی سنجه‌های داده با استفاده از پنجره مشخص‌شده و هندسه شبکه خروجی استفاده کرد. این سنجه‌ها عبارتند از:

  • minimum: حداقل مقدار یافت‌شده در بیضی جستجوی گره شبکه.
  • maximum: حداکثر مقدار یافت‌شده در بیضی جستجوی گره شبکه.
  • range: اختلاف بین مقادیر حداقل و حداکثر یافت‌شده در بیضی جستجوی گره شبکه.
  • count: تعداد نقاط داده یافت‌شده در بیضی جستجوی گره شبکه.
  • average_distance: میانگین فاصله بین گره شبکه (مرکز بیضی جستجو) و تمام نقاط داده یافت‌شده در بیضی جستجوی گره شبکه.
  • average_distance_pts: میانگین فاصله بین نقاط داده یافت‌شده در بیضی جستجوی گره شبکه. فاصله بین هر جفت نقطه در بیضی محاسبه شده و میانگین تمام فواصل به عنوان مقدار گره شبکه تنظیم می‌شود.

تمام این سنجه‌ها مجموعه گزینه‌های یکسانی دارند:

  • radius1: اولین شعاع بیضی جستجو (محور X در صورتی که زاویه چرخش 0 باشد). برای استفاده از کل آرایه نقاط، این پارامتر را صفر قرار دهید. پیش‌فرض 0.0 است.
  • radius2: دومین شعاع بیضی جستجو (محور Y در صورتی که زاویه چرخش 0 باشد). برای استفاده از کل آرایه نقاط، این پارامتر را صفر قرار دهید. پیش‌فرض 0.0 است.
  • radius: تنظیم شعاع اول و دوم (مانعة‌الجمع با radius1 و radius2). پیش‌فرض 0.0 است. در GDAL 3.6 اضافه شد.
  • angle: زاویه چرخش بیضی جستجو بر حسب درجه (پادساعت‌گرد، پیش‌فرض 0.0).
  • min_points: حداقل تعداد نقاط داده برای استفاده. اگر تعداد نقاط کمتری یافت شود، گره شبکه خالی تلقی شده و با نشانگر NODATA پر خواهد شد. این پارامتر فقط در صورت تنظیم بیضی جستجو (هر دو شعاع غیرصفر) استفاده می‌شود. پیش‌فرض 0 است.
  • max_points_per_quadrant: حداکثر تعداد نقاط داده برای استفاده در هر ربع. پیش‌فرض 0 است. در GDAL 3.6 اضافه شد. در صورت تعیین، الگوریتم برای هر یک از ربع‌های بالا-راست، بالا-چپ، پایین-راست و پایین-چپ نسبت به نقطه در حال درون‌یابی، حداکثر تا max_points_per_quadrant نقطه را لحاظ می‌کند.
  • min_points_per_quadrant: حداقل تعداد نقاط داده برای استفاده در هر ربع. پیش‌فرض 0 است. در GDAL 3.6 اضافه شد. اگر این تعداد حاصل نشود، نقطه در حال درون‌یابی با نشانگر NODATA تنظیم می‌شود. در صورت تعیین، الگوریتم حداقل min_points_per_quadrant نقطه را برای هر یک از ربع‌های بالا-راست، بالا-چپ، پایین-راست و پایین-چپ نسبت به نقطه در حال درون‌یابی جمع‌آوری می‌کند.
  • nodata: نشانگر NODATA برای پر کردن نقاط خالی (پیش‌فرض 0.0).

هنگامی که min_points_per_quadrant یا max_points_per_quadrant مشخص شود، جستجو با نزدیک‌ترین نقطه به نقطه در حال درون‌یابی از ربع اول شروع می‌شود، سپس نزدیک‌ترین نقطه به نقطه در حال درون‌یابی از ربع دوم و به همین ترتیب تا ربع چهارم، و با نزدیک‌ترین نقطه بعدی در ربع اول ادامه می‌یابد تا زمانی که به آستانه‌های max_points و/یا max_points_per_quadrant برسد.

اغلب شما یک فایل متنی با فهرستی از مقادیر XYZ جداشده با کاما (فایل موسوم به CSV) برای کار دارید. می‌توانید به راحتی از این نوع منبع داده در gdal_grid استفاده کنید. تنها کاری که باید انجام دهید ساخت یک هدر مجموعه داده مجازی (VRT) برای فایل CSV خود و استفاده از آن به عنوان منبع داده ورودی برای gdal_grid است. می‌توانید جزئیات مربوط به قالب VRT را در صفحه توضیحات قالب مجازی VRT -- OGR بیابید.

در اینجا یک مثال کوچک آورده شده است. فرض کنیم یک فایل CSV به نام dem.csv داریم حاوی:

Easting,Northing,Elevation
86943.4,891957,139.13
87124.3,892075,135.01
86962.4,892321,182.04
87077.6,891995,135.01
...

برای داده‌های فوق، یک هدر dem.vrt با محتوای زیر ایجاد می‌کنیم:

<OGRVRTDataSource>
    <OGRVRTLayer name="dem">
        <SrcDataSource>dem.csv</SrcDataSource>
        <GeometryType>wkbPoint</GeometryType>
        <GeometryField encoding="PointFromColumns" x="Easting" y="Northing" z="Elevation"/>
    </OGRVRTLayer>
</OGRVRTDataSource>

این توصیف، هندسه اصطلاحاً 2.5D با سه مختصات X، Y و Z را مشخص می‌کند. مقدار Z برای درون‌یابی استفاده خواهد شد. اکنون می‌توانید از dem.vrt با تمام برنامه‌های OGR استفاده کنید (با ogrinfo شروع کنید تا مطمئن شوید همه چیز به درستی کار می‌کند). منبع داده شامل یک لایه منفرد به نام "dem" خواهد بود که با عوارض نقطه‌ای ساخته‌شده از مقادیر موجود در فایل CSV پر شده است. با استفاده از این روش می‌توانید فایل‌های CSV با بیش از سه ستون را مدیریت کنید، ستون‌ها را جابجا کنید و غیره. بسیار خوب، اکنون مرحله نهایی:

gdal_grid dem.vrt demv.tif

یا اگر تمایلی به استفاده از فایل VRT نداریم:

gdal_grid -l dem -oo X_POSSIBLE_NAMES=Easting \
-oo Y_POSSIBLE_NAMES=Northing -zfield Elevation dem.csv dem.tif

اگر فایل CSV شما فاقد هدر ستون باشد، می‌توان آن را در فایل VRT به روش زیر مدیریت کرد:

<GeometryField encoding="PointFromColumns" x="field_1" y="field_2" z="field_3"/>

صفحه توضیحات مقادیر جداشده با کاما (.csv) حاوی جزئیات مربوط به قالب CSV پشتیبانی‌شده توسط GDAL/OGR است.

ایجاد فایل‌های چندباندی به طور مستقیم با gdal_grid امکان‌پذیر نیست. می‌توان از gdal_grid چندین بار برای ایجاد یک باند به ازای هر فایل استفاده کرد، و سپس از gdalbuildvrt -separate و پس از آن از gdal_translate بهره برد:

gdal_grid ... 1.tif; gdal_grid ... 2.tif; gdal_grid ... 3.tif
gdalbuildvrt -separate 123.vrt 1.tif 2.tif 3.tif
gdal_translate 123.vrt 123.tif

یا فقط از gdal_merge برای ترکیب فایل‌های تک‌باندی به یک فایل واحد استفاده کنید:

gdal_grid ... a.tif; gdal_grid ... b.tif; gdal_grid ... c.tif
gdal_merge -separate a.tif b.tif c.tif -o d.tif

این برنامه در صورت موفقیت کد وضعیت 0 و در صورت بروز خطا مقدار غیرصفر برمی‌گرداند (خطاهای غیرمسدودکننده که به عنوان هشدار صادر می‌شوند، به عنوان اجرای موفق تلقی می‌گردند).

این ابزار همچنین از طریق C با تابع GDALGrid() قابل فراخوانی است.

gdal_grid -a invdist:power=2.0:smoothing=1.0 -txe 85000 89000 -tye 894000 890000 \
    -outsize 400 400 -of GTiff -ot Float64 -l dem dem.vrt dem.tiff

این مثال یک فایل TIFF رستری را از منبع داده VRT توصیف‌شده در بخش خواندن مقادیر جداشده با کاما با استفاده از روش توان عکس فاصله ایجاد می‌کند. مقادیر برای درون‌یابی از مقدار Z رکورد هندسه خوانده خواهد شد.

gdal_grid -zfield "Elevation" -a invdist:power=2.0:smoothing=1.0 -txe 85000 89000 \
    -tye 894000 890000 -outsize 400 400 -of GTiff -ot Float64 -l dem dem.vrt \
    dem.tiff --config GDAL_NUM_THREADS ALL_CPUS

این دستور همان کار دستور قبلی را انجام می‌دهد، اما مقادیر درون‌یابی را به جای رکورد هندسه از فیلد توصیفی مشخص‌شده با گزینه -zfield می‌خواند. بنابراین در این حالت مختصات X و Y از هندسه گرفته شده و Z از فیلد "Elevation" گرفته می‌شود. متغیر GDAL_NUM_THREADS نیز برای موازی‌سازی محاسبات تنظیم شده است.

Andrey Kiselev <dron@ak4719.spb.edu>

1998-2026

August 18, 2026