GDAL-RASTER-VIEWSHED(1) GDAL GDAL-RASTER-VIEWSHED(1)

gdal-raster-viewshed - محاسبه میدان دید یک مجموعه داده رستری.

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

کاربرد: gdal raster viewshed [OPTIONS] <INPUT> <OUTPUT>
محاسبه میدان دید یک مجموعه داده رستری.
آرگومان‌های موضعی:
  -i, --input <INPUT>                                  مجموعه داده‌های رستری ورودی [الزامی] [در خط‌لوله‌ها موجود نیست]
  -o, --output <OUTPUT>                                مجموعه داده رستری خروجی [الزامی] [در خط‌لوله‌ها موجود نیست]
گزینه‌های عمومی:
  -h, --help                                           نمایش پیام راهنما و خروج
  --json-usage                                         نمایش نحوه استفاده در قالب سند JSON و خروج
  --config <KEY>=<VALUE>                               گزینه پیکربندی [تکرارپذیر]
  -q, --quiet                                          حالت بی‌صدا (بدون نوار پیشرفت یا پیام هشدار) [در خط‌لوله‌ها موجود نیست]
گزینه‌ها:
  -f, --of, --format, --output-format <OUTPUT-FORMAT>  قالب خروجی (مقدار "GDALG" مجاز است) [در خط‌لوله‌ها موجود نیست]
  --co, --creation-option <KEY>=<VALUE>                گزینه ایجاد [تکرارپذیر] [در خط‌لوله‌ها موجود نیست]
  --overwrite                                          تعیین مجاز بودن رونویسی مجموعه داده خروجی موجود [در خط‌لوله‌ها موجود نیست]
                                                       غیرقابل استفاده هم‌زمان با --append
  --append                                             الحاق به خروجی موجود به عنوان زیرمجموعه‌داده [در خط‌لوله‌ها موجود نیست]
                                                       غیرقابل استفاده هم‌زمان با --overwrite
  -p, --pos, --position <X,Y> or <X,Y,H>               موقعیت ناظر [۲..۳ مقدار]
  -z, --height <HEIGHT>                                ارتفاع ناظر
  --sd-filename <SD-FILENAME>                          نام فایل رستر انحراف معیار
  --target-height <TARGET-HEIGHT>                      ارتفاع هدف بالاتر از سطح DEM بر حسب واحد ارتفاع DEM. (پیش‌فرض: 0)
  --mode <MODE>                                        تعیین اطلاعات موجود در خروجی.. MODE=normal|DEM|ground|cumulative (پیش‌فرض: normal)
  --max-distance <MAX-DISTANCE>                        حداکثر فاصله از ناظر برای محاسبه دید. همچنین برای محدود کردن محدوده رستر خروجی استفاده می‌شود.
  --min-distance <MIN-DISTANCE>                        ماسک کردن تمام سلول‌های با فاصله کمتر از این مقدار از ناظر. باید کمتر از 'max-distance' باشد.
  --start-angle <START-ANGLE>                          ماسک کردن تمام سلول‌های خارج از کمان ('start-angle', 'end-angle'). درجه ساعت‌گرد از شمال. همچنین برای محدود کردن محدوده رستر خروجی استفاده می‌شود.
  --end-angle <END-ANGLE>                              ماسک کردن تمام سلول‌های خارج از کمان ('start-angle', 'end-angle'). درجه ساعت‌گرد از شمال. همچنین برای محدود کردن محدوده رستر خروجی استفاده می‌شود.
  --high-pitch <HIGH-PITCH>                            علامت‌گذاری تمام سلول‌های خارج از محدوده که در آن‌ها ارتفاع قابل مشاهده بیشتر از زاویه 'high-pitch' از ناظر باشد. درجه از افق - مثبت به سمت بالا است. باید بیشتر از 'low-pitch' باشد.
  --low-pitch <LOW-PITCH>                              محدود کردن ارتفاع قابل مشاهده به طوری که کمتر از زاویه 'low-pitch' از ناظر نباشد. درجه از افق - مثبت به سمت بالا است. باید کمتر از 'high-pitch' باشد.
  --curvature-coefficient <CURVATURE-COEFFICIENT>      ضریب برای در نظر گرفتن اثر انحنا و شکست نور.
  -b, --band <BAND>                                    باند ورودی (شاخص مبتنی بر ۱) (پیش‌فرض: 1)
  --visible-value <VISIBLE-VALUE>                      مقدار پیکسل برای نواحی مرئی (پیش‌فرض: 255)
  --invisible-value <INVISIBLE-VALUE>                  مقدار پیکسل برای نواحی نامرئی (پیش‌فرض: 0)
  --maybe-visible-value <MAYBE-VISIBLE-VALUE>          مقدار پیکسل برای نواحی بالقوه مرئی (پیش‌فرض: 2)
  --out-of-range-value <OUT-OF-RANGE-VALUE>            مقدار پیکسل برای سلول‌هایی که خارج از محدوده مشخص‌شده توسط موقعیت ناظر و حداکثر فاصله قرار می‌گیرند (پیش‌فرض: 0)
  --output-nodata <OUTPUT-NODATA>                      مقداری که باید برای سلول‌های بدون داده در رستر خروجی تنظیم شود.
  --observer-spacing <OBSERVER-SPACING>                فاصله سلولی بین ناظرها (پیش‌فرض: 10)
  -j, --num-threads <NUM-THREADS>                      تعداد وظایف (یا ALL_CPUS) (پیش‌فرض: 3)
