GDAL-VECTOR-FILTER(1) GDAL GDAL-VECTOR-FILTER(1)

gdal-vector-filter - فیلتر کردن (پالایش) یک مجموعه‌داده برداری

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

Usage: gdal vector filter [OPTIONS] <INPUT> <OUTPUT>
فیلتر کردن یک مجموعه‌داده برداری.
آرگومان‌های موضعی (Positional arguments):
  -i, --input <INPUT>                                  مجموعه‌داده‌های برداری ورودی [الزامی] [در خطوط لوله در دسترس نیست]
  -o, --output <OUTPUT>                                مجموعه‌داده برداری خروجی [الزامی] [در خطوط لوله در دسترس نیست]
گزینه‌های عمومی (Common Options):
  -h, --help                                           نمایش پیام راهنما و خروج
  --json-usage                                         نمایش نحوه استفاده به صورت سند JSON و خروج
  --config <KEY>=<VALUE>                               گزینه پیکربندی [تکرارپذیر]
  -q, --quiet                                          حالت بی‌صدا (بدون نوار پیشرفت یا پیام هشدار) [در خطوط لوله در دسترس نیست]
گزینه‌ها (Options):
  -l, --layer, --input-layer <INPUT-LAYER>             نام لایه(های) ورودی [تکرارپذیر] [در خطوط لوله در دسترس نیست]
  -f, --of, --format, --output-format <OUTPUT-FORMAT>  قالب خروجی (مجاز بودن "GDALG") [در خطوط لوله در دسترس نیست]
  --co, --creation-option <KEY>=<VALUE>                گزینه ایجاد [تکرارپذیر] [در خطوط لوله در دسترس نیست]
  --lco, --layer-creation-option <KEY>=<VALUE>         گزینه ایجاد لایه [تکرارپذیر] [در خطوط لوله در دسترس نیست]
  --overwrite                                          آیا بازنویسی روی مجموعه‌داده خروجی موجود مجاز است [در خطوط لوله در دسترس نیست]
  --update                                             آیا مجموعه‌داده موجود در حالت به‌روزرسانی باز شود [در خطوط لوله در دسترس نیست]
  --overwrite-layer                                    آیا بازنویسی روی لایه خروجی موجود مجاز است [در خطوط لوله در دسترس نیست]
  --append                                             آیا الحاق به لایه موجود مجاز است [در خطوط لوله در دسترس نیست]
                                                       ناسازگار با --upsert
  --output-layer <OUTPUT-LAYER>                        نام لایه خروجی [در خطوط لوله در دسترس نیست]
  --skip-errors                                        چشم‌پوشی از خطاها هنگام نوشتن عوارض [در خطوط لوله در دسترس نیست]
  --active-layer <ACTIVE-LAYER>                        تعیین لایه فعال (در صورت عدم تعیین، همه)
  --bbox <BBOX>                                        جعبه محصورکننده (Bounding Box) به صورت xmin,ymin,xmax,ymax
  --where <WHERE>|@<filename>                          پرس‌وجوی توصیفی در قالب محدودی از پرس‌وجوهای استفاده‌شده در عبارت SQL WHERE
  --update-extent                                      به‌روزرسانی گستره لایه برای لحاظ کردن فیلتر
گزینه‌های پیشرفته (Advanced Options):
  --if, --input-format <INPUT-FORMAT>                  قالب‌های ورودی [تکرارپذیر] [در خطوط لوله در دسترس نیست]
  --oo, --open-option <KEY>=<VALUE>                    گزینه‌های باز کردن [تکرارپذیر] [در خطوط لوله در دسترس نیست]
  --output-oo, --output-open-option <KEY>=<VALUE>      گزینه‌های باز کردن خروجی [تکرارپذیر] [در خطوط لوله در دسترس نیست]
  --upsert                                             درج یا به‌روزرسانی (Upsert) عوارض (شامل 'append') [در خطوط لوله در دسترس نیست]
                                                       ناسازگار با --append

