GDALWARP(1) GDAL GDALWARP(1)

gdalwarp - ابزار تغییر سیستم مختصات، بازنمونه‌برداری و موزاییک کردن تصاویر رستری

Usage: gdalwarp [--help] [--long-usage] [--help-general]
                [--quiet] [-overwrite] [-of <output_format>]
                [-co <NAME>=<VALUE>]... [-s_srs <srs_def>] [-t_srs <srs_def>]
                [[-srcalpha]|[-nosrcalpha]]
                [-dstalpha] [-tr <xres> <yres>|square] [-ts <width> <height>]
                [-te <xmin> <ymin> <xmax> <ymax>] [-te_srs <srs_def>]
                [-r near|bilinear|cubic|cubicspline|lanczos|average|rms|mode|min|max|med|q1|q3|sum]
                [-ot Byte|Int8|[U]Int{16|32|64}|CInt{16|32}|[C]Float{32|64}]
                <src_dataset_name>... <dst_dataset_name>
Advanced options:
                [-wo <NAME>=<VALUE>]... [-multi] [-s_coord_epoch <epoch>]
                [-t_coord_epoch <epoch>] [-ct <string>]
                [[-tps]|[-rpc]|[-geoloc]]
                [-order <1|2|3>] [-refine_gcps <tolerance> [<minimum_gcps>]]
                [-to <NAME>=<VALUE>]... [-et <err_threshold>]
                [-wm <memory_in_mb>] [-srcnodata "<value>[ <value>]..."]
                [-dstnodata "<value>[ <value>]..."] [-tap]
                [-wt Byte|Int8|[U]Int{16|32|64}|CInt{16|32}|[C]Float{32|64}]
                [-cutline <datasource>|<WKT>] [-cutline_srs <srs_def>]
                [-cwhere <expression>]
                [[-cl <layername>]|[-csql <query>]]
                [-cblend <distance>] [-crop_to_cutline] [-nomd]
                [-cvmd <meta_conflict_value>] [-setci] [-oo <NAME>=<VALUE>]...
                [-doo <NAME>=<VALUE>]... [-ovr <level>|AUTO|AUTO-<n>|NONE]
                [[-vshift]|[-novshiftgrid]]
                [-if <format>]... [-srcband <band>]... [-dstband <band>]...

ابزار gdalwarp برنامه‌ای برای موزاییک کردن، بازپرافکنی (تغییر سیستم تصویر) و بازنمونه‌برداری تصاویر رستری است. این برنامه می‌تواند تصاویر را به هر سیستم تصویر پشتیبانی‌شده‌ای تغییر دهد و همچنین در صورتی که تصویر به صورت خام و دارای اطلاعات کنترلی باشد، نقاط کنترل زمینی (GCP) ذخیره‌شده با تصویر را اعمال کند.

نکته:

معادل‌ها در رابط خط فرمان جدید "gdal":
  • gdal raster reproject برای تغییر سیستم مختصات
  • gdal raster update برای به‌روزرسانی محتوای یک رستر با رستری دیگر
نمایش این پیام راهنما و خروج
--help-general
نمایش پیام خلاصه نحوه استفاده از گزینه‌های عمومی خط فرمان GDAL و خروج
سرکوب پیام‌های پیشرفت و سایر خروجی‌های غیرخطا
در نسخه 3.7 اضافه شد.

تعیین شماره باند ورودی برای تغییر و تبدیل (بین ۱ و تعداد باندهای مجموعه داده مبدأ).

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

این گزینه می‌تواند چندین بار تکرار شود تا چند باند ورودی انتخاب گردد. ترتیبی که باندها مشخص می‌شوند، همان ترتیبی خواهد بود که در مجموعه داده خروجی ظاهر می‌شوند (مگر اینکه -dstband مشخص شده باشد).

باند آلفا نباید در این فهرست مشخص شود، زیرا به صورت خودکار بازیابی خواهد شد (مگر اینکه -nosrcalpha مشخص شده باشد).

دستور زیر یک مجموعه داده ورودی با باندهای به ترتیب آبی، سبز، قرمز، مادون قرمز نزدیک را به یک مجموعه داده خروجی با باندهای به ترتیب قرمز، سبز، آبی تبدیل می‌کند.

gdalwarp in_bgrn.tif out_rgb.tif -b 3 -b 2 -b 1 -overwrite
در نسخه 3.7 اضافه شد.

تعیین شماره باند خروجی که تبدیل در آن نوشته می‌شود. در عمل، این گزینه تنها هنگام به‌روزرسانی یک مجموعه داده موجود، مثلاً برای تبدیل یک باند در هر زمان، کاربرد دارد.

gdal_create -if in_red.tif -bands 3 out_rgb.tif
gdalwarp in_red.tif out_rgb.tif -srcband 1 -dstband 1
gdalwarp in_green.tif out_rgb.tif -srcband 1 -dstband 2
gdalwarp in_blue.tif out_rgb.tif -srcband 1 -dstband 3

اگر -srcband مشخص شده باشد، باید تعداد تکرار -dstband دقیقاً برابر با تعداد تکرار -srcband باشد.

باند آلفای خروجی نباید مشخص شود، زیرا اگر مجموعه داده ورودی دارای باند آلفا باشد یا اگر -dstalpha مشخص شده باشد، به صورت خودکار ایجاد خواهد شد.

اگر -dstband مشخص نشود، آنگاه -dstband 1 -dstband 2 ... -dstband N فرض می‌شود که در آن N تعداد باندهای ورودی است (که به صورت صریح با -srcband یا به صورت ضمنی مشخص شده است).

تنظیم مرجع مکانی مبدأ. اگر مشخص نشود، از SRS موجود در مجموعه داده ورودی استفاده خواهد شد.

سیستم‌های مرجع مختصاتی قابل پذیرش، هر موردی است که توسط فراخوانی OGRSpatialReference.SetFromUserInput() پشتیبانی شود، که شامل CRSهای پیش‌بینی‌شده، جغرافیایی یا مرکب EPSG (مانند EPSG:4296)، یک تعریف متنی WKT از CRS، اعلان‌های PROJ.4 یا نام یک فایل .prj حاوی تعریف WKT CRS است.

