Near-field Ptycho improvements
Improvements/tests needed for ID16A (@karpov, @cloetens):
Priorities:
-
optimise the direct beam images during iterative algorithms, providing an absolute scale for the object and probe. Currently not automatic, needs the option use_direct_beam
[87b6095e] -
try new padding only during near-field propagation (and Paganin/CTF), but without trying to update the probe or object beyond the filed of view - tried, did not work :-(
-
add monitor correction - one value for the scan, and another for the direct beam -
when doing multi-projection optimisation, translate the previous object if necessary, as the translations may have changed. NB: need confirmation before implementing, since the motor positions are not really absolute and taking into account the random motion.. - when reloading the previous object from memory
- when reloading from file
- Also, increase the
obj_margin
to be safe
-
add option no_rerun
to skip scan if it has already been processed (e.g. for a low priority slurm queue). Need to be careful that the result CXI file is complete and valid -
naming: do not use the run number for ptycho-tomo output, e.g. if saveprefix=scan%04d
then skip the run number. Same if there is no field at all in saveprefix => no scan number either. Note that if there is no run number, andno_rerun
is not used, any existing file will be overwritten. -
naming: add saveprefix=data to automatically name the output file from the base data file ? -
Position optimisation: -
make position optimisation work also for NFP. May need to work on the object phase fir more sensitivity ? -
see if the different positions cannot be pre-aligned by registration of the I/I0 frames, to check if the motor positions are correct
-
-
post-phasing alignment: issues with multiple subtomos (because the object is removed from the beam to measure the direct beam, and not coming back at the same position). Need some way to perform tomo-consistency optimisation. Code already exists but works only well for non-local tomo or objects with strong features. Maybe need to introduce some constraints on the displacements vs the projection/subtomo to get a better convergence ? -
Reconstruction from a pre-determined probe can be worse than when starting without knowing the probe. Why ? -
Some highly structured objects do not reconstruct better than objects with little structure, which makes no sense. To be tested with the datasets -
At very high resolution (<=10nm), issues can appear on the border of local objects (cylinder-like), likely because of strong local phase ramps. To be investigated. Could a distortion correction be used ?
Need to:
-
add an option to keep the center of the object at an absolute position (for NFP when different random positions are use with projections ; so the axis center is always at the same position in the array)- This may not be such a good idea: it could create issues (larger object if desired centre is shifted from the centre of the positions), and since the coordinates are available in the output data, it is easy to re-align the frames in post-processing.
-
Alternatively, shift the centre of the object only when saving the final result. Though that could create issues when re-loading the object so not such a great idea either -
add flat distorsion correction for Paganin/CTF -
add CTF operator -
test with fixed probe, also by reducing the number of translations ? [careful with the possible drift, but should be limited] -
find a way to simply introduce zero-phase-constraint areas for approximately cylindrical objects: - somehow detect borders ?
- Use CTF/Paganin ?
- Use sklearn for segmentation ?
- Use same approach as SOFC - assume left/right are zero-phase, then try to shrink area until a significant change occurs
-
test probe determination using a large scan area (>= half the size of the field of view) ; see if this helps minimising the low-frequency phase spots which are probably not real.
Other options to be discussed:
-
test reconstructions with delta/beta constraint ? -
sharing probe ?? (see first if fixed probe works) -
add PSF (either detector PSF or beam instability) ? -
use high-pass filtering on the probe ? (to avoid the low frequency sports appearing)
Edited by Vincent Favre-Nicolin