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.
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
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):
22
print 'Scientific.IO.NetCDF took',time.time()-t1,'seconds'
23
# now use pytables NetCDF emulation layer.
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)
33
print 'pytables NetCDF (1) took',time.time()-t1,'seconds'
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)
40
for n in range(n1dim):
43
print 'pytables NetCDF (2) took',time.time()-t1,'seconds'
46
file = Scientific.IO.NetCDF.NetCDFFile('test.nc')
47
data = file.variables['data'][:]
49
print 'Scientific.IO.NetCDF took',time.time()-t1,'seconds to read'
51
file = NetCDF.NetCDFFile('test.h5')
52
data = file.variables['data'][:]
54
print 'pytables NetCDF took',time.time()-t1,'seconds to read'