GDAL-VECTOR-CONCAT(1) GDAL GDAL-VECTOR-CONCAT(1)

gdal-vector-concat - الحاق و پیوند زدن مجموعه‌داده‌های برداری

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

Usage: gdal vector concat [OPTIONS] <INPUTS>... <OUTPUT>
الحاق مجموعه‌داده‌های برداری.
آرگومان‌های مکانی:
  -i, --input <INPUTS>                                       مجموعه‌داده‌های برداری ورودی [۱ یا چند مقدار] [الزامی] [در خط‌لوله‌ها در دسترس نیست]
  -o, --output <OUTPUT>                                      مجموعه‌داده برداری خروجی [الزامی] [در خط‌لوله‌ها در دسترس نیست]
گزینه‌های عمومی:
  -h, --help                                                 نمایش پیام راهنما و خروج
  --json-usage                                               نمایش نحوه استفاده به صورت سند JSON و خروج
  --config <KEY>=<VALUE>                                     گزینه پیکربندی [قابل تکرار]
  -q, --quiet                                                حالت بی‌صدا (بدون نوار پیشرفت یا پیام هشدار) [در خط‌لوله‌ها در دسترس نیست]
گزینه‌ها:
  -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
  --skip-errors                                              نادیده گرفتن خطاها هنگام نوشتن عوارض [در خط‌لوله‌ها در دسترس نیست]
  --mode <MODE>                                              تعیین راهبرد ایجاد لایه‌های خروجی از لایه‌های منبع. MODE=merge-per-layer-name|stack|single (پیش‌فرض: merge-per-layer-name)
  --output-layer <OUTPUT-LAYER>                              نام لایه برداری خروجی (در حالت single)، یا الگوی نام‌گذاری لایه‌های برداری خروجی (در حالت stack)
  --source-layer-field-name <SOURCE-LAYER-FIELD-NAME>        نام فیلد جدید جهت افزودن برای شناسایی لایه منبع، با مقداری که توسط 'source-layer-field-content' تعیین می‌شود
  --source-layer-field-content <SOURCE-LAYER-FIELD-CONTENT>  یک رشته، احتمالاً با استفاده از {AUTO_NAME}، {DS_NAME}، {DS_BASENAME}، {DS_INDEX}، {LAYER_NAME}، {LAYER_INDEX}
  --field-strategy <FIELD-STRATEGY>                          نحوه تعیین فیلدهای هدف از فیلدهای منبع. FIELD-STRATEGY=union|intersection (پیش‌فرض: union)
  -s, --input-crs <INPUT-CRS>                                سیستم مرجع مختصات (CRS) ورودی
  -d, --output-crs <OUTPUT-CRS>                              سیستم مرجع مختصات (CRS) خروجی
گزینه‌های پیشرفته:
  --if, --input-format <INPUT-FORMAT>                        فرمت‌های ورودی [قابل تکرار] [در خط‌لوله‌ها در دسترس نیست]
  --oo, --open-option <KEY>=<VALUE>                          گزینه‌های باز کردن [قابل تکرار] [در خط‌لوله‌ها در دسترس نیست]
  --output-oo, --output-open-option <KEY>=<VALUE>            گزینه‌های باز کردن خروجی [قابل تکرار] [در خط‌لوله‌ها در دسترس نیست]
  --upsert                                                   درج یا به‌روزرسانی عوارض (upsert) (شامل 'append') [در خط‌لوله‌ها در دسترس نیست]
                                                              ناسازگار با --append

دستور gdal vector concat چندین مجموعه‌داده منبع را به یکدیگر الحاق می‌کند.

این دستور دارای ۳ حالت اصلی است:

  • --mode = merge-per-layer-name (پیش‌فرض). مجموعه‌داده خروجی تولیدشده توسط این دستور به همان تعداد نام‌های لایه متفاوت در مجموعه‌داده‌های منبع، لایه خواهد داشت. برای مثال اگر ۲ مجموعه‌داده وجود داشته باشد، یکی دارای لایه‌های a و b، و دیگری دارای لایه‌های b و c، ۳ لایه خروجی ایجاد خواهد شد: a، b (ادغام ۲ لایه منبع) و c.
  • --mode = stack. مجموعه‌داده خروجی تولیدشده توسط این دستور به همان تعداد لایه‌های موجود در مجموعه‌داده‌های منبع، لایه خواهد داشت. برای مثال اگر ۲ مجموعه‌داده ds1 (با لایه‌های a و b) و ds2 (با لایه‌های b و c) وجود داشته باشد، ۴ لایه خروجی ایجاد خواهد شد: ds1_a، ds1_b، ds2_b و ds2_c.
  • --mode = single. مجموعه‌داده خروجی تولیدشده توسط این دستور شامل یک لایه منفرد خواهد بود که تمامی لایه‌های موجود در مجموعه‌داده‌های منبع را در هم ادغام می‌کند.

