File: index.py

package info (click to toggle)
pytables 3.11.0-1
  • links: PTS, VCS
  • area: main
  • in suites: sid
  • size: 15,272 kB
  • sloc: ansic: 82,216; python: 65,569; cpp: 753; sh: 394; makefile: 106
file content (43 lines) | stat: -rw-r--r-- 1,095 bytes parent folder | download | duplicates (3)
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
import random

import tables as tb

print("tables.__version__", tb.__version__)

nrows = 10_000 - 1


class Distance(tb.IsDescription):
    frame = tb.Int32Col(pos=0)
    distance = tb.Float64Col(pos=1)


h5file = tb.open_file("index.h5", mode="w")
table = h5file.create_table(
    h5file.root,
    "distance_table",
    Distance,
    "distance table",
    expectedrows=nrows,
)
row = table.row
for i in range(nrows):
    # r['frame'] = nrows-i
    row["frame"] = random.randint(0, nrows)
    row["distance"] = float(i**2)
    row.append()
table.flush()

table.cols.frame.create_index(optlevel=9, _testmode=True, _verbose=True)
# table.cols.frame.optimizeIndex(level=5, verbose=1)

results = [r.nrow for r in table.where("frame < 2")]
print("frame<2 -->", table.read_coordinates(results))
# print("frame<2 -->", table.get_where_list('frame < 2'))

results = [r.nrow for r in table.where("(1 < frame) & (frame <= 5)")]
print("rows-->", results)
print("1<frame<=5 -->", table.read_coordinates(results))
# print("1<frame<=5 -->", table.get_where_list('(1 < frame) & (frame <= 5)'))

h5file.close()