| GDAL_CALC(1) | GDAL | GDAL_CALC(1) |
نام (NAME)
gdal_calc - ماشینحساب رستری خط فرمان با نحو numpy.
خلاصه دستور (SYNOPSIS)
gdal_calc [--help] [--help-general]
--calc=expression --outfile=<out_filename> [-A <filename>]
[--A_band=<n>] [-B...-Z <filename>] [<other_options>]
توضیحات (DESCRIPTION)
ماشینحساب رستری خط فرمان با نحو numpy. از هرگونه محاسبات حسابی پایهای که توسط آرایههای numpy پشتیبانی میشود مانند +، -، * و / به همراه عملگرهای منطقی مانند > استفاده کنید. توجه داشته باشید که تمام فایلها باید ابعاد یکسانی داشته باشند (مگر اینکه از گزینهٔ --extent استفاده شود)، اما هیچگونه بررسی سیستم تصویر انجام نمیشود (مگر اینکه از گزینهٔ --projectionCheck استفاده شود).
نکته:
راهنمایی:
دستور gdal raster calc را ببینید.
- --help
- نمایش این پیام راهنما و خروج
- --help-general
- یک پیام کاربرد کوتاه برای گزینههای عمومی خط فرمان GDAL نمایش میدهد و خارج میشود.
- --calc=<expression>
- محاسبه با نحو numpy با استفاده از +، -، /، * یا هر یک از توابع آرایه numpy (مانند log10()). میتوان چندین گزینهٔ --calc را برای تولید یک فایل چندبانده مشخص کرد (GDAL >= 3.2). Example 10 را ببینید.
- -A <filename>
- فایل رستری
ورودی GDAL؛
میتوانید
از هر حرفی (a-z,
A-Z) استفاده
کنید. (حروف
کوچک از GDAL 3.3
پشتیبانی
میشوند)
یک حرف میتواند تکرار شود، یا چندین مقدار (جداشده با فاصله) ارائه شود (GDAL >= 3.3). نتیجه این کار ایجاد یک آرایهٔ سهبعدی numpy خواهد بود. از GDAL 3.5 به بعد، کاراکترهای عام (با استفاده از ?, *) برای تمام پوستهها/پلتفرمها پشتیبانی میشوند. در چنین حالتی، فرمول محاسباتی باید از این ورودی به عنوان یک آرایهٔ سهبعدی استفاده کند و باید یک آرایهٔ دوبعدی برگرداند (Example 3 را ببینید). اگر محاسبه یک آرایهٔ دوبعدی برنگرداند، یک خطا تولید خواهد شد.
- --A_band=<n>
- شماره باند رستر برای فایل A (پیشفرض 1).
- --outfile=<filename>
- فایل خروجی برای تولید یا پر کردن.
- --NoDataValue=<value>
- مقدار NoDataValue
خروجی
(پیشفرض:
مقدار
مشخصهٔ نوع
داده). برای
مشخص کردن
تنظیم
نکردن NoDataValue از
--NoDataValue=none
استفاده
کنید (GDAL >= 3.3)
نکته:
- --hideNoData
- در نسخهٔ 3.3
اضافه شد.
مقدار NoDataValue باندهای ورودی را نادیده میگیرد. بهطور پیشفرض، مقدار NoDataValue باندهای ورودی در محاسبه شرکت داده نمیشوند. با تنظیم این گزینه - هیچ رفتار خاصی روی NoDataValue ورودی انجام نخواهد شد و آنها مانند هر مقدار دیگری در محاسبه شرکت خواهند کرد. خروجی دارای NoDataValue تنظیمشده نخواهد بود، مگر اینکه صراحتاً با تنظیم --NoDataValue=<value> یک مقدار مشخص را تعیین کرده باشید.
- --type=<datatype>
- نوع دادهٔ
خروجی،
باید یکی از
[Byte, Int8, UInt16, Int16, UInt32,
Int32, UInt64, Int64, Float64, Float32,
CInt16, CInt32, CFloat64, CFloat32]
باشد.
نکته:
نکته:
- --format=<gdal_format>
- قالب GDAL برای فایل خروجی.
- --color-table=<filename>
- امکان مشخص کردن نام فایل یک جدول رنگ (یا یک شیء ColorTable) (با تفسیر نمایهٔ پالت) را برای استفاده در رستر خروجی فراهم میکند. قالبهای پشتیبانیشده: txt (یعنی مانند gdaldem، اما نامهای رنگ پشتیبانی نمیشوند)، qlr، qml (یعنی صادرشده از QGIS).
- --extent=<option>
- در نسخهٔ 3.3
اضافه شد.
این گزینه نحوهٔ مدیریت رسترهایی با محدودههای متفاوت را تعیین میکند. این گزینه با گزینهٔ projwin که برای ارائهٔ یک محدودهٔ سفارشی استفاده میشود، ناسازگار و مانعةالجمع است.
برای تمام گزینههای زیر، اندازهٔ پیکسل (تفکیکپذیری) و SRS (سامانهٔ مرجع مکانی) تمام رسترهای ورودی باید یکسان باشد.
ignore (پیشفرض) - فقط ابعاد رسترها مقایسه میشوند. اگر ابعاد مطابقت نداشته باشند، عملیات ناموفق خواهد بود.
fail - ابعاد و محدوده (مرزهای) رسترها باید مطابقت داشته باشند، در غیر این صورت عملیات با شکست مواجه میشود.
union - محدوده (مرزهای) خروجی، کوچکترین مستطیلی خواهد بود که تمام محدودههای ورودی را در بر میگیرد.
intersect - محدوده (مرزهای) خروجی، بزرگترین مستطیلی خواهد بود که در تمام محدودههای ورودی گنجانده شده است.
این گزینه یک محدوده (extent) سفارشی برای خروجی مشخص میکند؛ استفاده همزمان از آن با گزینه extent مجاز نیست.
- --projectionCheck
- در نسخه 3.3
اضافه شد.
بهطور پیشفرض، هیچ بررسی روی سیستم تصویر انجام نخواهد شد. با فعال کردن این گزینه، در صورتی که سیستم تصویر برای تمامی باندها یکسان نباشد، عملیات ناموفق خواهد بود.
- --creation-option=<option>
- یک گزینه ساخت (creation option) را به درایور قالب خروجی ارسال میکند. میتوان چندین گزینه را مشخص کرد. برای گزینههای ساخت مجاز مربوط به هر قالب، مستندات اختصاصی آن قالب را بررسی کنید.
- --co=<option>
- مشابه با creation-option است.
- --allBands=[a-z, A-Z]
- اعمال عبارت بر روی تمام باندهای یک رستر مشخص. زمانی که از --allBands استفاده میشود، --calc تنها یکبار میتواند مشخص شود. به Example 11 و Example 12 نگاه کنید.
- --overwrite
- بازنویسی فایل خروجی در صورتی که از قبل موجود باشد. بازنویسی در اینجا باید به معنای حذف و ساخت مجدد فایل از ابتدا در نظر گرفته شود. توجه داشته باشید که اگر این گزینه مشخص نشده باشد و فایل خروجی از قبل موجود باشد، بهصورت درجا (in place) بهروزرسانی خواهد شد.
- --debug
- چاپ اطلاعات اشکالزدایی (debugging).
- --quiet
- عدم نمایش پیامهای پیشرفت.
کد وضعیت بازگشتی (RETURN STATUS CODE)
برنامه در صورت موفقیت کد وضعیت 0، و در صورت بروز خطا مقداری غیر صفر برمیگرداند (خطاهای غیر مسدودکننده که به صورت هشدار ارسال میشوند، به عنوان یک اجرای موفقیتآمیز در نظر گرفته میشوند).
گزینههای پایتون (PYTHON OPTIONS)
در نسخه 3.3 اضافه شد.
گزینههای زیر با استفاده از رابط پایتون gdal_calc در دسترس هستند. این گزینهها از طریق خط فرمان در دسترس نیستند.
- user_namespace
- یک دیکشنری از توابع سفارشی یا نامهای دیگر جهت استفاده در عبارت محاسباتی Calc.
- return_ds
- در صورت فعال بودن، مجموعهداده خروجی از تابع بازگردانده شده و بسته نخواهد شد.
- color_table
- امکان مشخص کردن یک شیء ColorTable (با تفسیر Palette Index) را جهت استفاده در رستر خروجی فراهم میکند.
مثال ۱: میانگین دو فایل
gdal_calc -A input1.tif -B input2.tif --outfile=result.tif --calc="(A+B)/2"
احتیاط:
gdal_calc -A input.tif -B input2.tif --outfile=result.tif --calc="(A.astype(numpy.float64) + B) / 2"
مثال ۲: جمع سه فایل
gdal_calc -A input1.tif -B input2.tif -C input3.tif --outfile=result.tif --calc="A+B+C"
مثال ۳: ترکیب سه فایل در یک آرایه سهبعدی و جمع آنها
gdal_calc -A input1.tif -A input2.tif -A input3.tif --outfile=result.tif --calc="numpy.sum(A,axis=0)".
مثال ۴: میانگین سه فایل
gdal_calc -A input1.tif -B input2.tif -C input3.tif --outfile=result.tif --calc="(A+B+C)/3"
مثال ۵: میانگین سه فایل با استفاده از آرایه سهبعدی
gdal_calc -A input1.tif input2.tif input3.tif --outfile=result.tif --calc="numpy.average(a,axis=0)".
مثال ۶: بیشینه سه فایل
gdal_calc -A input1.tif -B input2.tif -C input3.tif --outfile=result.tif --calc="numpy.max((A,B,C),axis=0)"
مثال ۷: بیشینه سه فایل با استفاده از یک آرایه سهبعدی
gdal_calc -A input1.tif input2.tif input3.tif --outfile=result.tif --calc="numpy.max(A,axis=0)"
gdal_calc -A input.tif --outfile=result.tif --calc="A*(A>0)" --NoDataValue=0
مثال ۹: استفاده از عملگر منطقی برای نگهداشتن بازهای از مقادیر ورودی
gdal_calc -A input.tif --outfile=result.tif --calc="A*logical_and(A>100,A<150)"
مثال ۱۰: انجام دو محاسبه و ذخیره نتایج در باندهای مجزا
gdal_calc -A input.tif --A_band=1 -B input.tif --B_band=2 \ --outfile=result.tif --calc="(A+B)/2" --calc="B*logical_and(A>100,A<150)"
مثال ۱۱: افزودن یک رستر به هر باند در یک رستر سهبانده
gdal_calc -A 3band.tif -B 1band.tif --outfile result.tif --calc "A+B" --allBands A
نتیجه دارای سه باند خواهد بود، بهطوری که هر باند شامل مقادیر 1band.tif افزودهشده به باند متناظر در 3band.tif است.
مثال ۱۲: جمع دو رستر سهبانده
gdal_calc -A 3band_a.tif -B 3band_b.tif --outfile result.tif --calc "A+B" --allBands A --allBands B
نتیجه دارای سه باند خواهد بود، بهطوری که هر باند شامل مقادیر باند متناظر از 3band_a.tif افزودهشده به باند متناظر از 3band_b.tif است.
نویسندگان (AUTHORS)
Chris Yesson <chris dot yesson at ioz dot ac dot uk>, Etienne Tourigny <etourigny dot dev at gmail dot com>
کپیرایت و تکثیر (COPYRIGHT)
1998-2026
| August 18, 2026 |