Source code for src.utils.transform_vectors_to_fields

import nifty8 as ift
import numpy as np

from ..obj.motif_vector import isinstance_motifvector
from ..obj.motif_production_vector import isinstance_motifproductionvector

from ..domains.trajectory_space import TrajectorySpace

[docs] def transform_dicts_to_field(motifs : list, time_space : ift.DomainTuple ) -> ift.MultiField: trajectory_domain = TrajectorySpace(motifs[0].domain, time_space) field = {} for key in motifs[0].keys(): #np.zeros(time_space.shape+motif_list[0].motifs[key].shape) field[key] = np.asarray([motifs[ii][key].val for ii in range(len(motifs))]) field[key] = ift.Field( trajectory_domain[key], field[key] ) return ift.MultiField.from_dict(field, domain=trajectory_domain)
[docs] def transform_vectors_to_field(motif_list : list, time_space : ift.DomainTuple) -> ift.MultiField: if isinstance_motifvector(motif_list[0], print_statements = False): motifs = [motif_list[ii].motifs for ii in range(len(motif_list))] elif isinstance_motifproductionvector(motif_list[0]): motifs = [motif_list[ii].productions for ii in range(len(motif_list))] #elif isinstance_motifbreakagevector(motif_list[0]): # motifs = [motif_list[ii].breakages for ii in range(len(motif_list))] else: raise TypeError("motif_list needs to be MotifTrajectory or MotifProductionTrajectory") return transform_dicts_to_field(motifs, time_space)