اگر SRS دارای یک دیتوم قائم صریح باشد که به یک شبکه ژئوئید اشاره کند، و مجموعه داده ورودی یک مجموعه داده تک‌باند باشد، یک تصحیح قائم روی مقادیر مجموعه داده اعمال خواهد شد.

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

تخصیص یک دوره مرجع مختصاتی، متصل به SRS مبدأ. زمانی مفید است که SRS مبدأ یک CRS دینامیک باشد. تنها زمانی لحاظ می‌شود که -s_srs استفاده شده باشد.

پیش از PROJ 9.4، گزینه‌های -s_coord_epoch و -t_coord_epoch به دلیل عدم پشتیبانی از تبدیل بین دو CRS دینامیک، با یکدیگر ناسازگار بودند.

تنظیم مرجع مکانی مقصد (هدف).

برای انجام تبدیل سیستم مختصات، یک SRS مبدأ باید در دسترس باشد. SRS مبدأ به‌طور پیش‌فرض همانی خواهد بود که در مجموعه داده ورودی یافت می‌شود (در صورت موجود بودن)، یا مقداری که توسط کاربر با -s_srs تعیین شده است.

سیستم‌های مرجع مختصاتی قابل انتقال، هر موردی است که توسط فراخوانی OGRSpatialReference.SetFromUserInput() پشتیبانی شود، شامل CRSهای تصویرشده، جغرافیایی یا مرکب EPSG (مانند EPSG:4296)، تعریف متنی WKT از CRS، اعلان‌های PROJ.4 یا نام یک فایل .prj حاوی تعریف WKT CRS.

اگر SRS دارای یک دیتوم قائم صریح باشد که به یک شبکه ژئوئید اشاره کند و مجموعه داده ورودی تک‌باند باشد، یک تصحیح قائم روی مقادیر مجموعه داده اعمال خواهد شد.

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

تخصیص یک دوره مرجع مختصاتی، متصل به SRS مقصد. زمانی مفید است که SRS مقصد یک CRS دینامیک باشد. تنها در صورت استفاده از -t_srs لحاظ می‌شود.

پیش از PROJ 9.4، گزینه‌های -s_coord_epoch و -t_coord_epoch با یکدیگر ناسازگار بودند.

یک رشته PROJ (عملیات تک‌مرحله‌ای یا رشته چندمرحله‌ای که با +proj=pipeline شروع می‌شود)، یک رشته WKT2 که یک CoordinateOperation را توصیف می‌کند، یا یک URN به فرم urn:ogc:def:coordinateOperation:EPSG::XXXX که تبدیل پیش‌فرض از CRS مبدأ به مقصد را لغو می‌کند.

باید ترتیب محورهای CRS مبدأ و مقصد را در نظر بگیرد؛ به این معنی که معمولاً اگر CRS مبدأ دارای ترتیب محورهای northing/easting باشد، یک step proj=axisswap order=2,1 در ابتدای خط لوله، و/یا اگر CRS مقصد دارای ترتیب محورهای northing/easting باشد در انتهای خط لوله قرار دهد.

هنگام ساخت یک فایل خروجی جدید، استفاده از -t_srs همچنان برای درج CRS مقصد در متادیتای فایل خروجی لازم است، اما پارامترهای CoordinateOperation جایگزین پارامترهای تبدیل استاندارد خواهند شد.

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

تنظیم یک گزینه ترانسفورمر مناسب برای انتقال به GDALCreateGenImgProjTransformer2(). برای گزینه‌های ویژه RPC به GDALCreateRPCTransformerV2() مراجعه کنید.
اجبار به استفاده از شیفت قائم (vertical shift). این گزینه معمولاً لازم نیست، مگر هنگام استفاده از یک تبدیل مختصات صریح (-ct) بدون مشخص کردن صریح SRS مبدأ و مقصد.

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

غیرفعال کردن استفاده از شیفت قائم هنگامی که یکی از SRSهای مبدأ یا مقصد دارای دیتوم قائم صریح است و مجموعه داده ورودی یک مجموعه داده تک‌باند است.

نکته:

این گزینه تا GDAL 3.3 به نام -novshiftgrid بود.

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

درجه چندجمله‌ای مورد استفاده برای تبدیل هندسی (۱ تا ۳). پیش‌فرض، انتخاب درجه چندجمله‌ای بر اساس تعداد GCPها است.
اجبار به استفاده از ترانسفورمر چندجمله‌ای صفحه نازک (Thin Plate Spline) بر اساس GCPهای موجود.

هشدار:

استفاده از ترانسفورمر Thin Plate Spline با بیش از چند هزار GCP نیازمند حافظه رم قابل‌توجه (دست‌کم numGCPs * numGCPs * 8 بایت) و زمان پردازش بسیار بالا است.
اجبار به استفاده از RPCها.
اجبار به استفاده از آرایه‌های موقعیت مکانی (Geolocation Arrays).
آستانه خطا برای تقریب تبدیل، بیان‌شده بر حسب تعداد پیکسل‌های مبدأ. پیش‌فرض ۰.۱۲۵ پیکسل است مگر اینکه گزینه ترانسفورمر RPC_DEM مشخص شده باشد، که در این حالت از یک ترانسفورمر دقیق، یعنی err_threshold=0، استفاده خواهد شد.
پالایش نقاط GCP با حذف خودکار نقاط پرت (outliers). نقاط پرت تا رسیدن به minimum_gcps یا زمانی که هیچ نقطه پرتی شناسایی نشود، حذف خواهند شد. میزان تلرانس برای تنظیم شرایط حذف یک GCP داده می‌شود. توجه داشته باشید که پالایش GCP تنها با میان‌یابی چندجمله‌ای کار می‌کند. اگر هیچ سیستم مرجع مکانی در دسترس نباشد، تلرانس بر حسب واحدهای پیکسل و در غیر این صورت بر حسب واحدهای SRS است. اگر minimum_gcps مشخص نشود، حداقل GCPها بر اساس مدل چندجمله‌ای به کار گرفته می‌شود.
تنظیم محدوده جغرافیایی فایل خروجی مورد نظر (به‌طور پیش‌فرض در SRS مقصد، یا در SRS مشخص‌شده با -te_srs).
تعیین SRSای که مختصات ارائه‌شده با -te باید بر اساس آن تفسیر شوند. مقدار <srs_def> می‌تواند هر یک از قالب‌های معمول GDAL/OGR، شامل WKT کامل، PROJ.4، EPSG:n یا فایلی حاوی WKT باشد. این گزینه نباید با -t_srs که SRS مقصد مجموعه داده خروجی است اشتباه گرفته شود. گزینه -te_srs ابزاری کمکی است، مثلاً زمانی که مختصات خروجی در یک SRS طول/عرض جغرافیایی ژئودتیک دانسته شده، اما نتیجه در یک سیستم مختصات تصویرشده (projected) خواسته شده باشد.
تنظیم تفکیک‌پذیری (رزولوشن) فایل خروجی (در واحدهای مرجع مکانی مقصد).

اگر مشخص نشود (یا از -te و -ts استنتاج نشود)، gdalwarp در حالت عمومی، یک رستر خروجی با xres=yres تولید خواهد کرد.

از نسخه GDAL 3.7 به بعد، اگر هیچ‌یک از -tr یا -ts مشخص نشوند و تغییری در سیستم مختصات وجود نداشته باشد (شامل لحاظ کردن آرایه‌های موقعیت مکانی یا RPC)، رزولوشن فایل(های) مبدأ حفظ خواهد شد (در نسخه‌های پیشین، همواره یک رستر خروجی با xres=yres تولید می‌شد). می‌توان با مشخص کردن مقدار square برای -tr درخواست کرد که همچنان پیکسل‌های مربعی تولید شوند.

(target aligned pixels) تراز کردن مختصات محدوده فایل خروجی با مقادیر -tr، به گونه‌ای که محدوده تراز‌شده شامل حداقل محدوده باشد (خطوط/ستون‌های حاشیه‌ای که پیش از تبدیل واقعی به عنوان خالی شناسایی شوند، از GDAL 3.8 حذف خواهند شد). تراز کردن به این معناست که xmin / resx، ymin / resy، xmax / resx و ymax / resy مقادیر صحیح باشند. این امر لزوماً به این معنی نیست که شبکه خروجی با شبکه ورودی تراز است.
تنظیم اندازه فایل خروجی بر حسب پیکسل و خط (عرض و ارتفاع). اگر عرض یا ارتفاع روی ۰ تنظیم شود، بعد دیگر از روی رزولوشن محاسبه‌شده حدس زده خواهد شد. توجه داشته باشید که -ts نمی‌تواند همراه با -tr استفاده شود.
مشخص کردن اینکه کدام سطح بازنگری (overview) از فایل‌های مبدأ باید استفاده شود. انتخاب پیش‌فرض، AUTO، سطحی را انتخاب می‌کند که رزولوشن آن نزدیک‌ترین به رزولوشن مقصد است. یک مقدار عدد صحیح (مبتنی بر ۰، یعنی 0=سطح اول بازنگری) برای انتخاب یک سطح خاص مشخص کنید. مقدار AUTO-n که در آن n عددی صحیح بزرگتر یا مساوی ۱ است را برای انتخاب سطح بازنگری پایین‌تر از سطح AUTO مشخص کنید. یا NONE را مشخص کنید تا رزولوشن پایه اجبار شود (می‌تواند زمانی مفید باشد که سطوح بازنگری با یک روش بازنمونه‌برداری با کیفیت پایین ایجاد شده‌اند و تبدیل با یک روش بازنمونه‌برداری با کیفیت بالاتر انجام می‌شود).
تنظیم یک گزینه تبدیل (warp option). مستندات GDALWarpOptions::papszWarpOptions تمام گزینه‌ها را نشان می‌دهد. گزینه‌های متعدد -wo می‌توانند فهرست شوند.
اجبار باندهای تصویر خروجی به داشتن نوع داده‌ای خاص که توسط درایور پشتیبانی می‌شود؛ می‌تواند یکی از موارد زیر باشد: Byte، Int8، UInt16، Int16، UInt32، Int32، UInt64، Int64، Float32، Float64، CInt16، CInt32، CFloat32 یا CFloat64.
نوع داده پیکسل کاری. نوع داده پیکسل‌ها در بافرهای تصویر مبدأ و تصویر مقصد.
روش بازنمونه‌برداری (Resampling method) مورد استفاده. روش‌های موجود عبارتند از:

near: بازنمونه‌برداری نزدیک‌ترین همسایه (پیش‌فرض برای درایورهای غیر COG، سریع‌ترین الگوریتم، کمترین کیفیت میان‌یابی).

bilinear: بازنمونه‌برداری دوسطحی (دوخطی).

cubic: بازنمونه‌برداری مکعبی (پیش‌فرض برای درایور COG).

cubicspline: بازنمونه‌برداری اسپلاین مکعبی.

lanczos: بازنمونه‌برداری پنجره‌ای سینک لنچوز (Lanczos windowed sinc).

average: بازنمونه‌برداری میانگین، میانگین وزن‌دار تمام پیکسل‌های دخیل غیر NODATA را محاسبه می‌کند.

rms: جذر میانگین مربعات / میانگین درجه دوم تمام پیکسل‌های دخیل غیر NODATA (در GDAL >= 3.3).

mode: بازنمونه‌برداری مد (نما)، مقداری را انتخاب می‌کند که بیشترین تکرار را در میان نقاط نمونه‌برداری‌شده دارد. در صورت تساوی، اولین مقداری که به عنوان مد شناسایی شود انتخاب می‌گردد.

max: بازنمونه‌برداری بیشینه، حداکثر مقدار را از تمام پیکسل‌های دخیل غیر NODATA انتخاب می‌کند.

min: بازنمونه‌برداری کمینه، حداقل مقدار را از تمام پیکسل‌های دخیل غیر NODATA انتخاب می‌کند.

med: بازنمونه‌برداری میانه، مقدار میانه تمام پیکسل‌های دخیل غیر NODATA را انتخاب می‌کند.

q1: بازنمونه‌برداری چارک اول، مقدار چارک اول تمام پیکسل‌های دخیل غیر NODATA را انتخاب می‌کند.

q3: بازنمونه‌برداری چارک سوم، مقدار چارک سوم تمام پیکسل‌های دخیل غیر NODATA را انتخاب می‌کند.

