From 3e8395b6d891c77d9c71d60b65d99861dc062f73 Mon Sep 17 00:00:00 2001 From: Nat Lasseter Date: Tue, 10 Apr 2018 16:42:30 +0100 Subject: Initial Commit --- xml2json.rb | 51 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 51 insertions(+) create mode 100644 xml2json.rb (limited to 'xml2json.rb') diff --git a/xml2json.rb b/xml2json.rb new file mode 100644 index 0000000..aa1508d --- /dev/null +++ b/xml2json.rb @@ -0,0 +1,51 @@ +require 'nokogiri' +require 'json' + +FN = ARGV.shift.chomp + +doc = File.open("#{FN}.xml") { |f| Nokogiri::XML(f) } + +tstart = doc.css("xport>meta>start").text.to_i +tstep = doc.css("xport>meta>step").text.to_i + +rcvd = [] +rmax = 0 +sent = [] +smax = 0 + +doc.css("xport>data>row").each do |row| + t = (row.css("t").text.to_i - tstart) / tstep + r = row.css("v")[0].text.to_f + s = row.css("v")[1].text.to_f + + rmax = r if r > rmax + smax = s if s > smax + + rcvd << { t: t, v: r } + sent << { t: t, v: s } +end + +rmax *= 1.10 +smax *= 1.10 + +rcvd.each do |r| + r[:v] /= rmax +end + +sent.each do |s| + s[:v] /= smax +end + +File.open("#{FN}.rcvd.json", "w") do |f| + f.puts({ + max: rmax, + data: rcvd + }.to_json) +end + +File.open("#{FN}.sent.json", "w") do |f| + f.puts({ + max: smax, + data: sent + }.to_json) +end -- cgit v1.2.1