GDAL-VECTOR-CHECK-COVERAGE(1) GDAL GDAL-VECTOR-CHECK-COVERAGE(1)

gdal-vector-check-coverage - بررسی اعتبار و صحت پوشش‌های چندضلعی

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

کاربرد: gdal vector check-coverage [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                                        نادیده‌گرفتن خطاها هنگام نوشتن عوارض [در خط‌لوله‌ها در دسترس نیست]
  --no-create-empty-layers                             خودداری از ساخت لایه‌هایی که هیچ عارضه‌ای در آن‌ها نوشته نمی‌شود [در خط‌لوله‌ها در دسترس نیست]
  --include-valid                                      شامل کردن ورودی‌های معتبر در خروجی، با هندسه خالی
  --geometry-field <GEOMETRY-FIELD>                    نام فیلد هندسه جهت بررسی
  --maximum-gap-width <MAXIMUM-GAP-WIDTH>              حداکثر عرض یک شکاف جهت نشانه‌گذاری شدن
گزینه‌های پیشرفته:
  --if, --input-format <INPUT-FORMAT>                  قالب‌های ورودی [می‌تواند تکرار شود] [در خط‌لوله‌ها در دسترس نیست]
  --oo, --open-option <KEY>=<VALUE>                    گزینه‌های باز کردن [می‌تواند تکرار شود] [در خط‌لوله‌ها در دسترس نیست]
  --output-oo, --output-open-option <KEY>=<VALUE>      گزینه‌های باز کردن خروجی [می‌تواند تکرار شود] [در خط‌لوله‌ها در دسترس نیست]
  --upsert                                             درج یا به‌روزرسانی عوارض (Upsert) (مستلزم 'append') [در خط‌لوله‌ها در دسترس نیست]
                                                       ناسازگار با --append

دستور gdal vector check-coverage بررسی می‌کند که آیا یک مجموعه‌داده چندضلعی یک پوشش (coverage) معتبر را تشکیل می‌دهد یا خیر؛ بدین معنا که:

  • هیچ چندضلعی همپوشانی نداشته باشد
  • همهٔ یال‌های مشترک در موقعیت‌های مکانی یکسانی دارای گره (node) باشند
  • هرگونه شکاف میان چندضلعی‌ها از عرض مشخص‌شده بزرگ‌تر باشد

به ازای هر چندضلعی که این معیارها را برآورده نکند، یک عارضه خطی با هندسهٔ یال نامعتبر در خروجی قرار می‌گیرد. اگر پوشش معتبر باشد، مجموعه‌داده خروجی خالی خواهد بود مگر اینکه از --include-valid استفاده شود.

فرض بر این است که تک‌تک چندضلعی‌ها طبق استاندارد OGC Simple Features به خودی خود معتبر هستند. این موضوع را می‌توان با gdal vector check-geometry بررسی کرد.

[تصویر] مجموعه‌داده چندضلعی (چپ) و مکان یال‌های پوششی نامعتبر (راست)..UNINDENT

نکته:

این دستور نیازمند ساخت GDAL با کتابخانه GEOS (نسخه ۳.۱۲ یا بالاتر) است.

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

نکته:

با این حال این الگوریتم ذاتاً با پردازش جریانی سازگار نیست. در نتیجه یک مجموعه‌داده موقت در حافظه ایجاد خواهد شد که ممکن است زمان پردازش قابل‌توجهی را هنگام باز کردن ایجاد کند.

مشخص کردن نام فیلد هندسه برای بررسی، برای لایه‌هایی که چند فیلد هندسه دارند. به طور پیش‌فرض از نخستین فیلد هندسه استفاده خواهد شد.
گنجاندن عارضه‌ها برای هندسه‌های معتبر در خروجی، با حفظ تناظر ۱:۱ میان عارضه‌های ورودی و خروجی. هندسهٔ عارضه‌های معتبر یک هندسه خالی خواهد بود.
نام لایه برای پردازش را مشخص می‌کند. به طور پیش‌فرض، همه لایه‌ها پردازش خواهند شد.
نام لایه‌ای را مشخص می‌کند که عارضه‌ها در آن نوشته خواهند شد. اگر مشخص نشود و تنها یک لایه ورودی وجود داشته باشد، نام "invalid_edge" استفاده خواهد شد. اگر مشخص نشود و چند لایه ورودی وجود داشته باشد، عارضه‌های هر لایه ورودی در یک لایه خروجی جداگانه با قالب "invalid_edge_{INPUT_LAYER}" نوشته خواهند شد.
بزرگ‌ترین ناحیه‌ای را تعریف می‌کند که باید به عنوان شکاف در نظر گرفته شود.

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

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

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

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

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

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

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

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

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

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

در نسخه ۳.۱۳ اضافه شد.

جلوگیری از ایجاد لایه‌هایی که هیچ عارضه‌ای در آن‌ها نوشته نخواهد شد.

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

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

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

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

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

به برنامه اجازه می‌دهد تا فایل یا مجموعه‌داده مقصد موجود را بازنویسی کند. در غیر این صورت، به طور پیش‌فرض اگر فایل یا مجموعه‌داده مقصد از قبل وجود داشته باشد، gdal با خطا متوقف می‌شود.
--overwrite-layer
آیا بازنویسی لایه برداری خروجیِ موجود مجاز است یا خیر.
--skip-errors در نسخه 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 check-coverage "https://cdn.jsdelivr.net/npm/us-atlas@3/counties-albers-10m.json" --layer counties counties-errors.geojson

Bash

gdal vector pipeline \
    ! read "https://cdn.jsdelivr.net/npm/us-atlas@3/counties-albers-10m.json" --layer counties \
    ! check-coverage \
    ! info --features
PowerShell
gdal vector pipeline `
    ! read "https://cdn.jsdelivr.net/npm/us-atlas@3/counties-albers-10m.json" --layer counties `
    ! check-coverage `
    ! info --features

Dan Baston <dbaston@gmail.com>.SH "کپی‌رایت و تکثیر (COPYRIGHT)" 1998-2026

August 18, 2026