Joint differentiable powder + FF-HEDM detector calibration for MIDAS. Breaks single-distance per-panel rank-1 degeneracy by combining a powder calibrant pseudo-strain residual with HEDM grain spot residuals in one Bayesian MAP + Laplace inference. Pure-Python, fully autograd-traced; consumes the shared midas_peakfit substrate (ParameterSpec, lm_minimise, laplace_at_map, TPSpline, zero_sum_residual) plus midas_calibrate_v2 (powder forward + pseudo_strain) and midas_fit_grain (HEDM spot forward).
Project description
midas-joint-ff-calibrate
Joint differentiable powder + FF-HEDM detector calibration.
The single-image powder calibration problem (Wright, Giacobbe & Lawrence
Bright 2022 § 3; midas_calibrate_v2 paper § 9) is rank-deficient on
per-panel (δy, δz) shifts: each panel's η coverage is too narrow to break
the radial-vs-azimuthal degeneracy without translating the detector to
multiple distances. For a ~100 kg detector on a translation stage that's
impractical.
This package solves the same problem at a single distance by combining the
calibrant powder image with a co-located HEDM grain-fit dataset. HEDM spots
are determinate in (R, η) and distribute across all panels at varied
azimuth, so the joint Fisher block on per-panel shifts becomes full rank.
The same machinery generalises to refining any subset of the unified spec —
geometry, distortion, panels, wavelength, per-grain orientation/position/
strain, or arbitrary user-defined blocks.
Notebooks
Worked-example Jupyter notebooks live in notebooks/. They are not shipped with pip install — get them by cloning the MIDAS repository.
Architecture
midas_peakfit (shared substrate)
ParameterSpec / pack / lm / laplace / TPSpline / Σ=0
▲ ▲
│ │
midas_calibrate_v2 midas_fit_grain
(powder forward + loss) (HEDM forward + loss)
▲ ▲
└──────────┬────────────┘
│
midas_joint_ff_calibrate
(joint spec / loss / drivers)
Pure-Python, fully autograd-traced. No legacy C code (FitMultipleGrains.c
is not used).
Drivers
pipelines.alternating.AlternatingDriver— the recommended default. Outer loop alternates between (geometry + grain orientation/position) and (grain strain) passes. Cheap, robust.pipelines.full_joint.FullJointDriver— refine every refined parameter at once with a single LM call; report MAP plus Laplace covariance.pipelines.identifiability.fisher_block_rank— diagnostic that reports rank, condition number, and σ per parameter on a user-chosen Fisher block under powder-only, HEDM-only, or joint evidence.
Status
Pre-alpha. Companion paper to the J. Appl. Cryst. submission of
midas_calibrate_v2 (paper 3); see dev/paper/.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file midas_joint_ff_calibrate-0.1.5.tar.gz.
File metadata
- Download URL: midas_joint_ff_calibrate-0.1.5.tar.gz
- Upload date:
- Size: 66.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d68556147cf3b6d811d34af99b258b8a8e0e1a5848878e8c9a45da0247f5a62a
|
|
| MD5 |
bc2be7b6ede89d1652423b47635d9ff9
|
|
| BLAKE2b-256 |
002f4bcdb1e1b373e131175508986fe85135a3c3ad70fb8d37600f349aa9731b
|
Provenance
The following attestation bundles were made for midas_joint_ff_calibrate-0.1.5.tar.gz:
Publisher:
python-packages.yml on marinerhemant/MIDAS
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
midas_joint_ff_calibrate-0.1.5.tar.gz -
Subject digest:
d68556147cf3b6d811d34af99b258b8a8e0e1a5848878e8c9a45da0247f5a62a - Sigstore transparency entry: 1638330256
- Sigstore integration time:
-
Permalink:
marinerhemant/MIDAS@e69fb084db422f1f89481ac95869ef054b50fe79 -
Branch / Tag:
refs/tags/midas-joint-ff-calibrate-v0.1.5 - Owner: https://github.com/marinerhemant
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
python-packages.yml@e69fb084db422f1f89481ac95869ef054b50fe79 -
Trigger Event:
release
-
Statement type:
File details
Details for the file midas_joint_ff_calibrate-0.1.5-py3-none-any.whl.
File metadata
- Download URL: midas_joint_ff_calibrate-0.1.5-py3-none-any.whl
- Upload date:
- Size: 72.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b4956f1d3534f03aecb7725e56acb24d200aed8cef8fd78092c85242adffc895
|
|
| MD5 |
e686336cd7a28e90f3c18595639ba555
|
|
| BLAKE2b-256 |
ab1160ebea1fb8bbb8cc841ab350044545dfb87d212a998dde82ce10c7b3cdfc
|
Provenance
The following attestation bundles were made for midas_joint_ff_calibrate-0.1.5-py3-none-any.whl:
Publisher:
python-packages.yml on marinerhemant/MIDAS
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
midas_joint_ff_calibrate-0.1.5-py3-none-any.whl -
Subject digest:
b4956f1d3534f03aecb7725e56acb24d200aed8cef8fd78092c85242adffc895 - Sigstore transparency entry: 1638330452
- Sigstore integration time:
-
Permalink:
marinerhemant/MIDAS@e69fb084db422f1f89481ac95869ef054b50fe79 -
Branch / Tag:
refs/tags/midas-joint-ff-calibrate-v0.1.5 - Owner: https://github.com/marinerhemant
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
python-packages.yml@e69fb084db422f1f89481ac95869ef054b50fe79 -
Trigger Event:
release
-
Statement type: