add com/dpc imaging modes to show4dstem#121
Closed
henryhng wants to merge 164 commits into
Closed
Conversation
henryhng
commented
Apr 22, 2026
Contributor
- Add 6 center-of-mass virtual imaging modes that compute beam deflection maps from 4D-STEM dat:
- com-x/com-y
- com magnitude
- iCOM - integrated COM via Fourier-space Poisson solver, recovers projected electrostatic potential
- dCOM - divergence of COM field
- curl (EM)
- Corresponding tests
- Rewrite show4dstem all_features notebook data generator to simulate SrTiO3 perovskite crystal (atomic potential gradient & BF disk shift, Bragg spots, thickness modulation) to achieve clearer/more obvious visualisations
…cker with roi/snap/undo, convert coordinates to (row, col), add dataset integration
…ll widgets with fft filtering, line profiles, export figures, state persistence, canvas resize, mps gpu fallback
…re-saved widget state
…r interactive docs
improve `Show4DSTEM` drag, support 5DSTEM, use `Self`
- Remove duplicate zoom.toFixed(1)× Typography elements (keep only overlay canvas one) - Add pixel_size=result.pixel_size to manual push notebook cell - Add pixel_size=0.1861 to Live.watch notebook cell - Scale bar will render when pixel_size > 0
…lers Show2D + Show3D: - Truthful render_total_ms via JS→Python _js_rendered trait (matches real wall clock, not just __init__); removes misleading 'N ms' print that hid _repr_mimebundle_ + comm + JS time. - _repr_mimebundle_ matplotlib fallback gated behind QUANTEM_WIDGET_STATIC_FALLBACK. - _apply_rotations no-op fast path for all-zero init case. - canvas_size renamed to size; kwargs hardener rejects typos + legacy names with a helpful message. load_state_dict silently migrates old keys. - Docstring + summary() now surface render_total_ms + build/wire/js subsets. Infra: - enable_hmr() background watcher launches 'npm run dev' from any notebook. - Two new E2E profilers land in tests/ (test_e2e_timing_truthful, test_e2e_scrub_profile) — CI workflows to run them are in a follow-up commit that needs workflow-scope push. - tests/conftest passes notebook via ?reset so JupyterLab opens in the foreground tab (was racing behind earlier tabs). - Widget notebooks get %env ANYWIDGET_HMR=1 where missing. ShowComplex2D/Align2D alignment: image_width_px renamed to canvas_size; Align2D canvas_size default 300→0 to match the '0 = frontend default' pattern.
New ShowDiffraction widget
…ader Checks: fix pillow pdf save and skip missing smoke-loader workflow
…nmax ShowComplex2D: add vmin/vmax for absolute intensity range
Show4D: add vmin/vmax for absolute intensity range
Show4DSTEM: add vmin/vmax for absolute intensity range
Contributor
Author
|
in test widget showcomplex, change NamedTemporaryFile to pytest's tmp_path fixture which gives an unlocked directory path (on Windows NamedTemporaryFile holds file locked so PIL cannot write to it) |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.