دستور gdal vector filter می‌تواند برای فیلتر کردن یک مجموعه‌داده برداری از روی گستره مکانی یا یک بند SQL WHERE استفاده شود.

دستور filter همچنین می‌تواند به عنوان یک مرحله از gdal vector pipeline استفاده شود.

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

محدوده‌هایی که مجموعه‌داده باید بر اساس آن‌ها فیلتر شود. فرض بر این است که این مقادیر در دستگاه مرجع مکانی (CRS) مجموعه‌داده ورودی باشند. محورهای X و Y بر اساس محورهای "سازگار با GIS" هستند، یعنی X طول جغرافیایی یا مختصات شرقی (Easting) و Y عرض جغرافیایی یا مختصات شمالی (Northing) است. توجه داشته باشید که فیلتر کردن باعث برش هندسه‌ها بر اساس جعبه محصورکننده نمی‌شود.
--update-extent
به‌روزرسانی گستره لایه برای اعمال اثر فیلتر(ها). در غیر این صورت، گستره لایه عموماً همان گستره لایه مبدأ پیش از اعمال فیلتر(ها) خواهد بود. توجه داشته باشید که استفاده از این گزینه نیازمند پیمایش کامل لایه‌های فیلترشده است.
پرس‌وجوی توصیفی (مشابه SQL WHERE).

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

تکرارپذیر است.

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

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

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

تکرارپذیر است.

نام یک یا چند لایه را جهت پردازش مشخص می‌کند. به‌طور پیش‌فرض، تمام لایه‌ها پردازش خواهند شد. برای خواندن و نوشتن تمام لایه‌ها اما فقط پردازش زیرمجموعه‌ای از آن‌ها، از --active-layer استفاده کنید.
بسیاری از قالب‌ها یک یا چند گزینه اختیاری ایجاد لایه دارند که می‌توانند برای کنترل ویژگی‌های خاص لایه ایجادشده استفاده شوند. به عنوان مثال، درایور GeoPackage از گزینه‌های ایجاد لایه برای کنترل شناسه عارضه یا نام ستون هندسه، تنظیم شناسه یا توضیحات و غیره پشتیبانی می‌کند.

تکرارپذیر است.

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

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

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

تکرارپذیر است.

تعیین اینکه از کدام قالب برداری خروجی استفاده شود. مقادیر مجاز را می‌توان با دستور زیر به دست آورد: gdal --formats | grep vector | grep rw | sort
نام لایه‌ای را مشخص می‌کند که عوارض در آن نوشته می‌شوند. در صورت عدم تعیین، نام‌های لایه‌های خروجی مشابه نام‌های لایه‌های ورودی خواهد بود.
در نسخه 3.12 اضافه شد.

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

تکرارپذیر است.

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

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

تعیین اینکه آیا مجموعه‌داده خروجی موجود در حالت به‌روزرسانی باز شود یا خیر.
در نسخه 3.12 اضافه شد.

گونه‌ای از --append که در آن عملیات OGRLayer::UpsertFeature() برای درج یا به‌روزرسانی عوارض به‌جای الحاق با OGRLayer::CreateFeature() استفاده می‌شود.

این قابلیت در حال حاضر تنها در چند درایور پیاده‌سازی شده است: GPKG -- GeoPackage vector، Elasticsearch: Geographically Encoded Objects for Elasticsearch و MongoDBv3 (درایورهایی که upsert را پیاده‌سازی کرده‌اند، قابلیت GDAL_DCAP_UPSERT را ارائه می‌دهند).

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

برای درایور GPKG، در صورتی که یک ستون با قید UNIQUE وجود داشته باشد که کلید اصلی عددی صحیح نباشد، امکان انجام upsert برای عوارضی که FID آن‌ها تنظیم نشده یا فاقد اهمیت است نیز وجود دارد (گزینه --unset-fid در gdal vector edit می‌تواند برای نادیده گرفتن FID عارضه منبع استفاده شود).

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

$ gdal vector filter --bbox=2,49,3,50 in.gpkg out.gpkg --overwrite

Even Rouault <even.rouault@spatialys.com>

1998-2026

August 18, 2026