'\" t .\" Man page generated from reStructuredText. . . .nr rst2man-indent-level 0 . .de1 rstReportMargin \\$1 \\n[an-margin] level \\n[rst2man-indent-level] level margin: \\n[rst2man-indent\\n[rst2man-indent-level]] - \\n[rst2man-indent0] \\n[rst2man-indent1] \\n[rst2man-indent2] .. .de1 INDENT .\" .rstReportMargin pre: . RS \\$1 . nr rst2man-indent\\n[rst2man-indent-level] \\n[an-margin] . nr rst2man-indent-level +1 .\" .rstReportMargin post: .. .de UNINDENT . RE .\" indent \\n[an-margin] .\" old: \\n[rst2man-indent\\n[rst2man-indent-level]] .nr rst2man-indent-level -1 .\" new: \\n[rst2man-indent\\n[rst2man-indent-level]] .in \\n[rst2man-indent\\n[rst2man-indent-level]]u .. .TH "GDAL-PIPELINE" "1" "Aug 18, 2026" "" "GDAL" .SH "نام (NAME)" gdal-pipeline \- پردازش یک مجموعه داده با اعمال چندین مرحله .sp در نسخه 3.12 افزوده شد. .SH "توضیحات (DESCRIPTION)" .sp دستور \fBgdal pipeline\fP یک خط لوله (pipeline) را اجرا می‌کند؛ یک مجموعه داده ورودی رستر یا برداری را دریافت کرده، مراحل را اجرا می‌کند و در نهایت یک مجموعه داده رستر یا برداری می‌نویسد. .sp بیشتر مراحل، بلوک‌های رستر یا عوارض (features) را بر حسب تقاضا (on\-demand) ارزیابی می‌کنند، مگر آنکه در مستندات آن‌ها خلاف این قید شده باشد، بدون اینکه مجموعه داده حاصل از عملیات هر مرحله \(dqمادی‌سازی\(dq (materialize) شود. گاهی اوقات ممکن است برای اهداف کارایی، مادی‌سازی یک مجموعه داده واسط بر روی دیسک با استفاده از \fI\%gdal raster materialize\fP یا \fI\%gdal vector materialize\fP مطلوب باشد\&. .SH "خلاصه دستور (SYNOPSIS)" .INDENT 0.0 .INDENT 3.5 .sp .EX کاربرد: gdal pipeline [OPTIONS] پردازش یک مجموعه داده با اعمال چندین مرحله. Positional arguments: Common Options: \-h, \-\-help نمایش پیام راهنما و خروج \-\-json\-usage نمایش نحوه استفاده به صورت سند JSON و خروج \-\-config = گزینه پیکربندی [می‌تواند تکرار شود] \-q, \-\-quiet حالت بی‌صدا (بدون نوار پیشرفت یا پیام هشدار) [در خط لوله‌ها در دسترس نیست] Advanced Options: \-\-= آرگومان ارائه‌شده توسط کاربر به این صورت است: read|calc|concat|create|mosaic|stack [READ\-OPTIONS] ( ! [STEP\-OPTIONS] )* ! write!info!tile [WRITE\-OPTIONS] .EE .UNINDENT .UNINDENT .sp یک خط لوله، چندین مرحله را که با نویسه \fB!\fP (علامت تعجب) از یکدیگر جدا شده‌اند، به هم زنجیر می‌کند. قرار دادن یک \fB!\fP بین \fBgdal pipeline\fP و مرحله نخست، اختیاری است. مرحله اول باید \fBread\fP، \fBcalc\fP، \fBconcat\fP، \fBmosaic\fP یا \fBstack\fP باشد، و مرحله پایانی باید \fBinfo\fP، \fBtile\fP یا \fBwrite\fP باشد\&. هر مرحله آرگومان‌های موضعی یا غیرموضعی ویژه خود را دارد. به‌جز \fBread\fP، \fBcalc\fP، \fBconcat\fP، \fBmosaic\fP، \fBstack\fP، \fBinfo\fP، \fBtile\fP، \fBpartition\fP و \fBwrite\fP، سایر مراحل را می‌توان بالقوه چندین بار در یک خط لوله به کار برد. .SS مثال ۱: محاسبه ردپا (footprint) یک رستر و اعمال یک بافر (buffer) بر روی ردپا .INDENT 0.0 .INDENT 3.5 .sp .EX $ gdal pipeline ! read in.tif ! footprint ! buffer 20 ! write out.gpkg \-\-overwrite .EE .UNINDENT .UNINDENT .SH "مراحل (STEPS)" .sp برای مراحلی که نوع داده ورودی و خروجی آن‌ها هر دو \fIraster\fP است، به \fI\%gdal raster pipeline\fP مراجعه کنید\&. برای مراحلی که نوع داده ورودی و خروجی آن‌ها هر دو \fIvector\fP است، به \fI\%gdal vector pipeline\fP مراجعه کنید\&. .sp جدول زیر مراحلی را فهرست می‌کند که داده‌ها را بین رستر و بردار تبدیل می‌کنند. .TS box center; l|l. T{ مرحله T} T{ جهت T} _ T{ \fI\%contour\fP T} T{ رستر به بردار T} _ T{ \fI\%footprint\fP T} T{ رستر به بردار T} _ T{ \fI\%pixel\-info\fP T} T{ رستر به بردار T} _ T{ \fI\%polygonize\fP T} T{ رستر به بردار T} _ T{ \fI\%grid\fP T} T{ بردار به رستر T} _ T{ \fI\%rasterize\fP T} T{ بردار به رستر T} _ T{ \fI\%tee\fP T} T{ بردار به رستر T} .TE.SS contour .INDENT 0.0 .INDENT 3.5 .sp .EX * contour [OPTIONS] \-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\- ایجاد خطوط تراز برداری از یک مدل رقومی ارتفاع (DEM). گزینه‌ها: \-\-output\-layer نام لایه خروجی \-b, \-\-band باند ورودی (نمایه مبتنی بر ۱) (پیش‌فرض: 1) \-\-elevation\-name نام فیلد ارتفاع \-\-min\-name نام فیلد حداقل ارتفاع \-\-max\-name نام فیلد حداکثر ارتفاع \-\-3d اجبار به ایجاد بردارهای سه‌بعدی به جای دوبعدی \-\-input\-nodata مقدار پیکسل ورودی جهت در نظر گرفتن به عنوان \(aqnodata\(aq \-\-interval فاصله ارتفاعی بین خطوط تراز مانعه‌الجمع با \-\-levels، \-\-exp\-base \-\-levels فهرست ترازهای کانتور [تکرارپذیر] مانعه‌الجمع با \-\-interval، \-\-exp\-base \-e, \-\-exp\-base پایه برای تولید نمایی ترازهای کانتور مانعه‌الجمع با \-\-interval، \-\-levels \-\-off, \-\-offset آفست جهت اعمال بر ترازهای کانتور \-p, \-\-polygonize ایجاد چندضلعی‌ها به جای خطوط \-\-group\-transactions گروه‌بندی n عارضه در هر تراکنش (پیش‌فرض: 100 000) .EE .UNINDENT .UNINDENT .sp جزئیات گزینه‌ها را می‌توانید در \fI\%gdal raster contour\fP بیابید\&. .SS footprint .INDENT 0.0 .INDENT 3.5 .sp .EX * footprint [OPTIONS] \-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\- محاسبه ردپای (footprint) یک مجموعه‌داده رستر. گزینه‌ها: \-\-output\-layer نام لایه خروجی (پیش‌فرض: footprint) \-b, \-\-band باند(های) ورودی (نمایه مبتنی بر ۱) [تکرارپذیر] \-\-combine\-bands تعیین نحوه ترکیب باندهای ماسکِ باندهای انتخاب‌شده پیش از برداری‌سازی جهت تولید یک باند ماسک منفرد.. COMBINE\-BANDS=union|intersection (پیش‌فرض: union) \-\-overview کدام سطح بازبینی (overview) از فایل مبدأ باید استفاده شود مانعه‌الجمع با \-\-input\-nodata \-\-input\-nodata تنظیم مقادیر nodata برای باندهای ورودی. [۱.. مقدار] مانعه‌الجمع با \-\-overview \-\-coordinate\-system دستگاه مختصات هدف. COORDINATE\-SYSTEM=georeferenced|pixel \-\-output\-crs سامانه مرجع مختصات (CRS) خروجی \-\-split\-multipolygons تفکیک چندضلعی‌های چندگانه (multipolygons) به چند عارضه که هر کدام دارای یک چندضلعی منفرد باشند \-\-convex\-hull محاسبه پوش محدب (convex hull) برای ردپا \-\-densify\-distance حداکثر فاصله میان ۲ نقطه متوالی از هندسه خروجی. \-\-simplify\-tolerance میزان تلورانس مورد استفاده برای ادغام نقاط متوالی در هندسه خروجی. \-\-min\-ring\-area حداقل مقدار برای مساحت یک حلقه (ring) \-\-max\-points حداکثر تعداد نقاط هر هندسه خروجی (پیش‌فرض: 100) \-\-location\-field نام فیلدی که مسیر مجموعه‌داده ورودی در آن ذخیره می‌شود. (پیش‌فرض: location) مانعه‌الجمع با \-\-no\-location\-field \-\-no\-location\-field غیرفعال‌سازی ایجاد فیلد حاوی مسیر مجموعه‌داده ورودی مانعه‌الجمع با \-\-location\-field \-\-absolute\-path تعیین این‌که آیا مسیر مجموعه‌داده ورودی باید به صورت مسیر مطلق ذخیره شود یا خیر .EE .UNINDENT .UNINDENT .sp جزئیات گزینه‌ها را می‌توانید در \fI\%gdal raster footprint\fP بیابید\&. .SS grid .INDENT 0.0 .INDENT 3.5 .sp .EX * grid [OPTIONS] \-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\- که در آن یکی از موارد زیر است: \- average: ایجاد یک شبکه منظم از نقاط پراکنده با استفاده از درون‌یابی میانگین متحرک. \- average\-distance: ایجاد یک شبکه منظم از نقاط پراکنده با استفاده از میانگین فاصله بین گره شبکه (مرکز بیضی جستجو) و تمام نقاط داده در بیضی جستجو. \- average\-distance\-points: ایجاد یک شبکه منظم از نقاط پراکنده با استفاده از میانگین فاصله بین نقاط داده در بیضی جستجو. \- count: ایجاد یک شبکه منظم از نقاط پراکنده با استفاده از تعداد نقاط در بیضی جستجو. \- invdist: ایجاد یک شبکه منظم از نقاط پراکنده با استفاده از درون‌یابی عکس فاصله وزندار (IDW). \- invdistnn: ایجاد یک شبکه منظم از نقاط پراکنده با استفاده از درون‌یابی عکس فاصله وزندار نزدیک‌ترین همسایه. \- linear: ایجاد یک شبکه منظم از نقاط پراکنده با استفاده از درون‌یابی خطی/مرکز ثقلی (barycentric). \- maximum: ایجاد یک شبکه منظم از نقاط پراکنده با استفاده از بیشترین مقدار در بیضی جستجو. \- minimum: ایجاد یک شبکه منظم از نقاط پراکنده با استفاده از کمترین مقدار در بیضی جستجو. \- nearest: ایجاد یک شبکه منظم از نقاط پراکنده با استفاده از درون‌یابی نزدیک‌ترین همسایه. \- range: ایجاد یک شبکه منظم از نقاط پراکنده با استفاده از اختلاف بین مقادیر کمینه و بیشینه در بیضی جستجو. .EE .UNINDENT .UNINDENT .sp جزئیات گزینه‌ها را می‌توانید در \fI\%gdal vector grid\fP بیابید\&. .SS pixel\-info .INDENT 0.0 .INDENT 3.5 .sp .EX * pixel\-info [OPTIONS] [] \-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\- بازگرداندن اطلاعات مربوط به یک پیکسل از مجموعه‌داده رستر. آرگومان‌های موضعی: \-i, \-\-dataset, \-\-input مجموعه‌داده‌های رستر ورودی [الزامی] \-\-position\-dataset مجموعه‌داده برداری حاوی مختصات مانعه‌الجمع با \-\-position گزینه‌ها: \-l, \-\-layer, \-\-input\-layer نام لایه ورودی \-b, \-\-band باند(های) ورودی (نمایه مبتنی بر ۱) [تکرارپذیر] \-\-overview کدام سطح بازبینی (overview) از فایل مبدأ باید استفاده شود \-p, \-\-pos, \-\-position or موقعیت پیکسل [تکرارپذیر] مانعه‌الجمع با \-\-position\-dataset \-\-position\-crs سامانه مرجع مختصات (CRS) موقعیت (در صورت عدم تعیین \(aqposition\-dataset\(aq پیش‌فرض \(aqpixel\(aq است) \-r, \-\-resampling الگوریتم بازنمونه‌برداری برای درون‌یابی. RESAMPLING=nearest|bilinear|cubic|cubicspline (پیش‌فرض: nearest) \-\-promote\-pixel\-value\-to\-z تعیین این‌که مقدار پیکسل به عنوان مؤلفه Z در هندسه GeoJSON تنظیم شود یا خیر \-\-include\-field فیلدهایی از مجموعه‌داده مختصات جهت درج در خروجی (مقادیر ویژه: ALL و NONE) (پیش‌فرض: ALL) [تکرارپذیر] .EE .UNINDENT .UNINDENT .sp جزئیات گزینه‌ها را می‌توانید در \fI\%gdal raster pixel\-info\fP بیابید\&..SS polygonize .INDENT 0.0 .INDENT 3.5 .sp .EX * polygonize [OPTIONS] \-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\- ایجاد یک مجموعه‌داده عارضه چندضلعی از یک باند رستر. گزینه‌ها: \-\-output\-layer نام لایه خروجی \-b, \-\-band باند ورودی (نمایه مبتنی بر ۱) (پیش‌فرض: 1) \-\-attribute\-name نام فیلد دارای مقدار پیکسل (پیش‌فرض: DN) \-c, \-\-connect\-diagonal\-pixels در نظر گرفتن پیکسل‌های مورب به عنوان متصل .EE .UNINDENT .UNINDENT .sp جزئیات مربوط به گزینه‌ها در \fI\%gdal raster polygonize\fP\& یافت می‌شود. .SS rasterize .INDENT 0.0 .INDENT 3.5 .sp .EX * rasterize [OPTIONS] \-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\- هندسه‌های برداری را روی یک رستر حک (burn) می‌کند. گزینه‌ها: \-b, \-\-band باند(هایی) که مقادیر در آن‌ها حک می‌شود (نمایه مبتنی بر ۱) [قابل تکرار] \-\-invert معکوس کردن رستر‌سازی \-\-all\-touched فعال‌سازی گزینه رستر‌سازی ALL_TOUCHED \-\-burn مقدار حک (burn) [قابل تکرار] \-a, \-\-attribute\-name نام مشخصه \-\-3d مشخص می‌کند که مقدار حک باید از مقادیر Z عارضه استخراج شود \-l, \-\-input\-layer نام لایه ورودی ناسازگار با \-\-sql \-\-where بند where در SQL \-\-sql عبارت select در SQL ناسازگار با \-\-input\-layer \-\-dialect گویش SQL \-\-nodata اختصاص یک مقدار nodata مشخص به باندهای خروجی \-\-init مقداردهی اولیه باندهای خروجی با مقدار مشخص‌شده [قابل تکرار] \-\-crs بازنویسی سیستم تصویر برای فایل خروجی \-\-transformer\-option = تنظیم یک گزینه transformer مناسب برای ارسال به GDALCreateGenImgProjTransformer2 [قابل تکرار] \-\-extent ,,, تنظیم محدوده زمین‌مرجع هدف [۴ مقدار] \-\-resolution , تنظیم تفکیک‌پذیری هدف [۲ مقدار] ناسازگار با \-\-size \-\-tap, \-\-target\-aligned\-pixels (پیکسل‌های هم‌تراز هدف) هم‌تراز کردن مختصات محدوده فایل خروجی با مقادیر تفکیک‌پذیری وابسته به \-\-resolution \-\-size , تنظیم اندازه هدف بر حسب پیکسل و خطوط [۲ مقدار] ناسازگار با \-\-resolution \-\-ot, \-\-datatype, \-\-output\-data\-type نوع داده خروجی. OUTPUT\-DATA\-TYPE=UInt8|Int8|UInt16|Int16|UInt32|Int32|UInt64|Int64|CInt16|CInt32|Float16|Float32|Float64|CFloat32|CFloat64 \-\-optimization اجبار الگوریتم مورد استفاده (نتایج یکسان هستند). OPTIMIZATION=AUTO|RASTER|VECTOR (پیش‌فرض: AUTO) .EE .UNINDENT .UNINDENT .sp جزئیات مربوط به گزینه‌ها در \fI\%gdal vector rasterize\fP\& یافت می‌شود. .SS tee .INDENT 0.0 .INDENT 3.5 .sp .EX * tee [OPTIONS] [...] \-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\- هدایت ورودی به جریان خروجی و خط‌لوله‌های تو در توی جانبی. آرگومان‌های موقعیتی: \-\-tee\-pipeline خط‌لوله تو در تو [۱.. مقدار] .EE .UNINDENT .UNINDENT .sp جزئیات مربوط به گزینه‌ها در \fI\%Output nested pipeline\fP\& یافت می‌شود. .SH "خروجی GDALG (مجموعه‌داده در لحظه / جاری) (GDALG OUTPUT (ON-THE-FLY / STREAMED DATASET))" .sp یک خط‌لوله را می‌توان با استفاده از قالب خروجی \fBGDALG\fP به صورت یک فایل JSON سریال‌سازی کرد. سپس فایل حاصل می‌تواند با استفاده از درایور \fI\%GDALG: GDAL Streamed Algorithm\fP یا \fI\%GDALG: GDAL Streamed Algorithm\fP به عنوان یک مجموعه‌داده باز شده و خط‌لوله مشخص‌شده را به صورت در لحظه (on\-the\-fly) یا جاری (streamed) اعمال کند. .sp عضو \fBcommand_line\fP در فایل JSON قاعدتاً باید کل خط فرمان بدون مرحله پایانی \fBwrite\fP باشد، و این همان چیزی است که توسط دستور \fBgdal pipeline ! .... ! write out.gdalg.json\fP\& تولید می‌شود. .INDENT 0.0 .INDENT 3.5 .sp .EX { \(dqtype\(dq: \(dqgdal_streamed_alg\(dq, \(dqcommand_line\(dq: \(dqgdal pipeline ! read in.tif ! footprint ! buffer 20\(dq } .EE .UNINDENT .UNINDENT .sp مرحله نهایی \fBwrite\fP می‌تواند اضافه شود، اما در این صورت باید صراحتاً قالب خروجی \fBstream\fP و یک نام صوری برای مجموعه‌داده خروجی را مشخص کند. .INDENT 0.0 .INDENT 3.5 .sp .EX { \(dqtype\(dq: \(dqgdal_streamed_alg\(dq, \(dqcommand_line\(dq: \(dqgdal pipeline ! read in.tif ! footprint ! buffer 20 ! write \-\-output\-format=streamed streamed_dataset\(dq } .EE .UNINDENT .UNINDENT .SH "جایگزینی‌ها (SUBSTITUTIONS)" .sp همچنین می‌توان با استفاده از \fBgdal pipeline\fP از خط‌لوله‌ای که از پیش در یک فایل \fB\&.gdalg.json\fP سریال‌سازی شده است استفاده کرد و مراحل موجود آن را سفارشی نمود؛ به‌طور معمول تغییر نام فایل ورودی، مشخص کردن نام فایل خروجی، یا افزودن/ویرایش آرگومان‌های مراحل. .sp نحو (syntax) دستور به این صورت است: .INDENT 0.0 .INDENT 3.5 .sp .EX gdal pipeline \-\-.=value .EE .UNINDENT .UNINDENT .sp هنگام مشخص کردن یک آرگومان موجود برای یک مرحله از خط‌لوله، مقدار موجود در خط‌لوله با مقدار مشخص‌شده در خط فرمان \fBgdal pipeline\fP بازنویسی می‌شود. .sp فرض کنید فایلی به نام \fBraster_reproject.gdalg.json\fP با محتوای زیر داریم: .INDENT 0.0 .INDENT 3.5 .sp .EX { \(dqtype\(dq: \(dqgdal_streamed_alg\(dq, \(dqcommand_line\(dq: \(dqgdal pipeline ! read in.tif ! reproject \-\-output\-crs=EPSG:4326 ! edit \-\-metadata=CHANGES=reprojected\(dq } .EE .UNINDENT .UNINDENT .sp می‌توان آن را با خط فرمان زیر اجرا کرد، که آرگومان \fBinput\fP از مرحله \fBread\fP را بازنویسی می‌کند و به طور ضمنی یک مرحله پایانی \fBwrite\fP با یک آرگومان \fBoutput\fP می‌افزاید. .INDENT 0.0 .INDENT 3.5 .sp .EX $ gdal pipeline raster_reproject.gdalg.json \-\-read.input=other_input.tif \-\-write.output=out.tif .EE .UNINDENT .UNINDENT .sp در صورت عدم وجود ابهام، حذف نام مرحله و صرفاً مشخص کردن نام آرگومان نیز ممکن است (اگر ابهامی وجود داشته باشد، \fBgdal pipeline\fP خطا صادر خواهد کرد، بنابراین انجام این کار ایمن است): .INDENT 0.0 .INDENT 3.5 .sp .EX $ gdal pipeline raster_reproject.gdalg.json \-\-input=other_input.tif \-\-output=out.tif \-\-co COMPRESS=LZW \-\-overwrite .EE .UNINDENT .UNINDENT .sp هنگامی که یک مرحله چندین بار در خط‌لوله تکرار می‌شود، باید به صورت \fB[]\fP مشخص شود، که در آن \fB\fP یک نمایه مبتنی بر صفر است. .sp برای مثال، با در نظر گرفتن: .INDENT 0.0 .INDENT 3.5 .sp .EX { \(dqtype\(dq: \(dqgdal_streamed_alg\(dq, \(dqcommand_line\(dq: \(dqgdal pipeline ! read in.tif ! edit \-\-metadata=before=value ! reproject \-\-output\-crs=EPSG:4326 ! edit \-\-metadata=CHANGES=reprojected\(dq } .EE .UNINDENT .UNINDENT .sp خط فرمان زیر می‌تواند به کار رود: .INDENT 0.0 .INDENT 3.5 .sp .EX $ gdal pipeline raster_reproject.gdalg.json \-\-edit[0].metadata=before=modified \-\-output=out.tif .EE .UNINDENT .UNINDENT .sp اجرای خط‌لوله‌ها و جایگزینی آرگومان‌ها در Python نیز با دستور زیر امکان‌پذیر است: .INDENT 0.0 .INDENT 3.5 .sp .EX gdal.Run(\(dqpipeline\(dq, pipeline=\(dqraster_reproject.gdalg.json\(dq, output=\(dqout.tif\(dq, arguments={\(dqedit[0].metadata\(dq: \(dqbefore=modified\(dq}) .EE .UNINDENT .UNINDENT.SH "نام جای‌نگهدار مجموعه داده _PIPE_ (PLACEHOLDER DATASET NAME _PIPE_)" .sp در نسخه 3.13 اضافه شد. .sp به‌طور پیش‌فرض، در یک مرحله از خط لوله (pipeline) که چند آرگومانِ مجموعه داده ورودی می‌پذیرد، نخستین آرگومان مکانی، \fBinput\fP، به‌طور ضمنی روی مجموعه داده خروجی مرحله پیشین تنظیم می‌شود. در برخی موارد، ممکن است مطلوب باشد که مجموعه داده خروجی از مرحله پیشین، در عوض به یکی دیگر از آرگومان‌های مجموعه داده ورودی هدایت (pipe) شود. .sp این کار را می‌توان با استفاده از نام جای‌نگهدار مجموعه داده \fB_PIPE_\fP (کلمه PIPE همراه با نویسه زیرخط در ابتدا و انتهای آن) به عنوان مقدار آرگومانِ مجموعه داده جایگزین، در حالی که آرگومان مکانی مجموعه داده ورودی صراحتاً مشخص شده است، انجام داد. .SS "مثال ۲: خلاصه‌سازی میانگین ارتفاع در فاصله ۲۰۰ متری از نقاط مورد نظر" .INDENT 0.0 .INDENT 3.5 .sp .EX gdal pipeline read points.geojson ! buffer 200 ! \e zonal\-stats \e \-\-input dem.tif \-\-zones _PIPE_ \e \-\-stat mean ! \e write \e \-\-output\-format CSV \e \-\-output /vsistdout/ .EE .UNINDENT .UNINDENT .sp همچنین همان‌طور که در زیر شرح داده شده است، دستیابی به همین نتیجه با استفاده از یک خط لوله تو در توی ورودی امکان‌پذیر است. .SH "خط لوله تو در تو (NESTED PIPELINE)" .sp امکان ایجاد \(dqخط‌های لوله تو در تو\(dq (خطوط لوله درون خطوط لوله دیگر) وجود دارد. .sp یک خط لوله تو در تو با براکت‌های مربع (\fB[\fP و \fB]\fP) که با نویسه فاصله (space) احاطه شده‌اند، محدود و مشخص می‌شود. .sp ۲ نوع خط لوله تو در تو وجود دارد: .INDENT 0.0 .IP \(bu 2 خطوط لوله تو در توی ورودی (input nested pipelines): جایی که مجموعه داده نتیجه خط لوله تو در تو، به عنوان مجموعه داده ورودی برای یک آرگومان از خط لوله اصلی استفاده می‌شود. .IP \(bu 2 خطوط لوله تو در توی خروجی (output nested pipelines): جایی که خروجی یک مرحله از خط لوله اصلی، به عنوان ورودی خط لوله تو در تو در مرحله بعدی استفاده می‌شود. خطوط لوله تو در توی خروجی فقط با مرحله \fBtee\fP قابل استفاده هستند. .UNINDENT .SS "خط لوله تو در توی ورودی" .sp هر جا که یک مجموعه داده ورودی به عنوان مجموعه داده کمکی انتظار می‌رود، می‌توان آن را به عنوان نتیجه یک خط لوله تو در تو مشخص کرد. محتوای یک خط لوله تو در توی ورودی با خط لوله بیرونی یکسان است، با این تفاوت که نباید با یک مرحله تولیدکننده خروجی مانند \fBinfo\fP، \fBtile\fP یا \fBwrite\fP به پایان برسد. .SS "مثال ۳: ترکیب خروجی نقشه برجسته‌نما و بازنمایی ارتفاع‌سنجی روی یک DEM برای ایجاد یک نقشه برجسته‌نمای رنگی" .INDENT 0.0 .INDENT 3.5 .sp .EX $ gdal pipeline read n43.tif ! \e color\-map \-\-color\-map color_file.txt ! \e blend \-\-operator=hsv\-value \-\-overlay \e [ read n43.tif ! hillshade \-z 30 ] ! \e write out.tif \-\-overwrite .EE .UNINDENT .UNINDENT .sp در مثال بالا، مقدار آرگومان \fBoverlay\fP در مرحله \fBblend\fP برابر با خروجی خط لوله تو در توی \fBread n43.tif ! hillshade \-z 30\fP\& تنظیم شده است. [تصویر] .SS "خط لوله تو در توی خروجی" .sp مرحله \fBtee\fP در یک خط لوله، مجموعه داده ورودی را به عنوان خروجی خود به جلو هدایت می‌کند و علاوه بر این یک یا چند خط لوله تو در تو را اجرا می‌کند که این مجموعه داده ورودی را به عنوان ورودی دریافت کرده و پردازش‌های دیگری انجام می‌دهند تا در نهایت خروجی آن پردازش را بنویسند. نخستین مرحله یک خط لوله تو در توی خروجی \fBtee\fP \fIنباید\fP \fBread\fP، \fBcalc\fP، \fBconcat\fP، \fBmosaic\fP یا \fBstack\fP باشد، و آخرین مرحله آن \fIباید\fP \fBwrite\fP یا \fBtile\fP باشد\&. عملگر \fBtee\fP می‌تواند در میانه یک خط لوله یا به عنوان آخرین مرحله آن استفاده شود. .sp مثال زیر نمونه‌ای را نشان می‌دهد که در آن عملگر \fBtee\fP دو خط لوله تو در توی خروجی را اجرا می‌کند. .SS "مثال ۴: تفکیک محتوای یک لایه \(dqcities\(dq بر اساس این که جمعیت آن کمتر یا بیشتر از ۱ میلیون نفر است" .INDENT 0.0 .INDENT 3.5 .sp .EX $ gdal pipeline read cities.gpkg ! \e tee [ filter \-\-where \(dqpop < 1e6\(dq ! write small_cities.gpkg ] \e [ filter \-\-where \(dqpop >= 1e6\(dq ! write big_cities.gpkg ] .EE .UNINDENT .UNINDENT .sp مثال زیر یک کاربرد پیچیده‌تر را نشان می‌دهد که شامل دو مورد استفاده از \fBtee\fP است و یکی از آن‌ها یک خط لوله تو در توی خروجی درون یک خط لوله تو در توی ورودی است. .SS "مثال ۵: ترکیب خروجی نقشه برجسته‌نما و بازنمایی ارتفاع‌سنجی روی یک DEM برای ایجاد یک نقشه برجسته‌نمای رنگی، و نوشتن مجموعه داده میانی hillshade و رنگ‌آمیزی‌شده" .INDENT 0.0 .INDENT 3.5 .sp .EX $ gdal pipeline read n43.tif ! \e color\-map \-\-color\-map color_file.txt ! \e tee [ write colored.tif \-\-overwrite ] ! \e blend \-\-operator=hsv\-value \-\-overlay \e [ read n43.tif ! hillshade \-z 30 ! tee [ write hillshade.tif \-\-overwrite ] ] ! \e write colored\-hillshade.tif \-\-overwrite .EE .UNINDENT .UNINDENT [تصویر] .SH "وضعیت خروج (RETURN STATUS CODE)" .sp برنامه در صورت موفقیت کد وضعیت 0 و در صورت بروز خطا مقداری غیر صفر بازمی‌گرداند (خطاهای غیرمسدودکننده که به عنوان هشدار صادر می‌شوند، اجرای موفق در نظر گرفته می‌شوند)..SH "مثال‌ها (EXAMPLES)" .SS مثال ۶: محاسبه ردپای یک رستر و اعمال حائل (buffer) بر روی ردپا .INDENT 0.0 .INDENT 3.5 .sp .EX $ gdal pipeline ! read in.tif ! footprint ! buffer 20 ! write out.gpkg \-\-overwrite .EE .UNINDENT .UNINDENT .SS مثال ۷: رستری‌کردن و تغییر سیستم تصویر .INDENT 0.0 .INDENT 3.5 .sp .EX $ gdal pipeline ! read in.gpkg ! rasterize \-\-size 1000,1000 ! reproject \-\-output\-crs EPSG:4326 ! write out.tif \-\-overwrite .EE .UNINDENT .UNINDENT .SS مثال ۸: استفاده از یک خط‌لوله موجود که رستری‌کردن و تغییر سیستم تصویر را انجام می‌دهد، با تغییر فایل ورودی و CRS هدف، و تعیین فایل خروجی .INDENT 0.0 .INDENT 3.5 .sp .EX $ gdal pipeline raster_reproject.gdalg.json \-\-input=my.gpkg \-\-output=out.tif \-\-output\-crs=EPSG:32631 .EE .UNINDENT .UNINDENT .SS مثال ۹: اعمال حائل روی مجموعه‌داده خطی برای ساخت یک مجموعه‌داده چندضلعی جدید .sp این مثال از مجموعه‌دادهٔ \fBlines.gpkg\fP استفاده می‌کند که شامل یک لایهٔ تکی به نام \fBlines\fP، یک فیلد هندسه به نام \fBgeom\fP و یک مشخصهٔ عدد صحیح با نام \fBwidth\fP است\&. مقدار این مشخصه به‌عنوان فاصلهٔ حائل (buffer) برای هر عارضه استفاده می‌شود. .INDENT 0.0 .INDENT 3.5 .sp .EX gdal vector pipeline \e ! read lines.gpkg \e ! sql \(dqSELECT fid, ST_Buffer(geom, width) AS geom FROM lines\(dq \e ! set\-geom\-type \-\-geometry\-type Polygon \e ! write buffered\-lines.gpkg \-\-output\-layer=BufferedLines \-\-overwrite \-\-overwrite\-layer .EE .UNINDENT .UNINDENT .sp \fBنکته:\fP .INDENT 0.0 .INDENT 3.5 هنگام ساخت هندسه‌های مشتق‌شده با استفاده از SQL، از به‌کارگیری \fBSELECT *\fP خودداری کنید\&. گنجاندن فیلد هندسهٔ اصلی منجر به ایجاد چندین ستون هندسه در خروجی خواهد شد. در عوض، مشخصه‌های مورد نیاز را به‌طور صریح فهرست کنید و یک ستون هندسهٔ واحد برگردانید. .UNINDENT .UNINDENT .SH "نویسندگان (AUTHORS)" Even Rouault .SH "کپی‌رایت و تکثیر (COPYRIGHT)" 1998-2026 .\" Generated by docutils manpage writer. .