GDAL-VECTOR-RASTERIZE(1) GDAL GDAL-VECTOR-RASTERIZE(1)

gdal-vector-rasterize - حک کردن هندسه‌های برداری درون یک رستر

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

کاربرد: gdal vector rasterize [OPTIONS] <INPUT> <OUTPUT>
هندسه‌های برداری را درون یک رستر حک می‌کند.
آرگومان‌های موضعی:
  -i, --input <INPUT>                                      مجموعه‌داده‌های برداری ورودی [الزامی]
  -o, --output <OUTPUT>                                    مجموعه‌داده رستری خروجی [الزامی]
گزینه‌های عمومی:
  -h, --help                                               نمایش پیام راهنما و خروج
  --json-usage                                             نمایش نحوه استفاده به صورت سند JSON و خروج
  --config <KEY>=<VALUE>                                   گزینه پیکربندی [تکرارپذیر]
  -q, --quiet                                              حالت بی‌صدا (بدون نوار پیشرفت یا پیام هشدار) [در خط‌لوله‌ها در دسترس نیست]
گزینه‌ها:
  -f, --of, --format, --output-format <OUTPUT-FORMAT>      قالب خروجی
  --co, --creation-option <KEY>=<VALUE>                    گزینه ایجاد [تکرارپذیر]
  --overwrite                                              تعیین مجاز بودن بازنویسی مجموعه‌داده خروجی موجود
  -b, --band <BAND>                                        باند(هایی) که مقادیر درون آن‌ها حک می‌شوند (اندیس مبتنی بر 1) [تکرارپذیر]
  --invert                                                 معکوس کردن رستر‌سازی
  --all-touched                                            فعال کردن گزینه رستر‌سازی ALL_TOUCHED
  --burn <BURN>                                            مقدار حک [تکرارپذیر]
  -a, --attribute-name <ATTRIBUTE-NAME>                    نام صفت
  --3d                                                     مشخص می‌کند که مقدار حک باید از مقادیر Z عارضه استخراج شود
  -l, --input-layer <INPUT-LAYER>                          نام لایه ورودی
                                                           مانعة‌الجمع با --sql
  --where <WHERE>                                          بند where در SQL
  --sql <SQL>                                              دستور select در SQL
                                                           مانعة‌الجمع با --input-layer
  --dialect <DIALECT>                                      گویش SQL
  --nodata <NODATA>                                        تخصیص یک مقدار مشخص nodata به باندهای خروجی
  --init <INIT>                                            مقداردهی اولیه باندهای خروجی با مقدار مشخص‌شده [تکرارپذیر]
  --crs <CRS>                                              بازنویسی سیستم تصویر برای فایل خروجی
  --transformer-option <NAME>=<VALUE>                      تنظیم گزینه تبدیل مناسب برای ارسال به GDALCreateGenImgProjTransformer2 [تکرارپذیر]
  --extent <xmin>,<ymin>,<xmax>,<ymax>                     تنظیم محدوده زمین‌مرجع هدف [۴ مقدار]
  --resolution <xres>,<yres>                               تنظیم تفکیک‌پذیری هدف [۲ مقدار]
                                                           مانعة‌الجمع با --size
  --tap, --target-aligned-pixels                           (پیکسل‌های هم‌تراز هدف) تراز کردن مختصات محدوده فایل خروجی با مقادیر تفکیک‌پذیری
                                                           وابسته به --resolution
  --size <xsize>,<ysize>                                   تنظیم اندازه هدف بر حسب پیکسل و خط [۲ مقدار]
                                                           مانعة‌الجمع با --resolution
  --ot, --datatype, --output-data-type <OUTPUT-DATA-TYPE>  نوع داده خروجی. OUTPUT-DATA-TYPE=UInt8|Int8|UInt16|Int16|UInt32|Int32|UInt64|Int64|CInt16|CInt32|Float16|Float32|Float64|CFloat32|CFloat64
  --optimization <OPTIMIZATION>                            اجبار به استفاده از الگوریتم مشخص‌شده (نتایج یکسان هستند). OPTIMIZATION=AUTO|RASTER|VECTOR (پیش‌فرض: AUTO)
  --add                                                    افزودن به رستر موجود
  --update                                                 تعیین باز شدن مجموعه‌داده موجود در حالت به‌روزرسانی
