1
2 """
3 Authors: Henning O. Sorensen & Erik Knudsen
4 Center for Fundamental Research: Metal Structures in Four Dimensions
5 Risoe National Laboratory
6 Frederiksborgvej 399
7 DK-4000 Roskilde
8 email:erik.knudsen@risoe.dk
9
10 and Jon Wright, ESRF
11 """
12 import numpy
13
15 """
16 A common class for dataIO in fable
17 Contains a 2d numpy array for keeping data, and two lists (clabels and rlabels)
18 containing labels for columns and rows respectively
19 """
20
21 - def __init__(self,data=None,clabels=None,rlabels=None,fname=None):
22 """
23 set up initial values
24 """
25 if type(data) == type("string"):
26 raise Exception("fabioimage.__init__ bad argument - "+\
27 "data should be numpy array")
28 self.data=data
29 if (self.data):
30 self.dims=self.data.shape
31 self.clabels=clabels
32 self.rlabels=rlabels
33 if (fname):
34 self.read(fname)
35
36 - def read(self,fname=None):
37 """
38 To be overridden by format specific subclasses
39 """
40 raise Exception("Class has not implemented read method yet")
41
42
43
44
46
47 - def read(self,fname):
48 import cf_io
49 try:
50 infile=open(fname,'rb')
51 except:
52 raise Exception("columnfile: file" + str(fname) + "not found.")
53 try:
54 (self.data,self.clabels)=cf_io.read(infile)
55 except:
56 raise Exception("columnfile: read error, file " + str(fname) + " possibly corrupt" )
57 self.dims=self.data.shape
58 infile.close()
59