Welcome to Sonar Catalog
Sonar Catalog discovers, catalogs, and deduplicates sonar files scattered across distributed NFS storage. It resolves mount topologies to establish canonical file identities, extracts navigation tracks from binary sonar formats, and serves everything through a searchable web interface with a CesiumJS 3D globe.
What It Does
Section titled “What It Does”- Content-based deduplication — BLAKE3 hashing identifies identical files regardless of where they’re mounted
- NFS topology resolution — Translates local mount paths to canonical
server:/export/pathidentities - Automatic host discovery — Finds NFS servers via autofs, showmount, ARP tables, and subnet scans
- Navigation extraction — Parses lat/lon tracks from JSF, XTF, and companion sidecar files
- Full-text search — FTS5-powered filename search with server and format filters
- 3D visualization — CesiumJS globe shows file locations and survey tracks
- Plugin architecture — Extend format detection, nav extraction, and export via Python entry points
Quick Example
Section titled “Quick Example”# Initialize the databasesonar-catalog init
# Crawl a mounted NFS sharesonar-catalog crawl /mnt/sonar-nas-01
# Or load demo data to exploresonar-catalog demo --num-files 100
# Start the web UIsonar-catalog web --port 8080Zero Dependencies
Section titled “Zero Dependencies”The core runs on Python 3.10+ standard library only. SQLite is the default database. Optional extras add BLAKE3 hashing, PostgreSQL, Flask web UI, and python-magic MIME detection.
How It Works
Section titled “How It Works”- Discover — Find NFS servers on the network via autofs maps, showmount, ARP tables
- Crawl — Walk directory trees, applying size and extension filters
- Hash — Two-pass BLAKE3: partial hash (4MB) to fingerprint, full hash only for new files
- Resolve — Cross-reference
/proc/mounts, fstab, and autofs to find the canonical NFS origin - Extract — Parse binary nav packets (JSF/XTF) or read sidecar CSV/JSON files
- Store — Batch insert into SQLite/PostgreSQL with bounding box indexes
- Search — Full-text search, duplicate detection, and geographic queries via web UI
Next Steps
Section titled “Next Steps”- Quickstart — Get running in 2 minutes
- Architecture — Understand the system design
- CLI Reference — All 18 commands
- Plugin System — Extend with custom formats