typed op• 数据种类:points → points
• 调用:fullseye.apply(img, "tb_dem_ecef_to_geodetic", a=0.5, b=0.5)(2-D 的模型是一张图 + 两个标量旋钮 a,b∈[0,1])
*无图: 类型可达,但通用合成输入不在此算子的定义域内 —— ECEF は地球表面座標(中心から ~6.4M m)を要るが、画像由来の合成点は原点付近で楕円体の evolute 内に落ち必ず拒否される。用法见下方可运行示例。*
ECEF → 大地坐标。返回 (..., 3) 的 (纬度[度], 经度[度], 高度[m])。
接近 Bowring (1976) 闭式的解法。往返(测地→ECEF→测地)的误差 随采样位置不同会变动 1 个数量级以上,因此附带范围给出(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 度 —— 与闭式边界恰好一致)。
桥接到 2-D 进化注册表的 dem op dem_ecef_to_geodetic。实现相同,只是把调用约定改成了 op(v, a, b)。该 op 没有可调参数,a 和 b 都不使用。
• 示例数据目录(下载 URL / 许可证) —— 2-D 用 skimage.data(BSD/公有领域)加合成图,3-D 给出真实数据源(Stanford/PDS 等)的下载 URL。
• 算子来历与参考文献 —— 该算子族所依据的研究/方法出处。
下面的示例调用的是底层账本算子 dem_ecef_to_geodetic。此桥接算子只是把同一实现适配为 fn(v, a, b) 约定,行为完全相同(只是调用形式不同)。
• 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 作为输入)identity · tb_points_to_voxel · tb_estimate_point_normals · tb_iss_keypoints · tb_project_points · tb_render_point_depth · tb_statistical_outlier_removal · tb_radius_outlier_removal
typed)tb_points_to_voxel · tb_estimate_point_normals · tb_iss_keypoints · tb_project_points · tb_render_point_depth · tb_statistical_outlier_removal · tb_radius_outlier_removal · tb_voxel_grid_downsample
*Provenance: ops.py — 2D 算子登记表。本条目由 tools/opdocs.py md 自动生成(请勿手工编辑)。*
© 2026 Kazufumi Furuse — Fullseye operator documentation. Licensed under Apache-2.0.