dem_ecef_to_geodetic — DEM geodesy op

• 데이터 종류: points → points

• 호출: import fullseye as fs; fs.ledger.dem_ecef_to_geodetic(xyz)(구현을 직접 호출하려면 import demops; demops.dem_ecef_to_geodetic(xyz), 원장에서 가져오려면 opsdem.get("dem_ecef_to_geodetic"))

사용법

ECEF → 측지 좌표. 반환은 (..., 3)의 (위도[도], 경도[도], 높이[m]).

Bowring (1976)의 닫힌 식에 가까운 해법. 왕복(측지→ECEF→측지)의 오차는 어디를 표본으로 했느냐에 따라 한 자릿수 이상 움직이므로, 범위를 붙여 쓴다(2026-09-08 재측정. 이전에는 "위도, 경도 1e-12도 미만, 높이 1e-7 m 미만"이라고 썼지만, ★이것은 위도 ±85도, 높이 -500~9000 m의 4000점에서 이미 최대 6.4e-12도 / 8.5e-07 m로 넘어 있었다 —— 중앙값 2.6e-13도 / 3.3e-08 m와 혼동하고 있었다):

• 위도 ±85도, 높이 -500~9000 m … 위도 중앙 2.6e-13 / 최대 6.4e-12도, 높이 중앙 3.3e-08 / 최대 8.5e-07 m

• 위도 ±89.9도, 높이 -11 km~40 km … 위도 중앙 2.9e-12 / 최대 1.3e-10도, 높이 중앙 3.5e-07 / 최대 1.7e-05 m(극으로 가까이 가면 20배 나빠진다)

경도는 어느 쪽이든 최대 2.8e-14도. 모두 지상에서는 µm 이하로, 실용상은 "오차의 바닥"으로 다뤄도 되지만, 중앙값을 최댓값으로 인용하지 말 것.

지심 구 좌표만 원한다면, r = |xyz|와 geocentric_lat = asin(z/r)로 충분하다 —— 다만 그것은 측지 위도가 아니다 (둘은 최대 0.19도, 거리로 약 21 km 어긋난다). 이 op가 반환하는 것은지도나 GPS와 같은 측지 위도 쪽.

★지구 중심 부근에서는 fail-closed(실패 시 거부)로 거부한다(2026-09-08, poc_geodetic_height_frames가 밟았다). 타원체의 축폐선(evolute) (a·p)^(2/3) + (b·|z|)^(2/3) < (a²-b²)^(2/3)의 안쪽에서는, 타원체면에서세운 법선이 1개로 정해지지 않아, 측지 위도가 애초에 유일하지 않다. 그때까지는여기서 조용히 lat = 180도를 반환하고 있었다 —— 위도로서 존재하지 않는 값이며, 게다가 자신의 역함수 dem_geodetic_to_ecef가 "lat_deg must be within [-90, 90]"로 거부하는 값이었다. 영역은 적도면에서 축으로부터 e²a = 42697.7 m, 극축 위에서 (a²-b²)/b = 42841.3 m 까지(실측: 42600 m에서 180도, 42700 m에서 0도 —— 닫힌 식의 경계와 정확히 일치).

자세한 사용 가이드

• dem_terrain_analysis 패밀리 가이드

참고(샘플 데이터·문헌)

• 샘플 데이터 카탈로그(DL URL / 라이선스) —— 2-D 는 skimage.data(BSD/public)+ 합성, 3-D 는 실데이터 소스(Stanford/PDS 등)의 DL URL.

• 연산자의 내력·참고문헌 —— 이 연산자 족의 바탕이 된 연구/기법의 출처.

• 알고리즘의 정전(저자·연도)과 용도는 위의 패밀리 사용 가이드에 적혀 있습니다.

실행 가능한 예제(이 연산자를 실제로 호출하는 검증된 샘플)

• dem_geodesy_tour — py -3.11 examples/dem_geodesy_tour.py

• poc_geodetic_benchmarks_real — py -3.11 examples/poc_geodetic_benchmarks_real.py

• poc_geodetic_height_frames — py -3.11 examples/poc_geodetic_height_frames.py

타입이 이어지는 다음 연산자(points 를 입력으로 받는 것)

dem_geodetic_from_enu

같은 카테고리(geodesy)

dem_geodetic_to_ecef · dem_geocentric_grid · dem_earth_curvature_drop · dem_cell_size_webmercator · dem_geodetic_slope · dem_geoid_height · dem_height_frame_convert · dem_height_frame_residual


*Provenance: demops.py — DEM 연산자 레지스트리. 이 op 노트는 tools/opdocs.py md 가 자동 생성합니다(직접 편집하지 마세요).*

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