def calc_registration(preregistration_map, anchors,
                      max_steps=2000, max_step_size=0.05, method='random'):
    '''
    calc_registration is a calculator that creates the registration coordinates.
    '''
    # if max steps is a tuple (max, stride) then a trajectory is saved into
    # the registered_map meta-data
    pmap = preregistration_map
    if is_tuple(max_steps) or is_list(max_steps):
        (max_steps, stride) = max_steps
        traj = [preregistration_map.coordinates]
        x = preregistration_map.coordinates
        for s in np.arange(0, max_steps, stride):
            x = mesh_register(
                preregistration_map,
                [['edge',      'harmonic',      'scale', 1.0],
                 ['angle',     'infinite-well', 'scale', 1.0],
                 ['perimeter', 'harmonic'],
                 anchors],
                initial_coordinates=x,
                method=method,
                max_steps=stride,
                max_step_size=max_step_size)
            traj.append(x)
        pmap = pmap.with_meta(trajectory=np.asarray(traj))
    else:
        x = mesh_register(
            preregistration_map,
            [['edge',      'harmonic',      'scale', 1.0],
             ['angle',     'infinite-well', 'scale', 1.0],
             ['perimeter', 'harmonic'],
             anchors],
            method=method,
            max_steps=max_steps,
            max_step_size=max_step_size)
    return pmap.copy(coordinates=x)
def calc_registration ( preregistration_map , anchors , max_steps = 2000 , max_step_size = 0.05 , method = 'random' ) : pmap = preregistration_map if is_tuple ( max_steps ) or is_list ( max_steps ) : ( max_steps , stride ) = max_steps traj = [ preregistration_map . coordinates ] x = preregistration_map . coordinates for s in np . arange ( 0 , max_steps , stride ) : x = mesh_register ( preregistration_map , [ [ 'edge' , 'harmonic' , 'scale' , 1.0 ] , [ 'angle' , 'infinite-well' , 'scale' , 1.0 ] , [ 'perimeter' , 'harmonic' ] , anchors ] , initial_coordinates = x , method = method , max_steps = stride , max_step_size = max_step_size ) traj . append ( x ) pmap = pmap . with_meta ( trajectory = np . asarray ( traj ) ) else : x = mesh_register ( preregistration_map , [ [ 'edge' , 'harmonic' , 'scale' , 1.0 ] , [ 'angle' , 'infinite-well' , 'scale' , 1.0 ] , [ 'perimeter' , 'harmonic' ] , anchors ] , method = method , max_steps = max_steps , max_step_size = max_step_size ) return pmap . copy ( coordinates = x )
calc_registration is a calculator that creates the registration coordinates.