گزینه‌های پیشرفته:
  --oo, --open-option <KEY>=<VALUE>                        گزینه‌های باز کردن [تکرارپذیر]
  --if, --input-format <INPUT-FORMAT>                      قالب‌های ورودی [تکرارپذیر]

دستور gdal vector rasterize هندسه‌های برداری را درون یک رستر درج می‌کند (burn می‌کند).

به‌طور پیش‌فرض (مگر اینکه --update یا --add مشخص شده باشد)، یک رستر جدید با تفکیک‌پذیری (--resolution) یا اندازه مشخص (--size) ایجاد می‌شود. مقادیر پیکسل‌ها یا بر روی یک مقدار ثابت (مقدار ۱، یا مقداری دیگر که با --burn مشخص شده است)، مقدار Z هندسه‌های عارضه (با --3d)، و یا مقدار فیلد مشخص‌شده با --attribute-name تنظیم خواهند شد.

تصویر سمت چپ رفتار پیش‌فرض رستری‌سازی را نشان می‌دهد، که در آن تنها پیکسل‌های روی مسیر ترسیم خط گنجانده می‌شوند.

تصویر سمت راست تأثیر --all-touched را نمایش می‌دهد، جایی که هر پیکسلی که با چندضلعی‌های ورودی تماس داشته باشد، گنجانده می‌شود.

از نسخه GDAL 3.12، این الگوریتم می‌تواند بخشی از یک gdal pipeline باشد.

گزینه‌های زیر در دسترس هستند:

افزوده‌شده در نسخه 3.12.

این برنامه از سریال‌سازی خط فرمان به عنوان یک فایل JSON با استفاده از قالب خروجی GDALG پشتیبانی می‌کند. سپس فایل حاصل می‌تواند با استفاده از درایور GDALG: GDAL Streamed Algorithm به عنوان یک مجموعه‌داده رستر باز شود و خط لوله مشخص‌شده را به‌صورت در‌لحظه / جریانی اعمال نماید.

نکته:

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

--3d
نشان می‌دهد که مقدار درج (burn) باید از مقادیر "Z" عارضه استخراج شود. برای نقاط و خطوط کار می‌کند (درون‌یابی خطی در طول هر پاره‌خط). برای چندضلعی‌ها، تنها در صورتی به‌درستی کار می‌کند که مسطح باشند (مقدار Z یکسان برای تمام رأس‌ها).
به جای درج یک مقدار جدید، این گزینه مقدار جدید را به رستر موجود اضافه می‌کند؛ شامل --update نیز می‌شود. به عنوان مثال، برای نقشه‌های حرارتی مناسب است.
گزینه رستری‌سازی ALL_TOUCHED را فعال می‌کند.

نکته:

