I'm trying to write data into a HDF5 file using the script below.
The terminal window I'm running the code in gives the correct output, and the output HDF5 file is created, but no data in the tables of the output file.
Any hints?
import tables
import datetime
import time
import csv
from tables import openFile, IsDescription, Float64Col, Int16Col
from scipy import array
import numpy as np
import os
#
output_filename='events_per_hour_output.h5'
#
if __name__ == '__main__':
# Read data from file
input_file='data_s20002_20121101_20121105.h5'
#Find station ID, start date and stop date from filename
print "input_file: ",str(input_file)
stationID=str(input_file[6:11])
print "stationID: ",stationID
start_year=str(input_file[12:16])
print "start_year: ", start_year
start_month=str(input_file[16:18])
print "start_month: ", start_month
start_day=str(input_file[18:20])
print "start_day",start_day
stop_year=str(input_file[21:25])
print "stop_year ",stop_year
stop_month=str(input_file[25:27])
print "stop_month ",stop_month
stop_day=str(input_file[27:29])
print "stop_day ",stop_day
print ''
with tables.openFile(str(input_file), 'r') as datafile:
data = [(x['timestamp'], x['nanoseconds'], x['ext_timestamp'], x['pulseheights']) for
x in datafile.root.s20002.events]
#
class variable_01(IsDescription):
unix_timestamp = Float64Col()
events = Float64Col()
GMT = Float64Col()
step = Float64Col()
#
#
start_date=datetime.datetime(int(start_year),int(start_month),int(start_day))
print "start_date: ",start_date
#start_date=time.gmtime(int(start_year),int(start_month),int(start_day))
stop_date=datetime.datetime(int(stop_year),int(stop_month),int(stop_day))
print "stop_date: ",stop_date
print"start_date.timetuple(): ",start_date.timetuple()
start_unix_time=time.mktime(start_date.timetuple())
#start_unix_time=time.gmtime(start_date.timetuple())
stop_unix_time=time.mktime(stop_date.timetuple())
step_length=3600# 3600 seconds = 1 hour
total_length=0
#
with openFile(output_filename, 'w') as data_splice:
group_variable_01 = data_splice.createGroup("/", 'hisparc_vantage')
table_variable_01 = data_splice.createTable(group_variable_01, 'table_01', variable_01)
dummy_01 = table_variable_01.row
#
for hour_step in range(int(start_unix_time),int(stop_unix_time),step_length):
dummy_01['step']=1
dummy_01.append
result = []
for row in data:
if (hour_step <= row[0]) and (row[0] < hour_step+step_length):#
result.append(row)
print "UTC start time: ",time.strftime("%Y-%m-%d %H:%M:%S", time.gmtime(hour_step))
print "len(result) : ", len(result)
#
#
dummy_01['unix_timestamp'] = hour_step
dummy_01['events']=len(result)
print "dummy_01['events']=",dummy_01['events']
print "dummy_01['unix_timestamp'] =", dummy_01['unix_timestamp']
dummy_01.append()
print ''
table_variable_01.flush
print "Done."