sum: محاسبه مجموع وزن‌دار تمام پیکسل‌های دخیل غیر NODATA (از GDAL 3.1).

نکته:

هنگام کاهش نمونه‌برداری (downsampling - استفاده از -tr یا -ts)، سطوح بازنگری موجود (چه داخلی/ضمنی و چه خارجی) روی تصویر مبدأ به‌طور پیش‌فرض با انتخاب نزدیک‌ترین نما به تفکیک‌پذیری خروجی مورد نظر استفاده خواهند شد. روش بازنمونه‌برداری استفاده‌شده برای ساخت آن نماها معمولاً روشی نیست که شما از طریق گزینه -r مشخص می‌کنید. برخی قالب‌ها مانند JPEG2000 به دلیل نحوه کارکرد فشرده‌سازی موجک (wavelet)، می‌توانند حاوی داده‌های پرت چشمگیری باشند. بنابراین ممکن است در این موقعیت‌ها استفاده از گزینه -ovr NONE برای جلوگیری از استفاده از نماهای موجود سودمند باشد.
تنظیم مقادیر ماسک nodata برای باندهای ورودی (می‌توان مقادیر متفاوتی برای هر باند ارائه داد). در صورت ارائه بیش از یک مقدار، تمام مقادیر باید درون نقل‌قول قرار گیرند تا به عنوان یک آرگومان واحد سیستم‌عامل در نظر گرفته شوند. مقادیر ماسک‌شده در میان‌یابی استفاده نخواهند شد (جزئیات در بخش مدیریت NODATA و ماسک اعتبارسنجی مبدأ آمده است).

از مقدار None برای نادیده گرفتن تنظیمات ذاتی nodata در مجموعه داده مبدأ استفاده کنید.

هنگامی که این گزینه روی مقداری غیر از None تنظیم شود، باعث می‌شود گزینه تبدیل UNIFIED_SRC_NODATA (به GDALWarpOptions::papszWarpOptions مراجعه کنید) روی YES تنظیم گردد، مگر اینکه صریحاً تنظیم شده باشد.

اگر -srcnodata صریحاً تعیین نشود اما مجموعه داده مبدأ دارای مقادیر nodata باشد، این مقادیر با مقدار پیش‌فرض PARTIAL برای UNIFIED_SRC_NODATA لحاظ خواهند شد.

تنظیم مقادیر nodata برای باندهای خروجی (می‌توان مقادیر متفاوتی برای هر باند ارائه داد). اگر بیش از یک مقدار داده شود، تمام مقادیر باید درون نقل‌قول قرار گیرند تا به عنوان یک آرگومان واحد سیستم‌عامل در نظر گرفته شوند. فایل‌های جدید با این مقدار مقداردهی اولیه می‌شوند و در صورت امکان مقدار nodata در فایل خروجی ثبت خواهد شد. برای اطمینان از تعریف نشدن nodata، مقدار None را به کار ببرید. اگر از این آرگومان استفاده نشود، مقادیر nodata از مجموعه داده مبدأ کپی خواهند شد.
اجبار به در نظر گرفتن آخرین باند تصویر مبدأ به عنوان باند آلفای مبدأ.
جلوگیری از در نظر گرفتن باند آلفای تصویر مبدأ به عنوان باند آلفا (مانند یک باند معمولی تبدیل خواهد شد).
ایجاد یک باند آلفای خروجی برای شناسایی پیکسل‌های nodata (تنظیم‌نشده/شفاف).
تنظیم میزان حافظه‌ای که API تبدیل (warp) مجاز است برای حافظه پنهان (کَش) استفاده کند. پیش‌فرض 64 MB است. از GDAL 3.10، مقدار را می‌توان به صورت یک مقدار ثابت حافظه (مانند -wm 200MB، -wm 1G) یا به صورت درصدی از RAM قابل استفاده (-wm 10%) مشخص کرد. در نسخه‌های پیشین، یا اگر واحدی مشخص نشود، چنانچه مقدار کمتر از 10000 باشد بر حسب مگابایت و برای مقادیر >=10000 بر حسب بایت تفسیر می‌شود.

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

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

استفاده از پیاده‌سازی تبدیل چندریسمانی (multithreaded). از دو ریسمان (thread) برای پردازش قطعات تصویر و انجام همزمان عملیات ورودی/خروجی استفاده خواهد شد. توجه داشته باشید که خود محاسبات چندریسمانی نیستند. برای چندریسمانی کردن محاسبات، می‌توانید از گزینه -wo NUM_THREADS=val/ALL_CPUS استفاده کنید که می‌تواند با -multi ترکیب شود.
نام قالب/درایور برای تلاش جهت باز کردن فایل(های) ورودی. معمولاً نیازی به تعیین آن نیست، اما می‌تواند برای رد کردن تشخیص خودکار درایور، در صورتی که نتواند درایور مناسب را انتخاب کند، استفاده شود. این گزینه می‌تواند چندین بار برای تعیین چندین درایور کاندید تکرار شود. توجه داشته باشید که درایورها را مجبور به باز کردن مجموعه داده نمی‌کند؛ به‌ویژه برخی درایورها نیازمندی‌هایی برای پسوند فایل دارند.

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

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

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

فعال‌سازی استفاده از خط برش (cutline) محوشونده از روی نام یک مجموعه داده برداری. از GDAL 3.9، یک رشته هندسی WKT که با POLYGON یا MULTIPOLYGON شروع می‌شود نیز می‌تواند مشخص گردد.
در نسخه 3.9 اضافه شد.

تنظیم یا لغو SRS خط برش.