گزینه‌های پیشرفته:
  --if, --input-format <INPUT-FORMAT>                  قالب‌های ورودی [تکرارپذیر] [در خط‌لوله‌ها موجود نیست]
  --oo, --open-option <KEY>=<VALUE>                    گزینه‌های باز کردن [تکرارپذیر] [در خط‌لوله‌ها موجود نیست]

دستور gdal raster viewshed یک رستر دیدپذیری دودویی (باینری) از یک باند مدل رقومی ارتفاع (DEM) ورودی ایجاد می‌کند. رستر خروجی از نوع Byte خواهد بود. استفاده از مقادیر DEM یا ground در --mode می‌تواند یک رستر حداقل ارتفاع قابل‌مشاهده از نوع Float64 نیز تولید کند.

این دستور از روش تعریف‌شده در [Wang2000] برای یک نقطه تعیین‌شده توسط کاربر استفاده می‌کند.

این زیردستور همچنین به‌عنوان یک مرحله احتمالی در gdal raster pipeline در دسترس است (از نسخه GDAL 3.12).

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

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

نکته:

با این حال این الگوریتم به‌صورت بومی با حالت جریانی سازگار نیست. در نتیجه یک مجموعه‌داده موقت تولید خواهد شد که ممکن است زمان پردازش قابل‌توجهی را هنگام باز کردن ایجاد کند.

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

برنامه‌های مختلف برای محاسبه دید، از اصطلاحات قابل‌تعویض متفاوتی برای توصیف این پدیده استفاده می‌کنند: ضریب شکست (Refraction Coefficient)، ضریب انحنا (Curvature Coefficient)، و ضریب قطر کره (Sphere Diameter Factor). ابزار gdal_viewshed از اصطلاح ضریب انحنا (Curvature Coefficient) استفاده می‌کند.


{CurvCoeff}=1-{RefractionCoeff}

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


{SphereDiameterFactor}=1/{CurvCoeff}=1/(1-{RefractionCoeff})



برای نور مرئی، ضریب شکست استاندارد جوی که عموماً به کار می‌رود 1/7 است. بنابراین مقدار پیش‌فرض (از نسخه GDAL 3.4) برای CurvCoeff که gdal_viewshed استفاده می‌کند، برابر با 0.85714 (=~ 1-1/7) برای سامانه مرجع مختصات (CRS) زمین است. از نسخه GDAL 3.6، برای CRSهای غیر از زمین (آن‌هایی که نیم‌قطر بزرگ آن‌ها بیش از ۵٪ با WGS 84 تفاوت دارد)، مقدار پیش‌فرض CurvCoeff برابر با 1.0 است تا حالت بدون شکست در نظر گرفته شود.

