GDAL-VECTOR-COMBINE(1) GDAL GDAL-VECTOR-COMBINE(1)

gdal-vector-combine - ترکیب هندسه‌ها در مجموعه‌های هندسی (Geometry Collections)

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

Usage: gdal vector combine [OPTIONS] <INPUT> <OUTPUT>
ترکیب عوارض در مجموعه‌ها (Collections)
آرگومان‌های موضعی (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                                        چشم‌پوشی از خطاها هنگام نوشتن عوارض [در خطوط لوله در دسترس نیست]
  --group-by <GROUP-BY>                                نام فیلد(هایی) که ورودی‌ها باید بر اساس آن‌ها گروه‌بندی شوند [تکرارپذیر]
  --keep-nested                                        جلوگیری از ترکیب اجزای هندسه‌های چندبخشی
  --add-extra-fields <ADD-EXTRA-FIELDS>                افزودن فیلدهای اضافی بر اساس اینکه آیا در هر گروه دارای مقادیر یکسان هستند یا خیر. ADD-EXTRA-FIELDS=no|sometimes-identical|always-identical (پیش‌فرض: no)
گزینه‌های پیشرفته (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 combine هندسه‌ها را در مجموعه‌های هندسی (Geometry Collections) ترکیب می‌کند.

از آرگومان --group-by می‌توان برای تعیین اینکه کدام عوارض با یکدیگر ترکیب شوند استفاده کرد.

به‌طور پیش‌فرض، بخش‌های هندسه‌های چندبخشی (Multipart Geometries) در یک مجموعه غیرتو‌در‌تو از خاص‌ترین نوع ممکن ترکیب می‌شوند (به عنوان مثال، MultiPolygon به‌جای GeometryCollection). برای مثال، یک Polygon و یک MultiPolygon دو‌بخشی در یک MultiPolygon سه‌بخشی ترکیب خواهند شد. این کار به این دلیل انجام می‌شود که بسیاری از قالب‌های فایل GIS و بسته‌های نرم‌افزاری انواع GeometryCollection تودرتو را پشتیبانی نمی‌کنند. اگر نمایش تودرتو به شیوه ST_Collect در PostGIS ترجیح داده شود (یک GeometryCollection دو مؤلفه‌ای شامل Polygon و MultiPolygon)، می‌توان از --keep-nested استفاده کرد.

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

نام فیلدهایی که مقادیر یکتای آن‌ها برای جمع‌آوری هندسه‌های ورودی استفاده می‌شود. هر فیلدی که در --group-by ذکر نشده باشد از لایه منبع حذف خواهد شد. در صورت حذف --group-by، کل لایه در یک عارضه منفرد ترکیب می‌شود.
اگر هندسه‌های ورودی چندبخشی باشند، آن‌ها را در یک GeometryCollection از هندسه‌های ورودی ترکیب می‌کند.
تعیین اینکه آیا فیلدهایی از عوارض منبع که در میان عوارض متعلق به یک گروه مقدار یکسانی دارند، به عارضه خروجی متناظر کپی شوند یا خیر.

به‌طور پیش‌فرض، no، تنها فیلدهای فهرست‌شده در --group-by به لایه خروجی کپی می‌شوند.

هنگام مشخص کردن sometimes-identical، فیلدهایی که برای تمام عوارض ورودی در حداقل یک گروه خروجی مقدار یکسانی دارند، به اسکیمای لایه خروجی کپی خواهند شد. مقدار فیلد برابر با مقداری است که برای تمام عوارض ورودی یک گروه مشترک است. اگر عوارض ورودی در یک گروه یکسان نباشند، مقدار فیلد در خروجی برای این گروه برابر با null قرار داده می‌شود.

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

برای مثال، فرض کنیم چهار عارضه ورودی با محتوای زیر داریم و آن‌ها را بر اساس country گروه‌بندی می‌کنیم:

name country country_fr type
Mainland France France France continental
Corsica France France island
Mainland USA USA Etats-Unis d'Amérique continental
Alaska USA Etats-Unis d'Amérique continental

با مقدار sometimes-identical، خروجی به صورت زیر خواهد بود:

country country_fr type
France France
USA Etats-Unis d'Amérique continental

فیلد name حذف شده است زیرا برای هر عارضه ورودی متمایز است. فیلد type به عنوان یک فیلد خروجی ظاهر می‌شود، زیرا حداقل برای USA، دو عارضه ورودی گروه‌بندی‌شده مقدار یکسانی دارند. برای France، مقدار آن روی null تنظیم می‌شود، زیرا مقدار آن در دو عارضه ورودی متفاوت است.

با مقدار always-identical، خروجی به صورت زیر خواهد بود:

country country_fr
France France
USA Etats-Unis d'Amérique

فیلد type حذف شده است زیرا مقدار آن در دو عارضه ورودی مربوط به France متفاوت است.

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

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

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

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

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

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

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

بسیاری از قالب‌ها یک یا چند گزینه اختیاری ایجاد لایه دارند که می‌توان از آن‌ها برای کنترل جزئیات لایه ایجادشده استفاده کرد. برای نمونه، درایور 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 وجود داشته باشد که کلید اصلی عددی صحیح (Integer Primary Key) نباشد، امکان انجام upsert برای عوارضی که FID آن‌ها تنظیم نشده یا فاقد اهمیت است نیز وجود دارد (گزینه --unset-fid در gdal vector edit می‌تواند برای نادیده گرفتن FID عارضه منبع استفاده شود).

Dan Baston <dbaston@gmail.com>

1998-2026

August 18, 2026