@@ -429,7 +429,7 @@ def apply_delete(obj_data, rename):
429
429
data_dict ["___save_version__" ] = "1.4"
430
430
return super ().from_dict (data_dict )
431
431
432
- def __init__ (self , output = None , template = None , stack = None , time_delta = None , ** kwargs ):
432
+ def __init__ (self , output = None , template = "" , stack = None , time_delta = None , ** kwargs ):
433
433
if output is not None :
434
434
self .output = str (Path (output ).absolute ())
435
435
@@ -551,11 +551,11 @@ def get_data_structure(self):
551
551
"dimensions" : 3 ,
552
552
"time_point_count" : len (self .stacks ),
553
553
"has_reference" : self .stack_reference is not None ,
554
- "z_slices_count" : self .stacks [0 ].shape [2 ],
555
- "im_shape" : self .stacks [0 ].shape ,
556
- "voxel_size" : self .stacks [0 ].voxel_size ,
554
+ "z_slices_count" : self .stacks [0 ].shape [2 ] if self . stacks else 0 ,
555
+ "im_shape" : self .stacks [0 ].shape if self . stacks else ( 0 , 0 , 0 ) ,
556
+ "voxel_size" : self .stacks [0 ].voxel_size if self . stacks else ( 0 , 0 , 0 ) ,
557
557
"time_delta" : self .time_delta ,
558
- "channels" : self .stacks [0 ].channels ,
558
+ "channels" : self .stacks [0 ].channels if self . stacks else [] ,
559
559
"fields" : {
560
560
"piv" : {
561
561
"type" : "vector" ,
@@ -599,20 +599,23 @@ def get_image_data(self, time_point, channel="default", use_reference=False):
599
599
return stack [:, :, :, :, channel ]
600
600
601
601
def get_field_data (result , name , time_point ):
602
- if name == "piv" :
603
- mesh = result .mesh_piv [time_point ]
604
- if mesh is not None and mesh .displacements_measured is not None :
605
- return mesh , mesh .displacements_measured
606
- elif name == "target deformations" :
607
- M = result .solvers [time_point ]
608
- if M is not None :
609
- return M .mesh , M .mesh .displacements_target
610
- elif name == "fitted deformations" :
611
- M = result .solvers [time_point ]
612
- if M is not None :
613
- return M .mesh , M .mesh .displacements
614
- elif name == "fitted forces" :
615
- M = result .solvers [time_point ]
616
- if M is not None :
617
- return M .mesh , - M .mesh .forces * M .mesh .regularisation_mask [:, None ]
602
+ try :
603
+ if name == "piv" :
604
+ mesh = result .mesh_piv [time_point ]
605
+ if mesh is not None and mesh .displacements_measured is not None :
606
+ return mesh , mesh .displacements_measured
607
+ elif name == "target deformations" :
608
+ M = result .solvers [time_point ]
609
+ if M is not None :
610
+ return M .mesh , M .mesh .displacements_target
611
+ elif name == "fitted deformations" :
612
+ M = result .solvers [time_point ]
613
+ if M is not None :
614
+ return M .mesh , M .mesh .displacements
615
+ elif name == "fitted forces" :
616
+ M = result .solvers [time_point ]
617
+ if M is not None :
618
+ return M .mesh , - M .mesh .forces * M .mesh .regularisation_mask [:, None ]
619
+ except IndexError :
620
+ return None , None
618
621
return None , None
0 commit comments