انتخاب لایه نام‌برده‌شده از منبع داده خط برش.
محدود کردن عوارض خط برش بر اساس پرس‌وجوی توصیفی (attribute query).
انتخاب عوارض خط برش با استفاده از یک پرس‌وجوی SQL به جای انتخاب از یک لایه با -cl.
تنظیم فاصله محوشدگی (blend distance) برای محو کردن روی خطوط برش (به پیکسل).
برش دادن محدوده مجموعه داده مقصد به محدوده خط برش.
بازنویسی روی مجموعه داده مقصد در صورتی که از قبل وجود داشته باشد. بازنویسی در اینجا باید به عنوان حذف و ایجاد مجدد فایل از ابتدا درک شود. توجه داشته باشید که اگر این گزینه مشخص نشود و فایل خروجی از قبل وجود داشته باشد، در همان جا به‌روزرسانی خواهد شد.
کپی نکردن متادیتا. بدون این گزینه، متادیتای مجموعه داده و باند (و همچنین برخی اطلاعات باند) از اولین مجموعه داده مبدأ کپی خواهد شد. مواردی که میان مجموعه‌های داده مبدأ متفاوت هستند روی * تنظیم می‌شوند (گزینه -cvmd را ببینید).
مقداری که برای موارد متادیتای دارای مغایرت بین مجموعه‌های داده مبدأ تنظیم می‌شود (پیش‌فرض "*" است). از "" برای حذف موارد مغایر استفاده کنید.
تنظیم تفسیر رنگی (color interpretation) باندهای مجموعه داده مقصد بر اساس مجموعه داده مبدأ.
گزینه باز کردن مجموعه داده (ویژه قالب)
گزینه باز کردن مجموعه داده خروجی (ویژه قالب)
<src_dataset_name>
نام فایل(های) مبدأ.
<dst_dataset_name>
نام فایل مقصد.

ابزار gdalwarp تصاویر را میان سیستم‌های مرجع مختصات و تفکیک‌پذیری‌های مکانی مختلف تبدیل می‌کند.

ابتدا، در صورتی که محدوده و تفکیک‌پذیری با استفاده از -te و -tr مشخص نشده باشند، gdalwarp باید محدوده و تفکیک‌پذیری خروجی را تعیین کند. این مقادیر با تبدیل نمونه‌ای از نقاط از CRS مبدأ به CRS مقصد تعیین می‌شوند. جزئیات این فرآیند را می‌توان در مستندات GDALSuggestedWarpOutput() یافت. اگر چندین ورودی به gdalwarp داده شود، محدوده خروجی به گونه‌ای محاسبه می‌شود که تمام آنها را در بر بگیرد، با تفکیک‌پذیری که با ورودی دارای بالاترین تفکیک‌پذیری مطابقت دارد.

پس از تعیین ابعاد تصویر خروجی، gdalwarp تصویر خروجی را به قطعاتی تقسیم می‌کند که می‌توانند به طور مستقل در محدوده حافظه مشخص‌شده با -wm پردازش شوند. سپس gdalwarp روی خطوط روبش (scanlines) در این قطعات پیمایش می‌کند و برای هر پیکسل خروجی، یک ناحیه مستطیلی از پیکسل‌های مبدأ را که در مقدار پیکسل خروجی سهم دارند تعیین می‌نماید. ابعاد این ناحیه مستطیلی معمولاً با تخمین مقیاس‌های نسبی رستر مبدأ و مقصد تعیین می‌شود، اما می‌تواند به صورت دستی نیز مشخص گردد (به مستندات پارامتر XSCALE در GDALWarpOptions::papszWarpOptions مراجعه کنید). از آنجا که ناحیه مبدأ یک مستطیل ساده است، این امکان وجود ندارد که یک پیکسل خروجی با پیکسل‌های مبدأ از هر دو طرف ضدنصف‌النهار یا قطب (هنگام تبدیل از مختصات جغرافیایی) مرتبط شود.

سپس ناحیه مستطیلی پیکسل‌های مبدأ به تابعی داده می‌شود که الگوریتم بازنمونه‌برداری انتخاب‌شده با -r را اجرا می‌کند. بسته به الگوریتم بازنمونه‌برداری و مقیاس‌های نسبی رسترهای مبدأ و مقصد، پیکسل‌های مبدأ ممکن است بر اساس کسر تقریبی پیکسل مبدأ که توسط پیکسل مقصد پوشش داده شده است وزن‌دهی شوند (مانند بازنمونه‌برداری "mean" و "sum")، یا بر اساس فواصل دکارتی افقی و عمودی بین مرکز پیکسل مبدأ و مرکز پیکسل مقصد (مانند بازنمونه‌برداری دوخطی یا اسپلاین مکعبی). در حالت اخیر، وزن نسبی یک پیکسل مبدأ به صورت منفرد با حاصل‌ضرب وزن‌های تعیین‌شده برای سطر و ستون آن مشخص می‌شود؛ فاصله دکارتی قطری محاسبه نمی‌شود.

هنگامی که چندین ورودی به gdalwarp ارائه می‌شود، آنها به طور مستقل و به ترتیبی که فهرست شده‌اند پردازش می‌شوند. این امر ممکن است اثرات لبه‌ای (edge effects) در نزدیکی مرزهای فایل‌های ورودی ایجاد کند، زیرا مقادیر پیکسل خروجی تنها از ورودی نهایی به دست می‌آیند. برای جلوگیری از این مشکل، فایل‌های ورودی غیرهم‌پوشان ممکن است ابتدا در یک فایل VRT (مثلاً با استفاده از gdalbuildvrt) ترکیب شوند. این کار به gdalwarp اجازه می‌دهد هنگام محاسبه مقادیر پیکسل خروجی، از پیکسل‌های تمام ورودی‌ها استفاده کند.

موزاییک کردن در یک فایل خروجی موجود، در صورتی که فایل خروجی از قبل وجود داشته باشد، پشتیبانی می‌شود. محدوده مکانی فایل موجود برای تطبیق با داده‌های جدید تغییر نخواهد کرد، بنابراین در این حالت ممکن است لازم باشد آن را حذف کنید یا از گزینه -overwrite استفاده نمایید.

خطوط برش چندضلعی (Polygon cutlines) ممکن است به عنوان ماسک برای محدود کردن ناحیه‌ای از فایل مقصد که می‌تواند به‌روزرسانی شود، از جمله ترکیب محوشونده (blending)، استفاده شوند. اگر لایه OGR حاوی عوارض خط برش فاقد SRS صریح باشد، فرض می‌شود که عوارض خط برش در SRS فایل مقصد هستند. هنگام نوشتن در یک مجموعه داده مقصد که هنوز وجود ندارد، محدوده آن برابر با محدوده رستر اصلی خواهد بود مگر اینکه -te یا -crop_to_cutline مشخص شده باشند.

