summaryrefslogtreecommitdiffstats
path: root/python
diff options
context:
space:
mode:
Diffstat (limited to 'python')
-rw-r--r--python/astra/data3d.py2
-rw-r--r--python/astra/functions.py2
-rw-r--r--python/astra/optomo.py4
-rw-r--r--python/astra/utils.pyx12
-rw-r--r--python/conda/build.sh10
-rw-r--r--python/conda/libastra/build.sh15
-rw-r--r--python/conda/libastra/meta.yaml22
-rw-r--r--python/conda/meta.yaml7
8 files changed, 55 insertions, 19 deletions
diff --git a/python/astra/data3d.py b/python/astra/data3d.py
index e5ef6b0..f143659 100644
--- a/python/astra/data3d.py
+++ b/python/astra/data3d.py
@@ -89,7 +89,7 @@ def get_single(i):
:returns: :class:`numpy.ndarray` -- The object data.
"""
- return g.get_single(i)
+ return d.get_single(i)
def store(i,data):
"""Fill existing 3D object with data.
diff --git a/python/astra/functions.py b/python/astra/functions.py
index e38b5bc..3f4aa82 100644
--- a/python/astra/functions.py
+++ b/python/astra/functions.py
@@ -115,7 +115,7 @@ def add_noise_to_sino(sinogram_in, I0, seed=None):
sinogram_out = -max_sinogramRaw * np.log(sinogramCT_D)
if not isinstance(sinogram_in, np.ndarray):
- at.data2d.store(sinogram_in, sinogram_out)
+ data2d.store(sinogram_in, sinogram_out)
if not seed==None:
np.random.set_state(curstate)
diff --git a/python/astra/optomo.py b/python/astra/optomo.py
index 4a64150..dd10713 100644
--- a/python/astra/optomo.py
+++ b/python/astra/optomo.py
@@ -160,7 +160,7 @@ class OpTomo(scipy.sparse.linalg.LinearOperator):
return self._matvec(v)
return scipy.sparse.linalg.LinearOperator.__mul__(self, v)
- def reconstruct(self, method, s, iterations=1, extraOptions = {}):
+ def reconstruct(self, method, s, iterations=1, extraOptions = None):
"""Reconstruct an object.
:param method: Method to use for reconstruction.
@@ -172,6 +172,8 @@ class OpTomo(scipy.sparse.linalg.LinearOperator):
:param extraOptions: Extra options to use during reconstruction (i.e. for cfg['option']).
:type extraOptions: :class:`dict`
"""
+ if extraOptions is None:
+ extraOptions={}
s = self.__checkArray(s, self.sshape)
sid = self.data_mod.link('-sino',self.pg,s)
v = np.zeros(self.vshape,dtype=np.float32)
diff --git a/python/astra/utils.pyx b/python/astra/utils.pyx
index 52c2a8d..34d1902 100644
--- a/python/astra/utils.pyx
+++ b/python/astra/utils.pyx
@@ -32,7 +32,7 @@ import six
if six.PY3:
import builtins
else:
- import __builtin__
+ import __builtin__ as builtins
from libcpp.string cimport string
from libcpp.vector cimport vector
from libcpp.list cimport list
@@ -95,14 +95,14 @@ cdef void readDict(XMLNode root, _dc):
dc = convert_item(_dc)
for item in dc:
val = dc[item]
- if isinstance(val, __builtins__.list) or isinstance(val, tuple):
+ if isinstance(val, builtins.list) or isinstance(val, tuple):
val = np.array(val,dtype=np.float64)
if isinstance(val, np.ndarray):
if val.size == 0:
break
listbase = root.addChildNode(item)
contig_data = np.ascontiguousarray(val,dtype=np.float64)
- data = <double*>np.PyArray_DATA(contig_data)
+ data = <double*>np.PyArray_DATA(contig_data)
if val.ndim == 2:
listbase.setContent(data, val.shape[1], val.shape[0], False)
elif val.ndim == 1:
@@ -119,6 +119,8 @@ cdef void readDict(XMLNode root, _dc):
if item == six.b('type'):
root.addAttribute(< string > six.b('type'), <string> wrap_to_bytes(val))
else:
+ if isinstance(val, builtins.bool):
+ val = int(val)
itm = root.addChildNode(item, wrap_to_bytes(val))
cdef void readOptions(XMLNode node, dc):
@@ -131,7 +133,7 @@ cdef void readOptions(XMLNode node, dc):
val = dc[item]
if node.hasOption(item):
raise Exception('Duplicate Option: %s' % item)
- if isinstance(val, __builtins__.list) or isinstance(val, tuple):
+ if isinstance(val, builtins.list) or isinstance(val, tuple):
val = np.array(val,dtype=np.float64)
if isinstance(val, np.ndarray):
if val.size == 0:
@@ -147,6 +149,8 @@ cdef void readOptions(XMLNode node, dc):
else:
raise Exception("Only 1 or 2 dimensions are allowed")
else:
+ if isinstance(val, builtins.bool):
+ val = int(val)
node.addOption(item, wrap_to_bytes(val))
cdef configToDict(Config *cfg):
diff --git a/python/conda/build.sh b/python/conda/build.sh
index 814ea7e..13ae3f8 100644
--- a/python/conda/build.sh
+++ b/python/conda/build.sh
@@ -5,12 +5,4 @@ if [ $MAKEOPTS == '<UNDEFINED>' ]
then
MAKEOPTS=""
fi
-make $MAKEOPTS install-libraries
-make $MAKEOPTS python-root-install
-LIBPATH=lib
-if [ $ARCH == 64 ]
- then
- LIBPATH+=64
-fi
-cp -P $CUDA_ROOT/$LIBPATH/libcudart.so.* $PREFIX/lib
-cp -P $CUDA_ROOT/$LIBPATH/libcufft.so.* $PREFIX/lib
+make $MAKEOPTS python-root-install \ No newline at end of file
diff --git a/python/conda/libastra/build.sh b/python/conda/libastra/build.sh
new file mode 100644
index 0000000..e1d9700
--- /dev/null
+++ b/python/conda/libastra/build.sh
@@ -0,0 +1,15 @@
+cd build/linux
+./autogen.sh
+./configure --with-cuda=$CUDA_ROOT --prefix=$PREFIX
+if [ $MAKEOPTS == '<UNDEFINED>' ]
+ then
+ MAKEOPTS=""
+fi
+make $MAKEOPTS install-libraries
+LIBPATH=lib
+if [ $ARCH == 64 ]
+ then
+ LIBPATH+=64
+fi
+cp -P $CUDA_ROOT/$LIBPATH/libcudart.so.* $PREFIX/lib
+cp -P $CUDA_ROOT/$LIBPATH/libcufft.so.* $PREFIX/lib
diff --git a/python/conda/libastra/meta.yaml b/python/conda/libastra/meta.yaml
new file mode 100644
index 0000000..73fa0d7
--- /dev/null
+++ b/python/conda/libastra/meta.yaml
@@ -0,0 +1,22 @@
+package:
+ name: libastra
+ version: '1.8b'
+
+source:
+ git_url: https://github.com/astra-toolbox/astra-toolbox.git
+ #git_tag: v1.7.1 # Change to 1.8 after release
+
+build:
+ number: 0
+ script_env:
+ - CUDA_ROOT
+ - MAKEOPTS
+
+about:
+ home: http://www.astra-toolbox.com
+ license: GPLv3
+ summary: 'The ASTRA Toolbox is a Python toolbox of high-performance GPU primitives for 2D and 3D tomography.'
+
+# See
+# http://docs.continuum.io/conda/build.html for
+# more information about meta.yaml
diff --git a/python/conda/meta.yaml b/python/conda/meta.yaml
index 7e4679b..e6a7f52 100644
--- a/python/conda/meta.yaml
+++ b/python/conda/meta.yaml
@@ -1,10 +1,10 @@
package:
name: astra-toolbox
- version: '1.7.1'
+ version: '1.8b'
source:
git_url: https://github.com/astra-toolbox/astra-toolbox.git
- git_tag: v1.7.1
+ #git_tag: v1.7.1 # Change to 1.8 after release
build:
number: 0
@@ -29,10 +29,11 @@ requirements:
- numpy
- scipy
- six
+ - libastra ==1.8b
about:
- home: http://sourceforge.net/p/astra-toolbox/wiki/Home/
+ home: http://www.astra-toolbox.com
license: GPLv3
summary: 'The ASTRA Toolbox is a Python toolbox of high-performance GPU primitives for 2D and 3D tomography.'