Browse Source

add a program to generate bogus data

main
John-Mark Gurney 5 years ago
parent
commit
039d2bf689
1 changed files with 66 additions and 0 deletions
  1. +66
    -0
      fixtures/gendata.py

+ 66
- 0
fixtures/gendata.py View File

@@ -0,0 +1,66 @@
from random import Random

gmt7 = ('GMT+7', '-0700', lambda x: x - 7 * 60 * 60)
gmt8 = ('GMT+8', '-0800', lambda x: x - 8 * 60 * 60)

def maketz(utc, tzinfo):
tza, tzb, fun = tzinfo

lcl = fun(utc)

return '\t'.join(('z', tza, str(lcl), str(utc), tzb))

def makem(utc, tzinfo):
reqdel = random.uniform(.5, 2.5)
demand = random.uniform(.1, .5)

return '\t'.join(('m', str(utc + reqdel), str(tzinfo[2](utc)), 'Connected', '%0.4f' % demand, '1.483000', 'kW', '1.000', '1.000', 'kWh'))

def gen(start, step, cnt, tzinfoseq):
'''Generate data starting from start, ending at stop.

Each entry is step seconds advanced.

There will be cnt entries between tzinfo, and cnt entries
following the final tzinfo.'''

utc = start

ret = []
num = 1
prevtz = None
for tz in tzinfoseq:
if prevtz is None:
prevtz = tz

for j in xrange(num):
ret.append(makem(utc, prevtz))
utc += step

if prevtz != tz and j > num / 2:
prevtz = tz

ret.append(maketz(utc - 1, tz))
num = cnt

for j in xrange(num):
ret.append(makem(utc, tz))
utc += step

return utc, ret

if __name__ == '__main__':
global random

random = Random()
random.seed(5)

tzs = [ gmt7 ] * 6 + [ gmt8 ] * 3
nextutc, data = gen(1577952662, 10, 10, tzs)
print >>open('data.0.log', 'w'), '\n'.join(data)

# simulate a restart
nextutc += 100
tzs = [ gmt8 ] * 6 + [ gmt7 ] * 3
nextutc, data = gen(nextutc, 10, 10, tzs)
print >>open('data.1.log', 'w'), '\n'.join(data)

Loading…
Cancel
Save