هنگامی که این گزینه فعال است، ترتیب عوارض ورودی (خطوط یا چندضلعی‌ها) می‌تواند بر نتایج تأثیر بگذارد. وقتی دو عارضه با یکدیگر تماس پیدا می‌کنند، آخرین عارضه (یعنی بالاترین عارضه) مقدار پیکسل درج‌شده در لبه را تعیین می‌کند. ممکن است بخواهید از گزینه --sql برای مرتب‌سازی مجدد عوارض (ORDER BY) جهت دستیابی به نتیجه‌ای قابل‌پیش‌بینی‌تر استفاده کنید.
نام مشخصه / فیلدی که مقدار درج باید از آن برای هر عارضه بازیابی شود. GDAL تلاش می‌کند مقدار فیلد را به عنوان یک عدد تجزیه کند. اگر این کار ناموفق باشد، مقدار صفر نوشته خواهد شد.
باند(هایی) که مقادیر باید در آن‌ها درج شوند. می‌تواند تکرار شود.
مقدار درج. می‌تواند تکرار شود.
سیستم تصویر را برای فایل خروجی بازنویسی (override) می‌کند. در صورت عدم تعیین، سیستم تصویر فایل برداری ورودی (در صورت موجود بودن) استفاده خواهد شد. هنگام استفاده از این گزینه، هیچ بازتصویرسازی (reprojection) از عوارض از CRS وکتور ورودی به CRS مشخص‌شده رستر خروجی انجام نمی‌شود؛ بنابراین تنها برای تصحیح یک CRS مبدأ نامعتبر از این گزینه استفاده کنید. <CRS> می‌تواند هر یک از ساختارهای معمول GDAL/OGR، از جمله WKT کامل، PROJ.4، EPSG:n یا فایلی حاوی WKT باشد.
محدوده‌های مختصات‌دار (زمین‌مرجع) را تنظیم می‌کند. مقادیر باید بر حسب واحدهای زمین‌مرجع بیان شوند. در صورت عدم تعیین، محدوده فایل خروجی همان محدوده لایه‌های برداری خواهد بود.
باندهای خروجی را از پیش با مقدار مشخص‌شده مقداردهی اولیه می‌کند. می‌تواند تکرار شود.
لایه(هایی) از منبع داده را مشخص می‌کند که برای عوارض ورودی استفاده خواهند شد. می‌تواند چندین بار مشخص شود، اما حداقل یک نام لایه یا گزینه -sql باید مشخص گردد (نه هر دو).
معکوس کردن رستری‌سازی. مقدار درج ثابت، یا مقدار درج مرتبط با اولین عارضه را در تمام بخش‌هایی از تصویر که درون چندضلعی داده‌شده قرار ندارند، درج می‌کند.

نکته:

هنگامی که عوارض برداری حاوی یک چندضلعی تودرتو درون چندضلعی دیگر باشند (مانند یک جزیره در یک دریاچه)، GDAL باید همراه با GEOS ساخته شده باشد تا نتایج درستی حاصل شود.
یک مقدار nodata مشخص را به باندهای خروجی اختصاص می‌دهد.
الگوریتم مورداستفاده را تحمیل می‌کند (نتایج یکسان هستند). حالت raster در بیشتر موارد استفاده می‌شود و عملیات خواندن/نوشتن را بهینه‌سازی می‌کند. حالت vector در مواقعی که تعداد مناسبی از عوارض ورودی وجود دارد مفید است و استفاده از CPU را بهینه می‌کند. این حالت برای کارآمد بودن باید با تصاویر کاشی‌بندی‌شده (tiled) استفاده شود. حالت auto (پیش‌فرض) الگوریتم را بر اساس ویژگی‌های ورودی و خروجی انتخاب می‌کند.
باندهای خروجی را وادار می‌کند تا از نوع داده مشخص‌شده باشند. پیش‌فرض Float64 است، مگر اینکه فیلد مشخصه جهت درج از نوع Int64 باشد که در این صورت، چنانچه درایور خروجی از آن پشتیبانی کند، Int64 برای نوع داده رستر خروجی استفاده می‌شود.
تفکیک‌پذیری (رزولوشن) هدف را تنظیم می‌کند. مقادیر باید بر حسب واحدهای زمین‌مرجع بیان شوند. هر دو مقدار باید مثبت باشند. توجه داشته باشید که --resolution نمی‌تواند همراه با --size استفاده شود.
اندازه فایل خروجی را بر حسب پیکسل و خط (سطر) تنظیم می‌کند. توجه داشته باشید که --size نمی‌تواند همراه با --resolution استفاده شود. اگر یکی از دو مقدار بر روی 0 تنظیم شود، از مقدار دیگر محاسبه خواهد شد تا نسبت ابعاد (aspect ratio) محدوده حفظ شود.
یک عبارت SQL برای ارزیابی روی منبع داده جهت تولید لایه‌ای مجازی از عوارض برای درج شدن. از ساختار @filename می‌توان برای اشاره به این که محتوا در فایل مشخص‌شده قرار دارد استفاده کرد.
گویش SQL.

به‌طور پیش‌فرض، هنگام استفاده از gdal vector sql از SQL بومی یک RDBMS استفاده می‌شود. در صورت استفاده از sql به عنوان مرحله‌ای از gdal vector pipeline، این امر تنها در صورتی صادق است که مرحله قبل از sql، مرحله read باشد؛ در غیر این صورت از گویش OGRSQL استفاده می‌شود.

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

