GDAL-VECTOR-MAKE-VALID(1) GDAL GDAL-VECTOR-MAKE-VALID(1)

gdal-vector-make-valid - اصلاح اعتبار هندسه‌های یک مجموعه‌داده برداری

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

کاربرد: gdal vector make-valid [OPTIONS] <INPUT> <OUTPUT>
اصلاح اعتبار هندسه‌های یک مجموعه‌داده برداری.
آرگومان‌های موضعی:
  -i, --input <INPUT>                                  مجموعه‌داده‌های برداری ورودی [الزامی] [در خط‌لوله‌ها در دسترس نیست]
  -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
  --output-layer <OUTPUT-LAYER>                        نام لایه خروجی [در خط‌لوله‌ها در دسترس نیست]
  --skip-errors                                        نادیده گرفتن خطاها هنگام نوشتن عوارض [در خط‌لوله‌ها در دسترس نیست]
  --active-layer <ACTIVE-LAYER>                        تنظیم لایه فعال (در صورت عدم تعیین، همه)
  --active-geometry <ACTIVE-GEOMETRY>                  نام فیلد هندسه برای محدود کردن پردازش به آن (در صورت عدم تعیین، همه)
  --method <METHOD>                                    الگوریتم مورد استفاده برای ترمیم هندسه‌های نامعتبر.. METHOD=linework|structure (پیش‌فرض: linework)
  --keep-lower-dim                                     حفظ مؤلفه‌های با بُعد پایین‌تر پس از ()MakeValid
گزینه‌های پیشرفته:
  --if, --input-format <INPUT-FORMAT>                  قالب‌های ورودی [می‌تواند تکرار شود] [در خط‌لوله‌ها در دسترس نیست]
  --oo, --open-option <KEY>=<VALUE>                    گزینه‌های باز کردن [می‌تواند تکرار شود] [در خط‌لوله‌ها در دسترس نیست]
  --output-oo, --output-open-option <KEY>=<VALUE>      گزینه‌های باز کردن خروجی [می‌تواند تکرار شود] [در خط‌لوله‌ها در دسترس نیست]
  --upsert                                             درج یا به‌روزرسانی (upsert) عوارض (به معنای 'append') [در خط‌لوله‌ها در دسترس نیست]
                                                       مانعة‌الجمع با --append

دستور gdal vector make-valid اطمینان حاصل می‌کند که هندسه‌ها بر اساس قواعد مشخصات Simple Features معتبر هستند.

این دستور عملیات OGRGeometry::MakeValid() و سپس OGRGeometryFactory::removeLowerDimensionSubGeoms() را اجرا می‌کند (مگر اینکه --keep-lower-dim تنظیم شده باشد).

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

نکته:

این دستور نیازمند ساخت GDAL همراه با کتابخانه GEOS است.

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

نگه‌داشتن مؤلفه‌های با بعد پایین‌تر پس از ()MakeValid. برای مثال، ممکن است ()MakeValid از یک ورودی Polygon یک GeometryCollection متشکل از یک Polygon و یک LineString برگرداند. به‌طور پیش‌فرض تنها Polygon برگردانده خواهد شد. تنظیم این گزینه باعث بازگرداندن GeometryCollection می‌شود.
الگوریتم مورداستفاده هنگام ترمیم هندسه‌های نامعتبر.

روش پیش‌فرض linework تمام حلقه‌ها را در مجموعه‌ای از خطوط گره‌دار ترکیب کرده و سپس چندضلعی‌های معتبر را از آن خط‌کشی استخراج می‌کند. این روش تمام رأس‌های ورودی را حفظ می‌کند.

روش structure (تنها با GEOS >= 3.10 در دسترس است) ابتدا تمام حلقه‌ها را معتبر می‌سازد، سپس پوسته‌ها را ادغام کرده و حفره‌ها را از پوسته‌ها کسر می‌کند تا نتیجه‌ای معتبر تولید شود. این روش فرض می‌کند که حفره‌ها و پوسته‌ها به‌درستی دسته‌بندی شده‌اند.

برای دیدن نمونه‌هایی از تفاوت‌های میان این روش‌ها، Geometry Validity را ببینید.

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

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

$ gdal vector make-valid in.gpkg out.gpkg --overwrite

Even Rouault <even.rouault@spatialys.com>

1998-2026

August 18, 2026