GDAL_VIEWSHED(1) GDAL GDAL_VIEWSHED(1)

gdal_viewshed - محاسبه رستر میدان دید (viewshed) از یک DEM رستری ورودی برای یک نقطه مشخص‌شده توسط کاربر

Usage: gdal_viewshed [--help] [--long-usage] [--help-general]
                     [-of <output_format>] [-ox <value>] [-oy <value>]
                     [-oz <value>] [-vv <value>] [-iv <value>] [-ov <value>]
                     [-co <NAME>=<VALUE>]... [-a_nodata <value>] [-tz <value>]
                     [-md <value>] [-j <value>] [-cc <value>] [-b <value>]
                     [-om NORMAL|DEM|GROUND|ACCUM] [-os <value>] [-sd <value>]
                     [--quiet]
                     <src_filename> <dst_filename>

به طور پیش‌فرض دستور gdal_viewshed یک رستر دید دوتایی (باینری) از یک باند از مدل رقومی ارتفاع (DEM) رستری ورودی تولید می‌کند. رستر خروجی از نوع Byte خواهد بود. با استفاده از گزینه -mode همچنین می‌تواند یک رستر حداقل ارتفاع قابل دید از نوع Float64 را برگرداند.

نکته:

الگوریتم پیاده‌سازی‌شده در حال حاضر تنها در صورتی نتایج معنادار ارائه می‌دهد که زمین‌مرجع‌سازی (georeferencing) در یک سیستم مرجع مختصات تصویری (projected coordinate reference system) باشد.

نکته:

معادل در رابط خط فرمان جدید "gdal":

gdal raster viewshed را ببینید.

نمایش این پیام راهنما و خروج
--help-general
نمایش یک پیام کوتاه درباره نحوه استفاده از گزینه‌های عمومی خط فرمان GDAL و خروج.
سرکوب پیام‌های پیشرفت و سایر خروجی‌های غیر از خطا.
بسیاری از فرمت‌ها یک یا چند گزینه ساخت اختیاری دارند که می‌توان از آن‌ها برای کنترل جزئیات فایل ایجادشده استفاده کرد. برای نمونه، درایور GeoTIFF از گزینه‌های ساختی برای کنترل فشرده‌سازی و تعیین کاشی‌بندی (tiled) بودن فایل پشتیبانی می‌کند.

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

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

نکته:

در حال حاضر، هیچ پردازش ویژه‌ای روی سلول‌های ورودی دارای مقدار nodata انجام نمی‌شود (که ممکن است منجر به نتایج اشتباه گردد).
موقعیت X دیده‌بان (به واحدهای SRS). اگر مختصات خارج از رستر باشد، فرض می‌شود تمام فضای بین دیده‌بان و رستر مانع دید رستر نمی‌شود. (در حالت تجمعی پشتیبانی نمی‌شود.)
موقعیت Y دیده‌بان (به واحدهای SRS). اگر مختصات خارج از رستر باشد، فرض می‌شود تمام فضای بین دیده‌بان و رستر مانع دید رستر نمی‌شود. (در حالت تجمعی پشتیبانی نمی‌شود.)
ارتفاع دیده‌بان بالای سطح DEM بر حسب واحد ارتفاعی DEM. پیش‌فرض: 2
ارتفاع هدف بالای سطح DEM بر حسب واحد ارتفاعی DEM. پیش‌فرض: 0
حداکثر فاصله از دیده‌بان برای محاسبه میدان دید. همچنین برای محدود کردن وسعت (extent) رستر خروجی به کار می‌رود. (در حالت تجمعی پشتیبانی نمی‌شود)
ضریب برای در نظر گرفتن اثر انحنا و شکست نور. هنگام محاسبه دید بین دو نقطه (مانند خط دید یا میدان دید)، شدت این اثر با شرایط جوی متغیر است و به طول موج بستگی دارد.

برنامه‌های مختلف برای محاسبه میدان دید از نام‌گذاری‌های گوناگون و قابل تبدیل به یکدیگر برای توصیف این پدیده استفاده می‌کنند: ضریب شکست (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 استفاده می‌کند، برای CRS زمین برابر 0.85714 (~= 1-1/7) است. از نسخه GDAL 3.6، برای CRSهای غیر از زمین (آن‌هایی که نیم‌قطر بزرگشان بیش از ۵٪ با WGS 84 تفاوت دارد)، مقدار پیش‌فرض CurvCoeff برابر 1.0 است تا حالت بدون شکست را در نظر بگیرد.

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


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

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

مورد کاربرد ضریب شکست ضریب انحنا ضریب قطر کره
بدون شکست 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
مقدار پیکسل برای نواحی غیرقابل دید. (در حالت تجمعی پشتیبانی نمی‌شود) پیش‌فرض: 0
مقدار پیکسل برای سلول‌هایی که خارج از محدوده مشخص‌شده توسط موقعیت دیده‌بان و حداکثر فاصله قرار می‌گیرند. (در حالت تجمعی پشتیبانی نمی‌شود) پیش‌فرض: 0
مقدار پیکسل برای نواحی قابل دید. (در حالت تجمعی پشتیبانی نمی‌شود) پیش‌فرض: 255
تعیین می‌کند خروجی حاوی چه اطلاعاتی باشد.

مقادیر ممکن: NORMAL، DEM، GROUND، ACCUM

حالت NORMAL یک رستر از نوع Byte حاوی مکان‌های قابل مشاهده برمی‌گرداند.

حالت‌های DEM و GROUND یک رستر از نوع Float64 حاوی حداقل ارتفاع لازم برای هدف جهت قابل مشاهده بودن به ترتیب از سطح DEM یا سطح زمین برمی‌گردانند. به عبارت دیگر، اگر حداقل ارتفاع هدف برای دیده شدن در یک نقطه h و مقدار رستر ورودی در آن نقطه E باشد، برای DEM، مقدار خروجی E + h خواهد بود. برای ground، مقدار خروجی h خواهد بود. فلگ‌های -tz، -iv و -vv نادیده گرفته خواهند شد.

حالت تجمعی (ACCUM) یک رستر هشت‌بیتی هم‌اندازه با رستر ورودی ایجاد می‌کند که در آن هر سلول نشان‌دهنده قابلیت دید نسبی از شبکه‌ای از نقاط دیده‌بان است. گزینه -os را ببینید.

پیش‌فرض NORMAL

فاصله سلولی بین دیده‌بان‌ها (تنها در حالت تجمعی پشتیبانی می‌شود) پیش‌فرض: 10
تعداد کارهایی که به طور همزمان اجرا می‌شوند. (تنها در حالت تجمعی پشتیبانی می‌شود) پیش‌فرض: 3

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

قابلیت‌های این ابزار از زبان C با تابع GDALViewshedGenerate() قابل دستیابی است.

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

[image]

ایجاد یک رستر میدان دید با شعاع ۵۰۰ برای فردی که در موقعیت (-10147017, 5108065) ایستاده است:

gdal_viewshed -md 500 -ox -10147017 -oy 5108065 source.tif destination.tif

[Wang2000]
Generating Viewsheds without Using Sightlines. Wang, Jianjun, Robinson, Gary J., and White, Kevin. Photogrammetric Engineering and Remote Sensing. p81. https://www.asprs.org/wp-content/uploads/pers/2000journal/january/2000_jan_87-90.pdf

Tamas Szekeres <szekerest@gmail.com>

1998-2026

August 18, 2026