ارتفاع DEM بر اساس فرمول زیر تصحیح می‌شود:


Height_{Corrected}=Height_{DEM}-{CurvCoeff}\frac{{TargetDistance}^2}{SphereDiameter}

مقادیر معمول ضرایب در جدول زیر آورده شده است (از مقدار Curvature Coeff برای گزینه cc استفاده کنید):

مورد کاربرد ضریب شکست ضریب انحنا (Curvature Coeff) ضریب قطر کره
بدون شکست 0 1 1
نور مرئی 1/7 6/7 (=~0.85714) 7/6 (=~1.1666)
امواج رادیویی 0.25 ~ 0.325 0.75 ~ 0.675 1.33 ~ 1.48
زمین تخت 1 0 inf
افزوده‌شده در نسخه 3.12.

زاویه پایانی برای دیدپذیری. در جهت عقربه‌های ساعت از ۰ درجه شمال، بر حسب درجه اندازه‌گیری می‌شود. (در حالت تجمعی یا cumulative پشتیبانی نمی‌شود)

ارتفاع دیده‌بان (ناظر).
افزوده‌شده در نسخه 3.12.

زاویه فراز بالا (high pitch) برای دیدپذیری. از سطح افقی صفر به سمت بالا، بر حسب درجه اندازه‌گیری می‌شود. مقادیر ورودی بالاتر از زاویه بالا به‌عنوان خارج از محدوده علامت‌گذاری می‌شوند. باید بزرگ‌تر از '--low-pitch' باشد. (در حالت cumulative پشتیبانی نمی‌شود)

مقدار پیکسلی که باید برای نواحی نامرئی تنظیم شود. (در حالت cumulative پشتیبانی نمی‌شود) پیش‌فرض: 0
افزوده‌شده در نسخه 3.12.

زاویه فراز پایین (low pitch) برای دیدپذیری. از سطح افقی صفر به سمت بالا، بر حسب درجه اندازه‌گیری می‌شود. مقادیر سلول‌های ورودی کمتر از این زاویه به‌گونه‌ای مهار (clamp) می‌شوند که پایین‌تر از محل تقاطع زاویه نباشند. باید کمتر از '--high-pitch' باشد. (در حالت cumulative پشتیبانی نمی‌شود)

حداکثر فاصله از دیده‌بان برای محاسبه دیدپذیری. همچنین برای مهار کردن وسعت رستر خروجی استفاده می‌شود. (در حالت cumulative پشتیبانی نمی‌شود)
افزوده‌شده در نسخه 3.12..sp حداقل فاصله از ناظر برای محاسبه دید. باید کمتر از '--max-distance' باشد (در حالت cumulative پشتیبانی نمی‌شود)
مشخص می‌کند خروجی چه اطلاعاتی را شامل شود.
  • normal (پیش‌فرض) یک رستر از نوع Byte برمی‌گرداند که شامل مکان‌های مرئی است.
  • DEM و ground رستری از نوع Float64 شامل حداقل ارتفاع لازم برای هدف برمی‌گردانند تا هدف به ترتیب از سطح DEM یا سطح زمین مرئی باشد. بدین معنا که اگر حداقل ارتفاع هدف برای مرئی بودن در یک نقطه برابر با h و مقدار رستر ورودی در آن نقطه برابر با E باشد، برای DEM مقدار خروجی E + h خواهد بود. برای ground مقدار خروجی h خواهد بود. گزینه‌های --target-height، --invisible-value و --visible-value نادیده گرفته خواهند شد.
  • cumulative یک رستر هشت‌بیتی هم‌اندازه با رستر ورودی ایجاد می‌کند که در آن هر سلول نشان‌دهنده قابلیت مشاهده نسبی از شبکه‌ای از نقاط ناظر است. گزینه --observer-spacing را ببینید.
