dem_aspect — DEM surface op

• Data kinds: depth → image2d

• Call: import fullseye as fs; fs.ledger.dem_aspect(dem, cell_size, method='horn', flat_tol=1e-12) (implementation को सीधे call करना हो तो import demops; demops.dem_aspect(dem, cell_size, method='horn', flat_tol=1e-12), registry से लेना हो तो opsdem.get("dem_aspect"))

उपयोग

slope aspect [degree]। उत्तर 0 degree, पूर्व की ओर बढ़ता। समतल cell को ASPECT_FLAT मिलता है।

समतल cells को 0 के रूप में नहीं लौटाया जाता क्योंकि 0 का अर्थ "उत्तर की ओर मुख वाली slope" होगा —— अलग न पहचाना जा सकने वाला मान लौटाना बिना error उठाए गलत होने का पाठ्यपुस्तकीय उदाहरण है।

प्रक्रिया: dem_slope के समान 3x3 gradient (dz/dx, dz/dy) लें, ढलान की ओर के gradient की दिशा atan2(-dz/dx, -dz/dy) को degrees में बदलें और [0, 360) में wrap करें। मान लिया जाता है कि row 0 उत्तर है और column बढ़ने की दिशा पूर्व है: उत्तर 0 / पूर्व 90 / दक्षिण 180 / पश्चिम 270। ऐसा grid पास करने पर जिसकी row 0 दक्षिण है (ऊर्ध्वाधर रूप से उलटा array) उत्तर और दक्षिण बदल जाते हैं, और कोई exception नहीं उठता।

• dem, cell_size, method: dem_slope के समान contract (3x3 या बड़ा, missing data के लिए nan, sentinel मान अस्वीकार, cell_size धनात्मक [m])।

• flat_tol: यदि gradient magnitude hypot(dz/dx, dz/dy) [m/m] इसके बराबर या कम है, तो cell को समतल माना जाता है और ASPECT_FLAT (= -1.0) लौटाया जाता है। डिफ़ॉल्ट 1e-12 केवल "संख्यात्मक रूप से पूर्णतः समतल" को कवर करता है। integer ऊँचाइयों वाली समतल भूमि को भी सूक्ष्म gradients से aspect मिल सकता है, इसलिए एक सार्थक threshold (उदा. 1e-3) स्पष्ट रूप से बताना उचित है।

• return value: (H, W) float64। [0, 360) या -1.0। nan cells के आसपास nan।

• aspects का histogram या mean लेते समय पहले -1 हटाएँ (out >= 0)।

उपयोग की विस्तृत 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 करते हैं)

• poc_dem_terrain — py -3.11 examples/poc_dem_terrain.py

• poc_geodetic_height_frames — py -3.11 examples/poc_geodetic_height_frames.py

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

—

इसी category के (surface)

dem_slope · dem_curvature · dem_roughness · dem_tpi


*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.