#!/usr/bin/perl -w
###########################################
# elerrd - Graph track elevation over time
# Mike Schilli, 2006 (m@perlmeister.com)
###########################################
use strict;
use YAML qw(LoadFile);
use RRDTool::OO;
use File::Temp qw(tempfile);

my $trkpts = LoadFile("tracks.yml");

my $rrd = RRDTool::OO->new(
    file => (tempfile())[1]);

$rrd->create(
  start       => $trkpts->[0]->{time} - 1,
  step        => 60,
  data_source => { name => "elevation",
                   type => "GAUGE" },
  archive     => { rows => 10000 });

for my $trkpt (@$trkpts) {
  eval { # Deal with dupes
      $rrd->update(time  => $trkpt->{time},
                   value => $trkpt->{ele});
  };
}

$rrd->graph(
  start          => $trkpts->[0]->{time},
  end            => $trkpts->[-1]->{time},
  image          => "elevation.png",
  vertical_label => 'Elevation',
  width          => 300,
  height         => 75,
  lower_limit    => 0,
);
