GDAL-VECTOR-SET-GEOM-TYPE(1) GDAL GDAL-VECTOR-SET-GEOM-TYPE(1)
نام (NAME)
gdal-vector-set-geom-type - تغییر نوع هندسه در یک مجموعهداده برداری
در نسخه 3.12 اضافه شد.
خلاصه دستور (SYNOPSIS)
Usage: gdal vector set-geom-type [OPTIONS]
تغییر نوع هندسه در یک مجموعهداده برداری.
آرگومانهای موضعی (Positional arguments):
-i, --input مجموعهدادههای برداری ورودی [الزامی] [در خطوط لوله در دسترس نیست]
-o, --output مجموعهداده برداری خروجی [الزامی] [در خطوط لوله در دسترس نیست]
گزینههای عمومی (Common Options):
-h, --help نمایش پیام راهنما و خروج
--json-usage نمایش نحوه استفاده به صورت سند JSON و خروج
--config = گزینه پیکربندی [تکرارپذیر]
-q, --quiet حالت بیصدا (بدون نوار پیشرفت یا پیام هشدار) [در خطوط لوله در دسترس نیست]
گزینهها (Options):
-l, --layer, --input-layer نام لایه(های) ورودی [تکرارپذیر] [در خطوط لوله در دسترس نیست]
-f, --of, --format, --output-format قالب خروجی (مجاز بودن "GDALG") [در خطوط لوله در دسترس نیست]
--co, --creation-option = گزینه ایجاد [تکرارپذیر] [در خطوط لوله در دسترس نیست]
--lco, --layer-creation-option = گزینه ایجاد لایه [تکرارپذیر] [در خطوط لوله در دسترس نیست]
--overwrite آیا بازنویسی روی مجموعهداده خروجی موجود مجاز است [در خطوط لوله در دسترس نیست]
--update آیا مجموعهداده موجود در حالت بهروزرسانی باز شود [در خطوط لوله در دسترس نیست]
--overwrite-layer آیا بازنویسی روی لایه خروجی موجود مجاز است [در خطوط لوله در دسترس نیست]
--append آیا الحاق به لایه موجود مجاز است [در خطوط لوله در دسترس نیست]
ناسازگار با --upsert
--output-layer نام لایه خروجی [در خطوط لوله در دسترس نیست]
--skip-errors چشمپوشی از خطاها هنگام نوشتن عوارض [در خطوط لوله در دسترس نیست]
--active-layer تنظیم لایه فعال (در صورت عدم تعیین، همه)
--active-geometry نام فیلد هندسه برای محدود کردن پردازش به آن (در صورت عدم تعیین، همه)
--layer-only تنها تغییر نوع هندسه لایه
ناسازگار با --feature-only
--feature-only تنها تغییر نوع هندسه عوارض
ناسازگار با --layer-only
--geometry-type نوع هندسه
--multi اجبار هندسهها به انواع هندسه MULTI
ناسازگار با --single
--single اجبار هندسهها به انواع هندسه غیر MULTI
ناسازگار با --multi
--linear تبدیل هندسههای منحنی به انواع خطی
ناسازگار با --curve
--curve تبدیل هندسههای خطی به انواع منحنی
ناسازگار با --linear
--dim اجبار هندسهها به ابعاد مشخصشده. DIM=XY|XYZ|XYM|XYZM
--skip چشمپوشی از عارضه هنگام شکست تغییر نوع هندسه عارضه
گزینههای پیشرفته (Advanced Options):
--if, --input-format قالبهای ورودی [تکرارپذیر] [در خطوط لوله در دسترس نیست]
--oo, --open-option = گزینههای باز کردن [تکرارپذیر] [در خطوط لوله در دسترس نیست]
--output-oo, --output-open-option = گزینههای باز کردن خروجی [تکرارپذیر] [در خطوط لوله در دسترس نیست]
--upsert درج یا بهروزرسانی (Upsert) عوارض (شامل 'append') [در خطوط لوله در دسترس نیست]
ناسازگار با --append
توضیحات (DESCRIPTION)
دستور gdal vector set-geom-type میتواند برای تغییر نوع هندسه فیلدهای
هندسی در سطح لایه و/یا عارضه استفاده شود.
این دستور همچنین میتواند به عنوان یک مرحله از gdal vector pipeline به
کار رود.
گروههای گزینههای زیر را میتوان با یکدیگر ترکیب کرد: - --multi /
--single - --linear / --curve - --dim
خروجی GDALG (مجموعهداده درجا / جریانی) (GDALG OUTPUT (ON-THE-FLY / STREAMED
DATASET))
این برنامه از سریالسازی خط فرمان به عنوان یک فایل JSON با استفاده از
قالب خروجی GDALG پشتیبانی میکند. سپس فایل حاصل میتواند با استفاده از
درایور GDALG: GDAL Streamed Algorithm به عنوان یک مجموعهداده برداری باز
شود، و خط لوله مشخصشده را به صورت درجا / جریانی اعمال کند.
گزینههای اختصاصی برنامه (PROGRAM-SPECIFIC OPTIONS)
--curve
اجبار هندسهها به انواع هندسه منحنی. به عنوان مثال LINESTRING ==>
COMPOUNDCURVE یا POLYGON ==> CURVEPOLYGON. نقاط بدون تغییر باقی
میمانند. این گزینه با --linear ناسازگار است.
--dim اجبار هندسهها به ابعاد مشخصشده (XY، XYZ، XYM یا XYZM). اگر هندسه
ورودی فاقد مؤلفههای Z یا M باشد، مقدار آنها برابر با 0 قرار
میگیرد. این گزینه با --geometry-type ناسازگار است.
--feature-only
تنها تغییر نوع هندسه عوارض.
--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 ناسازگار است.
--layer-only
تنها تغییر نوع هندسه لایه. یک کاربرد متداول زمانی است که نوع
هندسه لایه روی نامشخص (unknown) تنظیم شده و کاربر میداند که لایه
تنها حاوی هندسهای از یک نوع مشخص است.
--linear
اجبار هندسهها به انواع هندسه خطی/غیرمنحنی، با تقریب قوسها با
پارهخطهای مستقیم. تقریب خطی را میتوان با گزینههای پیکربندی
OGR_ARC_STEPSIZE و OGR_ARC_MAX_GAP (که با استفاده از
vector_common_options --config تعیین میشوند) کنترل کرد. به
عنوان مثال COMPOUNDCURVE ==> LINESTRING. این گزینه با --curve
ناسازگار است.
--multi
اجبار هندسهها به انواع هندسه MULTI. به عنوان مثال POINT ==>
MULTIPOINT. این گزینه با --single ناسازگار است.
--single
اجبار هندسهها به انواع هندسه غیر MULTI. به عنوان مثال MULTIPOINT
==> POINT. این گزینه با --multi ناسازگار است. عوارض MultiPoint
یا MultiLinestring با بیش از یک مؤلفه بدون تغییر باقی خواهند
ماند. MultiPolygon با بیش از یک مؤلفه با ادغام تمام حلقههای خود
به یک چندضلعی واحد (که احتمالاً طبق قوانین OGC Simple Features
نامعتبر است) ادغام میشود.
--skip چشمپوشی از عارضه هنگامی که تغییر نوع هندسه عارضه با شکست مواجه
شود (مانند تلاش برای اجبار نوع هندسه Point برای یک هندسه
LineString). در غیر این صورت، هندسه مبدا بدون تغییر باقی میماند
(که در صورت عدم پشتیبانی لایه خروجی از ترکیب انواع هندسه، ممکن
است آن را با لایه خروجی ناسازگار کند). این گزینه هم زمانی که
نوع هندسه مقصد با --geometry-type تعریف شده باشد و هم با هر یک
از گزینههای --multi، --single، --linear و --curve اعمال میشود.
گزینههای استاندارد (STANDARD OPTIONS)
--active-geometry
تنظیم فیلد هندسه فعال بر اساس نام آن. در صورت تعیین، تنها فیلد
هندسه مشخصشده تحت پردازش قرار خواهد گرفت. سایر فیلدهای هندسی
تغییری نخواهند کرد. در صورت عدم تعیین این گزینه، تمام فیلدهای
هندسی تحت پردازش قرار میگیرند. این گزینه میتواند همراه با
--active-layer ترکیب شود.
--active-layer
تنظیم لایه فعال. در صورت تعیین، تنها لایهای که با نامش مشخص شده
است تحت پردازش قرار خواهد گرفت. سایر لایهها تغییری نخواهند کرد.
در صورت عدم تعیین این گزینه، تمام لایهها تحت پردازش قرار خواهند
گرفت.
--append
تعیین اینکه آیا الحاق عوارض به لایه(های) موجود مجاز است یا خیر.
این گزینه همچنین در صورتی که مجموعهداده خروجی هنوز وجود نداشته
باشد، آن را ایجاد میکند.
--co, --creation-option =
بسیاری از قالبها یک یا چند گزینه اختیاری ایجاد مجموعهداده دارند
که میتوانند برای کنترل جزئیات فایل ایجادشده استفاده شوند. برای
مثال، درایور GeoPackage از گزینههای ایجاد برای کنترل نسخه
پشتیبانی میکند.
میتواند تکرار شود.
گزینههای ایجاد مجموعهداده موجود بسته به درایور قالب متفاوت است،
و برخی قالبهای ساده اصلاً هیچ گزینه ایجادی ندارند. فهرستی از
گزینههای پشتیبانیشده برای یک قالب را میتوان با گزینه خط فرمان
--formats مشاهده کرد، اما مستندات مربوط به همان قالب مرجع قطعی
اطلاعات درباره گزینههای ایجاد درایور است. برای گزینههای مجاز
ایجاد در هر قالب، مستندات اختصاصی قالب درایورهای برداری (Vector
drivers) را ببینید.
توجه داشته باشید که گزینههای ایجاد مجموعهداده با گزینههای ایجاد
لایه متفاوت هستند.
--if, --input-format
نام قالب/درایوری که برای باز کردن فایل(های) ورودی تلاش میشود.
معمولاً نیازی به تعیین آن نیست، اما میتوان از آن برای چشمپوشی از
تشخیص خودکار درایور، هنگامی که در انتخاب درایور مناسب ناموفق
است، استفاده کرد. این گزینه میتواند چندین بار برای تعیین چندین
درایور نامزد تکرار شود. توجه داشته باشید که این گزینه درایورها
را مجبور به باز کردن مجموعهداده نمیکند. بهویژه، برخی درایورها
الزاماتی روی پسوند فایل دارند.
میتواند تکرار شود.
--input-layer
نام یک یا چند لایه را برای پردازش مشخص میکند. بهطور پیشفرض، تمام
لایهها پردازش خواهند شد. برای خواندن و نوشتن تمام لایهها اما
تنها پردازش یک زیرمجموعه، از --active-layer استفاده کنید.
--lco, --layer-creation-option =
بسیاری از قالبها یک یا چند گزینه اختیاری ایجاد لایه دارند که
میتوانند برای کنترل جزئیات لایه ایجادشده استفاده شوند. برای
مثال، درایور GeoPackage از گزینههای ایجاد لایه برای کنترل شناسه
عارضه یا نام ستون هندسه، تنظیم شناسه یا توضیحات و غیره پشتیبانی
میکند.
میتواند تکرار شود.
گزینههای ایجاد لایه موجود بسته به درایور قالب متفاوت است، و برخی
قالبهای ساده اصلاً هیچ گزینه ایجاد لایهای ندارند. فهرستی از
گزینههای پشتیبانیشده برای یک قالب را میتوان با گزینه خط فرمان
--formats مشاهده کرد، اما مستندات مربوط به همان قالب مرجع قطعی
اطلاعات درباره گزینههای ایجاد درایور است. برای گزینههای مجاز
ایجاد در هر قالب، مستندات اختصاصی قالب درایورهای برداری (Vector
drivers) را ببینید.
توجه داشته باشید که گزینههای ایجاد لایه با گزینههای ایجاد
مجموعهداده متفاوت هستند.
--oo, --open-option =
گزینه باز کردن مجموعهداده (مختص قالب).
میتواند تکرار شود.
-f, --of, --format, --output-format
تعیین قالب برداری خروجی مورد استفاده. مقادیر مجاز را میتوان با
دستور زیر به دست آورد: gdal --formats | grep vector | grep rw |
sort
--output-layer
نام لایهای را که عوارض در آن نوشته میشوند مشخص میکند. در صورت
عدم تعیین، نام لایههای خروجی همانند نام لایههای ورودی خواهد بود.
--output-open-option, --output-oo =
در نسخه 3.12 اضافه شد.
گزینه باز کردن مجموعهداده برای مجموعهداده خروجی (مختص قالب).
میتواند تکرار شود.
--overwrite
به برنامه اجازه میدهد تا روی فایل یا مجموعهداده مقصد موجود
بازنویسی کند. در غیر این صورت، بهطور پیشفرض اگر فایل یا
مجموعهداده مقصد از قبل وجود داشته باشد، gdal با خطا مواجه میشود.
--overwrite-layer
تعیین اینکه آیا بازنویسی روی لایه برداری خروجی موجود مجاز است یا
خیر.
--skip-errors
در نسخه 3.12 اضافه شد.
تعیین اینکه آیا باید از خطاهای نوشتن عارضه(ها) چشمپوشی شود یا
خیر. توجه داشته باشید که این گزینه اندازه واحد تراکنش را به یک
عارضه در هر بار تنظیم میکند، که ممکن است هنگام درج در پایگاههای
داده باعث کاهش شدید سرعت شود.
--update
تعیین اینکه آیا یک مجموعهداده خروجی موجود در حالت بهروزرسانی باز
شود یا خیر.
--upsert
در نسخه 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) که کلید اصلی عدد
صحیح نیست وجود داشته باشد.
کد وضعیت بازگشتی (RETURN STATUS CODE)
برنامه در صورت موفقیت کد وضعیت 0 و در صورت بروز خطا مقداری غیرصفر
برمیگرداند (خطاهای غیرمسدودکننده که به صورت هشدار صادر میشوند، اجرای
موفق در نظر گرفته میشوند).
مثالها (EXAMPLES)
مثال ۱: تبدیل یک شیپفایل شامل ترکیبی از پلیگانها و چندپلیگانها به یک
GeoPackage با چندپلیگانها (Multipolygons).
$ gdal vector set-geom-type --geometry-type=MULTIPOLYGON in.shp out.gpkg --overwrite
مثال ۲: تبدیل یک GeoPackage با هندسههای منحنی به یک Shapefile (که از آنها
پشتیبانی نمیکند).
$ gdal vector set-geom-type --linear in.gpkg out.shp --overwrite
نویسنده (AUTHOR)
Even Rouault
حق نشر (COPYRIGHT)
1998-2026
August 18, 2026 GDAL-VECTOR-SET-GEOM-TYPE(1)