تعداد کارهایی که باید به‌طور هم‌زمان اجرا شوند (تنها در حالت cumulative پشتیبانی می‌شود). پیش‌فرض: 3
فاصله سلولی بین ناظران (تنها در حالت cumulative پشتیبانی می‌شود). پیش‌فرض: 10
مقدار پیکسلی برای سلول‌هایی که خارج از محدوده مشخص‌شده توسط موقعیت ناظر و حداکثر فاصله قرار می‌گیرند (در حالت cumulative پشتیبانی نمی‌شود). پیش‌فرض: 0
مقداری که باید برای سلول‌های بدون داده در رستر خروجی تنظیم شود.

نکته:

در حال حاضر هیچ پردازش خاصی روی سلول‌های ورودی دارای مقدار nodata انجام نمی‌شود (که ممکن است به نتایج نادرست منجر شود).
موقعیت X,Y یا X,Y,H (ارتفاع) ناظر (در واحدهای SRS برای X و Y، و در واحد ارتفاع DEM برای H). اگر مختصات خارج از رستر باشد، فرض می‌شود تمام فضای بین ناظر و رستر مانع دید رستر نمی‌شود (در حالت cumulative پشتیبانی نمی‌شود). اگر H مشخص نشده باشد، پیش‌فرض آن 2 است.
در نسخه 3.12 اضافه شد.

زاویه شروع برای دید. در جهت عقربه‌های ساعت از 0 شمال و به درجه اندازه‌گیری می‌شود. (در حالت cumulative پشتیبانی نمی‌شود)

ارتفاع هدف بالاتر از سطح DEM در واحد ارتفاع DEM. پیش‌فرض: 0
مقدار پیکسلی برای نواحی مرئی (در حالت cumulative پشتیبانی نمی‌شود). پیش‌فرض: 255

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

نام فایل رستری حاوی انحراف معیارهای مقادیر رستر ورودی. این رستر همیشه از باند 1 گرفته می‌شود و اندازه آن باید با رستر ورودی مطابقت داشته باشد.
مقدار پیکسلی برای نواحی مرئی (در حالت cumulative پشتیبانی نمی‌شود). پیش‌فرض: 255
الحاق رستر ورودی به‌عنوان یک زیرمجموعه‌داده (subdataset) جدید به یک فایل خروجی موجود. تنها با درایورهایی کار می‌کند که از افزودن زیرمجموعه‌داده‌ها پشتیبانی می‌کنند؛ مانند GTiff -- GeoTIFF File Format و GPKG -- GeoPackage raster. همچنین در صورتی که مجموعه‌داده خروجی هنوز وجود نداشته باشد، آن را ایجاد می‌کند.
بسیاری از قالب‌ها یک یا چند گزینه اختیاری ساخت دارند که می‌توان برای کنترل جزئیات فایل ایجادشده از آن‌ها استفاده کرد. برای مثال، درایور GeoTIFF از گزینه‌های ساختی برای کنترل فشرده‌سازی و کاشی‌بندی شدن فایل (tiled) پشتیبانی می‌کند.

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

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

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

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

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

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

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

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

تصویر حاصل از ترکیب دو تحلیل حوضه دید (viewshed)؛ پیکسل‌های زرد محدوده‌ای را نشان می‌دهند که از هر دو مکان دیده‌بانی (نقاط سبز) قابل مشاهده است، در حالی که ناحیه سبز کوچک تنها از یک مکان قابل دیدن است.

[تصویر]

ایجاد یک رستر حوضه دید با شعاع ۵۰۰ برای شخصی که در موقعیت (-10147017, 5108065) ایستاده است.

gdal raster viewshed --max-distance=500 --pos=-10147017,5108065 source.tif destination.tif
Even Rouault <even.rouault@spatialys.com>

1998-2026

August 18, 2026