GDAL-VECTOR-SET-GEOM-TYPE(1) GDAL GDAL-VECTOR-SET-GEOM-TYPE(1)

gdal-vector-set-geom-type - تغییر نوع هندسه در یک مجموعه‌داده برداری

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

Usage: gdal vector set-geom-type [OPTIONS] <INPUT> <OUTPUT>
تغییر نوع هندسه در یک مجموعه‌داده برداری.
آرگومان‌های موضعی (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                                        چشم‌پوشی از خطاها هنگام نوشتن عوارض [در خطوط لوله در دسترس نیست]
  --active-layer <ACTIVE-LAYER>                        تنظیم لایه فعال (در صورت عدم تعیین، همه)
  --active-geometry <ACTIVE-GEOMETRY>                  نام فیلد هندسه برای محدود کردن پردازش به آن (در صورت عدم تعیین، همه)
  --layer-only                                         تنها تغییر نوع هندسه لایه
                                                       ناسازگار با --feature-only
  --feature-only                                       تنها تغییر نوع هندسه عوارض
                                                       ناسازگار با --layer-only
  --geometry-type <GEOMETRY-TYPE>                      نوع هندسه
  --multi                                              اجبار هندسه‌ها به انواع هندسه MULTI
                                                       ناسازگار با --single
  --single                                             اجبار هندسه‌ها به انواع هندسه غیر MULTI
                                                       ناسازگار با --multi
  --linear                                             تبدیل هندسه‌های منحنی به انواع خطی
                                                       ناسازگار با --curve
  --curve                                              تبدیل هندسه‌های خطی به انواع منحنی
                                                       ناسازگار با --linear
  --dim <DIM>                                          اجبار هندسه‌ها به ابعاد مشخص‌شده. DIM=XY|XYZ|XYM|XYZM
  --skip                                               چشم‌پوشی از عارضه هنگام شکست تغییر نوع هندسه عارضه
گزینه‌های پیشرفته (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 set-geom-type می‌تواند برای تغییر نوع هندسه فیلدهای هندسی در سطح لایه و/یا عارضه استفاده شود.

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

گروه‌های گزینه‌های زیر را می‌توان با یکدیگر ترکیب کرد: - --multi / --single - --linear / --curve - --dim

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

اجبار هندسه‌ها به انواع هندسه منحنی. به عنوان مثال LINESTRING ==> COMPOUNDCURVE یا POLYGON ==> CURVEPOLYGON. نقاط بدون تغییر باقی می‌مانند. این گزینه با --linear ناسازگار است.
اجبار هندسه‌ها به ابعاد مشخص‌شده (XY، XYZ، XYM یا XYZM). اگر هندسه ورودی فاقد مؤلفه‌های Z یا M باشد، مقدار آن‌ها برابر با 0 قرار می‌گیرد. این گزینه با --geometry-type ناسازگار است.
تنها تغییر نوع هندسه عوارض.
تغییر نوع هندسه به یکی از موارد GEOMETRY، POINT، LINESTRING، POLYGON، MULTIPOINT، MULTILINESTRING، MULTIPOLYGON، GEOMETRYCOLLECTION، CURVE، CIRCULARSTRING، COMPOUNDCURVE، SURFACE، CURVEPOLYGON، MULTICURVE، MULTISURFACE، POLYHEDRALSURFACE یا TIN. پسوندهای Z، M یا ZM می‌توانند به مقادیر فوق اضافه شوند تا ابعاد را مشخص کنند.

این گزینه با گزینه‌های --multi، --single، --linear، --curve و --dim ناسازگار است.

تنها تغییر نوع هندسه لایه. یک کاربرد متداول زمانی است که نوع هندسه لایه روی نامشخص (unknown) تنظیم شده و کاربر می‌داند که لایه تنها حاوی هندسه‌ای از یک نوع مشخص است.
اجبار هندسه‌ها به انواع هندسه خطی/غیرمنحنی، با تقریب قوس‌ها با پاره‌خط‌های مستقیم. تقریب خطی را می‌توان با گزینه‌های پیکربندی OGR_ARC_STEPSIZE و OGR_ARC_MAX_GAP (که با استفاده از vector_common_options --config تعیین می‌شوند) کنترل کرد. به عنوان مثال COMPOUNDCURVE ==> LINESTRING. این گزینه با --curve ناسازگار است.
اجبار هندسه‌ها به انواع هندسه MULTI. به عنوان مثال POINT ==> MULTIPOINT. این گزینه با --single ناسازگار است.
اجبار هندسه‌ها به انواع هندسه غیر MULTI. به عنوان مثال MULTIPOINT ==> POINT. این گزینه با --multi ناسازگار است. عوارض MultiPoint یا MultiLinestring با بیش از یک مؤلفه بدون تغییر باقی خواهند ماند. MultiPolygon با بیش از یک مؤلفه با ادغام تمام حلقه‌های خود به یک چندضلعی واحد (که احتمالاً طبق قوانین OGC Simple Features نامعتبر است) ادغام می‌شود.
چشم‌پوشی از عارضه هنگامی که تغییر نوع هندسه عارضه با شکست مواجه شود (مانند تلاش برای اجبار نوع هندسه Point برای یک هندسه LineString). در غیر این صورت، هندسه مبدا بدون تغییر باقی می‌ماند (که در صورت عدم پشتیبانی لایه خروجی از ترکیب انواع هندسه، ممکن است آن را با لایه خروجی ناسازگار کند). این گزینه هم زمانی که نوع هندسه مقصد با --geometry-type تعریف شده باشد و هم با هر یک از گزینه‌های --multi، --single، --linear و --curve اعمال می‌شود.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

$ gdal vector set-geom-type --geometry-type=MULTIPOLYGON in.shp out.gpkg --overwrite

$ gdal vector set-geom-type --linear in.gpkg out.shp --overwrite

Even Rouault <even.rouault@spatialys.com>

1998-2026

August 18, 2026