| 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] <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
توضیحات (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-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-GEOMETRY>
- تنظیم فیلد هندسه فعال بر اساس نام آن. در صورت تعیین، تنها فیلد هندسه مشخصشده تحت پردازش قرار خواهد گرفت. سایر فیلدهای هندسی تغییری نخواهند کرد. در صورت عدم تعیین این گزینه، تمام فیلدهای هندسی تحت پردازش قرار میگیرند. این گزینه میتواند همراه با --active-layer ترکیب شود.
- --active-layer <ACTIVE-LAYER>
- تنظیم لایه فعال. در صورت تعیین، تنها لایهای که با نامش مشخص شده است تحت پردازش قرار خواهد گرفت. سایر لایهها تغییری نخواهند کرد. در صورت عدم تعیین این گزینه، تمام لایهها تحت پردازش قرار خواهند گرفت.
- --append
- تعیین اینکه آیا الحاق عوارض به لایه(های) موجود مجاز است یا خیر. این گزینه همچنین در صورتی که مجموعهداده خروجی هنوز وجود نداشته باشد، آن را ایجاد میکند.
- --co, --creation-option <NAME>=<VALUE>
- بسیاری از
قالبها یک
یا چند
گزینه
اختیاری
ایجاد
مجموعهداده
دارند که
میتوانند
برای کنترل
جزئیات
فایل
ایجادشده
استفاده
شوند. برای
مثال،
درایور GeoPackage
از
گزینههای
ایجاد برای
کنترل نسخه
پشتیبانی
میکند.
میتواند تکرار شود.
گزینههای ایجاد مجموعهداده موجود بسته به درایور قالب متفاوت است، و برخی قالبهای ساده اصلاً هیچ گزینه ایجادی ندارند. فهرستی از گزینههای پشتیبانیشده برای یک قالب را میتوان با گزینه خط فرمان --formats مشاهده کرد، اما مستندات مربوط به همان قالب مرجع قطعی اطلاعات درباره گزینههای ایجاد درایور است. برای گزینههای مجاز ایجاد در هر قالب، مستندات اختصاصی قالب درایورهای برداری (Vector drivers) را ببینید.
توجه داشته باشید که گزینههای ایجاد مجموعهداده با گزینههای ایجاد لایه متفاوت هستند.
- --if, --input-format <format>
- نام
قالب/درایوری
که برای باز
کردن
فایل(های)
ورودی تلاش
میشود.
معمولاً
نیازی به
تعیین آن
نیست، اما
میتوان از
آن برای
چشمپوشی
از تشخیص
خودکار
درایور،
هنگامی که
در انتخاب
درایور
مناسب
ناموفق
است،
استفاده
کرد. این
گزینه
میتواند
چندین بار
برای تعیین
چندین
درایور
نامزد
تکرار شود.
توجه داشته
باشید که
این گزینه
درایورها
را مجبور به
باز کردن
مجموعهداده
نمیکند.
بهویژه،
برخی
درایورها
الزاماتی
روی پسوند
فایل دارند.
میتواند تکرار شود.
- --input-layer <INPUT-LAYER>
- نام یک یا چند لایه را برای پردازش مشخص میکند. بهطور پیشفرض، تمام لایهها پردازش خواهند شد. برای خواندن و نوشتن تمام لایهها اما تنها پردازش یک زیرمجموعه، از --active-layer استفاده کنید.
- --lco, --layer-creation-option <NAME>=<VALUE>
- بسیاری از
قالبها یک
یا چند
گزینه
اختیاری
ایجاد لایه
دارند که
میتوانند
برای کنترل
جزئیات
لایه
ایجادشده
استفاده
شوند. برای
مثال،
درایور GeoPackage
از
گزینههای
ایجاد لایه
برای کنترل
شناسه
عارضه یا
نام ستون
هندسه،
تنظیم
شناسه یا
توضیحات و
غیره
پشتیبانی
میکند.
میتواند تکرار شود.
گزینههای ایجاد لایه موجود بسته به درایور قالب متفاوت است، و برخی قالبهای ساده اصلاً هیچ گزینه ایجاد لایهای ندارند. فهرستی از گزینههای پشتیبانیشده برای یک قالب را میتوان با گزینه خط فرمان --formats مشاهده کرد، اما مستندات مربوط به همان قالب مرجع قطعی اطلاعات درباره گزینههای ایجاد درایور است. برای گزینههای مجاز ایجاد در هر قالب، مستندات اختصاصی قالب درایورهای برداری (Vector drivers) را ببینید.
توجه داشته باشید که گزینههای ایجاد لایه با گزینههای ایجاد مجموعهداده متفاوت هستند.
- --oo, --open-option <NAME>=<VALUE>
- گزینه باز
کردن
مجموعهداده
(مختص قالب).
میتواند تکرار شود.
- -f, --of, --format, --output-format <OUTPUT-FORMAT>
- تعیین قالب برداری خروجی مورد استفاده. مقادیر مجاز را میتوان با دستور زیر به دست آورد: gdal --formats | grep vector | grep rw | sort
- --output-layer <NAME>
- نام لایهای را که عوارض در آن نوشته میشوند مشخص میکند. در صورت عدم تعیین، نام لایههای خروجی همانند نام لایههای ورودی خواهد بود.
- --output-open-option, --output-oo <NAME>=<VALUE>
- در نسخه 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 <even.rouault@spatialys.com>
حق نشر (COPYRIGHT)
1998-2026
| August 18, 2026 |