~ubuntu-branches/ubuntu/natty/pytables/natty-updates

« back to all changes in this revision

Viewing changes to bench/NetCDF-bench.py

  • Committer: Bazaar Package Importer
  • Author(s): Alexandre Fayolle
  • Date: 2006-06-28 10:45:03 UTC
  • mfrom: (1.2.1 upstream)
  • mto: This revision was merged to the branch mainline in revision 5.
  • Revision ID: james.westby@ubuntu.com-20060628104503-cc251q5o5j3e2k10
  * Fixed call to pyversions in debian/rules which failed on recent versions 
    of pyversions
  * Fixed clean rule in debian/rules which left the stamp files behind
  * Acknowledge NMU
  * Added Alexandre Fayolle to uploaders

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
import RandomArray, time, sys
 
2
from tables import Filters
 
3
import tables.NetCDF as NetCDF
 
4
import Scientific.IO.NetCDF
 
5
# create an n1dim by n2dim random array.
 
6
n1dim = 1000
 
7
n2dim = 10000
 
8
print 'reading and writing a %s by %s random array ..'%(n1dim,n2dim)
 
9
array = RandomArray.random((n1dim,n2dim))
 
10
filters = Filters(complevel=0,complib='zlib',shuffle=0)
 
11
# create a file, put a random array in it.
 
12
# no compression is used.
 
13
# first, use Scientific.IO.NetCDF
 
14
t1 = time.time()
 
15
file = Scientific.IO.NetCDF.NetCDFFile('test.nc','w')
 
16
file.createDimension('n1', None)
 
17
file.createDimension('n2', n2dim)
 
18
foo = file.createVariable('data', 'd', ('n1','n2',))
 
19
for n in range(n1dim):
 
20
    foo[n] = array[n]
 
21
file.close()
 
22
print 'Scientific.IO.NetCDF took',time.time()-t1,'seconds'
 
23
# now use pytables NetCDF emulation layer.
 
24
t1 = time.time()
 
25
file = NetCDF.NetCDFFile('test.h5','w')
 
26
file.createDimension('n1', None)
 
27
file.createDimension('n2', n2dim)
 
28
# no compression (override default filters instance).
 
29
foo = file.createVariable('data', 'd', ('n1','n2',),filters=filters)
 
30
# this is faster
 
31
foo.append(array)
 
32
file.close()
 
33
print 'pytables NetCDF (1) took',time.time()-t1,'seconds'
 
34
t1 = time.time()
 
35
file = NetCDF.NetCDFFile('test.h5','w')
 
36
file.createDimension('n1', None)
 
37
file.createDimension('n2', n2dim)
 
38
foo = file.createVariable('data', 'd', ('n1','n2',),filters=filters)
 
39
# this is slower
 
40
for n in range(n1dim):
 
41
    foo.append(array[n])
 
42
file.close()
 
43
print 'pytables NetCDF (2) took',time.time()-t1,'seconds'
 
44
# test reading.
 
45
t1 = time.time()
 
46
file = Scientific.IO.NetCDF.NetCDFFile('test.nc')
 
47
data = file.variables['data'][:]
 
48
file.close()
 
49
print 'Scientific.IO.NetCDF took',time.time()-t1,'seconds to read'
 
50
t1 = time.time()
 
51
file = NetCDF.NetCDFFile('test.h5')
 
52
data = file.variables['data'][:]
 
53
file.close()
 
54
print 'pytables NetCDF took',time.time()-t1,'seconds to read'