Skip to main content

IsoMap

Isotopic and paleoecological data standardisation middleware.

IsoMap is an open-source desktop application that automates the standardisation, validation, and export of legacy isotopic and paleoecological datasets for submission to centralised repositories (Neotoma, IsoArcH, PANGAEA, NOAA NCEI, LiPD).

📖 User Guide — full walkthrough with screenshots, workflow steps, and troubleshooting. 📋 Changelog — version history and release notes.

Features

IsoMap provides a 6-tab wizard interface backed by 8 processing engines. Implementation status is marked next to each engine — several engines are partial stubs; see CHANGELOG.md for the full list of known limitations.

  • Import Engine ✅: CSV and Excel spreadsheets with automatic encoding detection and type inference.
  • Column Mapping Engine ✅: 6-stage fallback pipeline (exact → preferences → fuzzy → semantic embeddings → Valentine ensemble → distribution profiling) to map source columns to 5 target repository schemas. Valentine is now correctly wired against the ≥1.0 API; the semantic stage requires the optional [ml] extras (SciBERT ONNX, ~400 MB).
  • Chronology Engine ✅: Auto-detects and normalises uncalibrated/calibrated dates to cal_BP with 1950 CE anchor. Note: this is format normalisation only — no radiocarbon calibration (IntCal20 etc.) is performed.
  • Spatial Verification Engine ✅: Cleans coordinates, displays on interactive Leaflet map, exports bounding box. EPSG:4326 only — no UTM/other CRS transformation yet.
  • Validation Engine ✅: Pandera constraint checking with row-level error tracking against schema definitions. Required-field presence is enforced.
  • Export Engine ⚠️ partial: CSV, Excel, GeoJSON, JSON, PANGAEA, NOAA, RO-Crate, LaTeX data paper all produce output. LiPD export is non-conformant (missing required LiPD v1.3 fields; pylipd.load() rejects it). PANGAEA and NOAA exports are template stubs with [INSERT_*] placeholders, not submission-ready files.
  • Provenance Engine ⚠️ partial: ProvenanceTracker class exists and is unit-tested but is not wired into the RPC pipeline — main.py doesn't instantiate it. Produces a JSON audit log, not PROV-O RDF as the original scope doc describes.
  • Automated Data Papers ✅: Jinja2 ESSD-compliant LaTeX manuscript generation.

Technology Stack

Layer Technology
Desktop shell Tauri v2 (Rust)
Frontend React 19, Vite 7, TypeScript, Leaflet
Backend (sidecar) Python 3.12+, Pandas, Pandera, GeoPandas
ML/NLP SciBERT ONNX (Optimum), RapidFuzz, Valentine
Testing Pytest (backend), Playwright (E2E)

Getting Started

Prerequisites

  • Rust 1.70+ — rustup.rs
  • Python 3.12+ — pip install -e ".[dev]"
  • Node.js 20+ with npm

Development

cd ui && npm install        # Frontend dependencies
npm run tauri dev           # Full desktop app with hot-reload
npm run dev                 # Vite frontend only (no Tauri)
cd src-tauri && cargo build # Rust backend only

Testing

pytest tests/               # Python backend (36 tests)
cd ui && npx playwright test # E2E browser tests (6 tests)

Production Build

./scripts/build-sidecar.sh  # PyInstaller standalone binary
cd ui && npm run tauri build # Full desktop app bundle

Bundles output to ui/src-tauri/target/release/bundle/.

Supported Repositories

Schema Repository Fields Required Fields
neotoma_v2 Neotoma 11 SiteName, Latitude, Longitude, TaxonName, Value
isoarch_v1 IsoArcH 10 site_name, latitude, longitude, sample_id, material, d13c
pangaea PANGAEA 20 Event, Latitude, Longitude, Parameter, Value, Unit
noaa NOAA NCEI 24 SiteName, Latitude, Longitude, Proxy, Proxy_Value, Proxy_Unit
lipd LiPD v1.3 24 dataSetName, SiteName, Latitude, Longitude, PaleoData_VariableName, PaleoData_Value, PaleoData_Unit

Add custom schemas in data/schemas/ following the JSON Schema format.

Architecture

React invoke() → Rust Tauri commands → sidecar_rpc() → shell wrapper → Python JSON-RPC

The Rust layer (ui/src-tauri/src/lib.rs) exposes 9 Tauri commands that serialise parameters to JSON-RPC and forward them to the Python sidecar (src/isomap/main.py) via stdin/stdout. The sidecar processes the request and returns a JSON-RPC response.

Key Files

File Purpose
ui/src-tauri/src/lib.rs 9 Tauri commands + sidecar_rpc() JSON-RPC helper
ui/src-tauri/tauri.conf.json App config, window, sidecar external binary
ui/src-tauri/binaries/isomap-sidecar* Platform-specific sidecar wrappers
src/isomap/main.py Python JSON-RPC server (stdin/stdout or CLI mode)
ui/src/api/sidecar.ts Frontend API layer (invoke() calls)
ui/src/App.tsx Main React app with shared wizard state
data/schemas/*.json Repository schema definitions
scripts/build-sidecar.sh PyInstaller sidecar binary builder

License

MIT

Metadata

Release files for isomap-desktop 0.3.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for isomap-desktop 0.3.0
File Size Uploaded Provenance
isomap_desktop-0.3.0.tar.gz 2.7 MB With provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for isomap-desktop 0.3.0
File Interpreter ABI Platform
isomap_desktop-0.3.0-py3-none-any.whl Python 3 none any Details

Total release size: 2.8 MB

Release files / isomap_desktop-0.3.0.tar.gz

Download URL isomap_desktop-0.3.0.tar.gz
Size 2.7 MB
Tags Source
SHA-256 checksum
How to use checksums
e5e383b8d51b87474e93f514ba9fba626fdab645914075e396cbf80a11566b7d
BLAKE2b-256 checksum
How to use checksums
4974566e606fe433f0cf8ecbdce1f06df66ab23a2c4cdc5ce071f46380143cef
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jun 29, 2026.

Transparency log

Release files / isomap_desktop-0.3.0-py3-none-any.whl

Download URL isomap_desktop-0.3.0-py3-none-any.whl
Size 52.4 kB
Tags Python 3
SHA-256 checksum
How to use checksums
f8580cedd73c99bc6e65a9d3523ce7b801701fe5ed91c7025740d4907afa9901
BLAKE2b-256 checksum
How to use checksums
ea48afd27366b0b5b5f42801d458385d0192c6f451eae763f15ab6b59822e7bb
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jun 29, 2026.

Transparency log

Security for isomap-desktop 0.3.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

Full provenance

All 2 files in this release have been uploaded with provenance metadata.

Select from 2 files

Attestation for isomap_desktop-0.3.0.tar.gz

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jun 29, 2026.

Transparency log

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

This release

0.3.0 This release

2 release files Full provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page