summaryrefslogtreecommitdiff
path: root/silx/third_party/EdfFile.py
diff options
context:
space:
mode:
Diffstat (limited to 'silx/third_party/EdfFile.py')
-rw-r--r--silx/third_party/EdfFile.py18
1 files changed, 10 insertions, 8 deletions
diff --git a/silx/third_party/EdfFile.py b/silx/third_party/EdfFile.py
index b20e5bb..d06a211 100644
--- a/silx/third_party/EdfFile.py
+++ b/silx/third_party/EdfFile.py
@@ -434,7 +434,7 @@ class EdfFile(object):
self.Images[Index].DataType = 'UnsignedShort'
try:
self.__data = numpy.reshape(
- numpy.fromstring(binary, numpy.uint16),
+ numpy.copy(numpy.frombuffer(binary, numpy.uint16)),
(self.Images[Index].Dim2, self.Images[Index].Dim1))
except ValueError:
msg = 'Size spec in ADSC-header does not match size of image data field'
@@ -587,12 +587,12 @@ class EdfFile(object):
if self.Images[Index].NumDim == 3:
image = self.Images[Index]
sizeToRead = image.Dim1 * image.Dim2 * image.Dim3 * datasize
- Data = numpy.fromstring(self.File.read(sizeToRead), datatype)
+ Data = numpy.copy(numpy.frombuffer(self.File.read(sizeToRead), datatype))
Data = numpy.reshape(Data, (self.Images[Index].Dim3, self.Images[Index].Dim2, self.Images[Index].Dim1))
elif self.Images[Index].NumDim == 2:
image = self.Images[Index]
sizeToRead = image.Dim1 * image.Dim2 * datasize
- Data = numpy.fromstring(self.File.read(sizeToRead), datatype)
+ Data = numpy.copy(numpy.frombuffer(self.File.read(sizeToRead), datatype))
# print "datatype = ",datatype
# print "Data.type = ", Data.dtype.char
# print "self.Images[Index].DataType ", self.Images[Index].DataType
@@ -603,7 +603,7 @@ class EdfFile(object):
Data = numpy.reshape(Data, (self.Images[Index].Dim2, self.Images[Index].Dim1))
elif self.Images[Index].NumDim == 1:
sizeToRead = self.Images[Index].Dim1 * datasize
- Data = numpy.fromstring(self.File.read(sizeToRead), datatype)
+ Data = numpy.copy(numpy.frombuffer(self.File.read(sizeToRead), datatype))
elif self.ADSC or self.MARCCD or self.PILATUS_CBF or self.SPE:
return self.__data[Pos[1]:(Pos[1] + Size[1]),
Pos[0]:(Pos[0] + Size[0])]
@@ -628,7 +628,7 @@ class EdfFile(object):
if Size[0] == 0:
Size[0] = sizex - Pos[0]
self.File.seek((Pos[0] * size_pixel) + self.Images[Index].DataPosition, 0)
- Data = numpy.fromstring(self.File.read(Size[0] * size_pixel), type_)
+ Data = numpy.copy(numpy.frombuffer(self.File.read(Size[0] * size_pixel), type_))
elif self.Images[Index].NumDim == 2:
if Pos is None:
Pos = (0, 0)
@@ -646,7 +646,7 @@ class EdfFile(object):
dataindex = 0
for y in range(Pos[1], Pos[1] + Size[1]):
self.File.seek((((y * sizex) + Pos[0]) * size_pixel) + self.Images[Index].DataPosition, 0)
- line = numpy.fromstring(self.File.read(Size[0] * size_pixel), type_)
+ line = numpy.copy(numpy.frombuffer(self.File.read(Size[0] * size_pixel), type_))
Data[dataindex, :] = line[:]
# Data=numpy.concatenate((Data,line))
dataindex += 1
@@ -669,7 +669,7 @@ class EdfFile(object):
for z in range(Pos[2], Pos[2] + Size[2]):
for y in range(Pos[1], Pos[1] + Size[1]):
self.File.seek(((((z * sizey + y) * sizex) + Pos[0]) * size_pixel) + self.Images[Index].DataPosition, 0)
- line = numpy.fromstring(self.File.read(Size[0] * size_pixel), type_)
+ line = numpy.copy(numpy.frombuffer(self.File.read(Size[0] * size_pixel), type_))
Data = numpy.concatenate((Data, line))
Data = numpy.reshape(Data, (Size[2], Size[1], Size[0]))
@@ -698,7 +698,9 @@ class EdfFile(object):
size_img = size_row * self.Images[Index].Dim2
offset = offset + (Position[2] * size_img)
self.File.seek(self.Images[Index].DataPosition + offset, 0)
- Data = numpy.fromstring(self.File.read(size_pixel), self.__GetDefaultNumpyType__(self.Images[Index].DataType, index=Index))
+ Data = numpy.copy(numpy.frombuffer(self.File.read(size_pixel),
+ self.__GetDefaultNumpyType__(self.Images[Index].DataType,
+ index=Index)))
if self.SysByteOrder.upper() != self.Images[Index].ByteOrder.upper():
Data = Data.byteswap()
Data = self.__SetDataType__(Data, "DoubleValue")