Skip to content

Instantly share code, notes, and snippets.

@akwiatkowski
Created May 26, 2012 21:09
Show Gist options
  • Save akwiatkowski/2795327 to your computer and use it in GitHub Desktop.
Save akwiatkowski/2795327 to your computer and use it in GitHub Desktop.
graphs for wind turbine
data = Array.new
f = File.new('power_calculator.txt')
f.each_line do |l|
if l =~ /(\d*);(\d*);(\d*\.?\d*);(\d*\.?\d*)/
data << {
time_from: $1.to_i,
time_to: $2.to_i,
energy: $3.to_f,
utilization: $4.to_f,
}
end
end
f.close
puts "Imported #{data.size}"
require 'technical_graph'
options = {
x_axis_fixed_interval: true,
x_axis_interval: 1.0,
x_axis_label: 'days',
y_axis_label: 'energy [kWh]',
truncate_string: "%.2f",
height: 600,
x_axis_density_enlarge_image: true,
x_axis_min_distance: 24*6,
y_max: 0.3,
y_min: 0.0,
y_axis_fixed_interval: true,
y_axis_interval: 0.05
}
tg = TechnicalGraph.new(options)
first_time = data[0][:time_from]
energy_data = data.collect { |d|
{
x: (d[:time_from] - first_time).to_f / (24.0 * 3600.0),
y: d[:energy].to_f / (1000.0 * 3600.0)
}
}
tg.add_layer(energy_data)
#tg.save_to_file('energy.svg')
tg.save_to_file('energy.png')
options = {
x_axis_fixed_interval: true,
x_axis_interval: 1.0,
x_axis_label: 'days',
y_axis_label: 'utilization [%]',
truncate_string: "%.2f",
height: 600,
x_axis_density_enlarge_image: true,
x_axis_min_distance: 24*6,
y_max: 100.0,
y_min: 0.0,
y_axis_fixed_interval: true,
y_axis_interval: 10.0,
}
tg = TechnicalGraph.new(options)
first_time = data[0][:time_from]
util_data = data.collect { |d|
util = (d[:utilization].to_f / 3600.0) * 100.0
#util = d[:utilization].to_f
util = 0.0 if util < 0.0
util = 100.0 if util > 100.0
{
x: (d[:time_from] - first_time).to_f / (24.0 * 3600.0),
y: util
}
}
tg.add_layer(util_data)
#tg.save_to_file('util.svg')
tg.save_to_file('util.png')
@loveybot
Copy link

Yay Ruby!!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment