AdvancedPhotonSource / tike

Repository for ptychography software
http://tike.readthedocs.io
Other
29 stars 15 forks source link

Modify the ptychopy API to accept Python types such as arrays, dictionaries, integers, so that Tike can pass these parameters to ptychopy #129

Open carterbox opened 3 years ago

carterbox commented 3 years ago

An ideal interface would be something like this:

import ptychopy

# Function accepts inputs such as integers, tuples, and numpy arrays
ptychopy.epieinit(
    jobID='sim512',
    beamSize=110e-9,
    scanDims=(30, 30),
    step=(50e-9, 50e-9),
    i=60,
    size=512,
    lamda=2.4796837508399954e-10,
    dx_d=172e-6,
    z=1,
    simulate=1,
    blind=0,
)
ptychopy.epiestep(its=3)
data = ptychopy.epieresobj()
ptychopy.epiepost()

def epieinit(psi, probe, data, scan, ....):
    """Initializes a reconstruction for the ePIE algorithm.

    Parameters
    ----------
    psi : (..., nz, n) complex64
        The complex wavefront modulation of the object.
    probe (..., 1, 1, nprobe, probe_shape, probe_shape) : complex64
        The complex illuminatio function.
    data (..., nframe, detector_shape, detector_shape) : float32
        The square of the absolute value of `farplane` summed over `fly` and
        `modes`.
    scan : (..., nscan, 2) float32
        Coordinates of the minimum corner of the probe grid for each
        measurement in the coordinate system of psi. Vertical coordinates
        first, horizontal coordinates second.

    """
    pass

def epiestep(num_iter=1):
    """Execute one step of ePIe"""
    pass