Skip to content
GitLab
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
Tom Harke
pystencils
Commits
76fb5eab
Commit
76fb5eab
authored
Jul 01, 2017
by
Martin Bauer
Browse files
Bugfix in string to layout conversion
parent
3b4deebe
Changes
1
Hide whitespace changes
Inline
Side-by-side
field.py
View file @
76fb5eab
...
...
@@ -62,7 +62,7 @@ class Field(object):
over dimension 0. Also allowed: the strings 'numpy' (0,1,..d) or 'reverseNumpy' (d, ..., 1, 0)
"""
if
isinstance
(
layout
,
str
):
layout
=
l
ayoutStringToTuple
(
layout
,
dim
=
spatialDimensions
)
layout
=
spatialL
ayoutStringToTuple
(
layout
,
dim
=
spatialDimensions
)
shapeSymbol
=
IndexedBase
(
TypedSymbol
(
Field
.
SHAPE_PREFIX
+
fieldName
,
Field
.
SHAPE_DTYPE
),
shape
=
(
1
,))
strideSymbol
=
IndexedBase
(
TypedSymbol
(
Field
.
STRIDE_PREFIX
+
fieldName
,
Field
.
STRIDE_DTYPE
),
shape
=
(
1
,))
totalDimensions
=
spatialDimensions
+
indexDimensions
...
...
@@ -409,19 +409,29 @@ def createNumpyArrayWithLayout(shape, layout):
return
res
def
layoutStringToTuple
(
layoutStr
,
dim
):
if
layoutStr
in
(
'fzyx'
,
'zyxf'
)
and
dim
!=
4
:
if
dim
==
3
:
return
tuple
(
reversed
(
range
(
dim
)))
else
:
raise
ValueError
(
"Layout descriptor "
+
layoutStr
+
" only valid for dimension 4, not %d"
%
(
dim
,))
def
spatialLayoutStringToTuple
(
layoutStr
,
dim
):
if
layoutStr
in
(
'fzyx'
,
'zyxf'
):
assert
dim
<=
3
return
tuple
(
reversed
(
range
(
dim
)))
if
layoutStr
==
"fzyx"
or
layoutStr
==
'f'
or
layoutStr
==
'reverseNumpy'
:
return
tuple
(
reversed
(
range
(
dim
)))
elif
layoutStr
==
'c'
or
layoutStr
==
'numpy'
:
return
tuple
(
range
(
dim
))
raise
ValueError
(
"Unknown layout descriptor "
+
layoutStr
)
def
layoutStringToTuple
(
layoutStr
,
dim
):
if
layoutStr
==
'fzyx'
:
assert
dim
<=
4
return
tuple
(
reversed
(
range
(
dim
)))
elif
layoutStr
==
'zyxf'
:
return
tuple
(
reversed
(
range
(
dim
-
1
)))
+
(
dim
,)
assert
dim
<=
4
return
tuple
(
reversed
(
range
(
dim
-
1
)))
+
(
dim
-
1
,)
elif
layoutStr
==
'f'
or
layoutStr
==
'reverseNumpy'
:
return
tuple
(
reversed
(
range
(
dim
)))
elif
layoutStr
==
'c'
or
layoutStr
==
'numpy'
:
return
tuple
(
range
(
dim
))
raise
ValueError
(
"Unknown layout descriptor "
+
layoutStr
)
...
...
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment