Changelog#

A terse, version-by-version record of every notable change. For the narrative behind each release — highlights, migration guidance, and known limitations — see the Release Notes.

This project follows Keep a Changelog conventions and semantic versioning. Every entry carries a colour-coded badge so the log can be scanned at a glance:

  • Feature New — a new capability, module, or application

  • Enhancement Perf — improved behaviour or performance

  • Fix — a bug fix

  • API Change Deprecated — a change to the public API surface

  • Breaking Security — read carefully before upgrading

  • Docs Build Tests — documentation and project tooling

The full log is split by major-version series so each page stays a reasonable length. Entries accumulate during development as small files under docs/changelog.d/ and are assembled into the series page for each release by docs/scripts/changelog_release.py — see docs/changelog.d/README.rst for the contributor workflow and the “Changelog workflow” section of Documentation Build for the release-time steps.

Latest release#

2.6.4 — 2026-10-01 — a new-surfaces release. pyCSAMT Format Studio (pycsamt.app.converter) is a new standalone, freezable app for file-format conversion, backed by six new pycsamt format sub-commands, and pycsamt airborne adds info/diagnose for ZTEM/MobileMT/AFMAG datasets. The desktop suite gains five rebuilt studios (Inversion, Interpretation, QC, Airborne, TDEM), an Edit menu with undo history and station/point/frequency editors, and a PCSF 3-D to Map View hand-off, and now ships as Windows and Linux installers. Agent Master carries conversation context, hands work to and from the desktop, and has an answer benchmark. More than twenty real bugs are fixed, including two EDI parsing bugs and silently broken convert/transform j/invert results CLI paths. Full 2.6.4 entry · Release notes.

2.6.3 — 2026-09-14 — a maintenance and API-hardening release. Agent workflow validation now accepts all supported inversion and processing plans; static-shift comparison figures no longer go blank for stations whose frequency count differs from the first station loaded; QC and reporting drop two sources of noisy/misleading warnings; SEG/Jones/EDI parsing handles malformed paths, rotation fallbacks, and NumPy-backed metadata safely; impedance inversion exposes one consistent pycsamt.exceptions.ZError boundary; Zonge in-memory construction and coordinate conversion are repaired; and API/Zonge utilities gain pandas 3 support plus empty-input and narrow-wrap safeguards. Regression coverage was expanded across agents, airborne adapters, API, EMTF, emtools, I/O, Jones/SEG, metadata, inversion models, Z, and Zonge — 21 agent modules moved from below 80% to 80–100% coverage, taking package-wide agent coverage to 92%. Full 2.6.3 entry · Release notes.

2.6.2 — 2026-09-11 — an pycsamt.ai.processing release. Four new learned tools: gap filling (EMImputer, masked reconstruction of genuinely missing cells), uncertainty calibration (UncertaintyCalibrator, learned per-cell error-floor re-estimation), distortion-regime triage (DistortionTypeClassifier, routes each station to ss or gb), and raw time-series denoising (TimeSeriesDenoiser, the MMF-SVM-K-SVD method of Gui et al. (2024), working TSData-in / TSData-out one stage upstream of the impedance tensor). Plus the subpackage’s first full user guide (nine pages, all eight tools) and four bug fixes in already-released code surfaced while building it, including a silent feature-corruption bug in prepare_z_features affecting most stations in any EMDenoiser / AnomalyDetector survey. Full 2.6.2 entry · Release notes.

2.6.1 — 2026-09-10 — a magnetotelluric-visualisation release. New pycsamt.emtools.PlotResPhasePseudoSection (MTPy-style apparent resistivity above phase, one column per component, stacked site groups, a top / bottom / none station axis, share_period for mixed AMT / LMT stacks); pycsamt.emtools.plot_phase_tensor_map_grid() (a 1–6 panel phase-tensor + Parkinson-arrow map, one panel per frequency) with a new pt_skew / pt_skew_abs colour system in pycsamt.api; a reworked pycsamt.models.modem.plot.PlotDepthMap (station-cropped, hull-masked, mesh / gouraud / contourf / image render, a layer-conductance mode, scale bar / north arrow / overlays); and a bundled, fully cited Broken Hill 3-D MT survey with an end-to-end tutorial. Fixes: a placeholder DATAID no longer collapses a folder of EDIs onto one site; InversionResult no longer mistakes a stem like BH_31 for iteration 31; two emtools docstrings that broke the Sphinx build are repaired. Full 2.6.1 entry · Release notes.

2.5.2 — 2026-09-01 — a patch release. Converting a real, independent third-party ModEM 3-D inversion to PCSF and exercising every Map View mode against it exposed five pre-existing defects in the native ModEM 3-D import path: above-topography air fill drove the automatic colour scale; the positive-down .dat Z column was read as an elevation, draping topography upside-down; depth slices were referenced to the model top, not the ground surface; the block / iso-surface volume came back empty when real multi-line station geometry produced duplicate along-strike coordinates; and profile lines zig-zagged when InversionResult picked a 3-decimal ModEM -R coordinate echo over the real input. modem3d_to_pcsf gains air_threshold_ohm_m and station_z_convention (with pycsamt format convert --air-threshold / --station-z) plus a quantized-coordinate warning; Map View gains crange_percentile / rho_display_max and their inspector controls, re-references grid3d curtains to each station’s own surface, trims the deep boundary-condition padding, and de-duplicates the block/iso interpolation axes; InversionResult now prefers a full-precision input .dat over a rewrite echo. Full 2.5.2 entry · Release notes.

2.5.0 — 2026-08-28 — a major interoperability release centered on two complementary common-format families: PCSF/PCSM for subsurface models and inversion results, and PCBH for spatial multi-borehole observations and geology. See the full 2.5.0 entry and release notes.