گویش SQL SQLite dialect را می‌توان با مقادیر گویش SQLITE و INDIRECT_SQLITE انتخاب کرد و این مورد را می‌توان با هر منبع داده‌ای استفاده نمود. تغییر گویش پیش‌فرض ممکن است سودمند باشد زیرا قابلیت‌های گویش‌های مختلف SQL متفاوت است.

گویش‌های پشتیبانی‌شده را می‌توان با gdal --format بررسی کرد. برای مثال:

$ gdal --format "PostgreSQL"
[...]
Supported SQL dialects: NATIVE OGRSQL SQLITE
[...]
$ gdal --format "ESRI Shapefile"
[...]
Supported SQL dialects: OGRSQL SQLITE
[...]
(پیکسل‌های هم‌تراز با هدف) مختصات محدوده فایل خروجی را با مقادیر --resolution هم‌تراز می‌کند، به‌گونه‌ای که محدوده هم‌تراز‌شده شامل حداقل محدوده باشد. هم‌ترازی به این معناست که xmin / resx، ymin / resy، xmax / resx و ymax / resy مقادیر صحیح باشند. گزینه --tap به --resolution نیاز دارد.
--transformer-option <NAME>=<VALUE> یک گزینه تبدیل‌کننده (transformer) مناسب برای ارسال به GDALCreateGenImgProjTransformer2() تنظیم می‌کند. این گزینه هنگام تبدیل مختصات هندسه‌ها به فضای پیکسلی رستر هدف استفاده می‌شود. برای مثال، می‌توان از این گزینه برای تعیین گزینه‌های تبدیل‌کننده مربوط به RPC استفاده کرد.
یک عبارت پرس‌وجوی اختیاری به سبک SQL WHERE برای اعمال جهت انتخاب عوارضی (features) از لایه(های) ورودی که باید رایت شوند (burn in).

بسیاری از قالب‌ها یک یا چند گزینه ساخت (creation option) اختیاری دارند که می‌توانند برای کنترل جزئیات فایل ایجادشده استفاده شوند. برای نمونه، درایور GeoTIFF از گزینه‌های ساختی برای کنترل فشرده‌سازی و کاشی‌بندی شدن فایل (tiled) پشتیبانی می‌کند.

می‌تواند تکرار شود.

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

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

می‌تواند تکرار شود.

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

می‌تواند تکرار شود.

قالب رستر خروجی مورد استفاده. مقادیر مجاز را می‌توان با دستور زیر مشاهده کرد: gdal --formats | grep raster | grep rw | sort
به برنامه اجازه می‌دهد تا روی فایل یا مجموعه داده هدفِ موجود بازنویسی کند. در غیر این صورت، به طور پیش‌فرض اگر فایل یا مجموعه داده هدف از قبل وجود داشته باشد، gdal با خطا خارج می‌شود.
اینکه آیا مجموعه داده خروجی موجود در حالت به‌روزرسانی (update mode) باز شود یا خیر.

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

دستور زیر تمام چندضلعی‌ها را از mask.shp با رنگ قرمز (RGB = 255,0,0) بر روی فایل TIFF رنگی work.tif رایت (burn) می‌کند.
gdal vector rasterize -b 1,2,3 --burn 255,0,0 -l mask mask.shp work.tif

حک کردن یک shapefile در یک رستر با استفاده از شرط where مشخص برای انتخاب عوارض

gdal vector rasterize -a ROOF_H --where "class='A'" -l footprints footprints.shp city_dem.tif

نکته:

از -b استفاده نمی‌شود؛ ترتیب گزینه‌های --burn باندهای رستر خروجی را تعیین می‌کند.
gdal vector rasterize --burn 255,0,0 --ot Byte --size 1000,1000 -l footprints footprints.shp mask.tif

gdal pipeline read /vsizip/vsicurl/https://www2.census.gov/geo/tiger/TIGER2025/STATE/tl_2025_us_state.zip ! \
                filter --where  "stusps = 'CA'" --update-extent ! \
                rasterize  --burn 1 --size 1500,1500 --datatype Byte ! \
                write out.png --overwrite

Alessandro Pasotti <elpaso@itopen.it>

1998-2026

August 18, 2026