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.
By series