Skip to content
This repository
Fetching contributors…

Cannot retrieve contributors at this time

file 70 lines (57 sloc) 2.122 kb
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70
from tables import *

class Particle(IsDescription):
    name = StringCol(16, pos=1) # 16-character String
    lati = Int32Col(pos=2) # integer
    longi = Int32Col(pos=3) # integer
    pressure = Float32Col(pos=4) # float (single-precision)
    temperature = Float64Col(pos=5) # double (double-precision)

# Open a file in "w"rite mode
fileh = openFile("table1.h5", mode = "w")
# Create a new group
group = fileh.createGroup(fileh.root, "newgroup")

# Create a new table in newgroup group
table = fileh.createTable(group, 'table', Particle, "A table", Filters(1))
particle = table.row

# Fill the table with 10 particles
for i in xrange(10):
    # First, assign the values to the Particle record
    particle['name'] = 'Particle: %6d' % (i)
    particle['lati'] = i
    particle['longi'] = 10 - i
    particle['pressure'] = float(i*i)
    particle['temperature'] = float(i**2)
    # This injects the row values.
    particle.append()

# We need to flush the buffers in table in order to get an
# accurate number of records on it.
table.flush()

# Add a couple of user attrs
table.attrs.user_attr1=1.023
table.attrs.user_attr2="This is the second user attr"

# Append several rows in only one call
table.append([("Particle: 10", 10, 0, 10*10, 10**2),
              ("Particle: 11", 11, -1, 11*11, 11**2),
              ("Particle: 12", 12, -2, 12*12, 12**2)])

group = fileh.root.newgroup
print "Nodes under group", group, ":"
for node in fileh.listNodes(group):
    print node
print

print "Leaves everywhere in file", fileh.filename, ":"
for leaf in fileh.walkNodes(classname="Leaf"):
    print leaf
print

table = fileh.root.newgroup.table
print "Object:", table
print "Table name: %s. Table title: %s" % (table.name, table.title)
print "Rows saved on table: %d" % (table.nrows)

print "Variable names on table with their type:"
for name in table.colnames:
    print " ", name, ':=', table.coldtypes[name]

print "Table contents:"
for row in table:
    print row[:]
print "Associated recarray:"
print table.read()

# Finally, close the file
fileh.close()
Something went wrong with that request. Please try again.