Skip to content

Commit e26665b

Browse files
committed
RF: Split PEPolar fieldmaps by intent, if available
1 parent acfb2d6 commit e26665b

File tree

1 file changed

+16
-15
lines changed

1 file changed

+16
-15
lines changed

sdcflows/utils/wrangler.py

Lines changed: 16 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -363,21 +363,22 @@ def find_estimators(
363363
)
364364
dirs = layout.get_directions(**entities)
365365
if len(dirs) > 1:
366-
fieldmaps = layout.get(**{**entities, **{"direction": dirs}})
367-
try:
368-
e = fm.FieldmapEstimation(
369-
[
370-
fm.FieldmapFile(fmap.path, metadata=fmap.get_metadata())
371-
for fmap in fieldmaps
372-
]
373-
)
374-
except ValueError as err:
375-
_log_debug_estimator_fail(
376-
logger, "unnamed PEPOLAR", fieldmaps, layout.root, str(err)
377-
)
378-
else:
379-
_log_debug_estimation(logger, e, layout.root)
380-
estimators.append(e)
366+
by_intent = {}
367+
for fmap in layout.get(**{**entities, **{'direction': dirs}}):
368+
fmapfile = fm.FieldmapFile(fmap.path, metadata=fmap.get_metadata())
369+
by_intent.setdefault(
370+
tuple(fmapfile.metadata.get('IntendedFor', ())), []
371+
).append(fmapfile)
372+
for collection in by_intent.values():
373+
try:
374+
e = fm.FieldmapEstimation(collection)
375+
except ValueError as err:
376+
_log_debug_estimator_fail(
377+
logger, "unnamed PEPOLAR", collection, layout.root, str(err)
378+
)
379+
else:
380+
_log_debug_estimation(logger, e, layout.root)
381+
estimators.append(e)
381382

382383
# At this point, only single-PE _epi files WITH ``IntendedFor`` can
383384
# be automatically processed.

0 commit comments

Comments
 (0)