هنگامی که یک لایه خروجی چندین لایه منبع را ادغام می‌کند، به طور پیش‌فرض طرح‌واره (schema) حاصل شامل اجتماع (union) تمامی فیلدهای منبع خواهد بود. با تنظیم گزینه --field-strategy بر روی intersection می‌توان تنها اشتراک فیلدها را انتخاب کرد. در رابطه با CRS حاصل، به طور پیش‌فرض CRS لایه منبع به عنوان CRS هدف استفاده خواهد شد، و عوارض سایر لایه‌های منبع که با این CRS مطابقت ندارند، به آن بازپروژکت (reproject) خواهند شد. از --output-crs می‌توان برای انتخاب یک CRS مقصد مشخص استفاده کرد.

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

این برنامه از سریال‌سازی خط فرمان به صورت یک فایل JSON با استفاده از فرمت خروجی GDALG پشتیبانی می‌کند. فایل حاصل را می‌توان سپس به عنوان یک مجموعه‌داده برداری با استفاده از درایور GDALG: GDAL Streamed Algorithm باز کرد و خط لوله مشخص‌شده را به صورت بلادرنگ / جریانی (on-the-fly / streamed) اعمال نمود.

تعیین می‌کند که طرح‌واره (schema) لایه هدف چگونه از طرح‌واره‌های لایه‌های ورودی ساخته شود:
  • union (پیش‌فرض) برای استفاده از ابرمجموعه (super-set) تمامی فیلدها از همه لایه‌های منبع.
  • intersection برای استفاده از زیرمجموعه (sub-set) تمامی فیلدهای مشترک از همه لایه‌های منبع.
تنظیم (بازنویسی) سیستم مرجع مختصات ورودی. در صورت عدم تعیین، از SRS موجود در مجموعه‌داده ورودی استفاده خواهد شد.

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

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

راهبرد ایجاد لایه‌های خروجی از لایه‌های منبع را تعیین می‌کند. برای جزئیات بیشتر به بخش توضیحات مقدماتی مراجعه کنید.
تنظیم سیستم مرجع مختصات خروجی. در صورت نیاز، ورودی‌ها به این CRS بازپروژکت خواهند شد.

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

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

نام لایه برداری خروجی (در حالت single، که مقدار پیش‌فرض آن "merged" است)، یا الگوی نام‌گذاری لایه‌های برداری خروجی در حالت stack (مقدار پیش‌فرض {AUTO_NAME} است). در حالت merge-per-layer-name مجاز نیست.

الگو در حالت stack می‌تواند رشته‌ای حاوی متغیرهای زیر باشد که با مقدار محاسبه‌شده از لایه ورودی در حال پردازش جایگزین خواهند شد:

  • {AUTO_NAME}: معادل با {DS_BASENAME}_{LAYER_NAME} در صورتی که هر دو مقدار متفاوت باشند، یا {LAYER_NAME} هنگامی که یکسان باشند (مانند حالت shapefile).
  • {DS_NAME}: نام مجموعه‌داده منبع
  • {DS_BASENAME}: نام پایه (base name) مجموعه‌داده منبع
  • {DS_INDEX}: نمایه (index) مجموعه‌داده منبع
  • {LAYER_NAME}: نام لایه منبع
  • {LAYER_INDEX}: نمایه لایه منبع
در صورت تعیین، طرح‌واره لایه هدف با یک فیلد جدید گسترش خواهد یافت (که نام آن توسط --source-layer-field-name، یا در غیر این صورت source_ds_lyr مشخص می‌شود)، که محتوای آن توسط الگوی مشخص‌شده تعیین می‌گردد (متغیرهای قابل استفاده را در --output-layer ببینید).
در صورت تعیین، طرح‌واره لایه هدف با فیلدی گسترش می‌یابد که نام آن برابر با مقدار این گزینه بوده و محتوای آن توسط --source-layer-field-content تعیین می‌شود.

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

قابل تکرار است.

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

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

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

قابل تکرار است.

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

قابل تکرار است.

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

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

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

قابل تکرار است.

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

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

قابل تکرار است.

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

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

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

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

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

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

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

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

gdal vector concat --mode=stack *.shp out.gpkg

الحاق محتوای france.shp و germany.shp در merged.shp، بازپروژکت کردن آن‌ها به ETRS89، و افزودن یک فیلد 'country' به هر عارضه که مقدار آن بسته به منبع عارضه برابر با 'france' یا 'germany' باشد:

gdal vector concat --mode=single --source-layer-field-name=country --output-crs=EPSG:4258 france.shp germany.shp merged.shp

Even Rouault <even.rouault@spatialys.com>

1998-2026

August 18, 2026