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

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

افزوده‌شده در نسخه 3.12.

Usage: gdal vector set-field-type [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>                        تنظیم لایه فعال (در صورت عدم تعیین، همه لایه‌ها)
  --field-name <FIELD-NAME>                            نام فیلد [الزامی]
                                                       ناسازگار با --input-field-type
  --input-field-type <INPUT-FIELD-TYPE>                نوع یا زیرنوع فیلد مبدأ [الزامی]
                                                       ناسازگار با --field-name
  --output-field-type, --field-type <FIELD-TYPE>       نوع یا زیرنوع فیلد مقصد [الزامی]
گزینه‌های پیشرفته:
  --if, --input-format <INPUT-FORMAT>                  قالب‌های ورودی [تکرارپذیر] [در خطوط لوله در دسترس نیست]
  --oo, --open-option <KEY>=<VALUE>                    گزینه‌های باز کردن [تکرارپذیر] [در خطوط لوله در دسترس نیست]
  --output-oo, --output-open-option <KEY>=<VALUE>      گزینه‌های باز کردن خروجی [تکرارپذیر] [در خطوط لوله در دسترس نیست]
  --upsert                                             به‌روزرسانی یا درج عوارض (مستلزم 'append') [در خطوط لوله در دسترس نیست]
                                                       ناسازگار با --append

دستور gdal vector set-field-type می‌تواند برای تغییر نوع فیلد یک مجموعه‌داده برداری استفاده شود:

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

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

نام فیلد جهت تغییر.

ناسازگار با --input-field-type. مشخص کردن یکی از آن‌ها الزامی است.

نوع جدید فیلد. مقادیر معتبر عبارتند از: Integer، IntegerList، Real، RealList، String، StringList، Binary، Date، Time، DateTime، Integer64، Integer64List. به جای نوع فیلد می‌توان زیرنوع فیلد (subtype) را مشخص کرد. مقادیر معتبر عبارتند از: Boolean، Int16، Float32، JSON، UUID. نوع فیلد از زیرنوع مشتق خواهد شد.
نوع فیلد فیلدهایی که باید تغییر کنند. مقادیر معتبر عبارتند از: Integer، IntegerList، Real، RealList، String، StringList، Binary، Date، Time، DateTime، Integer64، Integer64List. به جای نوع فیلد می‌توان زیرنوع فیلد را مشخص کرد. مقادیر معتبر عبارتند از: Boolean، Int16، Float32، JSON، UUID.

ناسازگار با --field-name. مشخص کردن یکی از آن‌ها الزامی است.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

$ gdal vector set-field-type input.gpkg output.gpkg --field-name myfield --field-type Integer

$ gdal vector set-field-type input.gpkg output.gpkg --input-field-type Date --output-field-type DateTime

Alessandro Pasotti <elpaso@itopen.it>

1998-2026

August 18, 2026