مقادیر نامعتبر در پیکسل‌های مبدأ، چه از طریق متادیتای مقدار nodata تنظیم‌شده روی باند مبدأ شناسایی شوند، چه از طریق یک باند ماسک، یک باند آلفا یا استفاده از -srcnodata، در میان‌یابی استفاده نخواهند شد. جزئیات چگونگی در نظر گرفتن آن به هسته بازنمونه‌برداری بستگی دارد:

  • برای بازنمونه‌برداری نزدیک‌ترین همسایه (nearest): برای هر پیکسل مقصد، مختصات مرکز آن به مختصات مبدأ تصویر می‌شود و پیکسل مبدأ حاوی آن مختصات شناسایی می‌گردد. اگر این پیکسل مبدأ نامعتبر باشد، پیکسل مقصد به عنوان nodata در نظر گرفته می‌شود.
  • برای bilinear، cubic، cubicspline و lanczos: برای هر پیکسل مقصد، مختصات مرکز آن به مختصات مبدأ بازتصویر می‌شود و یک پیکسل مبدأ متناظر شناسایی می‌گردد. اگر این پیکسل مبدأ نامعتبر باشد، پیکسل مقصد به عنوان nodata در نظر گرفته می‌شود (در این حالت، پیکسل‌های معتبر در شعاع هسته در نظر گرفته نمی‌شوند). با توجه به اینکه این هسته‌های بازنمونه‌برداری دارای شعاع هسته غیرصفر هستند، این پیکسل مبدأ تنها یکی از چند پیکسل مبدأ دخیل است و ممکن است مقادیر نامعتبر در سایر پیکسل‌های مبدأ دخیل وجود داشته باشد. وزن‌های مورد استفاده برای لحاظ کردن آن مقادیر نامعتبر صفر خواهند شد تا نادیده گرفته شوند.
  • برای سایر روش‌های بازنمونه‌برداری: پیکسل‌های مبدأ دخیل در پیکسل مقصد در صورت نامعتبر بودن نادیده گرفته می‌شوند. تنها موارد معتبر لحاظ می‌گردند. اگر هیچ مورد معتبری نباشد، پیکسل مقصد به عنوان nodata در نظر گرفته می‌شود.

اگر برای چندین تصویر با مقادیر نامعتبر مختلف از -srcnodata استفاده می‌کنید، باید یا (الف) آنها را پیش‌پردازش کنید تا مقدار نادیده‌گرفته‌شونده یکسانی داشته باشند، یا (ب) فلگ nodata را برای هر فایل تنظیم نمایید. در صورتی که لازم است مقادیر اصلی را به دلایلی حفظ کنید، از (ب) استفاده نمایید؛ برای مثال:

# برای این تصویر می‌خواهیم رنگ سیاه (0) نادیده گرفته شود
gdalwarp -srcnodata 0 -dstnodata 0 orig-ignore-black.tif black-nodata.tif
# و اکنون می‌خواهیم رنگ سفید (255) نادیده گرفته شود
gdalwarp -srcnodata 255 -dstnodata 255 orig-ignore-white.tif white-nodata.tif
# و در نهایت نادیده گرفتن یک رنگ خاکستری-آبی خاص (RGB 125 125 150)
gdalwarp -srcnodata "125 125 150" -dstnodata "125 125 150" orig-ignore-grey.tif grey-nodata.tif
# اکنون می‌توانیم همه آنها را موزاییک کنیم بدون نگرانی درباره پارامترهای nodata
gdalwarp black-nodata.tif grey-nodata.tif white-nodata.tif final-mosaic.tif

به‌طور پیش‌فرض gdalwarp از یک تقریب‌زننده خطی برای تبدیلات با خطای مجاز ۰.۱۲۵ پیکسل در مجموعه داده مبدأ استفاده می‌کند. برای هر قطعه پردازشی، تقریب‌زننده دقیقاً سه نقطه در هر خط روبش خروجی (ابتدا، وسط و انتها) را از یک سطر و ستون در مجموعه داده خروجی به یک سطر و ستون در مجموعه داده مبدأ تبدیل می‌کند. سپس یک تقریب خطی از مختصات نقطه مرکزی را با مقدار دقیقاً تبدیل‌شده مقایسه می‌کند. اگر مجموع خطاهای افقی و عمودی کمتر از آستانه خطا باشد، نقاط مبدأ باقی‌مانده با استفاده از میان‌یابی خطی بین نقاط ابتدا و وسط، و بین نقاط وسط و انتها تقریب زده می‌شوند. اگر خطا از آستانه فراتر رود، خط روبش به دو بخش تقسیم می‌شود و تقریب‌زننده به صورت بازگشتی روی هر بخش اعمال می‌گردد تا زمانی که خطا کمتر از آستانه شود یا تمام نقاط دقیقاً محاسبه گردند.

توجه داشته باشید که یک قطعه پردازشی لزوماً با یک خط روبش مقصد کامل مطابقت ندارد. اگر مجموعه داده خروجی تایل‌بندی شده باشد، شکل آن معمولاً یک یا چند تایل خواهد بود. گزینه تبدیل OPTIMIZE_SIZE و مقدار گزینه -wm نیز می‌توانند بر شکل قطعه پردازشی اثر بگذارند. در نتیجه، برای یک مقدار منفرد (غیرصفر) از آستانه خطا، تقریب خطی ممکن است به مقادیر کمی متفاوت در تبدیل مختصات منجر شود، اما همگی در محدوده خطای مجاز خواهند بود.

آستانه خطا (بر حسب پیکسل‌های مجموعه داده مبدأ) را می‌توان با سوییچ -et در gdalwarp کنترل کرد. اگر می‌خواهید با یک تبدیل واقعی پیکسل‌به‌پیکسل مقایسه کنید، از -et 0 استفاده کنید که این تقریب‌زننده را کاملاً غیرفعال می‌کند.

در حالی که gdalwarp معمولاً برای انجام تبدیلات مختصاتی در فضای دوبعدی (2D) استفاده می‌شود، می‌تواند تبدیلات قائم را نیز انجام دهد. تبدیلات قائم زمانی به طور خودکار انجام می‌شوند که دو شرط زیر برآورده شوند:

  • دست‌کم یکی از CRSهای مبدأ یا مقصد دارای یک CRS قائم صریح باشد (به عنوان بخشی از یک CRS مرکب) یا یک CRS سه‌بعدی (3D، عموماً جغرافیایی) باشد، و
  • رستر تک‌باند باشد

این حالت همچنین می‌تواند با استفاده از -vshift اجبار شود (این کار اساساً زمانی مفید است که CRSهای مربوطه صریحاً سه‌بعدی نباشند، اما یک خط لوله تبدیل با -ct مشخص شده باشد)، یا با -novshift غیرفعال گردد.

هنگامی که یک تبدیل قائم دخیل باشد، معمولاً یک مقدار شیفت خوانده‌شده از یک شبکه ژئوئید اعمال خواهد شد. این ممکن است نیازمند نصب چنین شبکه‌ای باشد یا نیاز به فعال‌سازی قابلیت‌های شبکه در PROJ داشته باشد. برای جزئیات بیشتر به مستندات PROJ مراجعه کنید. علاوه بر شیفت، مقادیر رستر ممکن است در یک ضریب ضرب شوند تا تغییرات واحد قائم را لحاظ کنند. در اولویت، مقدار بازگردانده‌شده توسط GDALRasterBand::GetUnitType() استفاده می‌شود. مقادیر زیر در حال حاضر شناخته می‌شوند: m، metre، ft، foot، US survey foot. اگر واحد تعریف‌شده‌ای در سطح باند وجود نداشته باشد، از واحد قائم CRS مبدأ استفاده می‌شود. واحد قائم CRS مقصد نیز برای تعیین ضریب تبدیل استفاده می‌شود. ضریب تبدیل ممکن است با تنظیم گزینه تبدیل MULT_FACTOR_VERTICAL_SHIFT با -wo لغو شود؛ برای مثال -wo MULT_FACTOR_VERTICAL_SHIFT=1 برای غیرفعال کردن هرگونه تغییر واحد قائم.

افزودن رم تقریباً به‌طور قطع سرعت gdalwarp را افزایش خواهد داد. اما این به هیچ وجه به معنای آن نیست که ارزشش را دارد، یا اینکه افزایش سرعت چشمگیر خواهد بود. دیسک‌ها کندترین بخش فرآیند هستند. به‌طور پیش‌فرض gdalwarp بهره زیادی از رم نخواهد برد. استفاده از فلگ -wm 500 در هر زمان روی قطعات ۵۰۰ مگابایتی کار می‌کند که بهتر از مقدار پیش‌فرض است. حافظه تبدیل مشخص‌شده با -wm بین تمام ریسمان‌ها به اشتراک گذاشته می‌شود، بنابراین افزایش این مقدار هنگام اجرای gdalwarp با -wo NUM_THREADS (یا معادل آن GDAL_NUM_THREADS) بزرگتر از ۱ بسیار سودمند است.

افزایش اندازه بافر بلوک ورودی/خروجی (I/O block cache) نیز ممکن است کمک کند. این کار را می‌توان با تنظیم پیکربندی GDAL_CACHEMAX انجام داد، مانند:

gdalwarp --config GDAL_CACHEMAX 500 -wm 500 ...

این دستور از ۵۰۰ مگابایت رم برای کش خواندن/نوشتن و ۵۰۰ مگابایت رم برای بافرهای کاری حین تبدیل استفاده می‌کند. فراتر از آن بعید است حافظه بیشتر تفاوت چشمگیری ایجاد کند.

هنگام اجرای gdalwarp مصرف پردازنده (CPU) را بررسی کنید. اگر به طور قابل توجهی کمتر از ۱۰۰٪ باشد، نشان می‌دهد که عملیات به ورودی/خروجی (I/O) وابسته است، در غیر این صورت به پردازنده وابسته است. گزینه --debug نیز ممکن است اطلاعات مفیدی ارائه دهد. برای مثال، پس از اجرای دستور زیر:

gdalwarp --debug on abc.tif def.tif

پیامی مانند زیر نمایش داده خواهد شد:

GDAL: 224 block reads on 32 block band 1 of utm.tif

در این حالت می‌گوید که باند ۱ از utm.tif دارای ۳۲ بلوک است، اما ۲۲۴ خواندن بلوک انجام شده است، که نشان می‌دهد داده‌های زیادی مجبور به خواندن مجدد شده‌اند، احتمالاً به دلیل محدود بودن کش I/O. همچنین پیام‌هایی مانند زیر را مشاهده خواهید کرد:

GDAL: GDALWarpKernel()::GWKNearestNoMasksByte()
Src=0,0,512x512 Dst=0,0,512x512

پنجره‌های Src/Dst به شما "اندازه قطعه" (chunk size) مورد استفاده را نشان می‌دهند. در این حالت کل تصویر من که بسیار کوچک است. اگر متوجه شدید که موارد به قطعات زیادی تقسیم می‌شوند، افزایش -wm ممکن است تا حدی کمک کند.

اما بسیار مهم‌تر از حافظه، اطمینان از این است که شما از یک مسیر بهینه‌سازی‌شده در موتور تبدیل عبور می‌کنید. اگر دیدید که گزارش می‌دهد GDALWarpKernel()::GWKGeneralCase() بدانید که پردازش نسبتاً کند پیش خواهد رفت. در اصل، سریع‌ترین شرایط زمانی است که بازنمونه‌برداری نزدیک‌ترین همسایه روی داده‌های ۸ بیتی بدون ماسک nodata یا آلفا انجام شود.

در برخی موارد، خروجی gdalwarp ممکن است بسیار بزرگتر از نسخه اصلی باشد، حتی اگر از همان الگوریتم فشرده‌سازی استفاده شود. به‌طور پیش‌فرض، gdalwarp روی قطعاتی کار می‌کند که لزوماً با مرزهای بلوک‌ها/تایل‌ها/نوارهای قالب خروجی تراز نیستند، بنابراین این امر ممکن است باعث فشرده‌سازی/فشرده‌زدایی مکرر بلوک‌های جزئی شده و به هدر رفتن فضا در قالب خروجی منجر شود.

این وضعیت را می‌توان با استفاده از گزینه تبدیل OPTIMIZE_SIZE بهبود بخشید (-wo OPTIMIZE_SIZE=YES)، اما توجه داشته باشید که بسته به سیستم‌های تصویر مبدأ و مقصد، ممکن است فرآیند تبدیل را به طور چشمگیری کند سازد.

