分区分析(spatiography)#
目标#
用 Spatiography 的五个工具做地月空间分区分析:解析尺度、区域分类、边界
几何、共振图集、天图。全部为无状态计算,输入状态、输出几何与场数据。
前置#
装好 e2m2e。分区分析基于解析公式与点质量传播,不需要 SPICE 内核 (
spatiography_dynamical_map的传播在内部独立完成)。
代码#
from e2m2e.api import Facade
facade = Facade()
sp = facade.spatiography
scales = sp.spatiography_scales(elements=["hill_radius_moon_km", "soi_laplace_moon_km"])
print(scales.status, scales.scales)
zones = sp.spatiography_classify(
states=[[80000.0, 0.0, 0.0, 0.0, 0.0, 0.0]],
frame="synodic_barycentric_km",
)
print(zones.zone_ids, [zones.legend[str(z)] for z in zones.zone_ids[0]])
boundaries = sp.spatiography_boundaries(kind="synodic_planar", resolution=360)
print(boundaries.state_frame, len(boundaries.elements), "个边界元素")
atlas = sp.spatiography_resonance_atlas(products=["vzlk_portrait"])
print(atlas.status, sorted(atlas.vzlk))
chart = sp.spatiography_dynamical_map(zone="SC", n_a=2, n_e=2, span_years=1.0)
print(chart.status, chart.span_years, "年", len(chart.fate_legend), "类命运")
输出解读#
spatiography_scales:Hill 半径、Laplace 声速面、Battin 边界等解析尺度 (物理单位 km),同时给出 L1–L5 精确位置、临界 Jacobi 值 C1–C5 与共振 名义中心阶梯(Table 1/2 全表)。elements空表 = 全部。spatiography_classify:逐状态给区域 id(重叠带多值、升序),legend是 id → 名称(terrestrial / cislunar_inner_secular / cislunar_outer_resonant / circumlunar / translunar / heliocentric);diagnostics逐状态给地心距、月心距、Jacobi 常数等诊断量。frame必须声明(物理 km 或无量纲)。spatiography_boundaries:输出可绘制的边界元素(圆、折线、点、根数 平面曲线),state_frame标注数据系——前端只做归一与绘制。spatiography_resonance_atlas:三种产品——Gallardo 共振半宽包络gallardo_widths、拱线驻定 locisecular_loci、vZLK 相图vzlk_portrait;vzlk携带临界倾角与 vZLK 时间尺度。spatiography_dynamical_map:按六域(SC/CR/CG/IT/OT/TF)在 (a/a☾, e) 网格上传播 EM/EMS 点质量模型,输出 MEGNO Ȳ 场与八类命运场。分辨率与 积分窗按需收缩——本例取最小网格演示;全量制图走scripts/。
延伸#
CLI:
e2m2e spatiography-classify --help等(下划线转连字符);MCP:五个
spatiography_*工具。