GDAL-VECTOR-SEGMENTIZE(1) GDAL GDAL-VECTOR-SEGMENTIZE(1)

gdal-vector-segmentize - قطعه‌بندی هندسه‌های یک مجموعه‌داده برداری

اضافه‌شده در نسخهٔ 3.12.

Usage: gdal vector segmentize [OPTIONS] <INPUT> <OUTPUT> <MAX-LENGTH>
Segmentize geometries of a vector dataset.
Positional arguments:
  -i, --input <INPUT>                                  Input vector datasets [required] [not available in pipelines]
  -o, --output <OUTPUT>                                Output vector dataset [required] [not available in pipelines]
  --max-length <MAX-LENGTH>                            Maximum length of a segment [required]
Common Options:
  -h, --help                                           Display help message and exit
  --json-usage                                         Display usage as JSON document and exit
  --config <KEY>=<VALUE>                               Configuration option [may be repeated]
  -q, --quiet                                          Quiet mode (no progress bar or warning message) [not available in pipelines]
Options:
  -l, --layer, --input-layer <INPUT-LAYER>             Input layer name(s) [may be repeated] [not available in pipelines]
  -f, --of, --format, --output-format <OUTPUT-FORMAT>  Output format ("GDALG" allowed) [not available in pipelines]
  --co, --creation-option <KEY>=<VALUE>                Creation option [may be repeated] [not available in pipelines]
  --lco, --layer-creation-option <KEY>=<VALUE>         Layer creation option [may be repeated] [not available in pipelines]
  --overwrite                                          Whether overwriting existing output dataset is allowed [not available in pipelines]
  --update                                             Whether to open existing dataset in update mode [not available in pipelines]
  --overwrite-layer                                    Whether overwriting existing output layer is allowed [not available in pipelines]
  --append                                             Whether appending to existing layer is allowed [not available in pipelines]
                                                       Mutually exclusive with --upsert
  --output-layer <OUTPUT-LAYER>                        Output layer name [not available in pipelines]
  --skip-errors                                        Skip errors when writing features [not available in pipelines]
  --active-layer <ACTIVE-LAYER>                        Set active layer (if not specified, all)
  --active-geometry <ACTIVE-GEOMETRY>                  Geometry field name to which to restrict the processing (if not specified, all)
Advanced Options:
  --if, --input-format <INPUT-FORMAT>                  Input formats [may be repeated] [not available in pipelines]
  --oo, --open-option <KEY>=<VALUE>                    Open options [may be repeated] [not available in pipelines]
  --output-oo, --output-open-option <KEY>=<VALUE>      Output open options [may be repeated] [not available in pipelines]
  --upsert                                             Upsert features (implies 'append') [not available in pipelines]
                                                       Mutually exclusive with --append

دستور gdal vector segmentize با درج نقاط میانی، تضمین می‌کند که قطعه‌های LineString یا حلقه‌های Polygon طولی بیشتر از حداکثر طول مشخص‌شده نداشته باشند.

این دستور عملیات OGRGeometry::segmentize() را اجرا می‌کند.

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

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

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

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

می‌تواند تکرار شود.

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

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

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

می‌تواند تکرار شود.

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

می‌تواند تکرار شود.

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

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

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

می‌تواند تکرار شود.

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

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

می‌تواند تکرار شود.

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

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

مشخص می‌کند که آیا مجموعه‌داده خروجی موجود در حالت به‌روزرسانی (update mode) باز شود یا خیر.
اضافه‌شده در نسخهٔ 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 segmentize --max-length=1000 in.gpkg out.gpkg --overwrite

Even Rouault <even.rouault@spatialys.com>

1998-2026

August 18, 2026