Skip to content
#edge computing Open access

pyunwrap

Aug 2026 · Zenodo (CERN European Organization for Nuclear Research)

Abstract

pyunwrap unwraps InSAR phase using a physics-informed U-Net that predicts the integer ambiguity map rather than the unwrapped phase itself. The core identity unwrapped = wrapped + 2π·k : is enforced by construction, so the model is structurally incapable of contradicting the observed wrapped phase. This is the first tagged release: the full pipeline from synthetic data through training, tiled inference, analytics, and reporting is implemented, tested, and documented end to end. Highlights AmbiguityNet : a ResNet-34 U-Net predicting integer phase ambiguity via a straight-through-estimator rounding head, with an auxiliary residue-probability head for uncertainty. Realistic synthetic data : Gaussian bowls, a from-scratch Okada (1985) fault dislocation model, a Mogi (1958) volcanic source, DEM topography, Kolmogorov atmospheric noise, orbital ramps, decorrelation noise, and pseudo-real ALOS-2 rewrapping. Curriculum training with optional SNAPHU pseudo-ground-truth fine-tuning on real data. Production tiled inference with edge-aware, residue-weighted smart merging of the ambiguity map , never the phase directly , plus Monte Carlo Dropout uncertainty and an ONNX Runtime → OpenVINO fallback chain. Full analytics suite : residue detection, Nyquist gradient analysis, Grad-CAM, Integrated Gradients, uncertainty calibration, and an automated self-contained HTML report. 65 tests, including known-answer physics tests and a tile-merging regression test that catches boundary-artifact bugs numerically, not visually. Two pre-executed example notebooks covering the training chain and the full end-to-end pipeline against real synthetic data. What's included Synthetic data engine Four deformation models (Gaussian bowl, Okada, Mogi, deformation-free control), DEM-driven topographic phase, Kolmogorov-spectrum atmospheric turbulence, orbital ramps, and coherence-dependent decorrelation noise. Ground-truth ambiguity is computed against the actual observed (noisy) phase ,unwrapping resolves 2π ambiguity, it does not denoise ,which keeps every generated sample exactly consistent with wrapped + 2π·k == unwrapped to floating-point precision. Data pipeline Full-coverage sliding-window tiling, percentile-robust amplitude normalization, and an InSARTileDataset with 8-fold dihedral augmentation that recomputes the integer ambiguity map after every transform rather than reusing a cached value, so it stays exact even at the ±π wrap boundary. Model & training AmbiguityNet (24M params) plus PhysicsInformedUnwrapLoss, a four-component loss combining supervised ambiguity regression, re-wrap consistency, coherence-weighted smoothness, and an ambiguity-map residue penalty. Trainer implements three-stage curriculum learning, AdamW with warmup/cosine annealing, gradient clipping, TensorBoard logging, and optional SNAPHU-based fine-tuning. Inference & deployment PhaseUnwrapper tiles arbitrarily large interferograms and merges results with an edge-aware taper (only feathering edges that actually border a neighboring tile , a plain Hanning window incorrectly zeroes scene boundaries too) weighted by the model's own residue-probability output. ONNX export is single-file by design, with GPU → CPU → OpenVINO backend fallback. Analytics, visualization & reporting Goldstein-style residue detection and clustering, Nyquist gradient- violation mapping, error-distribution statistics, Grad-CAM and Integrated Gradients explainability, uncertainty-calibration reliability diagrams, interactive Plotly 3D surfaces, a folium swipe-comparison map, and a Jinja2-templated HTML report ,all wrapped in best-effort error handling so a reporting failure never breaks a production inference call. Testing & CI A 65-test suite (pytest) covering synthetic generation, model/loss correctness, physics/analytics correctness against hand-constructed known-answer fields (e.g. an exact phase vortex with a known topological charge), and full-pipeline integration. GitHub Actions runs a fast-test matrix across Python 3.10–3.12, a separate slow/integration job, and a ruff/black lint job. Installation git clone https://github.com/EOCoreINT/pyunwrap.git cd pyunwrap pip install -e ".[dev,maps,deploy,notebooks]" See the README for the quickstart and the architecture reference for how data flows through the pipeline. Known limitations This is an early-stage release and is honest about where it currently falls short: No pretrained weights ship with this release. PhaseUnwrapper.from_pretrained() downloads from a Zenodo record you supply; there is no benchmarked checkpoint yet. Monte Carlo Dropout uncertainty is currently a no-op. AmbiguityNet has no nn.Dropout layers yet (only BatchNorm), so uncertainty in UnwrapResult is identically zero. The residue-probability head is the meaningful uncertainty signal available today. No published accuracy benchmark against SNAPHU or other classical unwrappers yet. The physics-consistency guarantees are proven (exhaustively, in tests); real-world unwrapping accuracy on held-out Sentinel-1 data has not yet been formally evaluated in this repo. APIs may change between minor versions until 1.0. Acknowledgments Built on the shoulders of the classical InSAR literature this package's synthetic models and design decisions are grounded in: Goldstein, Zebker & Werner (1988); Itoh (1982); Chen & Zebker (2001, SNAPHU); Okada (1985); Mogi (1958). Full citations in the README. Full Changelog See CHANGELOG.md for the complete, itemized history, including every bug found and fixed during development.

View source

Similar papers

#computer vision Review Sep 2017

Agile Software Development Methods: Review and Analysis

This publication proposes a definition and a classification of agile software development approaches and analyses ten software development methods that can be characterized as being "agile" against the defined criterion.

P. Abrahamsson, O. Salo, Jussi Ronkainen et al. · 727 citations · ⚡54
#computer vision Jun 2008

The impact of agile practices on communication in software development

The study shows that agile practices improve both informal and formal communication, but indicates that, in larger development situations involving multiple external stakeholders, a mismatch of adequate communication mechanisms can sometimes even hinder the communication.

M. Pikkarainen, Jukka Haikara, O. Salo et al. · 401 citations · ⚡48
#machine learning Review Open access Oct 2014

Software development in startup companies: A systematic mapping study

The results indicate that software engineering work practices are chosen opportunistically, adapted and configured to provide value under the constrains imposed by the startup context.

Nicolò Paternoster, Carmine Giardino, M. Unterkalmsteiner et al. · 394 citations · ⚡54

Related blog posts

Microsoft Research Blog Oct 29, 2026

Microsoft Research Focus – Edition #97

Host Sowbhagya Suresh shares some of the latest news and cutting-edge research from across Microsoft—from understanding the challenges facing coding agents to uncovering how people use AI at work and improving extended-range weather forecasting. The post Microsoft Research Focus – Edition #97 appeared first on Microsoft Research.

MIT News · Artificial Intelligence Oct 28, 2026

Making machines that can listen

Professor Paris Smaragdis develops computers with superhuman hearing for applications like speech recognition, music understanding, and environmental monitoring.

Microsoft Research Blog Oct 21, 2026

Solving a 31-year-old grand challenge in mathematics – the KLS conjecture

For decades, a fundamental question about the difficulty of computing in high-dimensional spaces has resisted proof. New research resolves this question, removing a major theoretical obstacle to understanding the efficiency of randomized algorithms used across science and computing. The Kannan–Lovász–Simonovits (KLS) conjecture was proposed in 1995. It asks whether, for a broad class of high-dimensional […] The post Solving a 31-year-old grand challenge in mathematics – the KLS conjecture appear…

We use cookies to run the site and, with your consent, for analytics and to show ads. See our Cookie Policy.