surface op• 데이터 종류: depth → image2d
• 호출: import fullseye as fs; fs.ledger.dem_aspect(dem, cell_size, method='horn', flat_tol=1e-12)(구현을 직접 호출하려면 import demops; demops.dem_aspect(dem, cell_size, method='horn', flat_tol=1e-12), 원장에서 가져오려면 opsdem.get("dem_aspect"))
사면 방위 [도]. 북쪽 0도, 동쪽 방향으로 회전. 평탄한 셀은 ASPECT_FLAT.
평탄을 0으로 반환하지 않는 것은, 0이 "북향 사면"을 의미해 버리기 때문 —— 구별할 수 없는 값을 반환하는 것은, 예외를 내지 않고 틀리는 전형.
절차: dem_slope와 같은 3x3 기울기 (dz/dx, dz/dy)를 취하고, 내리막 기울기의방향 atan2(-dz/dx, -dz/dy)를 도로 바꿔 [0, 360)로 접는다. 행 0이 북, 열이 늘어나는 방향이 동이라는 전제로, 북 0 / 동 90 / 남 180 / 서 270. 행 0이 남쪽인 격자(상하 반전된 배열)를 넘기면 남북이 뒤바뀌고, 예외는 나지 않는다.
• dem, cell_size, method: dem_slope와 같은 계약(3x3 이상, nan 으로 결측, 센티넬 값은 거부, cell_size는 양의 [m]).
• flat_tol: 기울기 크기 hypot(dz/dx, dz/dy) [m/m]가 이 값 이하이면 평탄으로간주하여 ASPECT_FLAT(= -1.0)를 반환한다. 기본값 1e-12는 "수치적으로 엄밀히 평탄"뿐. 정수 표고의 평지에서도 미소 기울기로 방위가 붙는 경우가 있으므로, 의미 있는 임계값(예 1e-3)을 명시하는 것이 좋다.
• 반환값: (H, W) float64. [0, 360) 또는 -1.0. nan 셀 주위는 nan.
• 방위의 히스토그램이나 평균을 낼 때는 -1을 먼저 제외한다(out >= 0).
• dem_terrain_analysis 패밀리 가이드
• 샘플 데이터 카탈로그(DL URL / 라이선스) —— 2-D 는 skimage.data(BSD/public)+ 합성, 3-D 는 실데이터 소스(Stanford/PDS 등)의 DL URL.
• 연산자의 내력·참고문헌 —— 이 연산자 족의 바탕이 된 연구/기법의 출처.
• 알고리즘의 정전(저자·연도)과 용도는 위의 패밀리 사용 가이드에 적혀 있습니다.
• poc_dem_terrain — py -3.11 examples/poc_dem_terrain.py
• poc_geodetic_height_frames — py -3.11 examples/poc_geodetic_height_frames.py
image2d 를 입력으로 받는 것)—
surface)dem_slope · dem_curvature · dem_roughness · dem_tpi
*Provenance: demops.py — DEM 연산자 레지스트리. 이 op 노트는 tools/opdocs.py md 가 자동 생성합니다(직접 편집하지 마세요).*
© 2026 Kazufumi Furuse — Fullseye operator documentation. Licensed under Apache-2.0.