dem_viewshed — DEM visibility op

• Data kinds: depth → image2d

• Call: import fullseye as fs; fs.ledger.dem_viewshed(dem, cell_size, observer_rc, observer_height_m=1.7, target_height_m=0.0, max_distance_m=None) (implementation को सीधे call करना हो तो import demops; demops.dem_viewshed(dem, cell_size, observer_rc, observer_height_m=1.7, target_height_m=0.0, max_distance_m=None), registry से लेना हो तो opsdem.get("dem_viewshed"))

उपयोग

1 point से दिखाई देने वाला क्षेत्र (1 = दिखता है)। तय करता है कि line of sight terrain से रुकती है या नहीं।

observer_rc (row, col) है। observer स्वयं हमेशा दिखाई देता है।

प्रक्रिया: आँख की ऊँचाई eye = z[observer] + observer_height_m। हर cell तक की line of sight को ceil(hypot(H, W)) बराबर भागों में बाँटा जाता है, और यदि किसी मध्यवर्ती cell पर terrain elevation angle (z_mid - eye) / d_mid target elevation angle (z + target_height_m - eye) / d से अधिक है, तो cell ओझल (occluded) है (0)। मध्यवर्ती points निकटतम cell पर round किए जाते हैं, इसलिए तिरछी lines of sight में grid error शामिल होती है। पृथ्वी की curvature और वायुमंडलीय refraction शामिल नहीं हैं (कुछ km से आगे, अलग से सुधारें)।

• dem: (H, W) [m], 3x3 या बड़ा, sentinel मान अस्वीकार (dem_slope के समान contract)। nan cells तुलनाओं को false कर देते हैं, इसलिए वे न ओझल करते हैं न ओझल होते हैं और 1 पर ही रहते हैं।

• cell_size: [m], धनात्मक। दूरी परीक्षणों के लिए उपयोग होता है।

• observer_rc: grid के भीतर integer (row, col)। बाहर होने या जोड़ा न होने पर ValueError।

• observer_height_m / target_height_m: ज़मीन से ऊँचाई [m]। डिफ़ॉल्ट आँख की ऊँचाई 1.7 m और ज़मीन की सतह 0 m हैं। steel tower से viewshed के लिए observer_height_m बढ़ाएँ।

• max_distance_m: इससे अधिक दूर के cells 0 हैं (छोड़ने पर असीमित)।

• Returns: 1 / 0 का (H, W) float64। observer हमेशा 1 है।

• लागत: पूरा grid × ceil(hypot(H, W)) vector operations।

dem_horizon_angle / dem_sky_view_factor इसके विपरीत बताते हैं कि "हर cell से कितना आकाश दिखाई देता है"।

उपयोग की विस्तृत guide

• dem_terrain_analysis family guide

संदर्भ (sample data, साहित्य)

• Sample data catalog (DL URL / license) — 2-D के लिए skimage.data (BSD/public) + synthetic, 3-D के लिए real data sources (Stanford/PDS आदि) के DL URL।

• Operators का स्रोत और संदर्भ — इस op family के मूल research/methods के स्रोत।

• Algorithm का मानक स्रोत (लेखक, वर्ष) और उपयोग ऊपर की family usage guide में दिए गए हैं।

चलाए जा सकने वाले उदाहरण (verified samples जो सच में यह op call करते हैं)

• dem_terrain_analysis_tour — py -3.11 examples/dem_terrain_analysis_tour.py

• poc_stockpile_volume — py -3.11 examples/poc_stockpile_volume.py

वे अगले ops जिनसे type जुड़ता है (image2d को input के रूप में लेते हैं)

—

इसी category के (visibility)

dem_horizon_angle · dem_sky_view_factor


*Provenance: demops.py — DEM operator registry. यह per-op note tools/opdocs.py md से अपने-आप generate होता है (हाथ से edit न करें)।*

© 2026 Kazufumi Furuse — Fullseye operator documentation. Licensed under Apache-2.0.