Omnigraph
그래프 엔진으로 컨텍스트를 조립하고, 객체 저장소 기반에서 에이전트가 코드처럼 그래프 데이터를 분기·타입·검토·병합·감사·거버넌스합니다
메이커가 쓴 소개는 위의 한 줄이 전부입니다. 더 자세한 내용은 저장소 README에서 읽을 수 있습니다. 저장소 README ↗
README 전체를 불러오는 중입니다.
README 전문 보기 ↗Browse, get, and manage SPICE kernels and metakernels across NASA and ESA mission archives.
⚠️ CRITICAL: Update to v0.10.0 or later. Versions before 0.10.0 contained a fuzzy filename matching bug that could silently create symlinks between completely different SPICE kernel files, causing silent scientific data corruption — SPICE loads valid but wrong data with no errors. All users who used
spice-kernel-db getorspice-kernel-db updateare affected, regardless of the dedup setting — the symlink creation code did not honor the per-mission dedup flag (also fixed in 0.10.0). Users who only usedscanandresolveare not affected. After updating, remove all symlinks in your kernel directories and re-runspice-kernel-db update. See CHANGELOG.md for recovery steps.
Mission setup: Configure missions from NASA NAIF or ESA SPICE servers with an interactive dialog.
Browse & get: Browse available metakernels for a mission, then get one — the tool downloads all missing kernels automatically and makes the metakernel ready to use locally.
Metakernel rewriting: Rewrites .tm files for local use with minimal edits — only PATH_VALUES is changed, everything else stays identical to the original. A symlink tree bridges the gap between where the metakernel expects files and where they actually live on disk.
Deduplication (optional): Identifies identical kernel files across missions using SHA-256 hashing and replaces duplicates with symlinks. Per-mission opt-in — you can deduplicate some missions while keeping others untouched.
Full documentation is at michaelaye.github.io/spice-kernel-db and built with Quarto.
pip install spice-kernel-db
Or with conda:
conda install -c michaelaye spice-kernel-db
Or from source:
git clone https://github.com/michaelaye/spice-kernel-db
cd spice-kernel-db
pip install -e ".[dev]"
spice-kernel-db mission add
Interactive dialog: choose a server (NASA NAIF / ESA SPICE) → pick a mission from the list → configure deduplication preference.
spice-kernel-db browse JUICE
Shows all .tm files in the mission's remote mk/ directory, grouped by base name with version counts.
spice-kernel-db get juice_ops.tm
Downloads the metakernel, checks which kernels you already have, downloads the missing ones in parallel, and creates symlinks so the .tm file works immediately.
import spiceypy as spice
from spice_kernel_db import KernelDB
db = KernelDB()
mks = db.list_metakernels(mission="JUICE")
spice.furnsh(mks[0]["mk_path"])
from spice_kernel_db import KernelDB
db = KernelDB()
# Browse remote metakernels
db.browse_remote_metakernels(
"https://naif.jpl.nasa.gov/pub/naif/JUICE/kernels/mk/",
mission="JUICE",
)
# Get a metakernel (downloads missing kernels automatically)
db.get_metakernel(
"https://naif.jpl.nasa.gov/pub/naif/JUICE/kernels/mk/juice_ops.tm",
mission="JUICE",
)
# Optionally deduplicate across missions
db.deduplicate_with_symlinks(dry_run=True) # preview
db.deduplicate_with_symlinks(dry_run=False) # execute
| Server | URL |
|---|---|
| NASA NAIF | https://naif.jpl.nasa.gov/pub/naif/ |
| ESA SPICE | https://spiftp.esac.esa.int/data/SPICE/ |
Both use the same <server>/<MISSION>/kernels/mk/ directory structure.
MIT