امکان دیگر استفاده از gdalwarp بدون فشرده‌سازی و سپس ادامه‌دادن با gdal_translate همراه با فشرده‌سازی است:

gdalwarp infile tempfile.tif ...options...
gdal_translate tempfile.tif outfile.tif -co compress=lzw ...etc.

به عنوان جایگزین، می‌توانید از یک فایل VRT به عنوان قالب خروجی gdalwarp استفاده کنید. فایل VRT صرفاً یک فایل XML است که بلافاصله ایجاد خواهد شد. البته عملیات gdal_translate کمی کندتر خواهد بود زیرا عملیات تبدیل واقعی را انجام خواهد داد.

gdalwarp -of VRT infile tempfile.vrt ...options...
gdal_translate tempfile.vrt outfile.tif -co compress=lzw ...etc.

پرسش ۱: چرا کیفیت خروجی این‌قدر بد به نظر می‌رسد (بدون anti-aliasing)؟

آیا با -r روش بازنمونه‌برداری دیگری غیر از نزدیک‌ترین همسایه پیش‌فرض مشخص کرده‌اید؟

پرسش ۲: چرا بسته به اینکه مجموعه داده خروجی تایل‌بندی شده است یا خیر، نتایج کمی متفاوت دریافت می‌کنم؟

این موضوع به این واقعیت مربوط است که برای سرعت بخشیدن به محاسبات، به‌طور پیش‌فرض از یک تبدیل مختصات تقریبی استفاده می‌شود. اگر می‌خواهید بدون توجه به اینکه خروجی تایل‌بندی شده است یا خیر نتایج یکسانی بگیرید، -et را روی صفر تنظیم کنید. با این حال توجه داشته باشید که این تنها برای تصاویر نسبتاً کوچک کار خواهد کرد؛ عوامل دیگر همچنان می‌توانند به نتایج متفاوت منجر شوند. پرسش زیر (پرسش ۳) را ببینید.

پرسش ۳: چرا هنگام تبدیل رسترهای به اندازه کافی بزرگ، به‌ویژه در مناطقی که تغییر سیستم مختصات شامل اعوجاج قابل‌توجهی است و تنها با بازنمونه‌برداری غیر نزدیک‌ترین همسایه، مصنوعاتی (آرتیفکت‌هایی) را مشاهده می‌کنم که شبیه به تغییرات تفکیک‌پذیری به نظر می‌رسند و با نواحی مستطیلی رستر خروجی هم‌تراز هستند؟

موتور تبدیل روی نواحی مستطیلی مجموعه داده خروجی کار می‌کند (عموماً هم‌تراز با مرزهای تایل‌ها برای یک مجموعه داده تایلی فشرده‌شده).

در طول تغییر سیستم مختصات، یک تک‌پیکسل مبدأ عموماً با یک تک‌پیکسل خروجی مطابقت ندارد. بنابراین روش بازنمونه‌برداری باید این موضوع را به‌درستی لحاظ کرده و نسبتی بین تعداد پیکسل‌های مبدأ و مقصد در جهت‌های افقی (X) و عمودی (Y) محاسبه کند. این نسبت‌ها به ازای هر قطعه تبدیل محاسبه می‌شوند. این کار کیفیت محلی تبدیل را به حداکثر می‌رساند، اما نکته منفی آن ایجاد ناپیوستگی‌های بصری بین قطعات تبدیل است.

اگر نتیجه‌ای یکدست و پیوسته را ترجیح می‌دهید، می‌توانید گزینه‌های تبدیل XSCALE و YSCALE را به صورت دستی با -wo مشخص کنید. مقدار XSCALE (و به همین ترتیب YSCALE) نسبتی است که ضریب بازنمونه‌برداری را بیان می‌کند؛ یعنی تعداد پیکسل‌های مقصد به ازای هر پیکسل مبدأ، در امتداد محور افقی (و به همین ترتیب عمودی). این مقدار برای عدم بازنمونه‌برداری برابر با ۱، برای کاهش نمونه‌برداری (downsampling) زیر ۱، و برای افزایش نمونه‌برداری (upsampling) بالای ۱ است.

•
تبدیل پایه‌ای:
gdalwarp -t_srs EPSG:4326 input.tif output.tif
•
برای مثال، یک صحنه spot هشت بیتی ذخیره‌شده در GeoTIFF با نقاط کنترلی نگاشت گوشه‌ها به طول/عرض جغرافیایی می‌تواند با دستوری مانند زیر به یک سیستم تصویر UTM تبدیل شود:
gdalwarp -t_srs '+proj=utm +zone=11 +datum=WGS84' -overwrite raw_spot.tif utm11.tif
•
برای مثال، کانال دوم یک تصویر ASTER ذخیره‌شده در HDF با نقاط کنترلی نگاشت گوشه‌ها به طول/عرض جغرافیایی می‌تواند با دستوری مانند زیر به یک سیستم تصویر UTM تبدیل شود:
gdalwarp -overwrite HDF4_SDS:ASTER_L1B:"pg-PR1B0000-2002031402_100_001":2 \
    pg-PR1B0000-2002031402_100_001_2.tif
•
برای اعمال خط برش روی یک تصویر فاقد مرجع مکانی و برش از پیکسل (220,60) تا پیکسل (1160,690):
gdalwarp -overwrite -to SRC_METHOD=NO_GEOTRANSFORM -to DST_METHOD=NO_GEOTRANSFORM \
    -te 220 60 1160 690 -cutline cutline.csv in.png out.tif

که در آن محتوای cutline.csv به صورت زیر است:

id,WKT
1,"POLYGON((....))"
•
برای تبدیل یک مدل رقومی ارتفاع (DEM) از ارتفاعات ژئوئید (با استفاده از EGM96) به ارتفاعات بیضوی WGS84:
gdalwarp -overwrite in_dem.tif out_dem.tif -s_srs EPSG:4326+5773 -t_srs EPSG:4979

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

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

Frank Warmerdam <warmerdam@pobox.com>, Silke Reimer <silke@intevation.de>

1998-2026

August 18, 2026