rbn_rtty.py
Submitted by ok4bx on Thu, 2015-01-22 18:24
- import os
- import json
- import datetime
- import time
- #CSV column setting
- RBN_CALL=0
- RBN_PFX=1
- RBN_CONT=2
- FREQ=3
- BAND=4
- CALL=5
- PFX=6
- CONT=7
- MODE=8
- DB=9
- TIMESTAMP=10
- MODE=12
- BANDS = ('160m','80m', '40m', '30m','20m','17m', '15m', '12m', '10m', 'total')
- FOLLOW = ('OL8M', 'OL7M', 'OK2ZI', 'OK7T')
- r = {}
- rbn_data= open('20141220.csv').read().split('\n')
- for line in rbn_data[1:-3]:
- record = line.split(',')
- if record[PFX] in ['OK'] and record[MODE] == 'RTTY' and record[CALL] in FOLLOW:
- timestamp = datetime.datetime.fromtimestamp( time.mktime( time.strptime( record[TIMESTAMP], "%Y-%m-%d %H:%M:%S")))
- r.setdefault(record[RBN_CALL],{}).setdefault(record[BAND],[]).append([timestamp,record[CALL],record[DB]])
- for skimmer in r.keys():
- for band in r[skimmer].keys():
- data = {}
- data['data'] = ''
- data['skimmer'] = skimmer
- data['band'] = band
- print skimmer
- for el in sorted(r[skimmer][band], key=lambda item: item[0]):
- print el
- tmp_val = [ 'undefined', 'undefined', 'undefined', 'undefined' ]
- #tmp_val = [ 'null', 'null', 'null', 'null' ]
- tmp_val[ FOLLOW.index(el[1]) ] = el[2]
- data["data"] += "[new Date(%d, %d, %d, %d, %d, %d), %s, %s, %s, %s],\n" % (el[0].year, el[0].month, el[0].day, el[0].hour, el[0].minute, el[0].second, tmp_val[0], tmp_val[1], tmp_val[2], tmp_val[3])
- html = '''<html>
- <head>
- <script type="text/javascript"
- src="https://www.google.com/jsapi?autoload={
- 'modules':[{
- 'name':'visualization',
- 'version':'1',
- 'packages':['corechart']
- }]
- }"></script>
- <script type="text/javascript">
- google.setOnLoadCallback(drawChart);
- function drawChart() {
- var data = new google.visualization.DataTable()
- data.addColumn('datetime', 'Time');
- data.addColumn('number', 'OL8M');
- data.addColumn('number', 'OL7M');
- data.addColumn('number', 'OK2ZI');
- data.addColumn('number', 'OK7T');
- data.addRows([
- %(data)s
- ]);
- var options = {
- title: '%(skimmer)s - %(band)s',
- legend: { position: 'bottom' },
- hAxis: {
- format: 'HH:mm',
- viewWindow:{
- max: new Date(2014, 12, 20, 23, 59, 59),
- min: new Date(2014, 12, 20, 0, 0, 0)
- }
- }
- };
- var chart = new google.visualization.ScatterChart(document.getElementById('curve_chart'));
- chart.draw(data, options);
- }
- </script>
- </head>
- <body>
- <div id="curve_chart" style="width: 100%%; height: 100%%"></div>
- </body>
- </html>''' % data
- open('ok_rtty_%s_%s_2014.html' % (skimmer,band),'w').write(html)